电子密码锁毕业设计论文 下载本文

河南城建学院本科毕业设计论文 系统程序清单

附录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