在本文中,小编将对pic单片机的4×4行列式键盘的作业原理加以介绍,以协助我们增进对pic单片机键盘体系的了解,便利后期编程运用。
(1)单片机体系键盘原理
图1 4×4行列式键盘的原理图
实践的工程中,可能会运用PIC16C5X这种通用的可编程的键盘、显现接口器材,运用PIC16C5X单片器材就能够完结键盘输入和显现操控两种功用。
行列式键盘的作业办法是先用列线发送扫描字,然后读取行线的状况,查看是否有按键按下。键盘部分供给一种扫描的作业办法,能够和具有64个按键的矩阵键盘相连接,能对键盘不断扫描、主动消抖、主动识别按下的键,并给出编码,能对双键或n个键一起按下的状况实施维护。
在显现部分,它能够为发光二极管、荧光管及其他显现器供给按扫描办法作业的显现接口,并且为显现器供给多路复用信号,能够显现多达16位的字符或数字。
键盘中有无按键按下是由列线送入全扫描字、行线读入行线状况来判别的,其办法是将列线的一切I/O线均置成低电平,然后将行线电平状况读入累加器A中,假如有键按下,总会有一根行线被拉至低电平,从而使行输入不全为1。
键盘中哪一个键按下可由列线逐列置低电平后,查看行输入状况来判别,其办法是顺次给列线送低电平,然后查看一切行线状况,假如全为1,则所按下的键不在此列,假如不全为1,则所按下的键必在此列,并且是在与0电平线相交的交点上的那个键。
(2)单片机键盘扫描法
扫描法是在断定有键按下后逐列果行(或列)的状况呈现非全1状况,假如(或列)的状况呈现非全1状况,这时0状况的行、列交点的键便是所按下的键。
扫描法的特点是逐行(或逐列)扫描查询,这时相应行(或列)应有上拉电阻接高电平。行列式键盘扫描程序便是选用扫描法来承认哪个键按下的,图1中行线上拉电阻接+5V,列线逐列扫描。
①逐行(或列)扫描查询法。
承认矩阵式键盘上哪个键被按下时运用扫描法,又称为逐行(或列)扫描查询法,是一种最常用的按键识别办法,进程如下。
· 判别键盘中有无键按下,将悉数行线Y0~Y3置低电平,然后检测列线的状况。只需有一列的电平为低,则表明键盘中有键被按下,并且闭合的键坐落低电平线与4根行线相穿插的4个按键之中。若一切列线均为高电平,则键盘中无键按下。
· 判别闭合键地点的方位,在承认有键按下后,即可进入承认详细闭合键的进程。其办法是:顺次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平,在承认某根行线方位为低电平后,再逐行检测各列线的电平状况,若某列为低,则该列线与置为低电平的行线穿插处的按钮便是闭合的按键。
②回转法。
扫描法要逐列(行)扫描查询,当按下的键在最终走(列),要通过屡次扫描才干取得键值/键号。而回转法只需通过两个过程就可取得键值,原理如图2所示。
图2 线回转法原理
图中硬件选用中止办法作业,用一个8位I/O口构成4&TImes;4键盘。假定图中虚线为所按下的键,其回转法的过程如下。
· 将D3~D0设为列输入线,D7~D4设为行输出线,并使I/O输出信号D7~D4为0000。若有键按下,与门的输出端变为低电平,向CPU请求中止,表明键盘中有键按下。与此一起,D3~D0的数据输入到内存中的某一单元中,其间0位对应的是被按下键的列方位。
· 将第一步中的传送方向回转过来,行将D7~D4设为输入线,D3~D0设为输出线。使I/O口输出数据为N单元中的数(即D3~D0为按下键的列方位),然后读入I/O口数据,并送入内存N+1单元中寄存,该数据的D7~D4位中0电平对应的位是按下键的行方位。最终,将N单元中的D3~D0与N+1单元中的D7~D4拼接起来便是按下键的键值。
单片机使用体系中,任何I/O口或扩展I/O口均可构成行列式键盘。因为带有行列式键盘的使用体系中一般都有显现器,为节约I/O口线,往往把显现器电路与行列式键盘做在一个接口电路中。
责任编辑;zl