河南城建学院本科毕业设计论文 系统程序清单
附录C:系统程序清单
ORG 0000H LJMP START START:
MOV 40H,#06H ;设置初始密码为“123456”并分别存放到45H~~40H MOV 41H,#15H MOV 42H,#24H MOV 43H,#33H MOV 44H,#42H
MOV 45H,#51H ;MOV 30H,#0FFH ;MOV 31H,#0FFH MOV 32H,#0FFH MOV 33H,#0FFH MOV 34H,#0FFH MOV 35H,#0FFH
MOV R0,#06H ;LCALL ZIJIAN ;CHENGXU:
LCALL SAOMIAO ;LCALL XIANSHI ;LJMP CHENGXU ;ZIJIAN: ;MOV 38H,#30 ;A3: SETB P0.0 SETB P0.1 SETB P0.2
MOV A,#00001000B ;A4: MOV P2,A
ADD A,#00010000B ;六位密码存放地址
六个数码管显示数据存放地址 自检移位次数 调用自检子程序 调用扫描子程序 调用显示子程序 循环
自检子程序 循环次数 给数码管显示为\移位
25
河南城建学院本科毕业设计论文 系统程序清单
LCALL DELE ;调用显示延时子程序 DJNZ R0,A4 DJNZ 38H,A3
MOV P1,#0FFH ;自检完毕,关闭自检 CLR P0.0 CLR P0.1 CLR P0.2 RET
DELE: ;MOV 36H,#250 DJNZ 36H,$ RET
XIANSHI: ;MOV 3AH,#40 ;XS2:
MOV P2,30H ;LCALL DELE ;MOV P2,31H LCALL DELE MOV P2,32H LCALL DELE MOV P2,33H LCALL DELE MOV P1,34H LCALL DELE MOV P1,35H LCALL DELE
DJNZ 3AH,XS2 ;RET
SAOMIAO: ;MOV R7,#0F7H ;MOV R6,#00H ;HANGSAO:
显示延时子程序 显示子程序 显示循环次数 把30H 到35H 的数据给P1 口显示 调用显示延时子程序 循环显示 扫描子程序
输出扫描码(列:1111)(行:0111),扫描第一行 用于检测哪个按键被按下 26
河南城建学院本科毕业设计论文 系统程序清单
MOV A,R7
MOV P1,A ;开始扫描行 MOV A,P2 SETB C
MOV R5,#04H ;扫描同一行的4 个按键 LIESAO: RLC A
JNC PANDUAN ;序
INC R6 ;DJNZ R5,LIESAO ;MOV A,R7 SETB C RRC A
MOV R7,A ;JC HANGSAO ;描完4 行就返回 RET
PANDUAN: ;LCALL DEL ;MOV A,R6 XRL A,#00H
JZ KAIGUAN1 ; MOV A,R6 XRL A,#01H
JZ KAIGUAN2 ; MOV A,R6 XRL A,#02H
JZ KAIGUAN3 ; MOV A,R6 XRL A,#03H
JZ KAIGUAN4 ; MOV A,R6 XRL A,#04H
检测当前按键是否被下,如果有马上跳到判断子程 如果当前没有按键被按下则检测下一个 检测完本行的4 个按键,则跳出 扫描码右移一位,开始扫描下一行
没有扫描完4 行则跳到HANGSAO 继续扫描,已扫 判断是那个开关被按下 调用消抖延时子程序 开关被按下跳转按键1 功能子程序 开关被按下跳转按键2 功能子程序 开关被按下跳转按键3 功能子程序 开关被按下跳转按键4 功能子程序 27
河南城建学院本科毕业设计论文 系统程序清单
JZ KAIGUAN5 ; 开关被按下跳转按键5 功能子程序 MOV A,R6 XRL A,#05H
JZ KAIGUAN6 ; 开关被按下跳转按键6 功能子程序 MOV A,R6 XRL A,#06H
JZ KAIGUAN7 ; MOV A,R6 XRL A,#07H
JZ KAIGUAN8 ; MOV A,R6 XRL A,#08H
JZ KAIGUAN9 ; MOV A,R6 XRL A,#09H
JZ KAIGUAN10 ; MOV A,R6 XRL A,#0AH
JZ KG11 ; MOV A,R6 XRL A,#0BH
JZ KG12 ; MOV A,R6 XRL A,#0CH
JZ KG13 ; MOV A,R6 XRL A,#0DH
JZ KG14 ; MOV A,R6 XRL A,#0EH
JZ KG15 ; MOV A,R6 XRL A,#0FH
JZ KG16 ; 开关被按下跳转按键7 功能子程序 开关被按下跳转按键8 功能子程序 开关被按下跳转按键9 功能子程序 开关被按下跳转按键10 功能子程序 开关被按下跳转按键11 功能子程序 开关被按下跳转按键12 功能子程序 开关被按下跳转按键13 功能子程序 开关被按下跳转按键14 功能子程序 开关被按下跳转按键15 功能子程序 开关被按下跳转按键16 功能子程序
28