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

📄 sx.asm

📁 一个用P89LPC935单片机发射信号的无线遥控器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
              CPL        YK
              MOV        A,#MIMA1+32H
              CLR        C
              SUBB       A,YS_1
              MOV        R0,A
              MOV        A,@R0
              MOV        SJ_DZ,A
              DJNZ       YS_1,TRIMER0_END
              MOV        YS_1,#32H
              DJNZ       YS_2,TRIMER0_END
              MOV        R0,#MIMA1+30H
              CLR        A
              MOV        @R0,A
              INC        R0
              MOV        @R0,A
              MOV        MIMA15,#0
              CLR        YS_FX
              SETB       ET1
              CLR        ET0
              CLR        TF1
              SJMP       TRIMER0_END
TRIMER0_1:    CLR        YK
              CLR        ET1
              MOV        A,YS_2
              ANL        A,#0FH
              MOV        YS_2,A
TRIMER0_END:  POP        PSW
              POP        A
              RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TRIMER1:      PUSH       A
              PUSH       DPL
              PUSH       DPH
              PUSH       PSW
              MOV        PSW,#08H
              CLR        YK
              INC        AJ_YS
              INC        HSECOND
              MOV        A,HSECOND
              JNZ        TRIMER1_2
              MOV        HSECOND,#0
              INC        SECOND
TRIMER1_2:    MOV        A,SECOND
              CLR        C
              SUBB       A,#48
              JC         TRIMER1_1
              CLR        LED1
              SETB       LED2
              SETB       LED3
              CLR        LED4
              CLR        YJ
              MOV        P2,#80H
              MOV        A,SECOND
              CLR        C
              SUBB       A,#255
              JC         TRIMER1_END
              CLR        EA
              NOP
              CLR        EA

DUANDIAN:     CLR        DANYUAN
              NOP
              CLR        EA
              LJMP       DUANDIAN
TRIMER1_1:    LCALL      SX
TRIMER1_END:  POP        PSW
              POP        DPH
              POP        DPL
              POP        A
              RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SX5_1:        MOV        P2,#0
              RET
              ;;;;;;;;;;;;;;;;;;;;;;
SX:           JB         ERROR,SX6
              MOV        DPTR,#TAB_LED
              MOV        A,SX_W
              INC        A
              ANL        A,#XS_ZKB
              MOV        SX_W,A
              JZ         SX3
              DEC        A
              JZ         SX2
              DEC        A
              JZ         SX1
              DEC        A
              JNZ        SX5_1
              CLR        LED3
              SETB       LED4
              MOV        A,MI4
              MOVC       A,@A+DPTR
              JNB        DZ_P,SX_6
              ORL        A,#080H
SX_6:         MOV        P2,A
              SJMP       SX5
SX1:          CLR        LED2
              JB         SX_W3,SX5
              SETB       LED3
              MOV        A,MI3
              MOVC       A,@A+DPTR
              MOV        P2,A
              SJMP       SX5
SX2:          CLR        LED1
              JB         SX_W2,SX5
              SETB       LED2
              MOV        A,MI2
              MOVC       A,@A+DPTR
              MOV        P2,A
              SJMP       SX5
SX3:          CLR        LED4
              JB         SX_W1,SX5
              SETB       LED1
              MOV        A,MI1
              MOVC       A,@A+DPTR
              MOV        P2,A
SX5:
              MOV        A,SX_W_X1
              ADD        A,#40H
              MOV        SX_W_X1,A
              MOV        A,SX_W_X
              ADDC       A,#0
              MOV        SX_W_X,A
              CLR        C
              SUBB       A,#80H
              JC         SX5_9
              MOV        A,LCD_WZ
              JNZ        SX5_8
              CLR        LED1
              SJMP       SX5_9
SX5_8:        DEC        A
              JNZ        SX5_7
              CLR        LED2
              SJMP       SX5_9
SX5_7:        DEC        A
              JNZ        SX5_6
              CLR        LED3
              SJMP       SX5_9
SX5_6:        DEC        A
              JNZ        SX5_9
              CLR        LED4
