首页 > 编程知识 正文

精髓与设计原理第八版pdf(矩阵键盘简易计算机设计报告,矩阵键盘实验总结.docx)

时间:2023-05-05 16:12:23 阅读:122729 作者:1432

矩阵键盘实验总结

矩阵键盘实验报告学生:学号: XX专业班:自动化1202励志奇果:杨东勇XX年12月1日,实验目的1 .学习矩阵键盘的工作原理; 2 .学习矩阵接口的电路设计和编程。 二、实验设备统一电子开发平台。 三、实验要求实现:矩阵键盘中某个键被按下时,8位LED动态显示屏底部显示与该键对应的字符。 在进行这个实验之前,请进行实验3“计时器实验”。 四、实验原理1 .工作原理:矩阵式由行线和列线组成,按钮位于行、列交点。 如图所示,4*4行、列结构能够构成由16个键构成的键盘。 显然,在按钮数量较大的情况下,矩阵键盘比独立键盘节省了更大的I/0端口。 矩阵键盘工作原理键设置在行、列交叉节点,行、列分别连接按键开关两端。 行线通过下拉电阻与GND连接。 通常,如果没有击键,则行线处于低电平;如果有击键,则行线的级别状态由连接到该行线的列线的级别决定。 列线电平为低的行线电平为高,列线电平为高的行线电平为低。 这是识别矩阵键盘是否被按下的关键。 因此,各按钮相互影响,必须配合行、列的线的信号进行适当的处理,才能确定关闭按钮的位置。 键识别方法以下,以按下3号键时为例,说明如何识别该键。 如上所述,当按下键时,与此键连接的行线的级别由与此键连接的列线的级别决定,而行线的级别在未按下键时为高电平。 如果将所有列线设为高电平,则行线的电平状态不会因是否按下键而变化,而是始终为高电平,因此即使将所有列线设为高电平,也无法识别键。 相反,若将所有的列线设为低电平,则很明显,有按下的键的行的电平也成为低电平,根据该变化,能够判定为在该行上一定按下了键。 但是,还不知道这一行的哪个键被按下了。 因此,为了进一步判定按下了哪个列的键,能够在某个时刻仅使一个列线成为低电平,使所有剩馀的列线成为高电平。 在第1列为低电平、剩下各列为高电平时,由于按下键3,所以第1行仍然为高电平; 第二列为低电平,其余各列为高电平时,同样第一行在将第四列设为低电平之前保持高电平,其余各列为高电平时,由于按下了第三键,所以第一行的高电平转移到位于第四列的低电平, 根据上述分析,矩阵键盘按钮的识别方法很容易得到,该方法分为两个阶段进行。 第一步是识别键盘是否被按下。 在步骤2中,如果按下了键,则识别具体的键。 识别键是否被按下的方法是,将所有列线设为低电平,检查各行线的电平是否为低电平,如果有则表示键被按下,否则表示键未被按下(实际编程中考虑了键抖动的影响) 具体的键识别方法是,在每列配置零级,检查各行的线级的变化,如果某行级从高级变化为低级,则可以确认在该行的该列的交叉点按下了键。 2 .原理图五、程序流程图的程序流程图如图1所示。 图1程序流程图6、实验思维问题1 .实验中遇到的问题:键盘按下与想要显示的不一样的东西,结果显示是程序错误。 稍后对照书,回来就对了。 几个小错误也一一查明解决了。 中断服务子程序后,需要RETI中断恢复指令。

附件:实验源代码: *************ASM汇编实验* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。 工程; 石英振子: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *./# include ' reg _ '/* * * * * * * * * * *。 T0初始值,20msMOVTL0,#00HMOVIE,#82H; 打开中断SETBTR0; 定时开关MOV50H、#010H; 按键保存数据MOV51H,#010H; 按键保存数据MOV52H,#010H; 按键保存数据MOV53H,#010H; 按键保存数据MOV54H,#010H; 按键保存数据MOV55H,#010H; 按键保存数据MOV56H,#010H; 按键保存数据MOV57H,#010H; 按键保存数据MOVR7、#00H; 初始化扫描次数MOV30H,#00H; 清除键扫描允许标志LOOP_SCAN:MOVA,30H; 判断是否扫描键CJNEA、#01

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。