44矩阵键盘的工作原理与编程
更新时间:2023-05-13 20:39:01 阅读量: 实用文档 文档下载
4×4矩阵键盘的工作原理与编程
ME300B单片机学习开发系统应用之三 ---4×4矩阵键盘的工作原理与编程
作者:山西太原 贵国庆
本文介绍如何在ME300B型51/AVR单片机学习开发系统上使用数码管显示4×4矩阵键盘的键值。
一、硬件工作原理的简单介绍
该实验使用ME300B上的8位数码管显示电路和4×4矩阵键盘电路。现将这二部分的电路工作原理进行简单的介绍:
1、4×4矩阵键盘的工作原理
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
4×4矩阵键盘的工作原理与编程
所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
在ME300B单片机开发系统中使用数码管来显示信息时,要将JP2的2、3端短接。见图3
二、演示程序的编程方法
1、4×4矩阵键盘的编程方法:
1.1、先读取键盘的状态,得到按键的特征编码。
先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。
举例说明如何得到按键的特征编码:
假设“1”键被按下,找其按键的特征编码。
从P1口的高四位输出低电平,即P1.4-P1.7为输出口。低四位输出高电平,即P1.0-P1.3为输入口。读P1口的低四位状态为“ 1101”,其值为“0DH”。
再从P1口的高四位输出高电平,即P1.4-P1.7为输入口。低四位输出低电平,即P10-P13为输出口,读P1口的高四位状态为“1110”,其值为“E0H”。
将两次读出的P0口状态值进行逻辑或运算就得到其按键的特征编码为“EDH”。 用同样的方法可以得到其它15个按键的特征编码。
4×4矩阵键盘的工作原理与编程
1.2、根据按键的特征编码,查表得到按键的顺序编码。
将用上述方法得到的16个按键的特征编码按图2按键排列的顺序排成一张特征编码与顺序编码的对应关系表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它所在的位置就是对应的顺序编码。
1.3、矩阵键盘键值查找程序的具体编程 这个演示程序的主要功能有:
1、识别键盘有无按键按下,若无键按下返回。 2、如果有键按下,找出具体的按键值(顺序码)。
===================================================== 矩阵键盘键值查找程序 键值存入30H单元
=====================================================
KEY_SCAN: ;识别键盘有无键按下子程序
MOV P1,#0F0H ;置列线为0,行线为1
MOV A,P1 ;读P1口 ANL A,#0F0H ;取出高四位 MOV B,A ;暂存到B
MOV P1,#0FH ;置列线为1,行线为0 MOV A,P1 ;读P1口 ANL A,#0FH ;取出低四位
ORL A,B ;高四位与低四位逻辑或运算重新组合 CJNE A,#0FFH,KEY_IN1 ;0FFH为无按键按下 RET
KEY_IN1: ;识别具体按键值子程序
MOV B,A ;将按键的特征编码暂存于B
MOV DPTR,#KEYTABLE
MOV R3,#0FFH KEY_IN2:
INC R3 ;顺序码加1
MOV A,R3
MOVC A,@A+DPTR ;查表
CJNE A,B,KEY_IN3 ;比较,若相同则找到按键的特征编码。 MOV A,R3 ;找到特征编码后,取顺序码 MOV 30H,A ;存入30H单元 RET KEY_IN3:
CJNE A,#00H,KEY_IN2 ;末完,继续查
RET ;00H为结束码 ; 特征编码与顺序编码的对应关系表 KEY_TABLE:
4×4矩阵键盘的工作原理与编程
DB 0EEH,0EDH,0EBH,0E7H,0DEH ;0,1,2,3,4, 顺序码 DB 0DDH,0DBH,0D7H,0BEH,0BDH ;5,6,7,8,9, 顺序码 DB 0BBH,0B7H,07EH,07DH,07BH, 077H ;A,B,C,D,E,F 顺序码 DB 00H ; 结束码
2、8位数码管显示程序的编程方法
根据要使用的数码管的具体位置来确定扫描初值和扫描方向。 根据使用数码管的个数来确定扫描的位数。 准备好要显示的数据,放入相应的显示单元中。
=========================================================== 8位数码管显示子程序
;从右至左依次点亮8个数码管
=========================================================== DISPLAY:
MOV R1,#07FH ;扫描初值送入R1 MOV R2,#08H ;扫描位数送入R2 MOV R0,#30H ;开始填充显示单元
DISP1: MOV A,@R0 ;显示内容送入A MOV DPTR,#TABLE ;获得表头
MOVC A,@A+DPTR ;查表获得显示数据 MOV P0,A ;显示单元数据 MOV P2,R1 ;开始显示当前位 MOV A,R1 ;准备显示下一位 RR A MOV R1,A
INC R0 ;取下一个单元地址 LCALL DELAY2MS ;延时 2 MS
DJNZ R2,DISP1 ;重复显示下一个 RET ;显示完成,返回
因键值显示只需用一位数码管,可将上面的显示程序进行优化,得到下面的显示程序。 ==================================================== 键值显示子程序
==================================================== KEY_PLAER:
MOV A,30H ;键值数据送入A MOV DPTR,#TABLE ;取段码表地址
MOVC A,@A+DPTR ;查显示数据对应段码 MOV P0,A ;段码送入P0口 CLR P2.7 ;第一个数码管显示 CALL DELAY2MS SETB P2.7
4×4矩阵键盘的工作原理与编程
RET TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH ;0-F
三、演示程序的功能
当你按下矩阵键盘中的任何一个键,蜂鸣器响一声,并在数码管上显示相应的键值。图4为ME300B
开发系统的实际演示图片。
图4 ME300B开发系统显示键值“E”
编程的具体细节请参阅ME300B光盘中的数码管显示键值演示程序。
4×4矩阵键盘的工作原理与编程
正在阅读:
44矩阵键盘的工作原理与编程05-13
图形的初步认识学案04-15
noip2010提高组初赛试题及答案03-01
《寒号鸟》教学反思03-23
公文标题中标点符号的处理技巧09-06
优秀机电专业自荐书12-14
必修二第二章第三节城市化06-03
华为分包商上岗考试ITR答案09-02
住院患者健康教育制度12-28
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 矩阵
- 键盘
- 原理
- 编程
- 工作
- 青协宣传部干事培训-具体的目标和对应的考试方案
- 第十章_博弈论的理论与方法 (1)
- 2011.10.13 华工专利信息基础 张弛
- 新人教版必修2高一政治为人民服务的政府单元测试(附解析)
- 施工组织设计(高杆灯)
- 试论应用语言学与外语教学论
- 2012届高三语文总复习计划
- 2000年全国英语专业四级考试试题
- ASME压力容器常用词汇中英文对照
- 干煸辣肉丝项目可行性研究报告
- 刍议作业成本法在中小企业成本控制中的应用
- 八年级科学电和磁综合测试
- 英美诗歌鉴赏方法浅谈
- 中外知识产权大会简介
- 治疗颈椎病最有效的方法
- 网络文献下载服务网站系统需求分析
- 黑龙江事业单位:申论答题技巧—答题应注意细节
- Friction analysis based on integral quadratic constraints
- YLWI-07-05-03-01物料安全库存表06
- 国际产业转移与我国的对策