0到999跑表.docVIP

  • 10
  • 0
  • 约1.29千字
  • 约 3页
  • 2018-03-07 发布于河南
  • 举报
0到999跑表

#includereg52.h #define uint unsigned int #define uchar unsigned char uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; sbit key=P1^0; //按键 sbit dula=P2^6; //段选 sbit wela=P2^7; //位选 uint num; uchar bai,shi,ge,t0; void intt(); void delay(uint); void display(); void keys(); void main() { intt(); num=0; while(1) { display(); keys(); } } void intt() { TMOD=0x01; //选择定时器工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void delay(uint x) //延时 { uint i,j; for(i=x;i0;i--) for(j=100;j0;j--); } void display() { dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(5); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(5); } void T0_timer() interrupt 1 //定时器方式1中断 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; t0++; if(t0==2) { t0=0; num++; bai=num/100; shi=num%100/10; ge=num%10; if(num==999) num=0; } } void keys() //按键检测 { if(key==0) { delay(5); if(key==0) TR0=0; //当按键按下时关闭定时器 } if(key!=0) TR0=1; //当按键释放时重新启动定时器 }

文档评论(0)

1亿VIP精品文档

相关文档