前面那個(gè)是根據(jù)時(shí)序圖來(lái)寫的吧?但是從for循環(huán)開(kāi)始那邊是什么意思呢?
unsigned int A_D() //ADC0832 讀值程序 { unsigned char i; unsigned char dat; ADC0832_CS=1; //一個(gè)轉(zhuǎn)換周期開(kāi)始 ADC0832_CLK=0; //為第一個(gè)脈沖作準(zhǔn)備 ADC0832_CS=0; //CS置0,片選有效 ADC0832_DIO=1; //DIO置1,規(guī)定的起始信號(hào) ADC0832_CLK=1; //第一個(gè)脈沖 ADC0832_CLK=0; //第一個(gè)脈沖的下降沿,此前DIO必須是高電平 ADC0832_DIO=1; //DIO置1, 通道選擇信號(hào) ADC0832_CLK=1; //第二個(gè)脈沖,第2、3個(gè)脈沖下沉之前,DI必須跟別輸入兩位數(shù)據(jù)用于選擇通道,這里選通道RH0 ADC0832_CLK=0; //第二個(gè)脈沖下降沿 ADC0832_DIO=0; //DI置0,選擇通道0 ADC0832_CLK=1; //第三個(gè)脈沖 ADC0832_CLK=0; //第三個(gè)脈沖下降沿 ADC0832_DIO=1; //第三個(gè)脈沖下沉之后,輸入端DIO失去作用,應(yīng)置1 ADC0832_CLK=1; //第四個(gè)脈沖 for(i=0;i<8;i++) //高位在前 { ADC0832_CLK=1; //第四個(gè)脈沖 ADC0832_CLK=0; dat<<=1; //將下面儲(chǔ)存的低位數(shù)據(jù)向右移 dat|=(unsigned char)ADC0832_DIO; //將輸出數(shù)據(jù)DIO通過(guò)或運(yùn)算儲(chǔ)存在dat最低位 } ADC0832_CS=1; //片選無(wú)效 return dat; //將讀書的數(shù)據(jù)返回 }
|