- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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开发系统的实际演示图片。
图4 ME300B开发系统显示键值“E”
编程的具体细节请参阅ME300B光盘中的数码管显示键值演示程序。
文档评论(0)