完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
if(key1==0)
{ delay(1); if(key1==0) { uthvalue++; } while(!key1); } 程序里的按键扫描扫不出来,这是我的扫描部分,扫描前后的程序都能运行 |
|
相关推荐
4个回答
|
|
本帖最后由 Jack315 于 2014-4-19 23:14 编辑
从程序看是单键判断。。。 一般按键都有个“抖动”的问题:当按键按下时,端口的电平会在高低电平间来回“抖动”(持续时间在10ms~50ms之间),从而给软件判断按键状态带来困扰,因此,需要有“去抖动”的措施。“去抖动”功能可以由硬件或软件来实现。硬件实现的方法是是在按键(开关)的两端并联一个电容(0.1uF)。软件的实现方法如下: unsigned char Count=0; // 8-bit unsigned while (1) // main loop { ... if (Key == 0) // Low detected. { if (Count < 255) Count++; } else // High detected. { if (Count > 0) Count--; } if (Count > 128) // Key pressed. { // Actions for key pressed. } else // Key released. { // Actions for key released, if any. } ... }; |
|
|
|
按键抖动时间没有这么久吧,一般为5ms~10ms。 |
|
|
|
具体的抖动时间视按键各异。早期教科书上给出的时间为30ms~50ms。现在的小型开关确实在10ms左右。 大侠果然心细!不过这个数据只是给LZ一个概念,一般对去“去抖动”措施不会有很大的影响。 |
|
|
|
谢谢各位,问题已解决,非程序原因
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12013 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:56 , Processed in 0.591475 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号