基于51中断方式的矩阵键盘怎么弄啊?
刚开始学单片机有很多不懂的,我想用51单片机做一个矩阵键盘,看了好多教程上都是用查询法做的键盘扫描,但是听别人说还可以采用中断法,说是不按键盘的时候系统不会扫描键盘,只要...
刚开始学单片机有很多不懂的,我想用51单片机做一个矩阵键盘,看了好多教程上都是用查询法做的键盘扫描,但是听别人说还可以采用中断法,说是不按键盘的时候系统不会扫描键盘,只要一按键盘就可以触发中断,这是系统才开始扫描键盘,请问谁有相关的教程啊?就是有原理图加程序的那种!谢谢啦!
展开
2个回答
展开全部
这个原理是外部中断,就是需要一个外部动作(事件),才可以触发下一动作(事件)的发生。
一般是把矩阵键盘的行(列)输出信号相与以后接入单片机的外部中断口,程序里将这个外部中断设置为低电平出发就可以了。
当没有按键动作的时候,矩阵键盘的输出信号线相与结果为高,不会触发外部中断的键盘扫描程序,有键按下的时候矩阵键盘的输出信号相与输出低,触发单片机外部中断事件,从而扫面键盘。
有个要注意的地方就是按键延时去抖的问题,如果用软件延时可能会导致抖动期间电平瞬间变高,直接响应在中断里就是此次按键结束接触,或者中断递归了。可以考虑硬件延迟或者软件中在中断程序里关闭外部中断使能,一次键值处理完成后再打开外部中断使能。
我的理解是这样的。
一般是把矩阵键盘的行(列)输出信号相与以后接入单片机的外部中断口,程序里将这个外部中断设置为低电平出发就可以了。
当没有按键动作的时候,矩阵键盘的输出信号线相与结果为高,不会触发外部中断的键盘扫描程序,有键按下的时候矩阵键盘的输出信号相与输出低,触发单片机外部中断事件,从而扫面键盘。
有个要注意的地方就是按键延时去抖的问题,如果用软件延时可能会导致抖动期间电平瞬间变高,直接响应在中断里就是此次按键结束接触,或者中断递归了。可以考虑硬件延迟或者软件中在中断程序里关闭外部中断使能,一次键值处理完成后再打开外部中断使能。
我的理解是这样的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询