SX5_9:        RET


SX6:          CLR        LED1
              MOV        A,SX_W
              INC        A
              ANL        A,#XS_ZKB
              MOV        SX_W,A
              JZ         SX6_1
              DEC        A
              JZ         SX6_2
              DEC        A
              JZ         SX6_3
              DEC        A
              JNZ        SX6_4
              CLR        LED3
              SETB       LED4
              MOV        P2,#50H
              LJMP       SX6_1
SX6_3:        CLR        LED2
              SETB       LED3
              MOV        P2,#50H
              LJMP       SX6_1
SX6_2:        CLR        LED4
              SETB       LED2
              MOV        P2,#79H
              LJMP       SX6_1
SX6_1:        RET
SX6_4:        MOV        P2,#0
              RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY_WZ:       MOV        A,MI1
              JNZ        KEY_WZ_1
              MOV        A,LCD_WZ
              JZ         KEY_WZ_1
              SETB       SX_W1
              DEC        A
              JZ         KEY_WZ_2
              MOV        A,MI2
              JNZ        KEY_WZ_2
              SETB       SX_W2
              MOV        A,MI3
              JNZ        KEY_WZ_3
              MOV        A,LCD_WZ
              DEC        A
              DEC        A
              JZ         KEY_WZ_3
              SETB       SX_W3
              SJMP       KEY_WZ_4
KEY_WZ_1:     CLR        SX_W1
KEY_WZ_2:     CLR        SX_W2
KEY_WZ_3:     CLR        SX_W3
KEY_WZ_4:     RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY_ON:       JNB        YJ,TIMER_BG
              CLR        ERROR    ;;P06分   P07合   P10闭   P11解     P14左       P13下     P01确认
              MOV        A,KEY_SC
              RL         A
              ADD        A,KEY_SC
              MOV        KEY_SC,#0
              MOV        DPTR,#KEY_JP
              JMP        @A+DPTR
              NOP
KEY_JP:       LJMP       TIMER_BG
              LJMP       KEY_HE
              LJMP       KEY_FEN
              LJMP       KEY_BISUO
              LJMP       KEY_JIESUO
              LJMP       KEY_ZUO
              LJMP       KEY_XIA
              LJMP       KEY_QIREN
              NOP
              NOP
TIMER_BG:     SETB       YJ
              RET
KEY_HE:       MOV        MIMA15,#11000000B    ;合闸
              LJMP       TIMER_BG1
KEY_FEN:      MOV        MIMA15,#00110000B    ;分闸
              LJMP       TIMER_BG1
KEY_BISUO:    MOV        MIMA15,#00001100B    ;闭锁
              LJMP       TIMER_BG1
KEY_JIESUO:   MOV        MIMA15,#00000011B    ;解锁
TIMER_BG1:    JB         XH_P,TIMER_BG2
              MOV        MIMA15,#0
              LJMP       TIMER_BG
TIMER_BG2:    LCALL      SJ_BM
              LJMP       TIMER_BG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY_ZUO:      CLR        XH_P
              MOV        MIMA11,#0             ;??????????????
              MOV        A,LCD_WZ
              DEC        A
              ANL        A,#03H
              MOV        LCD_WZ,A
              LCALL      KEY_WZ
              LJMP       TIMER_BG
KEY_XIA:      CLR        XH_P
              MOV        MIMA11,#0            ;?????????????????
              MOV        A,LCD_WZ
              JNB        ACC.2,KEY_XIA1
              MOV        LCD_WZ,#3
KEY_XIA1:     MOV        A,#LCD_WZ+1
              ADD        A,LCD_WZ
              MOV        R0,A
              MOV        A,@R0
              INC        A
              MOV        @R0,A
              CLR        C
              SUBB       A,#10
              JC         TIMER_BG
              CLR        A
              MOV        @R0,A
              LJMP       TIMER_BG
