51-矩阵键盘和矩阵键盘密码锁

本文介绍了矩阵键盘的工作原理,强调了在单片机系统中如何利用逐列扫描避免引脚冲突问题,同时讨论了单片机IO口的弱上拉模式及其在按键连接中的应用,最后提到了矩阵键盘在密码锁中的应用。
摘要由CSDN通过智能技术生成

一、矩阵键盘

上面两个图中的 扫描 可以理解为 循环 、

在上图中,所谓最终实现所有按键 "同时" 检测的效果指的就是:当我们在矩阵键盘中任意按下或按下并松开一个按键,都能被检测出来、

数码管其实也是采用矩阵的连接方式,同样也可以达到节省单片机 IO 口的目的、

若逐行或逐列进行扫描的话,多个公共端在同一时间内,只能有一个公共端为低电平,否则无法检测出来到底是哪个按键被按下或按下并松开、

我们现在使用的开发板,若使用逐行扫描的话,可能会出现一些问题,因为该开发板内部电路存在一些问腿,具体表现为:此时P15这个公共端一会给高电平,一会给低电平,而P15这个公共端又与五线四相步进电机中的端口IN5相连,从而又间接连接了五线四相步进电机中的端口OUT5,而端口OUT5又通过网络标号BZ连接到了蜂鸣器上,而如果蜂鸣器上的网络标号BZ处以一定的频率高低变换(即指高低电平反复切换),则蜂鸣器就会响,所以如果此处选择逐行扫描的话,则蜂鸣器就会自己响,而且不能关闭,这也是由于引脚冲突导致的,所以为了避免这个问题,我们选择逐列扫描、

单片机 IO 口的模式叫做弱上拉模式,也叫做准双向口,即:IO 口既可以输出,也可以输入,所谓弱上拉模式指的就是,高电平的驱动能力有限(弱上拉),低电平的驱动能力较强(强下拉),弱上拉模式内部电路连接如图所示(简化):

若单片机的某一个 IO 口输出高电平,但又输入一个低电平,则此时该 IO 口读出来的就是低电平,因为,低电平的驱动能力比高电平强,此时低电平会盖过高电平;若单片机的某一个 IO 口输出高电平,但又输入一个高电平或者不输入,则此时该 IO 口读出来的就是高电平;STC89C52单片机的P1,P2,P3引脚都是一种弱上拉的工作模式,P0引脚叫做开漏输出的工作模式,但是在开发板的原理图上,将P0引脚外接了一个上拉电阻,所以我们也可以理解为:P0,P1,P2,P3引脚都可以看做是弱上拉工作模式,而且不能更改;至于STC公司生产出来的高系列的单片机的 IO 口的工作模式都是可以配置的,不仅仅只有弱上拉模式,还有其他模式,比如:推挽输出模式,所谓推挽输出模式即指,没有上拉电阻,此时,单片机的 IO 口只能输出,不能输入,若再输入一个低电平,则相当于电源短路,但实际上,对于单片机的 IO 口输入电流也是有限的;其次,还有一种工作模式叫做:高阻输入模式,单片机内部既没有上拉,也没有下拉,仅作输入,减少上拉电阻对输入的影响;还存在一种工作模式:开漏输出模式,外接了上拉电阻,我们使用的单片机(STC89C52)的P0口就属于开漏输出模式,也可以看作是弱上拉工作模式、

有关工作模式的详细介绍,请参考STC89C52手册的第四章;按键(包括独立按键和矩阵按键)也是采用准双向口输出配置的方式连接的,即让单片机的 IO 口输出高电平,将该 IO 口与按键的一头相连,将按键的另一头接地、


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值