#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit ST=P2^0; sbit OE=P2^2; sbit ALE=P2^3; sbit EOC=P2^1; sbit CLK=P2^4; long int datas,bai,she,ge; uchar duan; uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code num_dot[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed}; uchar code wei[]={0x0d,0x0b,0x07}; void delay(uint z) { uchar i; while(z--) for(i=0;i<120;i++); } void display() { uchar i=0; bai=(datas*500/255)/100; she=(datas*500/255)/10 % 10; ge=(datas*500/255) % 10; for(i=0;i<3;i++) { P3=wei[i]; if(i==0){duan=num_dot[bai];} else if(i==1){duan=num[she];} else if(i==2){duan=num[ge];} P0=duan; delay(2); } } void main() { TMOD=0x02; TH0=0x216; TL0=0x216; EA=1; ET0=1; TR0=1; while(1) { ST=OE=0; ALE=1; ST=1; ALE=0; ST=0; while(!EOC); OE=1; datas=P1; display(); } } void inter_1() interrupt 1 { CLK=~CLK; } |