標(biāo)題:
求分析這段單片機(jī)代碼的作用
[打印本頁]
作者:
ljb147258369
時間:
2019-6-17 13:52
標(biāo)題:
求分析這段單片機(jī)代碼的作用
unsigned int Adc0832(unsigned char channel)
{
uchar i=0;
uchar j;
uint dat=0;
uchar ndat=0;
uchar Vot=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;//控制命令結(jié)束
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDO;//收數(shù)據(jù)
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;//收數(shù)據(jù)
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;//拉高數(shù)據(jù)端,回到初始狀態(tài)
dat<<=8;
dat|=ndat;
return(dat); //return ad data
}
作者:
charles11
時間:
2019-6-17 16:00
這應(yīng)該是一個AD 轉(zhuǎn)換的程序,先按它的時序來拉低或拔高電平,接著讀取數(shù)據(jù)
作者:
suncat0504
時間:
2019-6-17 16:47
你這個是通過串行方式獲取AD轉(zhuǎn)換結(jié)果的吧。for循環(huán)之前的代碼好像是啟動AD轉(zhuǎn)換。后面的是通過串行方式獲得轉(zhuǎn)換結(jié)果。
作者:
尹子歸來
時間:
2019-6-17 20:38
這就是ADC0832對單片機(jī)的一種串行通訊,所以作用就是通訊咯
作者:
Weit8
時間:
2019-6-17 20:43
這是ADC0832的ADC轉(zhuǎn)換程序,開始的兩個if語句是通道選擇,后面是按該芯片的通信時序?qū)懭肟刂浦噶詈妥x取AD轉(zhuǎn)換值
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1