;********************************************************************* ; * ; PIC16C7X Tutorial 6: Register Banking * ; * ;********************************************************************* ;* TARGET PIC16C7X ;********************************************************************* ;* @version 0.1, 14 October 2001 ;* @author James Caska ;********************************************************************* ;* ;* Runs on Processors without change ;* ;* PIC16c715 ;* ;********************************************************************* #include list p=16C715 UniqueAddress EQU 20H ORG .0 GOTO START IndirectBank0 BCF FSR,7 RETURN IndirectBank1 BSF FSR,7 RETURN DirectBank0 BCF STATUS,RP0 RETURN DirectBank1 BSF STATUS,RP0 RETURN DirectUniqueBanks CALL DirectBank0 MOVLW .1 MOVWF UniqueAddress CALL DirectBank1 MOVLW .2 MOVWF UniqueAddress CALL DirectBank0 MOVF UniqueAddress,W XORLW .1 BTFSS STATUS,Z GOTO FAIL CALL DirectBank1 MOVF UniqueAddress,W XORLW .2 BTFSS STATUS,Z GOTO FAIL CALL DirectBank0 ;Restore Bank0 RETURN IndirectUniqueBanks MOVLW UniqueAddress MOVWF FSR CALL IndirectBank0 MOVLW .1 MOVWF INDF CALL IndirectBank1 MOVLW .2 MOVWF INDF CALL IndirectBank0 MOVF INDF,W XORLW .1 BTFSS STATUS,Z GOTO FAIL CALL IndirectBank1 MOVF INDF,W XORLW .2 BTFSS STATUS,Z GOTO FAIL RETURN START CLRF PORTB ;========================================== ;Autogenerated configuration code PIC16C7X ;Config Wiz V0.1, www.virtualbreadboard.com ;========================================== ;======Begin PORT Configuration BSF STATUS,RP0 ;Set Bank1 ;======PORT B MOVLW .0 ;PORTB Configuration Bits MOVWF TRISB BCF STATUS,RP0 ;Restore Bank0 MAIN CALL DirectUniqueBanks CALL IndirectUniqueBanks PASS MOVLW .1 MOVWF PORTB SLEEP NOP FAIL MOVLW .2 MOVWF PORTB SLEEP NOP END