完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
题目:1.数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,
当按下 一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表) #include #include #define uint unsigned int #define uchar unsigned char uchar code duan[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; uchar code wei[]={0xbe,0xbd,0xbb,0xb7}; uint tt,bb,flag,ge,shi,bai,qian,wan,temp,i,l,num,num1,num2; ***it key1=P3^2; ***it key2=P3^3; ***it key3=P3^4; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void timer1() interrupt 3 { TH1=(65535-10000)/256; TL1=(65535-10000)%256; bb++; { bb==1; P2=0xbe; P0=duan[bai]; delay(10); P2=0xbd; P0=duan[shi]; delay(10); P2=0xbb; P0=duan[ge]; delay(10); } } void timer0() interrupt 1 { TH0=(65535-50000)/256; TL0=(65535-50000)%256; tt++; ge=temp%10; shi=temp/10%10; bai=temp/100; if(tt==1) { tt=0; P2=0xbe; P0=duan[bai]; delay(10); P2=0xbd; P0=duan[shi]; delay(10); P2=0xbb; P0=duan[ge]; delay(10); temp++; if(temp==999) {temp=0;} } } void display() { P2=0xb8; P0=duan[0]; } void init () { TMOD=0x11; TH0=(65535-50000)/256; TL0=(65535-50000)%256; TH1=(65535-10000)/256; TL1=(65535-10000)%256; EA=1; ET0=1; TR0=1; ET1=1; TR1=0; } void main(void) { init(); display(); while(1) { if(key1==0) //停止 { delay(7); if(key1==0) { TR0=0; TR1=1; while(!key1); delay(8); while(!key1); } } if(key2==0) //继续开始工作 { delay(7); if(key2==0) { TR0=1; TR1=0; while(!key1); delay(8); while(!key1); } } if(key3==0) //清零 { delay(7); if(key3==0) { temp=0; while(!key1); delay(8); while(!key1); } } } } 问题:当按下停止键后,确实是停止了,但按继续开始工作键和清零键都还是显示在停止的那个数值,我想应该是中断方面出了错。。求大神 |
|
相关推荐
6个回答
|
|
你那个tt++,清零在哪在按键里加个清零就可以了
|
|
|
|
我已经清零了,主要是暂停和继续工作两个按键的问题,我按了暂停后,再按继续开始键,但是没有反应,还是停留在暂停的数字 |
|
|
|
这什么程序啊,定时器里居然还延时30ms,你定时10ms中断的,而且,用一个定时器就足够了,最好重新写把,用一个定时器的,把显示放到主函数里,定时器里做一个标记就可以了 |
|
|
|
哦,多谢指导,但是我想请问一下,为什么我这样写定时器的优先问题会不起作用,具体请看停止键{TR0=0;TR1=1;}和继续开始键的{TR0=1;TR1=0;},敢问问什么这里会有冲突??谢了 |
|
|
|
你先把定时器里的延时解决,在定时器里延时不能超过定时中断的,把定时器里的那个显示和按键放到主函数里。 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
536 浏览 0 评论
531 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
794 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
922 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核启动流程
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12157 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 15:40 , Processed in 0.494329 second(s), Total 51, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号