;------------------------------------------------------------------------------
;
; FUNCTION : ROT_SHIFT()
;
; DESCRIPTION : RIGHT ROTATE 64 BIT RECEIVE SHIFT REGISTER
;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
ROT_SHIFT
RRF CSR7,F
RRF CSR6,F
RRF CSR5,F
RRF CSR4,F
RRF CSR3,F
RRF CSR2,F
RRF CSR1,F;
RRF CSR0,F
RETLW 0
;------------------------------------------------------------------------------
;
; FUNCTION : TX_LOOKUP ()
;
; DESCRIPTION : TRANSMITTER ADDRESS CALCULATION
;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
TX_LOOKUP
MOVF TXNUM,W ; USE TRANSMITTER NUMBER TO CALCULATE
MOVWF ADDRESS ; ADDRESS OF TRANSMITER BLOCK
CLRC ; MULTIPLY BY 4
RLF ADDRESS,F
RLF ADDRESS,F
MOVLW 04H ; AND ADD 4
ADDWF ADDRESS,F
RETLW 0 ; RETURN
;------------------------------------------------------------------------------
;
; FUNCTION : TST_RTCC ()
;
; DESCRIPTION : UPDATE RTCC COUNTER
;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
TST_RTCC
CLRWDT ; RESET WATCHDOG TIMER
MOVLW TRISA ; UPDATE TRI-STATE REGISTER FOR PORTA
TRIS PORTA
BTFSS RTCC,7 ; TEST FOR 32MS TIMEOUT ON RTCC MSB
RETLW 0 ; ... DO QUICK RETURN TO RECEIVE ROUTINE
; **** INCREASE 16 BIT CLOCK TIMER *******
BCF RTCC,7 ; CLEAR MSB OF RTCC
INCF CNT_LW,F ; INCREASE 16 COUNTER
SKPNZ ; INCREASE UPPER BYTE IF ZERO ( OVERFLOW )
INCF CNT_HI,F
RETLW 0
;------------------------------------------------------------------------------
;
; FUNCTION : TST_TIMER()
;
; DESCRIPTION : TEST 32MS TIMER AND UPDATE OUTPUTS IF REQUIRED
;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
TST_TIMER
; ***** TEST FOR 500 MS TIMEMOUT ON OUTPUTS **********
BTFSS CNT_LW,4 ; TEST FOR 500 MS TIMEOUT
GOTO TST_30 ; ... IF NOT TEST 30S TIMEOUT
MOVLW 0F0H
ANDWF PORTB,F; DOWN ALL PULSE OUTPUTS
; ********* TEST FOR 30 S LEARN TIMEOUT *************
TST_30 BTFSS FLAGS,LRNF
GOTO TST_END
BTFSC CNT_HI,2 ; TEST FOR LEARN TIMEOUT
GOTO RESET ; ... IF LEARN TIMEMOUT FORCE SOFT RESET
TST_END
RETLW 0H
;------------------------------------------------------------------------------
;
; FUNCTION : SENDC ()
;
; DESCRIPTION : SEND EEPROM COMMAND
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

