Microchip Technology AC164112 Data Sheet

Page of 302
PIC16F72X/PIC16LF72X
DS41341E-page 54
© 2009 Microchip Technology Inc.
6.2
PORTA and the TRISA Registers
PORTA is a 8-bit wide, bidirectional port. The
corresponding data direction register is TRISA
(Register 6-3). Setting a TRISA bit (= 1) will make the
corresponding PORTA pin an input (i.e., disable the
output driver). Clearing a TRISA bit (= 0) will make the
corresponding PORTA pin an output (i.e., enables
output driver and puts the contents of the output latch
on the selected pin). Example 6-1 shows how to
initialize PORTA.
Reading the PORTA register (Register 6-2) 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.
The TRISA register (Register 6-3) controls the PORTA
pin output drivers, even when they are being used as
analog inputs. The user should ensure the bits in the
TRISA register are maintained set when using them as
analog inputs. I/O pins configured as analog input
always read ‘0’.
EXAMPLE 6-1:
INITIALIZING PORTA
Note:
The ANSELA register must be initialized to
configure an analog channel as a digital
input. Pins configured as analog inputs will
read ‘0’.
BANKSEL PORTA
;
CLRF
PORTA
;Init PORTA
BANKSEL ANSELA
;
CLRF ANSELA
;digital 
I/O
BANKSEL TRISA
;
MOVLW
0Ch
;Set RA<3:2> as inputs
MOVWF
TRISA
;and set RA<7:4,1:0>
;as outputs
REGISTER 6-2:
PORTA: PORTA REGISTER
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
RA7
RA6
RA5
RA4
RA3
RA2
RA1
RA0
bit 7
bit 0
Legend:
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as ‘0’
-n = Value at POR
‘1’ = Bit is set
‘0’ = Bit is cleared
x = Bit is unknown
bit 7-0
RA<7:0>: PORTA I/O Pin bit
1
 = Port pin is > V
IH
0
 = Port pin is < V
IL
REGISTER 6-3:
TRISA: PORTA TRI-STATE REGISTER
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TRISA7
TRISA6
TRISA5
TRISA4
TRISA3
TRISA2
TRISA1
TRISA0
bit 7
bit 0
Legend:
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as ‘0’
-n = Value at POR
‘1’ = Bit is set
‘0’ = Bit is cleared
x = Bit is unknown
bit 7-0
TRISA<7:0>: PORTA Tri-State Control bit
1
 = PORTA pin configured as an input (tri-stated)
0
 = PORTA pin configured as an output