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