本文介绍如安在ME300B型51/AVR单片机学习开发体系上运用数码管显现4×4矩阵键盘的键值。
一、硬件作业原理的简略介绍
该试验运用ME300B上的8位数码管显现电路和4×4矩阵键盘电路。现将这二部分的电路作业原理进行简略的介绍:
1、4×4矩阵键盘的作业原理
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。内行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地进步单片机体系中I/O口的利用率。
图1为ME300B矩阵键盘电路图,行线接P1.4-P1.7,列线接P1.0-P1.3。
图1
图2
2、数码管动态扫描显现电路
在ME300B开发体系中,选用了8位数码管动态扫描显现。它将一切数码管的8个段线相应地并接在一同,并接到AT89S51的P0口,由P0口操控字段输出。而各位数码管的共阳极由AT89S51的P2口操控Q20-Q27来完结8位数码管的位输出操控。
这样,关于一组数码管动态扫描显现需要由两组信号来操控:一组是字段输出口输出的字形代码,用来操控显现的字形,称为段码;另一组是位输出口输出的操控信号,用来挑选第几位数码管作业,称为位码。
因为各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因而,同一时刻假如各位数码管的位选线都处于选通状况的话,8位数码管将显现相同的字符。若要各位数码管能够显现出与本位相应的字符,就必须选用扫描显现办法。即在某一时刻,只让某一位的位选线处于导通状况,而其它各位的位选线处于封闭状况。一起,段线上输出相应位要显现字符的字型码。这样同一时刻,只需选通的那一位显现出字符,而其它各位则是平息的,如此循环下去,就能够使各位数码管显现出即将显现的字符。
尽管这些字符是在不一起间呈现的,并且同一时刻,只需一位显现,其它各位平息,但因为数码管具有余辉特性和人眼有视觉暂留现象,只需每位数码管显现距离满足短,给人眼的视觉形象就会是接连稳定地显现。
图3
数码管不同位显现的时刻距离能够经过调整延时程序的延时长短来完结。数码管显现的时刻距离也能够确认数码管显现时的亮度,若显现的时刻距离长,显现时数码管的亮度将亮些,若显现的时刻距离短,显现时数码管的亮度将暗些。若显现的时刻距离过长的话,数码管显现时将发生闪耀现象。所以,在调整显现的时刻距离时,即要考虑到显现时数码管的亮度,又要数码管显现时不发生闪耀现象。
在ME300B单片机开发体系中运用数码管来显现信息时,要将JP2的2、3端短接。见图3
二、演示程序的编程办法
1、4×4矩阵键盘的编程办法:
1.1、先读取键盘的状况,得到按键的特征编码。
先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状况。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状况。将两次读取成果组合起来就能够得到当时按键的特征编码。运用上述办法咱们得到16个键的特征编码。
举例说明怎么得到按键的特征编码:
假定“1”键被按下,找其按键的特征编码。
从P1口的高四位输出低电平,即P1.4-P1.7为输出口。低四位输出高电平,即P1.0-P1.3为输进口。读P1口的低四位状况为“1101”,其值为“0DH”。
再从P1口的高四位输出高电平,即P1.4-P1.7为输进口。低四位输出低电平,即P10-P13为输出口,读P1口的高四位状况为“1110”,其值为“E0H”。
将两次读出的P0口状况值进行逻辑或运算就得到其按键的特征编码为“EDH”。
用相同的办法能够得到其它15个按键的特征编码。
1.2、依据按键的特征编码,查表得到按键的次序编码。
将用上述办法得到的16个按键的特征编码按图2按键摆放的次序排成一张特征编码与次序编码的对应联系表,然后用当时读得的特征编码来查表,当表中有该特征编码时,它地点的方位便是对应的次序编码。
1.3、矩阵键盘键值查找程序的详细编程
1、辨认键盘有无按键按下,若无键按下回来。
2、假如有键按下,找出详细的按键值(次序码)。