- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机控制矩阵键盘扫描程序集
单片机控制的矩阵键盘扫描程序集
各种各样的矩阵键盘扫描程序集
矩阵键盘的扫描对初学者来说是不可避免的,然而也相对来说有点难度.
鉴于此,我整理了一下,我所遇到的矩阵键盘扫描程序集,将相继贴上来,供大家参考!
说明:这些大多都是网上转贴来的,其所有权归原作者!
谢谢合作.
最简单矩阵键盘扫描程序
key:MOV p0,;上四位和下四位分别为行和列,所以送出高
低电压检查有没有按键按下
jmp k10;跳到K10处开始扫描,这里可以改成其它条件转移指令来决
定本次扫描是否要继续,例如减1为0转移或者位为1或0才转移,这主
要用来增加功能,确认上一按键功能是否完成?是否相当于经过了延
时?是否要封锁键盘?
goend:jmp kend;如果上面判断本次不执行键盘扫描程序,则立即转
到程序尾部,不要浪费CPU的时间
k10:jb p0.0,k20;扫描正式开始,先检查列1四个键是否有键按下,
如果没有,则跳到K20检查列2
k11:MOV p0,;列1有键按下时,P0.0变低,到底是那一个键
按下?现在分别输出各行低电平
jb p0.0,k12;该行的键不按下时,p0.0为高电平,跳到到K12,检查其
它的行
MOV r1,#1;如果正好是这行的键按下,将寄存器R0写下1,表示1号键
按下了
k12:MOV p0,
jb p0.0,k13
MOV r1,#2;如果正好是这行的键按下,将寄存器R0写下2,表示2号键
按下了
k13:MOV p0,
jb p0.0,k14
MOV r1,#3;如果正好是这行的键按下,将寄存器R0写下3,表示3号键
按下了
k14:MOV p0,
jb p0.0,kend;如果现在四个键都没有按下,可能按键松开或干扰,
退出扫描(以后相同)
MOV r1,#4如果正好是这行的键按下,将寄存器R0写下4,表示4号键
按下了
jmp kend;已经找到按下的键,跳到结尾吧
k20:jb p0.1,k30;列2检查为高电平再检查列3、4
k21:MOV p0,;列2有健按下时,P0.0会变低,到底是那一
行的键按下呢?分别输出行的低电平
jb p0.1,k22;该行的键不按下时p0.0为高电平,跳到到K22,检查另
外三行
MOV r1,#5;如果正好是这行的键按下,将寄存器R0写下5,表示5号键
按下了(以后相同,不再重复了)
k22:MOV p0,
jb p0.1,k23
MOV r1,#6
k23:MOV p0,
jb p0.1,k24
MOV r1,#7
k24:MOV p0,
jb p0.1,kend
MOV r1,#8
jmp kend;已经找到按下的键,跳到结尾吧(以后相同,不要重复了
)
k30:jb p0.2,k40
k31:MOV p0,
jb p0.2,k32
MOV r1,#9
k32:MOV p0,
jb p0.2,k33
MOV r1,#10
k33:MOV p0,
jb p0.2,k34
MOV r1,#11
k34:MOV p0,
jb p0.2,kend
MOV r1,#12
jmp kend
k40:jb p0.3,kend
k41:MOV p0,
jb p0.3,k42
MOV r1,#13
k42:MOV p0,
jb p0.3,k43
MOV r1,#14
k43:MOV p0,
jb p0.3,k44
MOV r1,#15
k44:MOV p0,
jb p0.3,kend
MOV r1,#16
kend: ret
行列扫描键盘可检测出双键按下
#include reg52.h
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
extern void delay(unsigned int x);
unsigned char Tab_key[]= //行列式键盘映射
{0x00, //无键按下
’’7’’,’’8’’,’’9
您可能关注的文档
最近下载
- 专题02 宇宙中的地球-5年(2020-2024)高考1年模拟地理真题分类汇编(北京专用)(解析版).docx VIP
- 城市绿地分类标准 .pdf VIP
- 营养指导员题库.docx VIP
- 专题01 地球和地图-5年(2020-2024)高考1年模拟地理真题分类汇编(北京专用)(解析版).docx VIP
- 四年级【语文(统编版)】古诗三首(第一课时)课件 .pptx
- 质量管理体系工具统计技术.pptx VIP
- 2022年茅台考试真题及答案——计算机专业.pdf
- 发电机短路试验中转子接地保护误动作分析及关键问题探讨.pdf VIP
- Silvaco傻瓜教程—张林—长安大学—2018.06.pdf
- SpringBoot学习笔记(实用完整版).pdf VIP
文档评论(0)