预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

4×4矩阵键盘的工作原理与编程51/AVR单片机学习开发系统上使用数码管显示4×4矩阵键盘的键值。一、硬件工作原理的简单介绍该实验使用的8位数码管显示电路和4×4矩阵键盘电路。现将这二部分的电路工作原理进行简单的介绍:1、4×4矩阵键盘的工作原理矩阵键盘又称为行列式键盘它是用4条I/O线作为行线4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。图1为矩阵键盘电路图行线接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、如果有键按下找出具体的按键值(顺序码)。三、演示程序的功能当你按下矩阵键盘中的任何一个键蜂鸣器响一声并在数码管上显示相应的键值。图4为ME300B开发系统的实际演示图片。图4ME300B开发系统显示键值“E”编程的具体细节请参阅ME300B光盘中的数码管显示键值演示程序。