实验4矩阵键盘的使用

实验4矩阵键盘的使用

ID:22280995

大小:206.02 KB

页数:8页

时间:2018-10-28

实验4矩阵键盘的使用_第1页
实验4矩阵键盘的使用_第2页
实验4矩阵键盘的使用_第3页
实验4矩阵键盘的使用_第4页
实验4矩阵键盘的使用_第5页
资源描述:

《实验4矩阵键盘的使用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验4矩阵键盘的使用一、实验0的:莩握矩阵键盘的使用及键盘扫描程序的没计方法。二、实验设备:ZY15M⑶12BD型综合单片机实验箱一台、具有一个RS232串行口并安装KeilC51的计算机一台。三、实验原理及环境:实验箱上有一个16键的矩阵键盘,分为4彳j:X4列。4行分别连接到一片8255(与8段LK)显示器的段驱动和位驱动共用)的PCO〜PC3,4列分別连接到8255的PC4〜PC7。8255的A口、B口、C口、控制口的地址分别为片外RAM的4000H、400111、400211、400311。00H01H02H031104H05H06H

2、07H08H09H0AH0BH0CII0DII0EH0EII第4列(PC7)第3列(PC6)第2列(PC5)第1列(PC4)PC3PC2PC1PC0第4行笫3行第2行第1行00H01H02H03H列驱动阁4-1键盘布置及键位选择列驱动码使某一列为低电平而其它列为高电平,再读取行输入,若该列有键按下则相应的位便是低电平。每个键均安排一个键值,如图4-1所示。四、实验内容.•1.编写一个键盘扫描子程序(在主程序屮已对接口芯片8255做好必要的初始化)。这个程序对键盘作一次扫描,若无键按下,返回时累加器A中为FFH,若有键按下,返回时A中为该键键值

3、,键盘扫描了程序流程图如图4-2所示。A-#OFFHiI调用査键值子程序返回jf一、返回图4-2键盘扫描子程序流程图其屮,查键值子程序可以自行编写,也可以使用下面这个查键值子程序,这个了程序的参数如下:AU:行列关键值码放在累加器A中,高4位是列驱动码(被扫描列的对应位为0,其余位均为1),低4位是行状态(按下键的对应位为0,其余位均为1)。出口:键码放在A中带出。占用:Rl、A、PSW、DPTR。程序清单如下:;查键值子程序,起始地址为KEY20KEY20:PUSHACC;暂存关键值MOVR1,#OOII;杳键值Q变量清0KEY21:JNB

4、ACC.4,KEY22;计算列数RRAINCR1SJMPKRY21KEY22:MOVA,R1;按每列4个键计算MOVB,#4MULABMOVRl,APOPACC;恢复关键值KEY23:JNBACC.0,KEY24;计算行数RRAINCR1SJMPKEY23KRY24:MOVDPTR,ttKEYTAB;读取键值MOVA,R1MOVCA,@A+DPTRRETKEYTAB:DBOFH,OBH,07H,03HDBORH,OAH,06H,02HDBODH,09H,05H,01HDBOCH,OSH,04H,OOH1.键盘扫描子程序自身无法运行,为了运行这

5、个子程序,另编写以下程序:ORG0000HMOVSP,#6FHMOVRO,#5;延时0.5秒L00P1:MOVRl,#200L00P2:MOVR2,#250DJNZR2,$DJNZRl,L00P2DJNZRO,L00P1MOVDPTR,#4003H;8255初始化MOVA,#10000001B;A口、B口方式0输出,C口高4位输出,低4位输入MOVX@DPTR,AL00P3:LCALLDTSP;调用姑示子程序DIS,设姑示子程序入口为DISPLCALLKEY:调用键盘扫描子程序,设键盘扫描子程序入口为KEYCJNEA,#OFFH,L00P4;

6、如果有键按下转SJMPL00P3L00P4:MOV2011,2111MOV21H,22HMOV22H,23HMOV2311,24HMOV24H,25HMOV25H,ASJMPLOOP3其中显示子程序使用实验3中的显示子程序。程序运行后,每按-•键便从显示器的右端移入一个对应的数。五、实验步骤:1.将P0.0〜P0.7与JDO〜JD7连接起来。开关KC倒向上方。2.建立一个工程,将在预习屮做好的实验内容1和2的程序以及实验5屮的显示子程序拷贝到一个的*.asm文件加入。3.编译£;与单片机硬件连接,运行。4.按T键盘上的各键,相应的数字会出现在

7、LED显示器上。©按键挪-pVi$ion4□JrJJAl卜1*

8、产

9、淳漳//i/Ai

10、0廑由1<941@3多3■»--41X

11、1背

12、Target1-A蠱色1BialTarget1曰cSSourceGroui[?

13、STARTUP.E圍资as考j.chim#include02//--定义使用的10口--//W#defineGPIO_DIGPOos#defineGPIO_KEYPlG607//~定义全局变量一//unsignedcharcodeDIG_C0DEL17,{090x3f,0x06,0x5b,0x4f,0x66,0x6d

14、,0x7d,0x07,100x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};”//0:1、2、3、4、5、6、7、8、9、A、b、C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。