完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
while(!KEY); //等待按键释放
这个指令可以判断按键释放 ,但是缺点是按下的时候CPU一直处于等待的状态。。。 这样带来的效果是:如果是数码管显示程序,那按键不放开,数码管就灭了。。。。 这个太坑爹了{:soso_e103:} 还有什么办法能检测按键,同时又可以让CPU不用等待,去做别的事情? 达到的效果就是按键不放开数码管也不会灭?{:soso_e118:} |
|
相关推荐
8个回答
|
|
|
|
|
|
|
|
|
|
|
|
|
|
请贴上代码 原理图
|
|
|
|
while(1)
{ if(K5==0) //模式选择 { delay1ms(10); if(K5==0) { xx++; } while(!K5); //等待按键释放 } if(K8==0) //确定按键,按一次取消闪烁 { delay1ms(15); if(K8==0) { xx=0; } } if(K6==0&&xx==1) //小时加1按键 { delay1ms(10); if(K6==0&&xx==1) { hour++; if(hour==24) { hour=0; } } while(!K6); //等待按键释放 } if(K6==0&&xx==2) //分钟加1按键 { delay1ms(10); if(K6==0&&xx==2) { minute++; if(minute==60) { hour++; minute=0; } } while(!K6); //等待按键释放 } if(K7==0&&xx==1) //小时减1按键 { delay1ms(10); if(K7==0&&xx==1) { hour--; if(hour==24) { hour=0; } } } while(!K6); if(xx==2&&K7==0) //分钟减1按键 { delay1ms(10); if(xx==2&&K7==0) { minute--; if(minute==-1) { minute=59; hour--; if(hour==-1) { hour=23; } } } } while(!K7); //等待按键释放 这是有按键判断的程序段 标红的地方是等待按键释放的,问题是如果按住按键不松手,主程序就会停在“while(!K7); //等待按键释放” 这些地方,然后数码管就不亮了,松开手后数码管显示才正常。。。。 |
|
|
|
这个问题俺也想知道,一起等高手解决
|
|
|
|
很简单,在加一个break控制!只用while程序不严谨,如果那个PIN出问题就一直为low,程序不是一直要等待在这里!while(!k7){ 延时;break;}。
while(T1==0) //超时限制, { timeout++; if(timeout>10000) break; } |
|
|
|
我找到方法了,把显示函数放进while(!)里面,象这样 while(!K6) { DisplayHour(hour); DisplayMinute(minute); DisplaySecond(second); daojishi(daoji); } 我这个方法比较笨,有空我再试试楼上这个方法。。。。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1959 浏览 0 评论
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
991 浏览 0 评论
3170 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2810 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1848 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
6644 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-13 20:59 , Processed in 0.732778 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号