1.电路设计
4×4键盘矩阵共有16个按键,按照“线与”的交叉连接方式排成一个矩阵,即16个按键分别连接在4行4列导线的交叉点上。单片机系统按键如果采用矩阵连接方式,可以节省一半的I/O资源。4×4键盘电路如图3-14所示,16个按键刚好占用了P1的8个I/O接口。每一个按键按下都会让数码管数字产生变化,比如可显示按键的编号。
图3-14中键盘和P1接口之间没有直接用导线连接,而是采用具有电气特性的网络标号。在电路设计过程中,加注同一标号的导线,电路系统认为是连在一起的。在设计单片机系统或其他电子系统的电路时,由于元器件引脚较多,电路分成几个模块,元器件与元器件之间经常采用网络标号。
图3-14 4×4键盘阵列电路原理
2.程序设计
4×4键盘矩阵的程序设计采用了I/O接口扫描与检测原理。按键处理过程首先让P1输出按键扫描数据,然后检测按键是否按下,经判断后返回与按键对应的键值。
比如要实现按键K1按下检测,先设置P1所有的I/O接口都为高电平,再设置列线P1.4=0(P1=11101111),此时如果P1.4列线上K1按下,则与列线P1.4短路的行线P1.1也变为低电平,此时检测P1数据为11101101(即0xED),值为K1的键值。在程序设计时,会利用循环语句依次让每个列线出现低电平(按键扫描数据),然后再检测P1数据(按键的键值),由于按键在行列的交叉处,所以16个的按键分别按下,得到的16个不同的键值,并且可以有程序确定按键的优先权。(www.xing528.com)
让键盘列线依次出现低电平共需要4个扫描数据,即0x7F、0xBF、0xDF、0xEF,这些数据可以构成一个按键扫描数组依次赋给P1接口。按键按下对应的键值共有16个,与K0~K15对应的键值有0xEE、0xED、0xEB、0xE7、0xDE、0xDD、0xBD、0xD7、0xBE、0xBD、0xBB、0xB7、0x7E、0x7D、0x7B、0x77,也可以放在一个数组中。
按键的编号采用两位数字数码管显示,需要采用动态显示方法实现,关于动态显示原理将在第4章重点学习,这里只采用简单的快速交替显示方法实现。本项目的程序如下:
程序运行过程中,在没有按键按下时,数码管显示的数字“88”只是一个标记,读者也可以定义其他数据,只要与键值不同即可。
按键输入是单片机系统重要的人机对话途径,按键输入低电平有效很好地利用了单片机I/O接口高电平易失特性,这种特性也是单片机I/O接口接收低电平数字信号输入的基本原理。
本章所包含的项目都是围绕单片机外部的引脚特性进行的,项目的设计过程主要包括电路设计、程序设计以及程序下载、仿真调试等,掌握设计步骤是学习单片机系统开发的最基本要求。单片机程序设计能力的提高是一个渐进的训练过程,简单的项目是复杂项目设计的基础。在单片机技术学习过程中,读者可以通过简单的项目设计训练,逐步提高自己的编程能力。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。