⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lock.dt

📁 一个很好用的密码锁程序
💻 DT
📖 第 1 页 / 共 2 页
字号:
		CALL		DELAY10MS
		CALL		DELAY10MS
		CALL		DELAY10MS
		
		BS		PORT6,GREEN
		BS		PORT6,GATE_SW
		JMP		CLR_ERROR_CODE
ERROR_GUST_TONE:
		BC		 KEY_F,ADMIN_F
		JMP		ERROR_TONE
ADMIN_WORD_IN:
		MOV		A,RECORD_EE
		JBS		STTS,Z
		JMP		ERROR_GUST_TONE;OPEN_GATE
		BS		 KEY_F,ADMIN_FF
		BC		 PORT6,GREEN
		BC		 PORT6,RED
		RET
NEXT_ADDR:
		MOV		A,@8;6
		ADD		RECORD_EE,A
		MOV		A,RECORD_EE
		MOV		START_ADDR,A
		JMP		LOOP_GUEST_COM
ERROR_TONE:
		;BS		PORT6,TONE
		BS		  KEY_F,PAUSE_TONE
		BC	  	PORT6,RED
		CALL		DELAY10MS
		CALL		DELAY10MS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;BC		PORT6,TONE
		BC		 KEY_F,PAUSE_TONE
		BS	 	PORT6,RED
		CALL		DELAY10MS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;BS		PORT6,TONE
		BC		KEY_F,PAUSE_TONE
		BC		PORT6,RED
		CALL		DELAY10MS
		CALL		DELAY10MS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;		
		;BC		PORT6,TONE;;
		BC		KEY_F,PAUSE_TONE
		BS		PORT6,RED
		CALL		DELAY10MS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;		
		;BS		PORT6,TONE
		BS		KEY_F,PAUSE_TONE
		BC		PORT6,RED
		CALL		DELAY10MS
		CALL		DELAY10MS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		;BC		PORT6,TONE
		BC		KEY_F,PAUSE_TONE
		BS		PORT6,RED
		MOV		A,@BANK0
		MOV		RECORD_F,A
		CLR		START_ADDR
CLR_ERROR_CODE:
		MOV		A,@BANK0
		MOV		BSR,A
CLR_LOOP:
		MOV		A,@0XFF
		MOV		R0,A
		INC		BSR
		MOV		A,BSR
		XOR		A,@0X28
		JBS		STTS,Z
		JMP		CLR_LOOP
		RET
BACK_DOOR:
		MOV		A,0X25
		MOV		0X27,A
		MOV		A,0X24
		MOV		0X26,A
		MOV		A,0X23
		MOV		0X25,A
		MOV		A,0X22
		MOV		0X24,A
		MOV		A,0X21
		MOV		0X23,A
		MOV		A,0X20
		MOV		0X22,A
		CLR		0X20
		CLR		0X21
		CLR		START_ADDR
		JMP		WRITE_CODE
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
SET_PASSWORD:
		JBC		KEY_F,SET_PASS
		JMP		SET_EVERY
		JBC		KEY_F,DEL_PASS
		JMP		DEL_ONE
		
		MOV		A,KEY_STATE
		JBC		STTS,Z
		JMP		OUT_SET
		MOV		A,KEY_STATE
		XOR		A,@1
		JBC		STTS,Z
		JMP		SET_PASS_FLAG
		;MOV		A,KEY_STATE
		;XOR		A,@2
		;JBC		STTS,Z
		;JMP		DEL_ONE_FLAG
		MOV		A,KEY_STATE
		XOR		A,@2;3
		JBC		STTS,Z
		JMP		DEL_ALL_FLAG
OUT_SET:
		BC		 KEY_F,ADMIN_F
		BC		 KEY_F,ADMIN_FF
		BS		 PORT6,GREEN
		BS		 PORT6,RED
		BC		 KEY_F,SET_PASS
		BC		 KEY_F,DEL_PASS
		BC		 KEY_F,DEL_ALL
		MOV		A,@BANK0
		MOV		RECORD_F,A
		RET
SET_PASS_FLAG:
		CALL		CLR_ERROR_CODE
		BS		 KEY_F,SET_PASS
		RET
DEL_ONE_FLAG:
		CALL		CLR_ERROR_CODE
		BS		 KEY_F,DEL_PASS
		RET
