Datasheet

2010-2012 Microchip Technology Inc. DS41413C-page 121
PIC12(L)F1822/PIC16(L)F1823
12.0 I/O PORTS
Depending on the device selected and peripherals
enabled, there are up to two ports available. In general,
when a peripheral is enabled, that pin may not be used
as a general purpose I/O pin.
Each port has three standard registers for its operation.
These registers are:
TRISx registers (data direction)
PORTx registers (reads the levels on the pins of
the device)
LATx registers (output latch)
Some ports may have one or more of the following
additional registers. These registers are:
ANSELx (analog select)
WPUx (weak pull-up)
INLVLx (input level control)
The Data Latch (LATx registers) is useful for
read-modify-write operations on the value that the I/O
pins are driving.
A write operation to the LATx register has the same
affect as a write to the corresponding PORTx register.
A read of the LATx register reads of the values held in
the I/O PORT latches, while a read of the PORTx
register reads the actual I/O pin value.
Ports with analog functions also have an ANSELx
register which can disable the digital input and save
power. A simplified model of a generic I/O port, without
the interfaces to other peripherals, is shown in
Figure 12-1.
FIGURE 12-1: GENERIC I/O PORT
OPERATION
TABLE 12-1: PORT AVAILABILITY PER
DEVICE
Device
PORTA
PORTC
PIC12(L)F1822
PIC16(L)F1823 ●●
QD
CK
Write LATx
Data Register
I/O pin
Read PORTx
Write PORTx
TRISx
Read LATx
Data Bus
To peripherals
ANSELx
VDD
VSS