找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机按键消抖方式总结

查看数: 7843 | 评论数: 9 | 收藏 9
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-8-20 16:39

正文摘要:

电路图如下: MCU采用89C52单片机,晶振12MHZ。 1、没有消除抖动的原始代码: #include <REGX52.H> #include <intrins.h> sbit KeyValue=P3^7; unsigned char code segment[]={0xc0,0xf9,0xa4,0xb ...

回复

ID:831736 发表于 2021-10-11 16:55
if(!key)
while(1)
{
//如果有显示程序写一遍在这里
if(key)
  {
  //按键要实现的功能
  break;
  }
}
这样写只能按一次实现一次
ID:970710 发表于 2021-10-9 17:04
主意不错,站位留存一下!
ID:966104 发表于 2021-10-5 07:10
这样很难吗?               
                if(K5 == 0)        
                {
                        DelayM(20); q = ~q;                //标志位取反
                        if(q){kai_numl = kai_numl | 1;}
                                     else { kai_numl = kai_numl&0;}
                         if(q){BLK = BLK | 1;}
                                else {BLK= BLK & 0;}
                        while(K5 == 0);
                                
                }
ID:969407 发表于 2021-10-4 15:45
挺好的啊,我自己也是这样使用的
ID:839438 发表于 2021-9-30 10:42
其实这个就是状态机
ID:34149 发表于 2021-9-11 19:27
原理分析到位!多谢分享
ID:398219 发表于 2021-9-9 14:47
一般来说都是延时5MS,小程序上用不了多少
ID:964826 发表于 2021-9-9 09:51
我记的网上有人利用标志位进行消抖,用延时的话有点困难
ID:872412 发表于 2021-8-25 20:05
还可以搞两个for嵌套循环! 最外层记录按了多少次,用来处理多次连续按键。内层在规定时间内有按键动作记为真,超过规定时间记为假,这样可以高效消抖

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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