添加时间:2019年06月03日 作者:工业串口 来源:工业串口
单片机接口模块-单片机实现按键控制原理-工业串口http://www.fiery-tech.cn
按键连接原理,(PB0-PB3为单片机IO口),每个按键输出端采用上拉电阻,目的是当按键断开时,使单片机输入端口(PB0-PB3)处于高电平状态,只有当按键按下时才处于低电平。(此文用AVR单片机举例)
单片机接口模块-单片机实现按键控制原理-工业串口
按键的基本原理是设置单片机IO口(PB0-PB3)为输入状态,如DDRB = 0XF0(方向寄存器,“1”为输出,“0”为输入);
单片机接口模块-单片机实现按键控制原理-工业串口
单片机一直检测按键端口(PB0-PB3)的状态,当端口为低电平时(即按键按下),实行相应的动作(比如控制LED灯)。
原理就是这么回事,但是正真实现时,按键会有抖动,要进行按键去抖,下图为按键按下时的抖动图。
单片机接口模块-单片机实现按键控制原理-工业串口
按键实行一个动作过程是需要一定时间的,一般为100mS-1S左右,而一个单片机执行一个机器周期的时间很短,时钟为10MH的周期为0.1μs,这样按键每一次动作程序就会多次检测按键,出现误判(一次按下,多次动作)。
单片机接口模块-单片机实现按键控制原理-工业串口
按键触点在闭合或者断开的瞬间会出现抖动,抖动时间一般小于10ms。
(1) 可以使用硬件电路消抖,硬件消抖可以在按键与单片机IO口之间加入RS触发器,原理如下图所示。
(2)软件去抖
单片机接口模块-单片机实现按键控制原理-工业串口
按键抖动的时间间隔也就10ms以内,可以通过软件进行延时判断,过滤掉抖动的时间,达到消除抖动的目的。
单片机接口模块-单片机实现按键控制原理-工业串口
例:按键消抖程序:
Keys ()
{
if(!key) //第1步:判断是否有按键按下,key=0表示按键按下
{
delayms(20); //第2步:延时20ms,用于软件消抖,避开抖动时间
if(!key) //第3步:再次检测该按键是否按下
{
… //按键按下的处理程序
}
}
While(!key); //第4步:判断按键动作是否结束(key=1表示按键已释放)
}
工业串口屏,单片机接口模块,HDMI触控屏,LVDS视频模块
如何使用RS232串口通信-RS485串口模块-SPI串口模块