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