
在程序中设置一个寄存器,程序开始时,把寄存器值初始化为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 指示灯电路
电源
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)