数码管显示的秒表程序.docVIP

  • 29
  • 0
  • 约1.67千字
  • 约 5页
  • 2018-11-23 发布于河南
  • 举报
数码管显示的秒表程序

#includereg52.h #define uchar unsigned char #define uint unsigned int #define led_shift P2 #define led_port ?P0 #define on 1 ? ? ? ? #define off 2 ? ? ?? #define ret 3 ? ? ?? sbit key=P3^7; ? ? ? uchar key_flag=ret;? uint watch=0; ? ? ?? uchar code led_tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; uchar code led_tab_dop[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; void delayms(uchar ms); void led_disp(uint x); void main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ?? ?EA=1; ET0=1; TR0=1; while(1) { if(key==0) { delayms(10);// if(key==0) { switch(key_flag) { case on: key_flag=off; break; case off: key_flag=ret; break; case ret: key_flag=on; break; } while(key==0); } } led_disp(watch); } } void delayms(uchar ms) { uchar i; while(ms--) { for(i=0;i250;i++); } } void led_disp(uint x) { ?? ?uint temp=x; led_port=led_tab[temp%10]; led_shift=0xfe; delayms(1); led_shift=0xff; ?? ? temp/=10; led_port=led_tab_dop[temp%10]; led_shift=0xfd; delayms(1); led_shift=0xff; temp/=10; led_port=led_tab[temp%10]; led_shift=0xfb; delayms(1); led_shift=0xff; ? temp/=10; led_port=led_tab[temp%10]; led_shift=0xf7; delayms(1); led_shift=0xff; } void timer0() interrupt 1 using 1 { static uchar i=0; ? ? ?? TF0=0; ET0=0; TR0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; switch(key_flag) { case on: if(i1)? { i+=1;} else { i=0; watch+=1; } break; case off: break; case ret: i=0; watch=0; break; } TR0=1; ET0=1; }

文档评论(0)

1亿VIP精品文档

相关文档