单片机习题集和答案2015(16)
时间:2026-01-16
时间:2026-01-16
单片机习题集和答案
(2)键盘扫描子程序:
KEY1: ACALL KS1 ;调用判断有无键按下子程序
JNZ LK1 ;有键按下,转LK1
AJMP KEY1 ;无键按下,返回
LK1: ACALL T12MS ;调延时12ms子程序
ACALL KS1 ;查有无键按下
LK2:
LK4:
LONE:
LKP:
LK3:
NEXT:
扫描字
JNZ AJMP MOV MOV MOV MOV MOV JB MOV AJMP JB MOV ADD PUSH ACALL JNZ POP RET INC MOV JNB RL MOV LK2 ;若有,则为键确实按下,转逐列扫描 KEY1 ;无键按下,返回 R4,#00H R4 R2,#FEH R2 A,R2 P1口 P1,A ;使第一列线为0 A,P1 ;读入行状态 ACC.0,LONE;第0行无键按下,转查第一行 A,#00H ;第0 A LKP ;转求键号 ACC.1,NEXT ;第一行无键按下,转查下一列 A,#02 A A,R4 ;键号=首行号+列号 ACC ;键号进栈保护 KS1 ;等待键释放 LK3 ;未释放,等待 AC A ;键扫描结束 R4 ;列号加1,指向下一列 A,R2 A ACC.1,KND ;判断2列全扫描完?扫描完,转KND A ;没扫描完,扫描字左移一位,形成下一列 R2,A R2