KEY_QIREN:    JNB        DZ_P,KEY_QIREN1
              CLR        DZ_P
              CLR        XH_P
              MOV        LCD_WZ,#3
              LCALL      WR_MIMA
              MOV        A,MIMA_DPH
              ANL        A,#0FH
              MOV        MI2,A
              MOV        A,MIMA_DPH
              SWAP       A
              ANL        A,#0FH
              MOV        MI1,A
              MOV        A,MIMA_DPL
              ANL        A,#0FH
              MOV        MI4,A
              MOV        A,MIMA_DPL
              SWAP       A
              ANL        A,#0FH
              MOV        MI3,A
TIMER_BG9:    LCALL      KEY_WZ
              RET
KEY_QIREN1:   JB          XH_P,TIMER_BG9
              MOV         LCD_WZ,#4
              MOV         A,MI1
              SWAP        A
              ORL         A,MI2
              MOV         MIMA_DPH,A
              MOV         A,MI3
              SWAP        A
              ORL         A,MI4
              MOV         MIMA_DPL,A
              LCALL       DU_MIMA
              CLR         DZ_P
              SETB        XH_P
              LCALL       KEY_WZ
              RET
KEY_ON_ON:    JNB        YJ,KEY_ON_ON1
              CLR         ERROR
              MOV         A,KEY_SC ;P01确认 567  P14左       P13下
              CLR         C
              SUBB        A,#5
              JZ          KEY_ON_ON9
              DEC         A
              JZ          KEY_ON_ON9
              DEC         A
              JNZ         KEY_ON_ON1
              JB          DZ_P,KEY_QIREN
              MOV         A,MI1
              SWAP        A
              ORL         A,MI2
              MOV         MIMA_DPH,A
              MOV         A,MI3
              SWAP        A
              ORL         A,MI4
              MOV         MIMA_DPL,A
              ADD         A,MIMA_DPH
              JZ          KEY_ON_ON1
              SETB        DZ_P
              CLR         XH_P
              LCALL       DU_MIMA
              MOV         A,DQ_SJ_H
              ANL         A,#0FH
              MOV         MI2,A
              MOV         A,DQ_SJ_H
              SWAP        A
              ANL         A,#0FH
              MOV         MI1,A
              MOV         A,DQ_SJ_L
              ANL         A,#0FH
              MOV         MI4,A
              MOV         A,DQ_SJ_L
              SWAP        A
              ANL         A,#0FH
              MOV         MI3,A
              MOV         LCD_WZ,#3          ;??????????
              LCALL       KEY_WZ
KEY_ON_ON1:   SETB        YJ
              RET
KEY_ON_ON9:   LJMP       DUANDIAN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;P06分   P07合   P10闭   P11解     P14左       P13下     P01确认
KEY_ZHSM:     MOV        A,#0H
              MOV        B,#0
              JB         P0.6,KEY_ZHSM_1
              INC        A
              MOV        B,#01
KEY_ZHSM_1:   JB         P0.7,KEY_ZHSM_2
              INC        A
              MOV        B,#02
KEY_ZHSM_2:   JB         P1.0,KEY_ZHSM_3
              INC        A
              MOV        B,#03
KEY_ZHSM_3:   JB         P1.1,KEY_ZHSM_4
              INC        A
              MOV        B,#04
KEY_ZHSM_4:   JB         P1.4,KEY_ZHSM_5
              INC        A
              MOV        B,#05
KEY_ZHSM_5:   JB         P1.3,KEY_ZHSM_6
              INC        A
              MOV        B,#06
KEY_ZHSM_6:   JB         P0.1,KEY_ZHSM_7
              INC        A
              MOV        B,#07
KEY_ZHSM_7:   JZ         KEY_ZHSM_22          ;没有按键
              MOV        HSECOND,#0
              MOV        SECOND,#0
              DEC        A
              JNZ        KEY_ZHSM_21          ;有双按键
              JB         KEY_YCL,KEY_ZHSM_END
              MOV        ST2,#KEY_DK_YS
              MOV        A,B                  ;有按键
              CLR        C
              SUBB       A,KEY_SC
              JZ         KEY_ZHSM_12

⌨️ 快捷键说明

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