PIC16F/LF1946/47
12.4.1
PORTC FUNCTIONS AND OUTPUT
PRIORITIES
12.4 PORTC Registers
PORTC is
a 8-bit wide, bidirectional port. The
Each PORTC pin is multiplexed with other functions. The
pins, their combined functions and their output priorities
are briefly described here. For additional information,
refer to the appropriate section in this data sheet.
corresponding data direction register is TRISC
(Register 12-11). Setting a TRISC bit (= 1) will make the
corresponding PORTC pin an input (i.e., put the
corresponding output driver in a High-Impedance mode).
Clearing a TRISC bit (= 0) will make the corresponding
PORTC pin an output (i.e., enable the output driver and
put the contents of the output latch on the selected pin).
Example 12-3 shows how to initialize PORTC.
When multiple outputs are enabled, the actual pin
control goes to the peripheral with the lowest number in
the following lists.
Analog input and some digital input functions are not
included in the list below. These input functions can
remain active when the pin is configured as an output.
Certain digital input functions override other port
functions and are included in the priority list.
Reading the PORTC register (Register 12-10) reads the
status of the pins, whereas writing to it will write to the
PORT latch. All write operations are read-modify-write
operations. Therefore, a write to a port implies that the
port pins are read, this value is modified and then written
to the PORT data latch (LATC).
RC0
1. T1OSO (Timer1 Oscillator)
2. T1CKI (TMR1)
3. SEG40 (ICD)
The TRISC register (Register 12-11) controls the
PORTC pin output drivers, even when they are being
used as analog inputs. The user should ensure the bits in
the TRISC register are maintained set when using them
as analog inputs. I/O pins configured as analog input
always read ‘0’.
RC1
1. T1OSI (Timer1 Oscillator)
2. CCP2/P2A
3. SEG32 (ICD)
EXAMPLE 12-3:
INITIALIZING PORTC
RC2
BANKSEL PORTC
;
CLRF
BANKSEL LATC
CLRF LATC
BANKSEL TRISC
PORTC
;Init PORTC
;Data Latch
;
;
1. SEG13 (LCD)
2. CCP1/P1A
RC3
MOVLW
MOVWF
B'11110000' ;Set RC<7:4> as inputs
1. SEG17 (LCD)
2. SCL1 (MSSP1)
3. SCK1 (MSSP1)
TRISC
;and set RC<3:0> as
;outputs
RC4
1. SEG16 (LCD)
2. SDA1 (MSSP1)
3. SDI1 (MSSP1)
RC5
1. SEG12 (LCD)
2. SDO1 (MSSP1)
RC6
1. SEG27 (LCD)
2. TX1 (EUSART1)
3. CK2 (EUSART1)
RC7
1. SEG28 (LCD)
2. DT1 (EUSART1)
3. RX1 (EUSART1)
2010 Microchip Technology Inc.
Preliminary
DS41414A-page 129