实用电子锁的设计.txt

上传人:kms****20 文档编号:41122343 上传时间:2018-05-28 格式:DOC 页数:25 大小:52.50KB
返回 下载 相关 举报
实用电子锁的设计.txt_第1页
第1页 / 共25页
实用电子锁的设计.txt_第2页
第2页 / 共25页
实用电子锁的设计.txt_第3页
第3页 / 共25页
实用电子锁的设计.txt_第4页
第4页 / 共25页
实用电子锁的设计.txt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《实用电子锁的设计.txt》由会员分享,可在线阅读,更多相关《实用电子锁的设计.txt(25页珍藏版)》请在金锄头文库上搜索。

1、实用电子锁的设计实用电子锁的设计.txt.txt;现实缓冲区LED1 EQU 6FHBUFF EQU 6EHTIMES1EQU 6DH;输入回车次数TIMES2 EQU 6CH;报警次数LED6 EQU 6AH;密码缓冲区PS1 EQU 69HPS2 EQU 78HPS3 EQU 67HPS4 EQU 66HPS5 EQU 65HPS6 EQU 64H PS7 EQU 63H PS8 EQU 62H;AT24C02 读写缓冲区AT1 EQU 61HAT2 EQU 60HAT3 EQU 5FHAT4 EQU 5EHAT5 EQU 5DHAT6 EQU 5CHAT7 EQU 5BHAT8 EQU

2、5AH;按键标志位 F_0 BIT 20H F_1 BIT 21H F_2 BIT 22H F_3 BIT 23H F_4 BIT 24H F_5 BIT 25H F_6 BIT 26H F_7 BIT 27H F_8 BIT 28H F_9 BIT 29H CH_STATE BIT 2AH;系统更改的状态标志位,为 1 表示 busy FLAG1 BIT 2BH ;功能键标志位,为 1 表示功能按键。 F_F1BIT 2CH F_F2 BIT 2DH PSW_F BIT 2EH ;密码是否正确的标志;资源定义 SPK BIT P2.1WP BIT P3.5SDABIT P3.6SCL BIT

3、 P3.7;定义串口数据端 ORG 0000HAJMP MAIN ORG 000BH ;AJMP TIMES00 ORG 001BH ;AJMP TIMES01 ORG 0030H MAIN: MOV SP, #70HMOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H CLR F_0; 清除标志位 CLR F_1 CLR F_2 CLR F_3CLR F_4 CLR F_5 CLR F_6 CLR F_7 CLR F_8 CLR F_9 CLR BUF_FULL CLR CH_STATE CLR FL

4、AG1 CLR F_F1 CLR F_F2 CLR PSW_F MOV BUFF,#00H ;调用 LCALL INITPS ;初始化环境 LCALL INITAT LCALL XSA ;调用默认显示 MOV TIMERS1,#00H NOP MOV PS1, #11H ;初始化密码 830620 MOV PS2, #0AH MOV PS3, #02H MOV PS4, #13H MOV PS5, #0BH MOV PS6, #02H START:NOP LCALL CH_KEY AJMP START CH_KEY:LCALL KS JNZ LK1 AJMP CH_KEY LK1: LCALL

5、 T12MS ACALL KS JNZ LK2 RET ;程序开始 ;检查键盘 ;返回 ;检查有没有按键按下 LK2: NOP LCALL SBIE ;按键识别子程序 MOV BUFF, A ;送缓冲区以识别是数字键还是功能键? LCALL CH_KF ;判断按键功能。 JB FLAG1 ,KEY_FUN ;标志为 1,则为功能键 *数字按键输入并且存放到缓冲区内等待比较*KEY_DIG:NOP;设一标志,辨别输入是否满 ;SETB TR0 INC TIMERS ;输入数字的位数 MOV A, TIMERS CLR C SUBB A, #01H JNZ PS_2 MOV PS1, BUFF ;

6、依照顺序存放密码 AJMP NEXT PS_2: MOV A, TIMERS SUBB A, #02H CLR C JNZ PS_3 MOV PS2, BUFF AJMP NEXT PS_3:MOV A, TIMERS CLR C SUBB A, #03HJNZ PS_4 MOV PS3, BUFF AJMP NEXT PS_4: MOV A, TIMERS CLR C SUBB A, #04 JNZ PS_5 MOV PS4, BUFF AJMP NEXT PS_5: MOV A, TIMERS CLR C SUBB A, #05 JNZ PS_6MOV PS5, BUFF AJMP NEX

7、T PS_6: MOV A, TIMERS CLR C SUBB A, #06H JNZ CH_KEY MOV PS6, BUFF NEXT: LCALL XSC MOV R7, TIMERS ;比较输入的次数。 CJNE R7, #06H ,FULL FULL:JC NEXT9 SETB BUF_FULL MOV TIMERS,#06H CLR L3 NOP CLR P2.1 LCALL T100MSD SETB P2.1 NOP AJMP CH_KEY NEXT9:CLR P2.1 ;密码输入一位,鸣叫一声。 CLR L3 LCALL T100MSD ;延时 100ms SETB L3 S

