一)使用ADC0809采集直流電壓
1. 第一個數碼管顯示的是采樣輸入口
2. 后面三位是采樣電壓


(二)使用ADC0809進行交流電的采樣
1. 先進行交流電降壓,即用變壓器降壓后使用整橋電路進行整流
2. 默認將220交流電整流成5V最高,然后接入ADC0809
3. 圖中有理論公式,大概公式可以使用,設X是讀取到的電壓:實際值=(X/5)*220


(三)單片機程序
1 /*************** writer:shopping.w ******************/ 2 #include <reg52.h> 3 #define uint unsigned int 4 #define uchar unsigned char 5 #define DATA P1 6 sbit OE = P2^5; 7 sbit EOC = P3^3; 8 sbit ST = P2^7; 9 10 sbit C1 = P3^0; 11 sbit C2 = P3^1; 12 sbit C3 = P3^2; 13 14 uint display_data = 0; /*顯示數據*/ 15 uchar code LEDData[]= 16 { 17 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f 18 }; 19 20 21 void DelayMS(uint ms) 22 { 23 uchar i; 24 while(ms--) 25 { 26 for(i=0;i<120;i++); 27 } 28 } 29 30 void Display_Result(uint d) 31 { 32 33 P2 = 0xf7; 34 P0 = LEDData[d%10]; 35 DelayMS(5); 36 P2 = 0xfb; 37 P0 = LEDData[d%100/10]; 38 DelayMS(5); 39 P2 = 0xfd; 40 P0 = (LEDData[d/100]| 0x80); 41 DelayMS(5); 42 43 P2 = 0xfe; 44 P0 = LEDData[3]; 45 DelayMS(5); 46 47 } 48 49 void main() 50 { 51 52 53 C1 = 1; 54 C2 = 1; 55 C3 = 0; 56 57 while(1) 58 { 59 ST = 0; 60 ST = 1; 61 ST = 0; 62 while(EOC == 0); 63 OE = 1; 64 display_data = ((5.0/255) * DATA) * 100; 65 Display_Result(display_data); 66 OE = 0; 67 } 68 }
(四)工程源碼下載地址:
https://download.csdn.net/download/xiaoguoge11/10742910

