手机版

毕业设计正文 雷洋 电气化15-1(修改)(11)

时间:2025-07-08   来源:未知    
字号:

在程序中可以先判断按键编码,然后根据编码将键盘代表的数值送到相应的存储单元,再进行功能选择或数据处理。

键盘扫描子程序如下: ORG 0000H AJMP MAIN ORG 0030H MAIN:

MOV DPTR,#TAB ;将表头放入DPTR LCALL KEY ;调用键盘扫描程序

MOVC A,@A+DPTR 查表后将键值送入ACC MOV P0,A ;将Acc值送入P0口 CLR P2.1 开显示 LJMP MAIN ;返回反复循环显示

KEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;有键按下继续

LCALL DELAY2 无键按调用延时去抖 AJMP KEY ;返回继续检测按键 K1: LCALL DELAY2

LCALL DELAY2 ;有键按下延时去抖动 LCALL KS ;再调用检测按键程序 JNZ K2 ;确认有按下进行下一步 AJMP KEY ;无键按下返回继续检测

K2: MOV R2,#0EFH 将扫描值送入R2暂存 MOV R4,#00H ;将第一列值送入R4暂存 K3: MOV P1,R2 ;将R2的值送入P1口 L6: JB P1.0,L1 ;P1.0等于1跳转到L1 MOV A,#00H 将第一行值送入ACC AJMP LK ;跳转到键值处理程序

L1: JB P1.1,L2 ;P1.1等于1跳转到L2 MOV A,#04H 将第二行的行值送入ACC AJMP LK ;跳转到键值理程序进行键值处理 L2: JB P1.2,L3 ;P1.2等于1跳转到L3 MOV A,#08H ;将第三行的行值送入ACC AJMP LK ;跳转到键值处理程

L3: JB P1.3,NEXT ;P1.3等于1跳转到NEXT处 MOV A,#0cH 将第四行的行值送入ACC

LK: ADD A,R4 ;行值与列值相加后的键值送入A PUSH ACC ;将A中的值送入堆栈暂存

K4: LCALL DELAY2 ;调用延时去抖动程序 LCALL KS ;调用按键检测程序

JNZ K4 ;按键没有松开继续返回检测 POP ACC ;将堆栈的值送入ACC RET

NEXT: INC R4 ;将列值加一

毕业设计正文 雷洋 电气化15-1(修改)(11).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)