欢迎来到天天文库
浏览记录
ID:1337648
大小:171.50 KB
页数:4页
时间:2017-11-10
《矩阵键盘值显示实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机与信息技术学院综合性(设计性)实验报告专业:通信工程年级/班级:08级2010—2011学年第一学期课程名称单片机原理及接口技术指导教师祝天龙本组成员学号姓名杜芳芳0808224023实验地点计科楼111实验时间2010年11月6日8:00-11:50项目名称矩阵键盘值显示实验实验类型综合性一、实验目的1.理解键盘扫描和去抖动的原理;2.掌握键盘扫描实现方法;3.设计一个矩阵键盘,编程实现按下某按键,数码管显示相应键值的功能。二、实验仪器或设备装WAVE软件、Proteus软件的微机一台三、总体设计(设计原理、设计方案及流程等)(一
2、)设计原理:在行列矩阵式非编码键盘的单片机系统中,键盘处理程序首先执行行有无键按下的程序段,当确认有键按下后,下一步就要识别哪一个按键被按下。对键的识别用逐行(或列)扫描查询法。在进行行扫描时,首先判别键盘中有无键按下,由单片机I/O口向键盘输出全扫描字,然后读入列线状态来判断。方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入累加器A中。如果有键按下,总会有一根列线电平被拉至低电平,从而使列输入不全为1。判断键盘中哪一个键被按下是通过将行线逐行置低电平后,检查列输入状体来实现的。方法是:依次给行线送低电平,
3、然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个按键。在扫描过程中,当发现某行有键按下,也就是输入的列线中有一位为0,便可以闭合按键所在的位置。根据行线和列线的位置就可以知道是哪一个键按下。按键的位置码并不等于按键实际定义的键值,因此还需要进行转换。这可以借助查表法来完成。然后根据按键的编号来执行相应的功能的子程序,来完成按键键帽上所定义的实际按键功能。程序在行扫描时,先将行计数器、列计数器置0,然后再设置行扫描初值FEH。程序流程图中FEH的低4位
4、EH是行扫描码,高4位FH是将P2.4-P2.7高4位置1为输入方式,在输入扫描字后,立即读出列值,检测是否有列值为低电平。若无键按下,则将行计数器加1,并将行扫描字左移一位,变为FDH。这样使第一行为低电平,其它为高电平;然后依次逐行扫描,直到行计数器的值大于或等于4时,表明一次行扫描结束。河南师范大学计算机与信息技术学院在此过程中若检测到某一列为低电平,则将列值保存;然后再进行行列值判别,得到列的位置,存入列计数器转入键位置码的译码程序。上述行扫描过程结束后得到的行号存放在R0中,列号存放在R2中。(二)设计方案及流程图1.依次给行线
5、送低电平,然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个按键。在扫描过程中,当发现某行有键按下,也就是输入的列线中有一位为0,便可以闭合按键所在的位置。根据行线图1:矩阵键盘接口图和列线的位置就可以知道是哪一个键按下。2.根据按下的键可以得到相应的键值,键值的获得通常采用计数译码法。键盘的原理图如下,可以根据矩阵键盘的特点得到:键值=行首键号+列号3.列出共阴/阳极7段LED显示字型编码表4.将所得到的键值,借助查表的方法得到其相应的LED显示,将
6、16进制转换成10进制显示。5.按照要求在伟福中编译程序并运行6.将程序烤入89C51中,运行即可图2流程图一、实验步骤(包括主要步骤、代码分析等)(一)主要步骤1.打开WAVE6000集成调试软件2.单击“文件”——“新建文件”,在文件中按照流程图写入程序,并给该程序的文件命名为“JUZHENJIANPAN.ASM”3.单击“项目”——“编译”4.打开Proteus软件,在ISISProfessional环境中按照电路原理图连接电路河南师范大学计算机与信息技术学院5.双击AT89C51芯片,在ProgramFile中添加JUZHENJI
7、ANPAN的.HEX文件,单击OK即可6.点下开始按钮,按下键盘的按键,在数码管上即显示出相应的数字(二)主要代码分析MOVP2,#0F0H;给列送高电平MOVA,P2;取P2口的值ANLA,#0F0H;屏蔽行线的影响MOVP2,#0FH;给行送高电平JBACC.0,Q2;判断是不是第0行,不是则转MOVR4,#00H;如果是,则将0送给R4AJMPJIA;调用加法程序,取得键盘的一、结果分析与总结通过此次实验,我了解了键盘扫描和去抖动的原理,掌握键盘扫描实现方法,并设计一个矩阵键盘,编程实现按下某按键,数码管显示相应键值的功能。六、附录
8、(一)电路图(二)源程序ORG0000HAJMPMAINORG0030HMAIN:MOVP2,#0F0H;给列送高电平LCALLDelay;延时,使电路稳定MOVA,P2;取P2口的值ANLA
此文档下载收益归作者所有