单片机控制的矩阵键盘扫描程序集

单片机控制的矩阵键盘扫描程序集

ID:41032158

大小:74.50 KB

页数:20页

时间:2019-08-14

单片机控制的矩阵键盘扫描程序集_第1页
单片机控制的矩阵键盘扫描程序集_第2页
单片机控制的矩阵键盘扫描程序集_第3页
单片机控制的矩阵键盘扫描程序集_第4页
单片机控制的矩阵键盘扫描程序集_第5页
资源描述:

《单片机控制的矩阵键盘扫描程序集》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、单片机控制的矩阵键盘扫描程序集各种各样的矩阵键盘扫描程序集矩阵键盘的扫描对初学者来说是不可避免的,然而也相对来说有点难度.鉴于此,我整理了一下,我所遇到的矩阵键盘扫描程序集,将相继贴上来,供大家参考!说明:这些大多都是网上转贴来的,其所有权归原作者!谢谢合作.最简单矩阵键盘扫描程序key:MOVp0,#00001111b;上四位和下四位分别为行和列,所以送出高低电压检查有没有按键按下jmpk10;跳到K10处开始扫描,这里可以改成其它条件转移指令来决定本次扫描是否要继续,例如减1为0转移或者位为1或0才转移,这主要用来增加功能,确认上一按键功能是否完成

2、?是否相当于经过了延时?是否要封锁键盘?goend:jmpkend;如果上面判断本次不执行键盘扫描程序,则立即转到程序尾部,不要浪费CPU的时间k10:jbp0.0,k20;扫描正式开始,先检查列1四个键是否有键按下,如果没有,则跳到K20检查列2k11:MOVp0,#11101111b;列1有键按下时,P0.0变低,到底是那一个键按下?现在分别输出各行低电平jbp0.0,k12;该行的键不按下时,p0.0为高电平,跳到到K12,检查其它的行MOVr1,#1;如果正好是这行的键按下,将寄存器R0写下1,表示1号键按下了k12:MOVp0,#110111

3、11bjbp0.0,k13MOVr1,#2;如果正好是这行的键按下,将寄存器R0写下2,表示2号键按下了k13:MOVp0,#10111111bjbp0.0,k14MOVr1,#3;如果正好是这行的键按下,将寄存器R0写下3,表示3号键按下了k14:MOVp0,#01111111bjbp0.0,kend;如果现在四个键都没有按下,可能按键松开或干扰,退出扫描(以后相同)MOVr1,#4如果正好是这行的键按下,将寄存器R0写下4,表示4号键按下了jmpkend;已经找到按下的键,跳到结尾吧k20:jbp0.1,k30;列2检查为高电平再检查列3、4k21

4、:MOVp0,#11101111b;列2有健按下时,P0.0会变低,到底是那一行的键按下呢?分别输出行的低电平jbp0.1,k22;该行的键不按下时p0.0为高电平,跳到到K22,检查另外三行MOVr1,#5;如果正好是这行的键按下,将寄存器R0写下5,表示5号键按下了(以后相同,不再重复了)k22:MOVp0,#11011111bjbp0.1,k23MOVr1,#6k23:MOVp0,#10111111bjbp0.1,k24MOVr1,#7k24:MOVp0,#01111111bjbp0.1,kendMOVr1,#8jmpkend;已经找到按下的键,

5、跳到结尾吧(以后相同,不要重复了)k30:jbp0.2,k40k31:MOVp0,#11101111bjbp0.2,k32MOVr1,#9k32:MOVp0,#11011111bjbp0.2,k33MOVr1,#10k33:MOVp0,#10111111bjbp0.2,k34MOVr1,#11k34:MOVp0,#01111111bjbp0.2,kendMOVr1,#12jmpkendk40:jbp0.3,kendk41:MOVp0,#11101111bjbp0.3,k42MOVr1,#13k42:MOVp0,#11011111bjbp0.3,k43M

6、OVr1,#14k43:MOVp0,#10111111bjbp0.3,k44MOVr1,#15k44:MOVp0,#01111111bjbp0.3,kendMOVr1,#16kend:ret行列扫描键盘可检测出双键按下#include#defineulongunsignedlong#defineuintunsignedint#defineucharunsignedcharexternvoiddelay(unsignedintx);unsignedcharTab_key[]=//行列式键盘映射{0x00,//无键按下’’7’’,’’8’

7、’,’’9’’,’’/’’,’’4’’,’’5’’,’’6’’,’’*’’,’’1’’,’’2’’,’’3’’,’’-’’,’’C’’,’’0’’,’’=’’,’’+’’,//下面为按’’C’’同时再按的键:’’7’’,’’8’’,’’9’’,’’/’’,’’4’’,’’5’’,’’6’’,’’*’’,’’1’’,’’2’’,’’3’’,’’-’’,’’0’’,’’=’’,’’+’’,};//P1口行列式键盘//#defineKEYPIN_LP1//定义键扫描列端口为P1低四位输入//#defineKEYPIN_HP1//定义键扫描行端口为P1高四位扫

8、描输出////P1口行列式键盘////公用函数unsignedcharKeysCAN(void

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。