基于89c51的电子密码锁设计汇编的程序内容摘要:

开机时的界面。 当在输入数字时,不小心输入数字错误,可以按下菜单键“ F”,返回到初始将要输入数字的状态。 本机设置了密码保护功能, 当输入三次密码不正确后,密码锁锁死,不能再开锁,同时蜂鸣器发出响声警告。 只有在复位情况下或断电关机后重新开机才可以输入密码、开锁或设置密码。 当输入密码错误的时,显示出密码错误提示, 发光二极管亮,蜂鸣器发出长警告声,系统自动返回输入密码状态后,红色发光二极管灭,蜂鸣器停止响,系统显示输入密码提示。 附录 1 元件清单 元器件名称 大小和型号 数量 芯片 (加底座 ) AT89S52 各 1 EEPROM(加底座) AT24C02 各 1 三端稳压管 7805 1 LCD 显示器 1620 液晶 1 继电 器 5V、 6 脚 1 蜂鸣器 BELL 1 晶振 12MHZ 1 三极管 9014 2 电源座 带插头 1 电位器 10K 1 电阻 10K 4 1K 4 200 1 10k 排阻 1 11 电容 30p 2 1 100μ电解电容 1 22μ电解电容 1 发光二极管 2 3 单排针 20 口 2 按键 4 脚 17 拨动开关 5 脚 1 附录 2 程序清单 EN BIT。 RW BIT。 RS BIT。 DISPLAY EQU P0。 SPEAKER BIT。 LED BIT。 OPEN BIT。 RETURNBIT BIT。 密码缓冲区 PS1 EQU 46H PS2 EQU 47H PS3 EQU 48H PS4 EQU 49H PS5 EQU 4AH PS6 EQU 4BH。 AT24C02 读取缓冲区 REDY AT1 EQU 34H AT2 EQU 35H AT3 EQU 36H AT4 EQU 37H AT5 EQU 38H AT6 EQU 39H SDA BIT。 定义串口数据端 SCL BIT ORG 0000H。 LJMP START。 ORG 000BH。 LJMP INTERMIT_T0。 ORG 001BH。 LJMP INTERMIT_T1。 ORG 0030H。 START: MOV SP,60H。 LCALL SYS_INITIALIZATION。 主程序 MAIN0: LCALL STRAT_DISPLAY。 MAIN: MOV 52H,0。 52H 判断输入错误次数储存地址 SETB LED。 SETB TR0。 LCALL KEY。 CJNE A,39。 A39。 ,NEXT1。 LJMP SET_PASSWORD。 NEXT1: CJNE A,39。 B39。 ,NEXT2。 LJMP INPUT_PASSWORD。 NEXT2: AJMP MAIN。 系统初始化 SYS_INITIALIZATION: CLR LED。 CLR OPEN。 CLR SPEAKER。 LCALL AT_RADE。 MOV A,34H。 CJNE A,31H,LIKE。 AJMP LIKE。 MOV 34H,39。 139。 MOV 35H,39。 239。 MOV 36H,39。 339。 MOV 37H,39。 439。 MOV 38H,39。 539。 MOV 39H,39。 639。 MOV 46H,34H。 MOV 47H,35H。 MOV 48H,36H。 MOV 49H,37H。 MOV 4AH,38H。 13 MOV 4BH,39H。 LCALL AT_WR。 存放初始密码 LIKE: MOV R7,12。 MOV R0,40H。 LOOP: MOV @R0,00H。 INC R0。 DJNZ R7,LOOP。 密码键值存放区清零完毕 LCALL DELAY0_1S。 MOV P0,03H。 CALL WRITE_INSTRUCTION。 液晶软复位 MOV P0,01H。 CALL WRITE_INSTRUCTION。 MOV P0,3FH。 CALL WRITE_INSTRUCTION。 MOV P0,0FH。 CALL WRITE_INSTRUCTION。 MOV P0,06H。 CALL WRITE_INSTRUCTION。 液晶初始化完毕 MOV R4,10。 MOV TMOD,11H。 MOV TH0,3CH。 MOV TL0,0B0H。 SETB EA。 SETB ET0。 定时器 T0, 定时中断初始化完毕 RET。 系统初始化完毕。 中断服务程序 INTERMIT_T0: PUSH ACC。 PUSH PSW。 MOV TH0,3CH。 MOV TL0,0B0H。 DJNZ R4,RETURN。 CPL LED。 MOV R4,10。 RETURN: POP PSW。 POP ACC。 RETI。 INTERMIT_T1: PUSH ACC。 PUSH PSW。 MOV TH1,9EH。 MOV TL1,58H。 DJNZ R4,RETURN_T1。 CPL LED。 CPL SPEAKER。 MOV R4,10。 RETURN_T1:POP PSW。 POP ACC。 RETI。 键盘扫描 KEY: CALL KS。 JNZ K1。 JMP KEY。 K1: CALL DELAY。 CALL KS。 JNZ K2。 JMP KEY。 K2: CLR TR0。 CLR LED。 MOV R2,0FEH。 MOV R6,00H。 K3: MOV A,R2。 MOV P2,A。 MOV A,P2。 JB ,L1。 MOV A,0。 LJMP LK。 L1: JB ,L2。 MOV A,4。 LJMP LK。 L2: JB ,L3。 MOV A,8。 LJMP LK。 L3: JB ,NEXT_KEY。 MOV A,12。 LK: ADD A,R6。 MOV R6,A。 K4: CALL KS。 JNZ K4。 MOV A,R6。 MOV DPTR,TABLE0。 MOVC A,@A+DPTR。 MOV 50H,A。 查表取值存入 50H,保护键值 RET。 NEXT_KEY: INC R6。 MOV A,R2。 JNB ,KEY。 RL A。 14 MOV R2,A。 JMP K3。 KS: MOV P2,0F0H。 MOV A,P2。 XRL A,0F0H。 RET。 设置密码程序 SET_PASSWORD: CALL CLEAR_DISPLAY。 MOV DPTR,TABLE4。 CALL INPUT_HINT。 MOV R0,40H。 CALL PASSWORD。 JBC RETURNBIT,SET_PASSWORD。 先输入原密码完毕 MOV R5,6。 MOV R0,40H。 MOV R1,34。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。