很简单,如果单片机自带AD,如果不带外加AD检测电路,然后写一个AD转换程序即可。
AD转换程序书、网上都有很多程例,我给个我产品中用PIC单片机AD程例,仅供参考。
#include
.
.
.
uchar ADC(uchar x)
{
uchar ad; //255*vin/vref
ADCON0=x;
GODONE=1;
while(GODONE==1)continue; //等待转换结束
ad=ADRES; //取转换结果
ADCON0=(x&0xfc);//关AD、节省电 ADCON0=0x78
return ad;
}
void check_dis(void) //参考此函数可以改成数码管显示
{
uchar temp; //vref=2.5v
//TRISB=0xfc;
ad_result=ADC(0x7b);
temp=ad_result;
if(temp>164) //>=4.15
{
delay(20);
if(temp>164)
{RC4=1;RC3=0;} //蓝灯
else {RC4=0;RC3=1;}
}
else if(temp<=164) //<4.15
{
RC4=0;RC3=1; //红灯
}
}
main()
{
.........
}
通过ad采集,然后将采集的数据换算送到数码管显示
经典电路:ADC0809+89C51/89S51+NEC8279+数码管+电源电路(7805)
简单电路:AVR mega16(单片机自带A/D转换功能)+三极管+数码管+电源电路
参考一下:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/738d6b23d0ccdde9d6cae2db.html