找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3894|回复: 5
收起左侧

单个按键的另类消抖方法

[复制链接]
ID:51055 发表于 2013-6-19 03:17 | 显示全部楼层 |阅读模式
关于消抖,我现在想到的方法只有两种,一种是延时跳过抖动再检测;另一种也就是本贴的思路:就是把抖动灭掉,不让它抖动,而不是跳过抖动,如下图:

#include<AT89X55.H>
#define uchar unsigned char
#define uint unsigned int
sbit key=P1^3;
uchar i;
uchar code num[]=
{0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/
0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/
0xF8,/*7*/0x80,/*8*/0x90,/*9*/};
void keysan()//按键扫描
{
     bit flag;
     uint keysta;
     if((!key)&amp;(!flag))
    {
         key=0;//消抖
         i++;
         if(i&gt;9)  
         i=0;  
         flag=1;
     }
      if(!key)
     {
          keysta++;  
          if(keysta==10000)
          {
              key=1;//拉高  
              keysta=0;  
              flag=0;
           }  
      }
}

void main()
{
      while(1)
     {
         keysan();  
         P0=0xf0;
         P2=num;
     }
}

电路仿真.rar (24.54 KB, 下载次数: 20)
回复

使用道具 举报

ID:59780 发表于 2014-3-18 21:12 | 显示全部楼层
拿来试试
回复

使用道具 举报

ID:78702 发表于 2015-6-28 17:38 | 显示全部楼层
准备下载,看能不能参考
回复

使用道具 举报

ID:137261 发表于 2016-9-1 16:27 | 显示全部楼层
不怎么好用
回复

使用道具 举报

ID:74784 发表于 2016-9-1 19:41 | 显示全部楼层
楼主是咋样把抖动给“灭”掉的?
我都是调用显示子程序消抖动的
回复

使用道具 举报

ID:475031 发表于 2020-3-7 12:02 | 显示全部楼层
没用。仿真测试了,按了,从0跳到2了。有时不准
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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