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

📄 weigenshuchu.asm

📁 单片机用汇编编的韦根三十二韦根输出子程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
      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 + -