DEL_ALL_FLAG:
		CALL		CLR_ERROR_CODE
		BS		 KEY_F,DEL_ALL
		RET
DEL_FUNC00:
		MOV		A,BANK0
		XOR		A,@0XFF
		JBC		STTS,Z
		JMP		ERROR_TONE
		JMP		DEL_FUNC0
SET_EVERY:
		MOV		A,KEY_STATE;###
		XOR		A,@0X0C
		JBC		STTS,Z
		JMP		STORE_CODE
		
		MOV		A,KEY_STATE;***
		XOR		A,@0X0A
		JBC		STTS,Z
		JMP		DEL_FUNC00

		MOV		A,RECORD_F
		MOV		BSR,A
		MOV		A,KEY_STATE
		MOV		R0,A
		INC		RECORD_F
		MOV		A,RECORD_F
		ADD		A,@0XFF-0X28
		JBC		STTS,C
		JMP		ERROR_TONE
		RET
		
DEL_ONE:
		MOV		A,@BANK0+2
		MOV		BSR,A
		CALL		CLR_LOOP
		JMP		STORE_CODE
ERROR_LIST:
		BC		 KEY_F,SET_PASS
		BC		 KEY_F,DEL_PASS
		JMP		ERROR_TONE
STORE_CODE:
		BC		 KEY_F,DEL_PASS
		BC		 KEY_F,SET_PASS
		MOV		A,@BANK0
		MOV		BSR,A
		MOV		RECORD_F,A
		MOV		A,R0
		XOR		A,@0X0B
		JBC		STTS,Z
		JMP		NO_DC
		MOV		A,R0
		ADD		A,@0XFF-3
		JBC		STTS,C
		JMP		ERROR_TONE

		CLR		TEMP3
COMPU_ADDR:
		MOV		A,@10
		ADD		TEMP3,A
		DEC		R0
		JBC		STTS,Z
		JMP		NO_DC
		JMP		COMPU_ADDR
NO_DC:
		INC		BSR
		MOV		A,R0
		XOR		A,@0X0B
		JBC		STTS,Z
		JMP		NO_DCC
		MOV		A,R0
		ADD		TEMP3,A
		
		MOV		A,TEMP3
		ADD		A,@0XFF-31
		JBC		STTS,C
		JMP		ERROR_LIST
NO_DCC:		
		CLR		START_ADDR
		
		MOV		A,TEMP3
		JBC		STTS,Z
		JMP		WRITE_CODE
LOOP_ADD:
		MOV		A,@8;6
		ADD		START_ADDR,A
		DJZ		TEMP3
		JMP		LOOP_ADD
		
WRITE_CODE:		
		MOV	 A,@BANK0
        MOV	 BSR,A
        MOV	 A,@BANK0+2
        MOV	 TEMP3,A
		MOV     A,@8;6
		MOV     DATA_LEN,A
;		CALL	Write_ByteS_Into_EEPROM
		MOV     A,DATA_LEN
        CALL    START_CONDITION
        MOV     A,@0B10100000
OTHER_PAGE_1:
        MOV     WRITE_RAM,A
        CALL    WRITE_BYTE;;;;;;;;;;;WRITE	DEVICE ADDRESS

        MOV     A,START_ADDR
        MOV     WRITE_RAM,A
        CALL    WRITE_BYTE;;;;;;;;;;;WRITE WORD ADDRESS
WR_LP:
        MOV	 A,TEMP3
        MOV	 BSR,A
        MOV	 A,R0
		INC	 TEMP3
        MOV     WRITE_RAM,A
        CALL    WRITE_BYTE;;;;;;;;;;;WRITE WORD DATA
        DJZ       DATA_LEN
        JMP      WR_LP
        CALL      STOP_CONDITION;###########################################
		BS		  PORT6,RED
		BC		  PORT6,GREEN
		CALL		DELAY10MS
		CALL		DELAY10MS
		CALL		DELAY10MS
		JMP	  CLR_ERROR_CODE
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@###########EEPROM###########
;###########################################
;READ_EEPROM:
;AT24C16_TO_EMC862:
;		MOV	 A,@BANK0
;        MOV	 BSR,A
;        MOV	 A,@BANK0+0X10
;        MOV	 TEMP3,A
;;;        CLR   	START_ADDR;eeprom start address
;		CLR   	TEMP2
;		
;		MOV     A,@6
;		MOV     DATA_LEN,A
;
;		CALL   	Read_Bytes_From_EEPROM
;
;		RET
;###########################################		
;EMC862_TO_AT24C16:
;		MOV	 A,@BANK0
;        MOV	 BSR,A
;        MOV	 A,@BANK0+2
;        MOV	 TEMP3,A
;		CLR   	START_ADDR

