




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机学习领域情景6应用矩阵键盘请分组单步执行数码控制程序从每组中请一个同学回答数码控制程序中所用指令的作用通过程序执行过程进一步讲解子程序调用和堆栈的概念重点堆栈的操作过程单片机与键盘接口单片机与键盘接口分类:一、独立式按键
独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。单片机与键盘接口二、矩阵式按键
通常,矩阵式键盘的列线由单片机输出口控制,行线连接单片机的输入口。单片机与键盘接口按键的去抖机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来,抖动时间一般为510ms,在触点抖动期间检测按键的通与断状态,可能导致判断出错。键盘输入中要解决的问题:
一、按键的确认:
即判断按键是否闭合。通过检测电平的高低状态,就能确认是否有键按下。
二、按键抖动的消除
按键较多时,常采用软件方法消除抖动。即在第一次检测到有按键被按下时,执行一段延时12-15ms的子程序后,再确认该键电平是否仍保持闭合状态电平,如保持为闭合状态电平就可确认真正有键按下,从而消除抖动的影响。单片机与键盘接口按键的去抖
(a)检测按键(b)释放按键按键去抖流程图按键的识别:识别按键的方法很多,最常见的方法是扫描法。由列线送入全“0”扫描字、行线读入行线状态来判断的。其方法是:给列线的所有I/O线均置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入不全为1。键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态。其方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下之键不在此列。如果不全为1,则所按下的键必在此列。而且是在与电平为“0”的行线相交点上的那个键。程序设计流程图如下:列线输出0,行线写1输入行线数据行线数据数据不全为“1”延时去抖列线输出0,行线写1输入行线数据行线数据数据不全为“1”转键处理程序判断是否有键按下程序设置列扫描次数首列号送R6DPTR指向列扫描码表查表求列扫描码输出列扫描码输入行线状态0行有键按下1行有键按下2行有键按下3行有键按下计算0行键值计算1行键值计算2行键值计算3行键值列号加14列扫描结束否键值存于A结束键处理程序NOYESYESNONONONONONOYESYESYESYESYES参考程序Org0000hMain:movwdtcn,#0deh;关看门狗movwdtcn,#0adhmovprt3cf,#0f0h;列线推挽输出方式
movxbr2,#40h;交叉开关允许Key:lcallpressyn;判断是否有键按下lcallwhich;判断键号ljmpkeyPressyn:movP3,#0FH;使列线输出0,行线写1movA,P3;输入行线上的数据
cjneA,#0fh,press;不相等,有键按下
sjmppressyn;没键按下,重新查询Press:lcalldelay;有键按下,延时去抖
movP3,#0fh;再次使列线输出0行线写1movA,P3;输入行线上的数据
cjneA,#0FH,presst;确有键按下转键处理
sjmppressynPresst:retWhich:movR7,#04H;设置列扫描次数
movR6,#00H;首列号0送R6movDPTR,#TABS;指向列扫描码表Getscode:movA,R6movcA,@A+DPTR;查表求列扫描码
movP3,A;输出列扫描码第一列输出0movA,P3;输入行线状态
jnb0E0,L0;0行有按下,转L0jnb0E1,L1;1行有按下,转L1jnb0E2,L2;2行有按下,转L2jnb0E3,L0;3行有按下,转L3incR6;本列无按下,列号加1djnzr7,getscode;未扫描完所有列,继续
movA,#0FFH;所有列扫描完,没有按下返回一个无效号
retL0:movA,#00HsjmpgetknL1:movA,#01HsjmpgetknL2:movA,#02HsjmpgetknL3:movA,#03HGetkn:rlArlAaddA,R6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗健康领域中的教育机器人技术探讨
- 智慧办公空间设计与舒适度研究
- 教育游戏化的设计原则与技巧
- 铁路劳动安全培训课件
- 医疗健康领域的教育政策与实效性教学策略
- 教育大数据库在智慧校园建设中的应用研究
- 技术驱动的教育变革工具选择与操作培训
- 教育领域的技术革新大五人格的引领作用
- 探索教育心理学的奥秘激发个人潜能
- 智慧城市公共服务平台的创新设计与应用
- 明渠均匀流计算公式
- 林规发防护林造林工程投资估算指标
- 四年级上册 口算题 1000题
- 九上道法知识点梳理(全册)-九年级道德与法治上册必备知识梳理总结(部编版)
- GB/T 23821-2022机械安全防止上下肢触及危险区的安全距离
- YB/T 5202.1-2003不定形耐火材料试样制备方法第1部分:耐火浇注料
- GB/T 700-2006碳素结构钢
- GB/T 41419-2022数字化试衣虚拟人体用术语和定义
- 《病毒学》(研究生)全册配套完整课件
- 第十七章其他熔化焊接与热切割作业课件
- 腧穴总论 2特定穴课件
评论
0/150
提交评论