消抖是针对按键的,因电子钟中要用按键,用来调时,也要用定时器,所以,你才误把这三者联系在一起了。
按键是金属片机械接触的,所以,在按下的时候,会因为机械抖动,产生多次的接触,本来是只按一次,应该是接触一次的,但实际上是接触很多次,还是未知的。造成的现象就是,本来按一下键,但却好像 按了n 次一样,这就是所谓的抖动。
消抖动就是克服按键的多次接触,保证每次按键只识别出一次接触。
消抖动的 方法就是写程序时,每当判断有按键按下后,先延时一段时间,再判断一次,如果还保证有按键才有效。这样写
if(key==0) //第一次判断按键被按下,key就是按键
{
delay()//延时
if(key==0) //第二次判断按键被按下
{
//从这开始写按键后程序
while(key==0) //等待按键松开
}
}
当按钮按下或松开时,会向单片机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条)