“矩阵键盘”的版本间的差异
来自丢石头百科
Yousimaier17(讨论 | 贡献) (创建页面,内容为“== 产品概述 == 矩阵键盘作为单片机的外接设备,当所需的按键数量较多时,为减少I/O口的占用,提高单片机的利用率,通常…”) |
Yousimaier17(讨论 | 贡献) |
||
第1行: | 第1行: | ||
+ | {{Product | ||
+ | |images= | ||
+ | |categories= | ||
+ | {{Category|光传感器}} | ||
+ | {{Category|传感器}} | ||
+ | |brand=丢石头 | ||
+ | |features= | ||
+ | * 矩阵键盘。 | ||
+ | * 共16个按键,8个I/O口。 | ||
+ | |interfaces= | ||
+ | {{Category|I/O口}} | ||
+ | }} | ||
+ | |||
== 产品概述 == | == 产品概述 == | ||
矩阵键盘作为单片机的外接设备,当所需的按键数量较多时,为减少I/O口的占用,提高单片机的利用率,通常会将按键排成矩阵形式。即在矩阵键盘中,每条水平线与垂直线之间是通过一个按键连接的,这样单片机的一个8位端口就可以控制4*4=16个矩阵式按键,相较于直接用端口控制按键的方法多出一倍。而且当线路越多时,区别就越明显。 | 矩阵键盘作为单片机的外接设备,当所需的按键数量较多时,为减少I/O口的占用,提高单片机的利用率,通常会将按键排成矩阵形式。即在矩阵键盘中,每条水平线与垂直线之间是通过一个按键连接的,这样单片机的一个8位端口就可以控制4*4=16个矩阵式按键,相较于直接用端口控制按键的方法多出一倍。而且当线路越多时,区别就越明显。 |
2021年7月1日 (四) 11:16的版本
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
产品概述
矩阵键盘作为单片机的外接设备,当所需的按键数量较多时,为减少I/O口的占用,提高单片机的利用率,通常会将按键排成矩阵形式。即在矩阵键盘中,每条水平线与垂直线之间是通过一个按键连接的,这样单片机的一个8位端口就可以控制4*4=16个矩阵式按键,相较于直接用端口控制按键的方法多出一倍。而且当线路越多时,区别就越明显。
扫描原理
矩阵键盘的结构相较于独立键盘复杂一些,单片机对其进行的识别也会复杂一些。矩阵键盘的扫描方式有两种:行列扫描法和逐行/逐列扫描法。行列扫描法也称为线反法,适用于矩阵键盘受单片机连续的I/O口控制的情况;逐行/逐列扫描法适用于矩阵键盘被接入了单片机的任意I/O口的情况。在实际单片机应用中更为常用的是行列扫描法。 下面以4*4矩阵键盘为例,其中四条行线(第一行开始)接入单片机的P1.0-P1.3,四条列线(第一列开始)接入P1.4-P1.7。
- 行列扫描法
- 使P1口的高四位输出高电平,低四位输出低电平,此时列线被拉高,行线被拉低。假设有按键按下,则某一列的电平将会被拉低,此时读取P1口高四位(四个列)的电平,若读取到的值不全为高电平,说明有按键按下,可通过读取到的值判断是第几列。再使P1口的高四位输出低电平,低四位输出高电平,读取P1口低四位(四个行)的电平,此时读取到的值不再全为高电平,可通过读取到的值判断是第几行。将两次读取的结果组合起来就可以得到当前按键的键值,从而确定按下按键的位置。
- 逐行/逐列扫描法
- 逐行/逐列扫描法本质和行列扫描法类似,即给某一行/某一列输出低电平,其余七个全部为高电平,此时读取电平变化,若由低电平则说明有按键键按下,可根据读取的键值判断按键按下的位置。
- 具体操作如下:将第一行置为低电平,其余三行和四列置为高电平。读取列线的数据,若列线不全为高电平表示第一行有按键按下,可根据读取的数据判断是第一行的哪一列按键按下;若列线全为高电平,则将第二行置为低电平,其余三行和四列置为高电平,读取列线的数据,判断是否有按键按下。重复上述动作,并以此类推。
电路图
程序
FAQ
|