单片机键盘如何消抖?

单片机键盘如何消抖?,第1张

一般按键按下时,往往会出现所按的按键在闭合和断开位置之间跳几下才稳定在闭合状态这就是按键抖动。抖动持续时间不一,一般不会大于10MS。\x0d\x0a据此,在按下按键时,延时10MS,就可消除抖动。\x0d\x0a程序可以这样:\x0d\x0aJB KEY1,$ 等待按键按下,这只是个例子,用了$。如果几个按键,KEY1没按下,可以转到判断第2 个键\x0d\x0aACALL DL10MS\x0d\x0aJNB KEY1,$-2 等待释放,未释放跳到上一条继续延时\x0d\x0a.... 键 按下,执行按键处理程序

根据去除抖动的时长来编程.举个例子,比如200毫秒以内的算抖动,去除,超过200毫秒认为有效.

在程序中设置一个寄存器,程序开始时,把寄存器值初始化为0,另外在程序中设置一个定时器,比如10毫秒.

10毫秒定时到了,可以调用一个判断按键是否按下得子程序.

如果没有采集到按键按下去信号,就返回主程序

如果采集到按下去信号,就让寄存器的值累加1,判断寄存器的值是否为20,

如果为20,则说明已经连续采集到了20*10=200毫秒,设置按键被按下去的

标志,同时把寄存器清零,下次继续从0开始累加

如果寄存器的值没到20,则返回主程序.

当按钮按下或松开时,会向单片机CPU 输入一个0电平或1电平,CPU 根据接收到的0或1电不平信号,决定具体的 *** 作。但是,在在键的按下和松开时,开关的机械触点会产生抖动,一般抖动时间是5 ~10ms 左右,抖动的波形如图2.2.1在拉动期间CPU 不能按收到稳定的电平而无法作出正确的判断,因此,需在对按钮进行去抖动处理。

图2.2.1 按钮时,产生抖动的波形示意图

为了消除抖动,如图2.2.2所示,是利用反相器集成电路来实现消除抖动功能的。当开始按钮按下时,反相器的①端为低电平,尽管按下按钮会产生抖动,但由于反相器的作用,在②端会产生一个稳定的高电平。在按钮松开的过程中,由于①变为高电平,同样由于反相器的作用,在②端会产生一个稳定的低电平。停止消抖动电路原里一样。

CD4511译码器电路

硬件消抖电路

74LS14

程序控制芯片 AT89C51

模拟交通发光管电路,四路方向灯。三基色发光管8只 LED 四方向数码管

6MHZ 时钟电路

803与8051仿真切换电路

控制按钮

电源指示灯,CPU 指示灯电路

电源


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11511206.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存