?? soft_ad.c
字號:
/*軟件A/D所能實現(xiàn)的精度有限,測量電壓范圍是2-15V,
而且速度低(約1KHz),但僅用一個電容和一個電阻的誘惑
力,我想大蝦您會笑納的。用于某些場合是有用的。
原理是利用470K電阻對1uF電容充電,利用P0.0口作為檢測電壓,
當電壓低于1/3 VCC時,P0.0讀入的I/O電平為0,當充電電壓超過
1/3 VCC時,P0.0讀入的I/O電平為1。通過測量此過程所用的時間,
就能判斷輸入電壓(需要換算)。
程序的編寫用定時器0實現(xiàn)
*/
//設計時需要計算過2V充電時測量的電壓時間小于250ms,否則time溢出。
//如需要高精度,time,vol換成int,測量時間會長一點
sbit v_input=P0^0;
unsigned char time,vol,n;
unsigned int total;
void int_t0(void) interrupt 1 {
TL0+=24;TH0=0xfb; //1000個機器周期
time++;
if (v_input) {
v_input=0; //把電容電壓放調
total+=time;
time=0;
if ((++n)>10) { //統(tǒng)計10次測量的時間
n=0;
vol=total/10; //vol的值為測量的電壓(還沒有轉換)
total=0;
}
v_input=1;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -