标题:
单个按键的另类消抖方法
[打印本页]
作者:
zhanglei
时间:
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)&(!flag))
{
key=0;//消抖
i++;
if(i>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)
2013-6-19 03:16 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
小新灬
时间:
2014-3-18 21:12
拿来试试
作者:
kmtbm
时间:
2015-6-28 17:38
准备下载,看能不能参考
作者:
淡然若梦
时间:
2016-9-1 16:27
不怎么好用
作者:
lxa0
时间:
2016-9-1 19:41
楼主是咋样把抖动给“灭”掉的?
我都是调用显示子程序消抖动的
作者:
鬼推磨
时间:
2020-3-7 12:02
没用。仿真测试了,按了,从0跳到2了。有时不准
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1