矩阵键盘例程

上传人:206****923 文档编号:51631499 上传时间:2018-08-15 格式:PPT 页数:6 大小:61KB
返回 下载 相关 举报
矩阵键盘例程_第1页
第1页 / 共6页
矩阵键盘例程_第2页
第2页 / 共6页
矩阵键盘例程_第3页
第3页 / 共6页
矩阵键盘例程_第4页
第4页 / 共6页
矩阵键盘例程_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《矩阵键盘例程》由会员分享,可在线阅读,更多相关《矩阵键盘例程(6页珍藏版)》请在金锄头文库上搜索。

1、 以下是4行*4列键盘程序: KEY:MOV R5,#00H ;用于存放简码,初值为0(定义为无键 ;按下)MOV P1,#0F;列扫描线输出0,行扫描线置1MOV A,P1;读键盘状态ANL A,#0FH;屏蔽高4位(列线),检测行线状态CJNE A,#0FH,PD1;判断有无按键按下,有则转到PD1处理程序AJMP KEY;重新扫描;以下是判断按键是否真的被按下处理程序 PD1:ACALL DELAY ;延时10ms,以消除按键抖动和排除干扰MOV A,P1;在读按键状态ANL A,#0FH;列扫描线输出0,行扫描线置1CJNE A,#0FH,PD2;确认按键是否按下,有则转到PD2处理程

2、序AJMP KEY;无键按下,返回重新扫描;以下是那一个按键被按下处理程序PD2:MOV R2,#0EFH;扫描初值送R2;1110 1111第一列送0MOV R4,#00H;扫描次数初值送R4MOV A,R2;被扫描列线送0KPD: MOV P1,A;将A中的值(初值为1110 1111)送P1口MOV A,P1;读键状态JB ACC.0,HONE;ACC.0为1,第0行无键被按下,转HONE处理程序MOV A,#00H;装0行行首键号AJMP LKP;跳转到计算键值程序HONE: JB ACC.1,HTWO;ACC.1为1,第1行无键被按下,转HTWO处理程序MOV A,#04H;装2行行

3、首键号AJMP LKP;跳转到计算键值程序HTWO: JB ACC.2,HTHR;ACC.2为1,第2行无键被按下,转HTHR处理程序MOV A,#08H;装2行行首键号AJMP LKP;跳转到计算键值程序HTHR: JB ACC.3,NEXT;ACC.3为1,第3行无键被按下,转NEXT处理程序MOV A,#0CH;装3行行首键号AJMP LKP ;跳转到计算键值程序NEXT: INC R4;扫描列号加1(扫描下一列)MOV A,R2;将扫描初值0EFH送R2RL A;循环左移一位,A的值为0DFH;1101 1111备第二列置0MOV R2,A;将A的值存与R2中,以便下一列的扫描CJNE R4,#04H,KPD;若列未扫描到4次,则返回继续扫描AJMP KEY;扫描完毕,开始新的一轮扫描(重新判断有无按键按下);以下是计算键码程序LKP:ADD A,R4;行首键号加列号是被按下的键号MOV R5,A;被按下的键号存放在R5AJMP KEY;开始新的一轮扫描,若为键盘子程序,; 此行为RET;以下是10ms(采用12M晶振)延时子程序DELAY:MOV R7,#50;1个机器周期D2:MOV R6,#100 ;1个机器周期D1:DJNZ R6,D1;2个机器周期DJNZ R7,D2;2个机器周期RET;2个机器周期

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号