仿真图:
以89C51单片机为基础,ADC0808为A/D转换芯片, 量程为0.00-5.00V,适合测试蓄电池和干电池。
原代码:
#include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code led[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
- uint volt;
- sbit CLK=P3^3;
- sbit START=P3^0;
- sbit EOC=P3^1;
- sbit OE=P3^2;
- void delay(uint z)
- { uchar x,y;
- for(x=z;x>0;x--)
- for(y=250;y>0;y--);
- }
- void ADC()
- {
- START=0;
- START=1;
- START=0;
- while(EOC==0);
- OE=1;
- volt=P1;
- OE=0;
- volt=volt*196;
- }
- void display()
- {
- P0=0XFF;
- P2=0x01;
- P0=led[volt/10000]&0x7F;
- delay(2);
- P0=0XFF;
- P2=0x02;
- P0=led[(volt/1000)%10];
- delay(2);
- P0=0XFF;
- P2=0x04;
- P0=led[(volt/100)%10];
- delay(2);
- P0=0XFF;
- P2=0x08;
- P0=led[(volt/10)%10];
- delay(2);
- }
- void main()
- {
- EA=1;
- TMOD=0x02;
- TH0=0XF6;
- TL0=0XF6;
- ET0=1;
- TR0=1;
- while(1)
- {
- ADC();
- display();
- }
- }
- void timer() interrupt 1
- {
- CLK=~CLK;
- }
复制代码 全部资料(压缩包)下载:
微型电压表.rar
(16.5 KB, 下载次数: 41)
|