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