Information

PIC16C712/716
DS80072D-page 4 2003 Microchip Technology Inc.
Code Example 2B:
;***********************************************************************
; Call these routines to turn the CCP Mode off or on and ensure RB3 is a known
; Input or Output value when CCP Mode is off.
;
; CCPstop - First sets RB3 to an Input or an Output. If RB3 is an Output then it’s state
; is made either High or Low. The CCP is then Disabled.
;
; CCPstart - Enable CCP Mode. IT IS THE RESPONSIBILITY OF THE USER TO DETERMINE THE CORRECT
; VALUE FOR CCP1CON.
Assembly Code To Stop CCP Mode Once Started:
CCP1CONSAV equ 0X?? ; USER IS RESPONSIBLE FOR SUPPLYING RAM MEMORY SPACE
; TO SAVE CCP2CON VALUE.
CCPstop
bsf STATUS,RP0 ; Select Bank 1
bcf TRISB,3 ; RB3 as an Output - set bit TRISB, 3 when RB3
; as an Input is desired.
bcf STATUS,RP0 ; Select Bank 0
bcf PORTB,3 ; RB3 as a Low Level Output - set bit PORTB,3
; for RB3 to be a High Level
; Output.
movf CCP1CON,W ; Move CCP1CON to ‘W’ register
movwf CCP1CONSAV ; Save CCP1CON register value
movlw 0x30 ; Load CCP1CON value in Working register
movwf CCP1CON ; Turn Off CCP1CON all Modes
return
Assembly Code To Start CCP Mode Once Stopped:
CCPstart
bcf STATUS,RP0 ; Select Bank 0
movf CCP1CONSAV,W ; Move CCP1CONSAV value to ‘W’ register
movwf CCP1CON ; Restore CCP1CON to desired Mode of operation.
return