934381227密码锁 程序.doc

上传人:仙人指路1688 文档编号:4146271 上传时间:2023-04-07 格式:DOC 页数:9 大小:31KB
返回 下载 相关 举报
934381227密码锁 程序.doc_第1页
第1页 / 共9页
934381227密码锁 程序.doc_第2页
第2页 / 共9页
934381227密码锁 程序.doc_第3页
第3页 / 共9页
934381227密码锁 程序.doc_第4页
第4页 / 共9页
934381227密码锁 程序.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《934381227密码锁 程序.doc》由会员分享,可在线阅读,更多相关《934381227密码锁 程序.doc(9页珍藏版)》请在三一办公上搜索。

1、;程序名:密码锁;功能描述:四位密码保存在EEPROM中,开机输入密码错误,等待重新输入;密码输入正确,密码锁打开;此状态下,可以修改新密码ENTER_FLAG BIT 03H ORG 0000H SJMP MAIN ORG 000BH ;LJMP IPT0 ORG 001BH LJMP IPT1 ORG 0030HMAIN: CLR ENTER_FLAG MOV TMOD,#10H MOV TH1,#HIGH(65536-50000) MOV TL1,#LOW(65536-50000) SETB ET1 SETB EA MOV 70H,#10 MOV 50H,#10 MOV 51H,#10

2、MOV 52H,#10 MOV 53H,#10 LCALL DISP MOV R3,#4 MOV R2,#0 MOV R0,#30HM_LOOP1:MOV 3DH,R2 LCALL EEP_RD ;LCALL D20MS MOV R0,A INC R0 INC R2 DJNZ R3,M_LOOP1M_LOOP: MOV R1,#40H MOV R4,#4M_LOOP2:LCALL M_KEY JNB F0,M_LOOP2 CLR F0 MOV R1,A INC R1 DJNZ R4,M_LOOP2 MOV R0,#30H MOV R1,#40H MOV R5,#4M_LOOP3:MOV A,R

3、0 CLR C SUBB A,R1 JNZ PW_WRONG INC R0 INC R1 DJNZ R5,M_LOOP3PW_RIGHT: MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOV 53H,#0 LCALL DISP MOV 70H,#20 CLR P1.3 SETB TR1M_LOOP4:LCALL M_KEY JNB F0,M_LOOP4 CLR F0 CJNE A,#0BH,M_NEXT1 ;非回车键跳转 CPL ENTER_FLAG JB ENTER_FLAG,M_NEXT2 MOV R5,#0 MOV R4,#4 MOV R0,#50HM_LOOP5:

4、MOV 3EH,R5 MOV A,R0 MOV 3FH,A LCALL EEP_WR LCALL D20MS INC R5 INC R0 DJNZ R4,M_LOOP5 MOV 50H,#10 MOV 51H,#10 MOV 52H,#10 MOV 53H,#10 LCALL DISP SJMP $M_NEXT2:MOV 70H,#40 CLR P1.3 SETB TR1 SJMP M_LOOP4M_NEXT1:JNB ENTER_FLAG,M_NEXT3 CPL ENTER_FLAG SJMP M_LOOP4M_NEXT3: MOV 50H,51H MOV 51H,52H MOV 52H,5

5、3H MOV 53H,A LCALL DISP SJMP M_LOOP4PW_WRONG: CLR P1.3 SETB TR1 LJMP M_LOOPDISP: PUSH 00H PUSH 07H PUSH ACC PUSH DPH PUSH DPL MOV R0,#53H MOV R7,#8 MOV DPTR,#TABLE1 CLR P1.1DPLOOP0:MOV A,R0 MOVC A,A+DPTRDPLOOP1:RRC A MOV P1.0,C SETB P1.1 CLR P1.1 DJNZ R7,DPLOOP1 MOV R7,#8 DEC R0 CJNE R0,#4FH,DPLOOP0

6、 POP DPL POP DPH POP ACC POP 07H POP 00H RETTABLE1: DB 11H,7DH,23H,29H,4DH DB 89H,81H,3DH,01H,09H,0EFHM_KEY: ANL P1,#00011111B MOV A,P3 ORL A,#11000011B CPL A JZ MK_RET ACALL D20MS SETB F0 MOV R2,#11011111B MOV R3,#0MK_LOOP:ANL P1,#00011111B ANL 02H,#11100000B MOV A,R2 ORL P1,A MOV A,P3 JB ACC.2,MK_

