数码管前三位显示一个跑表-从000到999之间以百分之一秒速度运行-当按下一个独立键盘时跑表停止-松

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表)。在上题的基础上,用另外三个独立键盘实现按下第一个时计时停止,按下第二个时计时开始,按下第三个是计数值清零从头开始#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitkey1=P3^4;sbitkey2=P3^5;sbitkey3=P3^6;sbitkey4=P3^7;voidinit();//初始化子程序voiddelay(uint);//延时子程序voiddisplay(uint);//显示子程序voidkeyscan();//按键扫描子程序ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uintx,y;voidmain(){init();while(1){if(x==1){x=0;if(y==1000)y=0;}display(y);keyscan();}}voidinit(){P2=0x3f;P1=0xf8;TMOD=0x01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;x=0;y=0;}voidtimer0()interrupt1{TH0=(65536-10000)/256;TL0=(65536-10000)%256;x++;y++;}voiddelay(uintms){uintx,y;for(x=ms;x0;x--)for(y=110;y0;y--);}voiddisplay(uinta){uintbai,shi,ge;bai=a/100;shi=a%100/10;ge=a%10;P2=table[bai];P1=0xfe;delay(1);P1=0xff;P2=table[shi];P1=0xfd;delay(1);P1=0xff;P2=table[ge];P1=0xfb;delay(1);P1=0xff;}voidkeyscan(){if(key1==0){delay(5);if(key1==0)TR0=0;while(key1==0)display(y);TR0=1;}if(key2==0){delay(5);if(key2==0)TR0=0;}if(key3==0){delay(5);if(key3==0)TR0=1;}if(key4==0){delay(5);if(key4==0){TH0=(65536-10000)/256;TL0=(65536-10000)%256;x=0;y=0;}}}

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功