PIC16F913/914/916/917/946
The TRISA register controls the direction of the PORTA
pins, even when they are being used as analog inputs.
The user must ensure the bits in the TRISA register are
maintained set when using them as analog inputs. I/O
pins configured as analog inputs always read ‘0’.
3.2
PORTA and TRISA Registers
PORTA is
a 8-bit wide, bidirectional port. The
corresponding data direction register is TRISA
(Register 3-3). Setting a TRISA bit (= 1) will make the
corresponding PORTA pin an input (i.e., put the
corresponding output driver in a High-Impedance mode).
Clearing a TRISA bit (= 0) will make the corresponding
PORTA pin an output (i.e., put the contents of the output
latch on the selected pin). Example 3-1 shows how to
initialize PORTA.
Note 1: The CMCON0 and ANSEL registers must
be initialized to configure an analog
channel as a digital input. Pins configured
as analog inputs will read ‘0’.
Five of the pins of PORTA can be configured as analog
inputs. These pins, RA5 and RA<3:0>, are configured
as analog inputs on device power-up and must be
reconfigured by the user to be used as I/O’s. This is
done by writing the appropriate values to the CMCON0
and ANSEL registers (see Example 3-1).
EXAMPLE 3-1:
INITIALIZING PORTA
BANKSEL PORTA
;
CLRF
PORTA
;Init PORTA
BANKSEL TRISA
;
MOVLW
MOVWF
CLRF
MOVLW
MOVWF
07h
;Set RA<2:0> to
CMCON0 ;digital I/O
ANSEL
0F0h
Reading the PORTA register (Register 3-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 means that the
port pins are read, this value is modified and then written
to the PORT data latch.
;Make all PORTA digital I/O
;Set RA<7:4> as inputs
;and set RA<3:0> as outputs
TRISA
REGISTER 3-2:
PORTA: PORTA REGISTER
R/W-x
RA7
R/W-x
RA6
R/W-x
RA5
R/W-x
RA4
R/W-x
RA3
R/W-x
RA2
R/W-x
RA1
R/W-x
RA0
bit 7
bit 0
Legend:
R = Readable bit
-n = Value at POR
W = Writable bit
‘1’ = Bit is set
U = Unimplemented bit, read as ‘0’
‘0’ = Bit is cleared
x = Bit is unknown
bit 7-0
RA<7:0>: PORTA I/O Pin bits
1= Port pin is >VIH min.
0= Port pin is <VIL max.
REGISTER 3-3:
TRISA: PORTA TRI-STATE REGISTER
R/W-1
TRISA7
bit 7
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
TRISA6
TRISA5
TRISA4
TRISA3
TRISA2
TRISA1
TRISA0
bit 0
Legend:
R = Readable bit
-n = Value at POR
W = Writable bit
‘1’ = Bit is set
U = Unimplemented bit, read as ‘0’
‘0’ = Bit is cleared
x = Bit is unknown
bit 7-0
TRISA<7:0>: PORTA Tri-State Control bits
1= PORTA pin configured as an input (tri-stated)
0= PORTA pin configured as an output
Note 1: TRISA<7:6> always reads ‘1’ in XT, HS and LP Oscillator modes.
DS41250F-page 44
© 2007 Microchip Technology Inc.