;		MOV     A,@6
;		MOV     DATA_LEN,A

;		CALL 	Write_ByteS_Into_EEPROM

;		RET			
;###########################################
WRITE_BIT:
		IOR     IOC5
        AND	A,@0b00001110
        IOW     IOC5                           
        JBS     WRITE_RAM,DATA_BIT
        JMP     ZERO_BIT
        BS      PORT5,SDA
        JMP     OUT_BIT        
ZERO_BIT:
        BC      PORT5,SDA
OUT_BIT:
        NOP
        NOP
        NOP
        BS      PORT5,SCL
        ;CALL    DELAY_10US
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        BC      PORT5,SCL        
        RET                                             
        
READ_BIT:
        IOR     IOC5
        MOV	A,@0b00010000
        IOW     IOC5                           
        BS      PORT5,SDA
        BC      READ_RAM,DATA_BIT        
        BS      PORT5,SCL
        ;CALL    DELAY_10US
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        JBC     PORT5,SDA
        BS      READ_RAM,DATA_BIT
        BC      PORT5,SCL
        RET
                
WRITE_BYTE:        
        MOV     A,@0X08
        MOV     TEMP1,A
TX_LP:        
        CALL    WRITE_BIT
        RLC     WRITE_RAM
        DJZ     TEMP1
        JMP     TX_LP
        CALL    READ_BIT
        RET

READ_BYTE:
        MOV     A,@0X08
        MOV    TEMP1,A
RX_LP:
        CALL   READ_BIT
        BC     STTS,C
        JBC    READ_RAM,DATA_BIT
        BS     STTS,C
        RLC    TEMP2 ;READ_RAM
        DJZ    TEMP1
        JMP    RX_LP
        MOV    A,TEMP2
        MOV    READ_RAM,A
        RET
Read_Bytes_From_EEPROM:;###########################################
        CALL    START_CONDITION;START WRITE(1)
        
        MOV     A,@0B10100000
        MOV     WRITE_RAM,A
        CALL    WRITE_BYTE;;;;;;;;;;;;WRITE DEVICE ADDRESS(2)

        MOV     A,START_ADDR
        MOV     WRITE_RAM,A
        CALL    WRITE_BYTE;;;;;;;;;;;;WRITE START ADDRESS(3)

        CALL    START_CONDITION;START READ(4)
        
        MOV     A,@0B10100001
        MOV     WRITE_RAM,A
        CALL    WRITE_BYTE;;;;;;;;;;;;;WRITE DEVICE ADDRESS(5)

RD_LP:
        CALL   READ_BYTE;;;;;;;;;;;;;CONTINUE READ DATA(6.......n)
        MOV	A,TEMP3
        MOV	BSR,A
        MOV	A,READ_RAM
        MOV	R0,A
        INC	 TEMP3

        DJZ    DATA_LEN
        JMP    LOWACK

        BS     WRITE_RAM,DATA_BIT
        CALL   WRITE_BIT

        CALL   STOP_CONDITION
        
        JMP	COMPLETE_READ
;        RET
LOWACK:
        BC     WRITE_RAM,DATA_BIT
        CALL   WRITE_BIT
        JMP    RD_LP

;WRITE_BYTES_INTO_EEPROM:;###########################################
;========================================
START_CONDITION:
        IOR     IOC5
        AND	A,@0b00001110
        IOW     IOC5
        BS      PORT5,SCL
        BS      PORT5,SDA
        ;CALL    DELAY_10US
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        BC      PORT5,SDA
        ;CALL    DELAY_10US
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        BC      PORT5,SCL
        NOP
        NOP
        RET
STOP_CONDITION:              
		IOR     IOC5
        AND	A,@0b00001110
        IOW     IOC5
        BC      PORT5,SDA
        BS      PORT5,SCL
        ;CALL    DELAY_10US
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        BS      PORT5,SDA
        NOP
        NOP
        NOP
        RET
DELAY_10US:
        NOP
        NOP
        NOP
        NOP
        NOP
        RET
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -