❶ 51單片機程序問題 stc12c5a60s2 的a/d轉換問題..
好吧,先聲明我也正在學單片機,回答可能不專業,因為AD問題我只接觸過一次。以下結論來著STC12的手冊。
1.轉換的引腳由ADC_CONTG的低3位CHS2、CHS1和CHS0控制,三位二進制能表示0~7八個數,與P1口一一對應。ADC的結構決定了它一次只能轉換一個口,但是STC的轉換速度達到10萬次/秒,依次轉換P1.0和P1.1與同時轉換差別不大。設置P1.0時,ch=0x00.設置P1.1時,ch=0x01.
2.是按照一個位元組讀的,直接讀ADC_RES的話只能讀到數據的高八位。只用8位ADC轉換的話,讀ADC_RES就可以了。要想得到10位數據必須加上SendData(ADC_LOW2);
3.既然send函數提到了SBUF,那麼說明轉換結果是通過串口傳到電腦上,用STC下載工具的串口調試應該可以看到轉換結果。
4.連續讀取可以用函數循環或定時器循環來調用轉換函數。例子嘛,定時器我還不會用而你給的值定時器中斷法。所以我說下函數的方法,大概是這樣:
void main{
InitADC();//初始化ADC
while(1){//死循環
adc_isr();//轉換函數
delay(xx);//延時一段時間,否則轉換太快,數據量太大。
}
}
5.UART是一種通用串列數據匯流排,在這里是用於與電腦進行串口通信的。