程序如下:<br />#include <reg52.h><br />#define uchar unsigned char<br />#define uint unsigned int<br />sbit duan=P2^6;<br />sbit wei=P2^7;<br />uchar a,shu,bai,shi,ge;<br />uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};<br />void display(uchar bai,uchar shi,uchar ge);<br />void init();<br />void delay(uchar z);<br />void main()<br />{<br /> init();<br /> while(1)<br /> {<br /> if(a==20)<br /> {<br /> a=0;<br /> shu++;<br /> if(shu==101)<br /> shu=0;<br /> bai=shu/100;<br /> shi=shu%100/10;<br /> ge=shu%10;<br /> }<br /> display(bai,shi,ge);<br /> }<br /> <br />}<br />void init()<br />{<br /> shu=0;<br /> TMOD=0x01;<br /> TH0=(65536-50000)/256;<br /> TL0=(65536-50000)%256;<br /> EA=1;<br /> ET0=1;<br /> TR0=1;<br />}<br />void timer() interrupt 1<br />{<br /> TH0=(65536-50000)/256;<br /> TL0=(65536-50000)%256;<br /> a++;<br />}<br />void display(uchar bai,uchar shi,uchar ge)<br />{<br /> duan=1;<br /> P0=table[bai];<br /> duan=0;<br /> P0=0xff;//消隐<br /> wei=1;<br /> P0=0xfe;<br /> wei=0;<br /> delay(5);<br /><br /> duan=1;<br /> P0=table[shi];<br /> duan=0;<br /> P0=0xff;//消隐<br /> wei=1;<br /> P0=0xfd;<br /> wei=0;<br /> delay(5);<br /><br /> duan=1;<br /> P0=table[ge];<br /> duan=0;<br /> P0=0xff;//消隐<br /> wei=1;<br /> P0=0xfb;<br /> wei=0;<br /> delay(5);<br />}<br />void delay(uchar z)<br />{<br /> uchar x,y;<br /> for(x=z;x>0;x--)<br /> for(y=110;y>0;y--);<br />}<br />我认为它应该每隔一秒动态显示1-100之间的数,可不知道它显示是从0-100. |
|