4×4矩阵键盘的工作原理与编程_第1页
4×4矩阵键盘的工作原理与编程_第2页
4×4矩阵键盘的工作原理与编程_第3页
4×4矩阵键盘的工作原理与编程_第4页
4×4矩阵键盘的工作原理与编程_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ME300弹片机学习开发系统应用之三-4X4矩阵键盘的工作原理与编程作者:山西太原贵国庆本文介绍如何在ME300ES151/AVR单片机学习开发系统上使用数码管显示4X4矩阵键盘的键值。一、硬件工作原理的简单介绍该实验使用ME300吐白8位数码管显示电路和4X4矩阵键盘电路。现将这二部分的电路工作原理进行简单的介绍:1、4X4矩阵键盘的工作原理矩阵键盘又称为行列式键盘,它是用4条I/O线作为彳亍线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4X4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。图1为ME300E巨阵键盘电

2、路图,行线接P1.4-P1.7,列线接P1.0-P1.3oK4014589CDK1K2独立键盘K1P14P14P15P16P17图1/c矩阵键盘电路K2K3P15,P164(5)6)(a)(C;(D)E)IF)P17VCCK5RESET图2按键排列2、数码管动态扫描显示电路在ME300B%发系统中,dSO7动态扫描显示S2它将P00P01P02P03P04P05P06P07并整乡'1确Q2yQ;飞04,xe先生遛更画形,称为AT89S51如P0七P0监制字舞辅S2327来实组数码管药心、f称为云dpDIG1DIG2DIG3DIG4P20P21P22P23P24P25P26P27VCCA

3、T2148个段线相应地并出。典客4拶制烟粮由3,可来DIG1DIG2bf免信E制3-1c-eJIgbDIG3DIG4fgbfgb形代:码,JP21-2LCDp2-3DSY由于各位数码管的段线务或,段宿白J输出4各位数灌管来说tfe相同白9。因此,8国一时城如果各位数码管的位选线都处于选通初态的话,与圭位RI*的字符,就送翁|“,而茸它盖短的位选线处|于关13-4LEDQ217Q22地方W选通的那位I显示出字符,麻SSMRII。8位数码管称显示相同的字符J若要各位数码管能够显示匕出段线上输Q23即在时亥|Q25Q24里疲安心当同Q26让某孑的的其它各位则是熄灭的,如此循环下方,就可核、使各便要Q

4、27处于状态,if刻,百业小出3鹭耳里,等符是在不同时刻出现的.而且同一时刻.只相一位显7其它各位熄灭,管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人但由于数码一眼的视觉印象就会是连续稳图3数码管电路数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。在ME300即片机开发系

5、统中使用数码管来显示信息时,要将JP2的2、3端短接。见图3二、演示程序的编程方法1、4X4矩阵键盘的编程方法:1.1、先读取键盘的状态,得到按键的特征编码。先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。举例说明如何得到按键的特征编码:假设“1”键被按下,找其按键的特征编码。从P1口的高四位输出低电平,即P1.4-P1.7为输出口。低四位输出高电平,即P1.0P1.3为输入口。读P1口的低四位状

6、态为“1101”,其值为"0DH'。再从P1口的高四位输出高电平,即P1.4-P1.7为输入口。低四位输出低电平,即P10P13为输出口,读P1口的高四位状态为“1110”,其值为“E0H'。将两次读出的P0口状态值进行逻辑或运算就得到其按键的特征编码为“EDHL用同样的方法可以得到其它15个按键的特征编码。1.2、 根据按键的特征编码,查表得到按键的顺序编码。将用上述方法得到的16个按键的特征编码按图2按键排列的顺序排成一张特征编码与顺序编码的对应关系表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它所在的位置就是对应的顺序编码。1.3、 矩阵键盘键值查找

7、程序的具体编程这个演示程序的主要功能有:1、识别键盘有无按键按下,若无键按下返回。2、如果有键按下,找出具体的按键值(顺序码)。矩阵键盘键值查找程序键值存入30H单元KEY_SCAN;MOVP1,#0F0H;MOVA,P1;ANLA,#0F0H;MOVB,A;MOVP1,#0FH;MOVA,P1;ANLA,#0FH;ORLA,B;CJNEA,#0FFH,KEY_IN1;0FFHRET识别键盘有无键按下子程序置列线为0,行线为1读P1口取出高四位暂存到B置列线为1,行线为0读P1口取出低四位高四位与低四位逻辑或运算重新组合为无按键按下KEY_IN1:;MOVB,A;MOVDPTR,#KEYTAB

8、LEMOVR3,#0FFHKEY_IN2:INCR3;MOVA,R3MOVCA,A+DPTR;CJNEA,B,KEY_IN3;MOVA,R3;MOV30H,A;RETKEY_IN3:CJNEA,#00H,KEY_IN2RET;00H;特征编码与顺序编码的对应关系表KEY_TABLE:识别具体按键值子程序将按键的特征编码暂存于B顺序码加1查表比较,若相同则找到按键的特征编码。找到特征编码后,取顺序码存入30H单元末完,继续查为结束码DB0EEH,0EDH,0EBH,0E7H,0DEH;0,1,2,3,4,顺序码DB0DDH,0DBH,0D7H,0BEH,0BDH;5,6,7,8,9,顺序码DB0

9、BBH,0B7H,07EH,07DH,07BH,077H;A,B,C,D,E,F顺序码DB00H;结束码2、8位数码管显示程序的编程方法根据要使用的数码管的具体位置来确定扫描初值和扫描方向。根据使用数码管的个数来确定扫描的位数。准备好要显示的数据,放入相应的显示单元中。8位数码管显示子程序;从右至左依次点亮8个数码管DISPLAY:MOVR1,#07FH扫描初值送入R1MOVR2,#08H扫描位数送入R2MOVR0,#30H;开始填充显示单元DISP1:MOVA,R0;MOVDPTR,#TABLE;MOVCA,A+DPTRMOVP0,A;MOVP2,R1;MOVA,R1;RRAMOVR1,AI

10、NCR0;LCALLDELAY2MS;DJNZR2,DISP1;RET;显示内容送入A获得表头查表获得显示数据显示单元数据开始显示当前位准备显示下一位取下一个单元地址延时2MS重复显示下一个显不'完成,返回因键值显示只需用一位数码管,可将上面的显示程序进行优化,得到下面的显示程序。键值显示子程序KEY_PLAERMOVA,30H;MOVDPTR,#TABLEMOVCA,A+DPTRMOVP0,A;CLRP2.7;CALLDELAY2MSSETBP2.7键值数据送入A取段码表地址查显示数据对应段码段码送入P0口第一个数码管显示RETTABLEDB0c0H,0F9H,0A4H,0B0H,99H,92H,82H,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论