单片机源程序如下:
- #include<reg51.h>
- #define SEG P0
- #define SCANP P2
- sbit ST=P3^0;
- sbit OE=P3^1;
- sbit EOC=P3^2;
- sbit CLK=P3^3;
- sbit point=P3^7;
- void delay (int);
- unsigned char count_T0=0;
- unsigned char code tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};
- unsigned char code scann[4]={0x01,0x02,0x04,0x08};
- unsigned char disp[4]={0,0,0,0};
- unsigned char scan=0,temp=0;
- unsigned int results;
- void main()
- {
- TMOD=0x22;
- TH0=(256-250);
- TL0=(256-250);
- TH1=(256-2);
- TL1=(256-2);
- ET0 =1;
- ET1 =1;
- EA = 1;
- TR0=1;
- TR1=1;
- while(1)
- {
- OE=0;
- ST=0;
- ST=1;
- ST=0;
- delay(2);
- while(EOC==0);
- OE=1;
- temp=P1;
- delay(2);
- OE=0;
- results= temp * 196;
- results= results/10;
- disp[0]=results/1000;
- disp[1]=results/10/10%10;
- disp[2]=results/10%10;
- disp[3]=results%10;
- }
- }
-
- void delay (int x)
- {
- int i,j;
- for(i=0;i<x;i++)
- for(j=0;j<120;j++);
- }
- void T1_8ms(void)interrupt 3
- {if (++count_T0==20)
- { count_T0=0;
- if(++scan==5)
- {
- SEG=0xff;
- scan=1;
- }
- SCANP=scann[scan-1];
- SEG=tab[disp[scan-1]];
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
基于单片机的数字电压表.rar
(75.03 KB, 下载次数: 119)
|