📄 weigenshuchu.asm
字号:
clr red_flash
clr green_flash
test0:call key_scan
jnz test1
mov r4,#30
test_4:mov r5,#250
; LCALL DOG ;喂狗
test_3:mov r6,#250
test_2:jb press_open,test_1
setb red
setb green
setb relay
mov time,#5
lcall delay_time
clr relay
clr red
clr green
lcall del_ms
lcall del_ms
jmp test
test_1:djnz r6,test_2
djnz r5,test_3
cpl red
cpl green
djnz r4,test_4
jmp test
cjne a,#13h,test
test1:cjne a,#1,test2
setb red
test3:setb ex0
mov r6,#40
test_del3:mov r5,#240
; LCALL DOG ;喂狗
test_del2:mov r4,#250
test_del1:jnb door_sensor,test_delay
clr door_sensor
clr ex0
setb relay
clr red
clr green
mov r7,#4
test4:cpl red
cpl green
mov time,#250
lcall del_ms
djnz r7,test4
jmp test
test_delay:djnz r4,test_del1
clr green
clr red
djnz r5,test_del2
djnz r6,test_del3
; LCALL DOG ;喂狗
jmp test
test2:cjne a,#3,test5
clr red
clr green
clr green_blink
clr red_blink
clr orange_blink
clr orange_flash
clr red_flash
clr green_flash
test7:lcall key_scan
cjne a,#13h,text6
jmp test
text6:setb red
mov time,#50
lcall del_ms
clr red
jmp test7
test5:cjne a,#2,test8
mov r7,#6
setb relay
setb green
text1:mov time,#175
lcall del_ms
cpl green
djnz r7,text1
clr relay
jmp test
test8:cjne a,#4,test9
clr red
clr green ;;;;;;;;;;
clr wp
mov r6,#0
MOV R3,#0
MOV E,#0
TT:MOV R0,#50H
MOV R4,#8
AA:MOV @R0,E
INC R0
;INC E
DJNZ R4,AA
MOV R0,#50H
LCALL I2C_WRITE
INC R3
MOV A,R3
MOV B,#8
MUL AB
MOV R6,A
LCALL DEL_10MS
lcall del_10ms
JNZ TT
SETB WP ;;;;;;;;;
lcall del_10ms
lcall del_10ms
mov r6,#00h
MOV R4,#0
MOV OO,#0
TT1:mov r0,#50h
lcall i2c_read
mov r1,#50h
mov r5,#8
ff:mov a,OO
;mov a,@r0
XRL A,@R1
JNZ text11
;INC OO
inc r1
djnz r5,ff
inc r4
mov a,r4
MOV B,#8
MUL AB
MOV R3,A
MOV R6,A
JNZ TT1
setb green ;;;;;;;;
setb red
lcall start_in
setb wp
jmp test12
text11:clr green
setb red
test12:mov time1,#5
lcall delay_time
test13:jmp test
test9:cjne a,#13h,test13
jmp set_up21 ;;;;;;;;;;;;;;;
ADD_PIN0:clr green_blink
clr red_blink
clr orange_blink
setb green_flash
clr red_flash
clr orange_flash
clr red
; mov addr,#0f8h
; mov r6,addr
;mov r0,#60h
;LCALL i2c_read
;mov pin_lengTH,67h
;mov pin_row,66h
mov r0,#50h
mov pin_digit,#0
clr ad_pin
add_pin1:lcall key_scan
cjne a,#13h,add_pin2
jbc ad_pin,add_pin0
jmp set_up21
add_pin2:cjne a,#11h,add_3pin
clr ad_pin
MOV A,PIN_LENGTH ;;;;;JIA
cjne a,pin_digit,add_pin4
MOV A,PIN_DIGIT
CJNE A,#4,ADD_5PIN
MOV @R0,#0FH
INC R0
MOV @R0,#0FH
ADD_5PIN:mov a,pin_row
cjne a,#20,add_pin5
jmp add_pin4
ADD_3PIN:JMP ADD_PIN3
add_pin5:jc add_pin6
mov pin_row,#0
add_pin6:LCALL READD_PIN
ADD_6PIN:mov a,pin_row
mov b,#8
mul ab
mov addr,a
mov r0,#50H
;MOV R7,#6
ADD_PIN7:CLR RED
CLR GREEN
clr wp
mov r6,addr
mov wr_digit,#8
lcall i2c_write
lcall del_10ms
lcall del_10ms
setb wp
ADD_PIN8:INC PIN_ROW
lcall del_10ms
add_pin10:mov r2,#6
ADD_PIN104:CPL green
cpl red
mov time,#250
lcall del_ms
djnz r2,add_pin104
jmp add_pin0
add_pin4:mov r2,#6
ADD_PIN44:clr green
cpl red
mov time,#250
lcall del_ms
djnz r2,add_pin44
jmp add_pin0
add_pin3:mov @r0,a
inc pin_digit
inc r0
setb ad_pin
jmp add_pin1
READD_PIN:MOV PIN_ROW1,PIN_ROW
MOV ADDR,#0
MOV ADDRS,#0
READD_PIN0:MOV R0,#50H
MOV A,PIN_ROW1
JZ ADD_6PIN
READD_PIN1:mov r0,#60h
mov r6,addr
lcall i2c_read
mov r1,#60h
mov r0,#50h
mov r7,#6
READD_PINr:mov a,@r1
XRL A,@R0
JNZ READD_PIN2
INC R0
INC r1
DJNZ R7,READD_PINr
JMP ADD_PIN4
READD_PIN2:INC ADDRS
MOV A,ADDRS
MOV B,#8
MUL AB
MOV ADDR,A
DEC PIN_ROW1
JMP READD_PIN0
sub_pin0:clr green_blink
clr red_blink
clr orange_blink
clr green_flash
setb red_flash
clr orange_flash
clr green
clr dis_pin
mov r0,#50h
mov pin_digit,#0
sub_pin1:lcall key_scan
cjne a,#13h,sub_pin2
jbc dis_pin,sub_pin0
jmp set_up21
sub_pin2:cjne a,#11h,sub_pin3
clr dis_pin
mov a,pin_lengTH
cjne a,pin_digit,sub_pin4
MOV A,PIN_DIGIT
CJNE A,#4,sub_5PIN
MOV @R0,#0FH
INC R0
MOV @R0,#0FH
sub_5PIN:mov a,pin_row
jz sub_pin4
cjne a,#20,sub_pin5
jmp sub_pin6
sub_pin5:jc sub_pin6
mov pin_row,#0
jmp sub_pin4
sub_pin6:MOV PIN_ROW1,PIN_ROW
mov addr,#0
mov addrs,#0
sub_pin10:mov r0,#50h
mov a,pin_row1
jz sub_pin4
sub_pin8:mov r0,#60h
mov r6,addr
lcall i2c_read
mov r0,#60h
mov r1,#50h
mov r7,#6
sub_pinr:mov a,@r1
xrl a,@r0
jnz sub_pin7
inc r0
inc r1
djnz r7,sub_pinr
jmp sub_pin9
sub_pin7:inc addrs
MOV A,ADDRS
MOV B,#8
MUL AB
MOV ADDR,A
DEC PIN_ROW1
JMP sub_PIN10
sub_pin4:mov r2,#6
sub_PIN44:clr green
cpl red
mov time,#250
lcall del_ms
djnz r2,sub_pin44
jmp sub_pin0
sub_pin3:inc pin_digit
mov @r0,a
inc r0
setb dis_pin
jmp sub_pin1
sub_pin9:clr red
clr green
sub_PIN11:dec pin_row1
sub_pin14:mov a,pin_row1
jz sub_pin12
;mov r7,#6
mov a,addr
add a,#8
mov addr,a
mov r0,#60h
sub_11pin:mov r6,addr
lcall i2c_read
;inc r0
; djnz r7,sub_11pin
; mov r7,#6
mov r1,#50h
mov r0,#60h
sub_11pinr:mov a,@r0
mov @r1,a
inc r0
inc r1
djnz r7,sub_11pinr
;mov r7,#6
mov a,addr
subb a,#8
mov addr,a
sub_pin13:clr wp;;;;;;;;;;;;;
mov r6,addr
mov r0,#50h
mov wr_digit,#8
lcall i2c_write
lcall del_10ms
lcall del_10ms
setb wp
;inc r0
;inc addr
;djnz r7,sub_pin13
dec pin_row1
mov a,addr
add a,#8
mov addr,a
jmp sub_pin14
sub_pin12:dec pin_row
lcall del_10ms
mov r2,#6
sub_pin15:CPL green
cpl red
mov time,#250
lcall del_ms
djnz r2,sub_pin15
jmp sub_pin0
time_delay:clr red
clr green
KEY_1234SCAN:LCALL blink_light
LCALL KEY_ON
JZ KEY_1234SCAN
LCALL del_10MS
LCALL KEY_ON
JZ KEY_1234SCAN
LCALL KEY_OUT
ANL A,#0FFH
JZ KEY_1234SCAN
LCALL BUZZER
PUSH ACC
key_off1:lcall key_on
jnz key_off1
pop acc
CLR BELL
CJNE A,#13H,TIME_DELAY1
JMP set_up21
blink_light:cpl red
setb green
mov time,#175
lcall del_ms
ret
time_delay1:mov time2,a
;clr wp
;mov addr,#0fdh
; mov 50h,a
; mov r0,#50h
;mov r6,addr
;mov wr_digit,#1
;lcall i2c_write
lcall del_10ms
;setb wp
ret
KEY_OUT:clr p2.6
setb p2.5
setb p2.4
setb p2.3
mov a,p2
ANL A,#07H
CJNE A,#07H,LINE_1
JMP LINE_2
LINE_1:CJNE A,#06H,KEY_OUT1
MOV A,#3
RET
KEY_OUT1:CJNE A,#05H,KEY_OUT2
MOV A,#2
RET
KEY_OUT2:CJNE A,#03H,KEY_OUT3
MOV A,#1
RET
KEY_OUT3:JMP NO_KEY0
LINE_2:clr p2.5
setb p2.6
setb p2.4
setb p2.3
mov a,p2
ANL A,#07H
CJNE A,#07H,LINE_3
JMP LINE_4
line_3:cjne a,#03h,no_key0
mov a,#4
ret
line_4:clr p2.3
setb p2.5
setb p2.4
setb p2.6
mov a,p2
ANL A,#07H
CJNE A,#07H,line_5
jmp no_key0
line_5:cjne a,#03h,no_key0
mov a,#13h
ret
no_key0:mov a,#0
ret
PIN_46DIGIT:CLR RED
CLR GREEN
;MOV ADDR,#0F8H
;mov r6,addr
;mov r0,#60h
;LCALL i2c_read
;MOV pin_length,67h
MOV a,pin_length
cJNE A,#6,PIN_46DIGIT1
MOV PIN_LENGTH,#4
MOV TIME,#250
CLR RED
CLR GREEN
LCALL DEL_MS
SETB RED
SETB GREEN
LCALL DEL_MS
CLR RED
CLR GREEN
LCALL DEL_MS
lcall del_ms
RET
PIN_46DIGIT1:MOV PIN_LENGTH,#6
MOV TIME,#250
CLR RED
CLR GREEN
lcall del_ms
SETB RED
CLR GREEN
LCALL DEL_MS
CLR RED
CLR GREEN
lcall del_ms
RET
BY_PASS:CLR RED
CLR GREEN
;MOV ADDR,#0F8H
;mov r6,addr
;mov r0,#60h
;LCALL i2c_read
;MOV BYPASS,64h
mov a,bypass
CJNE A,#5,BY_PASS1
MOV bypass,#0FH
MOV TIME,#250
CLR RED
CLR GREEN
LCALL DEL_MS
SETB RED
SETB GREEN
LCALL DEL_MS
CLR RED
CLR GREEN
lcall del_ms
lcall del_ms
RET
BY_PASS1:MOV BYPASS,#5
MOV TIME,#250
CLR RED
CLR GREEN
lcall del_ms
SETB RED
CLR GREEN
LCALL DEL_MS
CLR RED
CLR GREEN
lcall del_ms
RET
permanent_lock:CLR RED
CLR GREEN
mov a,permanent
CJNE A,#6,permanent_lock1
MOV permanent,#0FH
clr red
clr green
mov time,#250
LCALL DEL_MS
setb red
setb green
lcall del_ms
clr red
clr green
lcall del_ms
lcall del_ms
RET
permanent_lock1:MOV permanent,#6
clr red
clr green
mov time,#250
LCALL DEL_MS
clr green
setb red
lcall del_ms
clr red
clr green
lcall del_ms
ret
remove_door:CLR RED
CLR GREEN
mov a,remove
CJNE A,#7,remove_door1
MOV remove,#0FH
clr red
clr green
mov time,#250
lcall del_ms
setb red
setb green
lcall del_ms
clr red
clr green
lcall del_ms
lcall del_ms
RET
remove_door1:MOV remove,#7
clr red
clr green
mov time,#250
lcall del_ms
setb red
clr green
lcall del_ms
clr red
clr green
lcall del_ms
RET
master:clr green_blink
clr red_blink
clr orange_blink
setb orange_flash
clr red_flash
clr green_flash
clr red
clr green
mov r0,#60h
mov mpin,#0
master0:lcall key_scan
cjne a,#13h,master1
jbc ma_pin,master
jmp set_up21
master1:cjne a,#11h,master2
clr ma_pin
mov a,mpin
cjne a,#4,master3
mov @R0,60h
inc r0
mov @r0,61h
inc r0
mov @r0,62h
inc r0
mov @r0,63h
mov addr,#0f0h
clr wp
;mov r7,#4
master4:mov r6,addr
mov r0,#60h
mov wr_digit,#8
LCALL i2c_write
lcall del_10ms
lcall del_10ms
setb wp
;inc r0
;inc addr
;djnz r7,master4
setb green
setb red
mov time,#250
lcall del_ms
lcall del_ms
clr red
clr green
lcall del_ms
jmp set_up21
master2:mov @r0,a
inc r0
inc mpin
setb ma_pin
jmp master0
master3:clr green
setb red
mov time,#250
lcall del_ms
lcall del_ms
clr red
clr green
lcall del_ms
jmp master
waitp:;clr wp
mov r0,#50h
mov a,pin_length
swap a
orl a,time2
mov @r0,a ;1
inc r0
mov a,bypass
swap a
orl a,permanent
mov @r0,a ;2
inc r0
mov a,remove
swap a
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -