发 帖  
[问答]

请教下各位大神,用switch case检测按键该怎么加延时程序

3831 Switch 来自手机

mmexport1583497159192.jpg (49.15 KB, 下载次数: 3)

mmexport1583497159192.jpg
2020-3-6 21:43:45   评论 分享淘帖 邀请回答 举报
1个回答
2020-3-6 21:43:46 7 评论

举报

7 条评论
  • 2020-3-7 12:53

    我做的是一个抢答器,我打算的是用switch case 来直接检测P1口的电平变化,以此来判断是哪号按下了按键。我觉得这样比检测按键来的简单。但是后来看到网上一些都有加防抖程序,我想问下按照我的思路可不可以不加防抖程序。如果不加防抖会出现什么问题。我感觉我在仿真时没有出现过系统误判断。

    jiciwi 回复 幻昼夜空: 2020-3-7 13:20

    防抖就是需要检测两次呀

    幻昼夜空 回复 jiciwi: 2020-3-7 13:34

    那我问下我直接在  case 0xfe://1号后面加 delay10ms(); P1=0xfe;应该也是可以防抖的吧

    jiciwi 回复 幻昼夜空: 2020-3-7 15:21

    你这样里面还要要一个sitch了吧,你在外面检测2次检测好不就得了

    幻昼夜空 回复 jiciwi: 2020-3-7 17:15

    if(P1!=0xff)     //P1端口电平发生变化,表示有按键按下   {   delay10ms();     //延迟10ms                    switch(P1)//再次检测是哪位选手按下抢答按钮         {                 case 0xfe://1号                 beep = 1;        //蜂鸣器响                 delay50ms(20);                 beep = 0;

    幻昼夜空 回复 jiciwi: 2020-3-7 17:20

    这样可以达到延时防抖效果吗,我先检测P1口各引脚电平是否发生变化,如果变了,说明有按键按下了,然后我延时10ms,再检测是哪号引脚电平发生了变化。

    jiciwi 回复 幻昼夜空: 2020-3-8 08:50

    差不多可以

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表