久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
ADC0832模數轉換采集電壓上位機和下位機單片機程序源碼
[打印本頁]
作者:
heicc
時間:
2016-6-17 01:15
標題:
ADC0832模數轉換采集電壓上位機和下位機單片機程序源碼
0.png
(9.26 KB, 下載次數: 110)
下載附件
2016-6-17 01:13 上傳
ADC0832電壓采集上位機程序,51黑附件中可下載vc++源碼
下面是單片機做的下位機程序:
#include<reg52.h>
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
sbit ADCS =P2^3; //ADC0832 chip seclect
sbit ADDI =P2^2; //ADC0832 k in
sbit ADDO =P2^1; //ADC0832 k out
sbit ADCLK =P2^0; //ADC0832 clock signal
sbit cs=P2^2;
sbit wr=P2^3;
unsigned char dispbitcode[8]={0xf7,0xfb,0xfd}; //位掃描
unsigned char dispcode[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
unsigned char dispbuf[3];
unsigned char table[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uint temp,adc=0;
uchar getdata; //獲取ADC轉換回來的值
uchar flag,a;
void delayms(void) //12mhz delay 1.01ms
{
unsigned char x,y;
x=10;
while(x--)
{
y=4;
while(y--);
}
}
void display(void) //數碼管顯示函數
{
char k;
for(k=0;k<3;k++)
{
P1 = dispbitcode[k];
P0 = dispcode[dispbuf[k]];
delayms();
if(k==0) //加上數碼管的dp小數點
P0&=0x7f;
delayms();
P1=0xff;
}
}
//采集并返回
unsigned int Adc0832(unsigned char channel) //AD轉換,返回結果
{
uchar i=0;
uchar j;
uint dat=0;
uchar ndat=0;
if(channel==0)channel=2;
if(channel==1)channel=3;
ADDI=1;
_nop_();
_nop_();
ADCS=0;//拉低CS端
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿1
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=channel&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿2
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=(channel>>1)&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿3
ADDI=1;//控制命令結束
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDO;//收數據
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次時鐘脈沖
_nop_();
_nop_();
dat<<=1;
if(i==7)dat|=ADDO;
}
for(i=0;i<8;i++)
{
j=0;
j=j|ADDO;//收數據
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次時鐘脈沖
_nop_();
_nop_();
j=j<<7;
ndat=ndat|j;
if(i<7)ndat>>=1;
}
ADCS=1;//拉低CS端
ADCLK=0;//拉低CLK端
ADDO=1;//拉高數據端,回到初始狀態
dat<<=8;
dat|=ndat;
return(dat); //return ad k
}
void main()
{ P0=0XFF;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{ if(flag==1)
{
ES=0;
flag=0;
SBUF=getdata;
while(!TI);
TI=0;
ES=1;
}
getdata=Adc0832(1);
temp=getdata*1.0/255*500; //電壓值轉換,5V做為參考電壓,分成256份。
dispbuf[2]=temp%10; //個位
dispbuf[1]=temp/10%10; //十位
dispbuf[0]=temp/100; //百位
display();
}
}
void ckzd() interrupt 4
{
RI=0;
a=SBUF;
switch(a)
{
case 'a':
flag=1; break;
case 'b':
P0=adc; break;
case 'c':
P0=adc; break;
default:
P1=0xFF;
break;
}
}
復制代碼
0.png
(61.43 KB, 下載次數: 99)
下載附件
2016-6-17 01:13 上傳
ADC0832模數轉換測試程序,帶上位機源程序和下位機源程序,將adc0832采集的電壓值送給上位機顯示,本人親測
上位機和下位機ADC0832upanddown.rar
(5.72 MB, 下載次數: 139)
2016-6-17 01:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
lizhi2412979180
時間:
2018-5-14 19:44
是用什么軟件做的啊
作者:
aking991
時間:
2018-9-27 13:21
才0-5V,上位機也才那樣,功能太簡單了,測量范圍也太小了,還有ADC才8位,精度太差
作者:
lqsgg
時間:
2018-10-19 21:55
謝謝分享!學習學習!
作者:
965591772
時間:
2019-3-22 10:02
這個_nop_是什么意思?延時的意思嗎
作者:
lzb1989666
時間:
2020-5-10 12:28
挺好O,感謝分享
作者:
wengjiamin
時間:
2021-1-8 22:37
這個_nop_是什么意思?延時的意思嗎
是的 ,相當于匯編的nop指令
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久久久久久久久国产
|
久久视频这里只有精品
|
日韩一级免费视频
|
欧美日韩国产在线观看
|
久久亚洲国产精品
|
精品久久国产
|
秘密爱大尺度做爰呻吟
|
亚洲国产一区在线
|
成人毛片一区二区三区
|
黄色a毛片
|
欧美自拍视频
|
免费一级a毛片
|
亚洲一区二区在线视频
|
日韩专区在线观看
|
国产精品高潮呻吟久久
|
国产www
|
天天色小说
|
国产精品一区av
|
五月天一区二区三区
|
久操精品视频
|
久久夜色精品国产欧美乱极品
|
久草福利在线
|
日韩欧美二区
|
99re国产精品
|
欧美性猛交xxxx黑人猛交
|
欧美一区二区精品
|
国产精品一区二区视频
|
日本免费一级片
|
欧美亚洲天堂
|
日本香蕉视频
|
一边摸一边操
|
久久精品欧美一区
|
男女激情视频网站
|
自拍偷拍综合
|
久草网在线观看
|
人人看人人草
|
99国产精品99久久久久久
|
四虎影视最新地址
|
黄色大片免费观看
|
六月丁香激情
|
中文字字幕在线
|