各位大虾请教一下我这个用中断实现的秒表怎么不怎么行啊<br />会出现秒的个位一直很亮而秒的十位却一闪一闪的又暗<br />我已经试着把延时改得很短的时间都还是不行,无奈,请教个位大侠<br />#include <reg51.h><br /><br />unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,<br />0x66,0x6d,0x7d,0x07,<br />0x7f,0x6f};<br />unsigned char code dis[]={0x00,0x01};//位显//<br />unsigned char second;<br />unsigned char tcount;<br />void delay(void)<br />{int j;<br /> for(j=500;j>=0;j--)<br /> {}<br />}<br /><br />void main(void)<br />{<br />TMOD=0x01;<br />TH0=(65536-50000)/256;<br />TL0=(65536-50000)%256;<br />TR0=1;//定时器开始工作//<br />ET0=1;//允许定时器中断//<br />EA=1;//中断允许//<br />tcount=0;<br />second=0;<br />P2=dispcode[second/10];<br />P1=dis[0];<br />delay();<br />P2=dispcode[second%10];<br />while(1);<br />}<br /><br />void t0(void) interrupt 1 using 0<br />{<br /> tcount++;<br /> if(tcount==20)<br /> {<br /> tcount=0;<br /> second++;<br /> if(second==60)<br /> {<br /> second=0;<br /> }<br /> P2=dispcode[second/10];<br /> P1=dis[0];<br /> delay();<br /> P2=dispcode[second%10];<br /> }<br />TH0=(65536-50000)/256;<br />TL0=(65536-50000)%256;<br />} <br /> |
|