技术热线: 4007-888-234

8路双稳遥控开关PCB

更新时间: 2019-03-26
阅读量:2215

*********************8路遥控开关**************************
;
          SIGNAL EQU   3H
          BAORD1 EQU   2H
          BAORD2 EQU   1H
          BAORD3 EQU   0H
          BAORD4 EQU   3H

          ORG    0H
INTI:
          MOVLW  00000000B
          MOVWF  PORTC
          TRIS   PORTC
          MOVWF  PORTC
          MOVLW  11111111B
          TRIS   PORTA
          TRIS   PORTB
          CLRF   WEI1
;-------------------------------------------------------------
;检测有无信号
CHECK:

 BTFSS  PORTB,SIGNAL
          GOTO   $-1
          SWAPF  PORTB,W
          ANDLW  00001111B
          ADDWF  PCL,F
          NOP
          GOTO   K1  ;按键1
          GOTO   K2  ;按键2
          GOTO   K3  ;按键3
          GOTO   K4  ;按键4
          GOTO   K5  ;按键5
          GOTO   K6  ;按键6
          GOTO   K7  ;按键7
          GOTO   K8  ;按键8
          GOTO   K9  ;按键9
          GOTO   K10  ;按键10
          GOTO   K11  ;按键11
          GOTO   K12  ;按键12
          GOTO   CHECK
;-----------------------------------------------------------
K1:
          BTFSS  WEI1,0    ;检测组群信号

       GOTO   CHECK
          MOVLW  10000000B
          XORWF  PORTC,F   ;双稳反转
          BTFSC  PORTB,SIGNAL ;检测遥控器 按键是否松开
          GOTO   $-1
          GOTO   CHECK
K2:
          BTFSS  WEI1,0
          GOTO   CHECK
          MOVLW  01000000B
          XORWF  PORTC,F
          BTFSC  PORTB,SIGNAL
          GOTO   $-1
          GOTO   CHECK
K3:
          BTFSS  WEI1,0
          GOTO   CHECK
          MOVLW  00100000B
          XORWF  PORTC,F
          BTFSC  PORTB,SIGNAL
          GOTO   $-1
          GOTO   CHECK
K4:
          BTFSS  WEI1,0
          GOTO   CHECK
          MOVLW  00010000B
          XORWF  PORTC,F
          BTFSC  PORTB,SIGNAL
          GOTO   $-1

GOTO   CHECK
K5:
          BTFSS  WEI1,0
          GOTO   CHECK
          MOVLW  00001000B
          XORWF  PORTC,F
          BTFSC  PORTB,SIGNAL
          GOTO   $-1
          GOTO   CHECK
K6:
          BTFSS  WEI1,0
          GOTO   CHECK
          MOVLW  00000100B
          XORWF  PORTC,F
          BTFSC  PORTB,SIGNAL

      GOTO   $-1
          GOTO   CHECK
K7:
          BTFSS  WEI1,0
          GOTO   CHECK
          MOVLW  00000010B
          XORWF  PORTC,F
          BTFSC  PORTB,SIGNAL
          GOTO   $-1
          GOTO   CHECK
K8:
          BTFSS  WEI1,0
          GOTO   CHECK
          MOVLW  00000001B
          XORWF  PORTC,F
          BTFSC  PORTB,SIGNAL
          GOTO   $-1
          GOTO   CHECK
K9:
          CLRF   WEI1
          BTFSS  PORTB,BAORD1
          GOTO   CHECK
          BSF    WEI1,0
          GOTO   CHECK
K10:

 CLRF   WEI1
          BTFSS  PORTB,BAORD2
          GOTO   CHECK
          BSF    WEI1,0
          GOTO   CHECK
K11:
          CLRF   WEI1
          BTFSS  PORTB,BAORD3
          GOTO   CHECK
          BSF    WEI1,0
          GOTO   CHECK
K12:
          CLRF   WEI1
          BTFSS  PORTA,BAORD4
          GOTO   CHECK
          BSF    WEI1,0
          GOTO   CHECK
          ORG    7FFH

 GOTO   INTI
          END