Datasheet

2009 Microchip Technology Inc. Preliminary DS41364D-page 139
PIC16F193X/LF193X
12.4 PORTC Registers
PORTC is a 8-bit wide, bidirectional port. The
corresponding data direction register is TRISC
(Register 12-12). 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.
Reading the PORTC register (Register 12-11) 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).
The TRISC register (Register 12-12) 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’.
EXAMPLE 12-3: INITIALIZING PORTC
12.4.1 PORTC FUNCTIONS AND OUTPUT
PRIORITIES
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.
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.
RC0
1. T1OSO (Timer1 Oscillator)
2. CCP2/P2B
3. RC0
RC1
1. T1OSI (Timer1 Oscillator)
2. CCP2/P2A
3. RC1
RC
2
1. SEG3 (LCD)
2. CCP1/P1A
3. RC2
RC3
1. SEG6 (LCD)
2. SCL (MSSP)
3. SCK (MSSP)
4. RC3
RC4
1. SEG11 (LCD)
2. SDA (MSSP)
3. RC4
RC5
1. SEG10 (LCD)
2. SDO (MSSP)
3. RC5
RC6
1. SEG9 (LCD)
2. TX (EUSART)
3. CK (EUSART)
4. CCP3/P3A, 28-pin only
5. RC6
RC7
1. SEG8 (LCD)
2. DT (EUSART)
3. CCP3/P3B, 28 pin only
4. RC7
BANKSEL PORTC ;
CLRF PORTC ;Init PORTC
BANKSEL LATC ;Data Latch
CLRF LATC ;
BANKSEL ANSELC ;
CLRF ANSELC ;digital I/O
BANKSEL TRISC ;
MOVLW B'11110000' ;Set RC<7:4> as inputs
MOVWF TRISC ;and set RC<3:0> as
;outputs