用6个IO口实现的5×5按键矩阵的原理图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘
键盘输入作为最常用的输入设备仍有其不可替代的作用。
下面首先对传统键盘作一个简单的介绍。
(1) 传统键盘的介绍
键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。
线性键盘由若干个独立的按键组成,每个按键的一端与微机的一个I/O口相连。有多少个键就要有多少根连线与微机的I/O口相连,因此,只适用于按键少的场合。
矩阵键盘的按键按N行M列排列,每个按键占据行列的一个交点,需要的I /O口数目是N+M,容许的最大按键数是N×M。显然,矩阵键盘可以减少与微机接口的连线数,简化结构,是一般微机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。
① 非编码键盘
非编码键盘主要用软件的方法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法3种。
② 编码键盘
编码键盘主要用硬件来实现键的扫描和识别,通常使用8279专用接口芯片,在硬件上要求较高。
(2) 新型键盘的硬件和软件实现
有些特殊情况下,在组成一个最小的单片机系统的过程中,由于通用的I/O 口有限,而又需要大量的按键输入,这就要求一种新的键盘结构,即用尽量少的I/O口实现尽可能多的键盘输入。经过分析,实际上用N+1个I/O口,辅以适当的接口电路,是可以实现N×N个按键的。现以6个端口实现5×5的按键为例来叙述。
如图1.3所示为用6个I/O口来实现25个按键的示意图。
图1.3 用6个I/O口实现的5×5按键矩阵的示意图
具体的物理实现电路如图1.4所示。由图1.3和图1.4可见,硬件部分分为两块:一块是普通键盘矩阵,另外一块是中断和接口电路,主要由相应数目的二极管和电阻组成。具体对6个I/O口的情况,实现5×5的按键矩阵的中断和接口电路(图1.4)共需要10只二极管、12只电阻和1只三极管。10只二极管按其在电路中所起的作用可分为两组:第一组包括D6、D7、D8、D9和D10,用于保证按键信息的单一流向;第二组包括D1、D2、D3、D4和D5,它们在电路上对N
PN三极管的基极构成“或”的逻辑关系,对单片机进行初始化。除了PORT6(要求其具有中断功能)以外,其余的I/O口均被置成高电平,这样当有键按下时,三极管的基极由低变高,三极管导通;集电极由高电平跳变成低电平,向单片机发出中断信号,从而启动键盘扫描程序。
按键的识别主要靠软件来实现,需要编写键盘扫描程序。为了更好地说明键盘扫描的 过程,假设编号为S12的键(见图1.4)被按下,扫描程序已经启动,扫描的具体过程如表1.4所列。
图1.4 用6个I/O口实现的5×5按键矩阵的原理图
表1.4 键盘扫描过程
P1 P2 P3 P4 P5 P6 说明
OH I I I I I PORT1被置成高电平输出,其他端口作为输入H L L L L H H读入各端口的值,为100001,与编码表进行
比较,经判断没有键按下,继续下一步
I OH I I I I PORT2被置成高电平输出,其他端口作为输入L H H L L L PORT2和PORT3与S12相连,此时均为高电平,
读入各端口的值为011000,与编码表比较,可
以判断有键按下并且键值惟一
说明:P-PORT,O-输出,I-输入,H-高电平,L-低电平。