7、N_R1 MOV A,#0 SJMP MK_JSJZMK_N_R1:JB ACC.3,MK_N_R2 MOV A,#3 SJMP MK_JSJZMK_N_R2:JB ACC.4,MK_N_R3 MOV A,#6 SJMP MK_JSJZMK_N_R3:JB ACC.5,MK_N_C MOV A,#9 SJMP MK_JSJZMK_N_C: INC R3 JNB P1.7,MK_ERR MOV A,R2 RL A MOV R2,A SJMP MK_LOOPMK_JSJZ:ADD A,R3 SJMP MK_RETMK_ERR: MOV A,#0CH CLR F0 RETMK_RET: PUSH A

8、MK_WAIT:MOV A,P3 ORL A,#11000011B CPL A JNZ MK_WAIT ACALL D20MS POP A MOV DPTR,#TABLE2 MOVC A,A+DPTR RETTABLE2: DB 1,2,3,4,5,6,7,8,9,0AH,0,0BHD20MS: PUSH 07H PUSH 06H MOV R7,#40DLOOP1: MOV R6,#250 DJNZ R6,$ DJNZ R7,DLOOP1 POP 06H POP 07H RETEEP_RD: ;EEPROM AT24C04单字节读出程序 ;子程序功能 从3DH高7位指示的EEPROM地址单元读

9、出8位数据到A中 ;入口参数 (3DH) 待读出数据地址(3DH的D7位无意义,D6D0位为7位地址) ;出口参数 (A) 从EEPROM中读取的数据 ;R3作为发送/接收8位数据计数器 SDA BIT P2.1 SCL BIT P2.2 ACALL EEP_START ;发送开始信号 MOV A,#10100000B ;发送器件地址00,D0为0表示写入字节地址操作 ACALL EEP_SENT MOV A,3DH ;发送字节地址 ACALL EEP_SENT ACALL EEP_START ;再次发送开始信号 MOV A,#10100001B ;再次发送器件地址00,D0为1表示读出数据操

10、作 ACALL EEP_SENT ACALL EEP_READ ;读入8位数据至A ACALL EEP_STOP ;发结束信号 RET;发送开始标志EEP_START: SETB SCL NOP NOP NOP NOP SETB SDA NOP NOP NOP NOP CLR SDA ;发开始信号 NOP NOP NOP NOP CLR SCL NOP NOP NOP NOP RET;EEP_SENT的功能为发送8位数据且等待应答信号并清零SCL;入口参数-AEEP_SENT: PUSH 03H MOV R3,#08HEEP_SLOOP:CLR SCL ;发送8位信息 NOP NOP NOP

11、NOP RLC A MOV SDA,C NOP NOP NOP NOP SETB SCL NOP NOP NOP NOP DJNZ R3,EEP_SLOOP CLR SCL NOP NOP NOP NOP SETB SCL NOP NOP NOP NOPEEP_SACK: MOV C,SDA JC EEP_SACK ;判断应答信号到否 CLR SCL POP 03H RET;发送结束标志EEP_STOP: CLR SCL NOP NOP NOP NOP CLR SDA NOP NOP NOP NOP SETB SCL NOP NOP NOP NOP SETB SDA NOP NOP NOP N

12、OP ;发停止信号 RET;读出8位数据EEP_READ: PUSH 03H MOV R3,#08HEEP_RLOOP:SETB SCL ;接收8位信息 NOP NOP NOP NOP MOV C,SDA RLC A NOP NOP CLR SCL NOP NOP NOP NOP DJNZ R3,EEP_RLOOP ;8位未收完,则继续 POP 03H RETEEP_WR: ;EEPROM AT24C04单字节写入程序 ;子程序功能 向3EH低7位指示的EEPROM地址单元写入3FH中8位数据 ;本子程序包含开始、器件地址及结束信息 ;入口参数 (3EH) 待写入数据地址(3EH的D7位无意义

13、,D6D0位7位地址) ;入口参数 (3FH) 待写入数据 ;R3作为发送8位数据计数器 ;SDA BIT P2.1 ;SCL BIT P2.2 ACALL EEP_START MOV A,#10100000B ;发送器件地址00,D0为0表示写操作 ACALL EEP_SENT MOV A,3EH ;发送字节地址,低7位 ACALL EEP_SENT MOV A,3FH ;发送数据 ACALL EEP_SENT ACALL EEP_STOP RETIPT1: MOV TH1,#HIGH(65536-50000) MOV TL1,#LOW(65536-50000) DJNZ 70H,T1RET MOV 70H,#10 SETB P1.3 CLR TR1T1RET: RETI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号