8、ETB P2.1 AJMP CH_KEY ;*开门子程序 * CL:NOP SETB L3 MOV BUFF, #00H ;消密码缓冲 MOV TIMERS,#00H LCALL INITPS ;消除 AT 缓冲,调电存储后一定要加上 LCALL XSC LCALL BP LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU4:NOP LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP

9、CLR FLAG1 AJMP CH_KEY FU3:NOP LCALL BP LCALL T100MSD LCALL BP LCALL KILLXS ;关闭显示CLR FLAG1 AJMP CH_KEY FU1:NOP LCALL XSC JB F_F1, NEXT_F1 CLR L1 LCALL BP SETB F_F1 AJMP CH_KEY NEXT_F1:SETB L1 LCALL BP CLR F_F1 ;LCALL CH_STATE ;SETB TR1 ;INC F_F1 CLR FLAG1 AJMP CH_KEY FU2:NOP ;查看现在的状态以防误按 ;报警限制暂时不开 JB

10、 F_F2, NEXT_F2 CLR L2 LCALL BP SETB F_F2 AJMP CH_KEY NEXT_F2:SETB L2 LCALL BP CLR F_F2 CLR FLAG1 AJMP CH_KEY; *各类子程序* ;注意清楚缓冲区时 AT1.AT8 不应在初始化中执行,;以 防两缓冲区都为 0,相同开锁 * CLR_BUF:MOV R7, #06H MOV R0, #6FH LOOP1:MOV A, #00H MOV R0, A DEC R0 DJNZ R7,LOOP1 RET ;*初始化显示缓冲区以及其他缓冲区* INITPS:PUSH ACC PUSH PSW MOV

11、 R7, #06H MOV R1, #PS1 MOV A, #00H INIT_PS:MOV R1, A DEC R1 DJNZ R7, INIT_PS POP PSW POP ACC NOP RET INITAT:PUSH ACC PUSH PSWMOV R7,#06HMOV R1,#AT1MOV A, #00HINIT_AT:MOV R1,ADEC R1DJNZ R7,INIT_AT MOV TIMES2,#00H ;密码输入的次数清零。 POP PSW POP ACC RET; *检验密码正误*C_PSW:PUSH PSW PUSH ACC MOV R2,#06H MOV R0,#PS1

12、 MOV R1,#AT1 C_P:CLR C MOV A,R0 SUBB A,R1 JNZ RETURN DEC R0 DEC R1 DJNZ R2,C_PNOP SETB PSW_F AJMP EXIT7 RETURN:CLR PSW_F EXIT7:NOP POP ACC POP PSW RET ;*锁定,鸣笛程序* LOCK_1M:MOV R4,#3CH M1_LOOP:LCALL SEC DJNZ R4,M1_LOOP NOP RET WARN2S:PUSH PSW PUSH ACC MOV R5, #14H WARN: LCALL BP DJNZ R5,WARN NOP POP AC

13、C POP PSW NOP RET BP:CLR SPK LCALL T100MSD ;锁定 1 分钟 ;调用 20 次 BP,报警 2s ;鸣笛子程序SETB SPK NOP RET; *;*;* * 锁定状态显示。 XSA:PUSH ACC PUSH PSW MOV A, TIMES1 ;修改过MOV DPTR, #TAB MOVC A, A+DPTR MOV SBUF, A JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #78H JNB TI, $

14、CLR TI MOV SBUF, #78H JNB TI, $ CLR TI MOV SBUF, #11H JNB TI, $ CLR TI POP PSW POP ACC RET ;成功开锁状态显示 XSB:PUSH ACC PUSH PSW MOV A, TIMES2 MOV DPTR, #TAB MOVC A, A+DPTR MOV SBUF, A JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ ;送已经输入密码的次数 ;送短线 ;送短线 ;送 F CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #

15、10H JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI POP PSW POP ACC RET; 密码输入及修改状态 XSC:PUSH ACC PUSH PSW LCALL KILLXS SETB RS1 ;切换到第三组寄存器。防止操作数读取错误。 MOV R6,TIMES2MOV A, R6 SUBB A, #01H JNC SC0 JZ SC1 SC0:MOV SBUF, #0FEH JNB TI, $ CLR TI SC1:MOV A, R6 SUBB A, #02H JNC SC11 JNZ SC2 SC11: MOV SBUF,#0FEH JNB TI, $ CLR TI SC2:MOV A, R6 SUBB A, #03H JNC SC22 JNZ SC3 SC22: MOV SBUF, #0FEH JNB TI, $ CLR TI SC3:MOV A, R6 SUBB A, #04H

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号