实验七,矩阵式键盘输入实验

实验七,矩阵式键盘输入实验

ID:15121948

大小:82.00 KB

页数:7页

时间:2018-08-01

实验七,矩阵式键盘输入实验_第1页
实验七,矩阵式键盘输入实验_第2页
实验七,矩阵式键盘输入实验_第3页
实验七,矩阵式键盘输入实验_第4页
实验七,矩阵式键盘输入实验_第5页
资源描述:

《实验七,矩阵式键盘输入实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验七、矩阵式键盘输入实验一、实验目的1.学习矩列式键盘工作原理2.学习矩列式接口的电路设计和程序设计二、实验设备1.仿真器2.单片机最小系统实验教学模块3.矩阵式键盘实验模块4.动态扫描数码管显示模块三、实验要求要求实现:在矩阵式键盘中的某个键被按下时,8位LED动态显示器上最低位显示该键对应的字符,以前的字符向高位推进1位(即类似于计算器)。注意,在进行该项实验之前,请先进行实验二“数码管动态扫描显示实验”。四、实验原理矩阵式由行线和列线组成,按键位于行、列的交叉点上。如图所示,一个4*4的行、列结构

2、可以构成一个由16个按键的键盘。很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的I/0口。图7-1矩阵式键盘结构4.1矩阵式键盘工作原理按键设置在行、列交节点上,行、列分别连接到按键开关的两端。行线通过上拉电阻接到VCC上。平时无按键动作时,行线处于低电平状态,而当有按键按下时,列线电平为低,行线电平为高。这一点是识别矩阵式键盘是否被按下的关键所在。因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。4.2按键识别方法下面以图7-2中4

3、号键被按下为例,来说明此键是如何被识别出来的。前已述及,键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线电平在无键按下时处于高电平状态。如果让所有列线处于高电平那么键按下与否不会引起行线电平的状态变化,始终是低电平,所以,让所有列线处于高电平是没法识别出按键的。现在反过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为高电平,根据此变化,便能判定该行一定有键被按下。但我们还不能确定是这一行的哪个键被按下。所以,为了进一步判定到底是哪—列的键被按下,可在某一时刻只让一条列线处

4、于低电平,而其余所有列线处于高电平。当第1列为低电平,其余各列为高电平时,因为是键4被按下,所以第1行仍处于低电平状态;当第2列为低电平,其余各列为高电平时,同样我们会发现第1行仍处于低电平状态,直到让第4列为低电平,其余各列为高电平时,因为是3号键被按下,所以第1行的高电平转换到第4列所处的高电平,据此,我们确信第1行第4列交叉点处的按键即3号键被按下。根据上面的分析,很容易得出矩阵键盘按键的识别方法,此方法分两步进行。第一步,识别键盘有无健被按下;第二步,如果有键被按下,识别出具体的按键。分述如下:识

5、别键盘有无键被按下的方法是:让所有列线均为低电平,检查各行线电平是否有高电平,如果有,则说明有键被按下,如果没有,则说明无键被按下(实际编程时应考虑按键抖动的影响,通常总是采用软件延时的方法进行消抖处理)。识别具体按键的方法是(亦称之为扫描法):逐列置零电平,并检查各行线电平的变化,如果某行电平由低电平变为高电平,则可确定此行此列交叉点处按键被按下。图7-2实验硬件连线图五、实验步骤1、按照图7-2的电路图,用导线将矩阵式键盘、数码管动态扫描显示模块和单片机的最小系统实验模块连接正确。2、示例程序如下:K

6、eyvalueEQU40H;读到键盘的值暂放的地址FirstptrEQU30h;显示缓冲区地址低位LowptrEQU36HHighptrEQU37H;****************;主程序;****************ORG0000HWAIT:LJMPMAINNOPNOPLJMPWAIT;先清空30-3f之间的16个暂存区MAIN:MOVR1,#FirstptrMOVR0,#08HLOOP:MOVA,#10H;指向表格的指针,现在为0FFH即无显示MOV@R1,AINCR1DJNZR0,LOOPMO

7、VP2,#00H;关闭所有的显示LOOP1:MOVR1,#04H;列数为4。MOVR2,#0EFH;准备扫描,P1口高4位为列线KEY:MOVP1,#0FFH;读出口状态之前,先向P1口写1MOVA,R2;先扫描第一列MOVR3,A;列信息MOVP1,A;低电平送P1口MOVA,P1;扫描结果送回ACCMOVKeyvalue,A;存储扫描结果供去抖后判断ORLA,#0F0H;屏蔽高四位CJNEA,#0F0H,KEY_ON;有键按下则转到KEY_ONMOVA,R2;该行没有键按下,继续扫描下一列RLAMOV

8、R2,ALCALLDISPDJNZR1,KEY;四列有无扫描完成SJMPLOOP1;等待释放子程序KEY_ON:LCALLDL10MS;去抖延时MOVP1,#0FFHMOVP1,R3MOVA,P1;测试键是否释放CJNEA,KEYVALUE,K0LCALLDISPJMPKEY_ON;判断各行是否有低电平;键处理子程序K0:MOVA,KeyvalueCJNEA,#0E1H,K1;K0未按下,转移K1LCALLMOVDISPMOV

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

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

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