標(biāo)題: 想問下這段單片機程序的具體意思,adc0832的 [打印本頁]
作者: 異星人 時間: 2019-5-24 14:41
標(biāo)題: 想問下這段單片機程序的具體意思,adc0832的
前面那個是根據(jù)時序圖來寫的吧?但是從for循環(huán)開始那邊是什么意思呢?
unsigned int A_D() //ADC0832 讀值程序
{
unsigned char i;
unsigned char dat;
ADC0832_CS=1; //一個轉(zhuǎn)換周期開始
ADC0832_CLK=0; //為第一個脈沖作準備
ADC0832_CS=0; //CS置0,片選有效
ADC0832_DIO=1; //DIO置1,規(guī)定的起始信號
ADC0832_CLK=1; //第一個脈沖
ADC0832_CLK=0; //第一個脈沖的下降沿,此前DIO必須是高電平
ADC0832_DIO=1; //DIO置1, 通道選擇信號
ADC0832_CLK=1; //第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數(shù)據(jù)用于選擇通道,這里選通道RH0
ADC0832_CLK=0; //第二個脈沖下降沿
ADC0832_DIO=0; //DI置0,選擇通道0
ADC0832_CLK=1; //第三個脈沖
ADC0832_CLK=0; //第三個脈沖下降沿
ADC0832_DIO=1; //第三個脈沖下沉之后,輸入端DIO失去作用,應(yīng)置1
ADC0832_CLK=1; //第四個脈沖
for(i=0;i<8;i++) //高位在前
{
ADC0832_CLK=1; //第四個脈沖
ADC0832_CLK=0;
dat<<=1; //將下面儲存的低位數(shù)據(jù)向右移
dat|=(unsigned char)ADC0832_DIO; //將輸出數(shù)據(jù)DIO通過或運算儲存在dat最低位
}
ADC0832_CS=1; //片選無效
return dat; //將讀書的數(shù)據(jù)返回
}
作者: angmall 時間: 2019-5-24 23:32
但是從for循環(huán)開始那邊是什么意思呢?
注釋 解釋很清楚 就是讀出數(shù)據(jù)
作者: netlmq 時間: 2019-5-25 07:39
從ADC0832的DIO端輸出轉(zhuǎn)換數(shù)據(jù),先最高位DATA7,依次輸出,直到DATA0。
先產(chǎn)生一個CLk脈沖下降沿,同時,(dat<<=1; ),dat左移一位,空出最低位準備接收ADC0832_DIO位。
DIO 端輸出一位數(shù)據(jù),并入dat低位,for循環(huán),讀取8次,接收完最低位數(shù)據(jù)DATA0,一個字節(jié)的數(shù)據(jù)輸出完成。一次A/D 轉(zhuǎn)換的結(jié)束。
最后將CS 置高電平禁用芯片,將轉(zhuǎn)換后的數(shù)據(jù)dat返回。
作者: 異星人 時間: 2019-5-25 09:20
adc0832不是需要讀兩次嗎?正的一次反的一次
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |