English
Language : 

PIC16F1847_13 Datasheet, PDF (119/440 Pages) Microchip Technology – 18/20/28-Pin Flash Microcontrollers with XLP Technology
12.3 PORTA Registers
12.3.1 DATA REGISTER
PORTA is a 8-bit wide, bidirectional port. The
corresponding data direction register is TRISA
(Register 12-4). 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). The exception is RA5, which is
input only and its TRIS bit will always read as ‘1’.
Example 12-1 shows how to initialize PORTA.
Reading the PORTA register (Register 12-3) 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 (LATA).
12.3.2 DIRECTION CONTROL
The TRISA register (Register 12-4) 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’.
Note:
The ANSELA register must be initialized
to configure an analog channel as a digital
input. Pins configured as analog inputs
will read ‘0’.
EXAMPLE 12-1:
BANKSEL PORTA
CLRF PORTA
BANKSEL LATA
CLRF LATA
BANKSEL ANSELA
CLRF ANSELA
BANKSEL TRISA
MOVLW 0Ch
MOVWF TRISA
INITIALIZING PORTA
;
;Init PORTA
;Data Latch
;
;
;digital I/O
;
;Set RA<3:2> as inputs
;and set RA<7:4,1:0>
;as outputs
12.3.3 WEAK PULL-UPS
Each of the PORTA pins has an individually configurable
internal weak pull-up. Control bit WPUA<5> enables or
disables the pull-up (see Register 12-6). The weak
pull-up is automatically turned off when the port pin is
configured as an output. The pull-up is disabled on a
Power-on Reset by the WPUEN bit of the
OPTION_REG register.
PIC16(L)F1847
12.3.4 ANALOG CONTROL
The ANSELA register (Register 12-7) is used to
configure the Input mode of an I/O pin to analog.
Setting the appropriate ANSELA bit high will cause all
digital reads on the pin to be read as ‘0’ and allow
analog functions on the pin to operate correctly.
The state of the ANSELA bits has no affect on digital
output functions. A pin with TRIS clear and ANSEL set
will still operate as a digital output, but the Input mode
will be analog. This can cause unexpected behavior
when executing read-modify-write instructions on the
affected port.
The TRISA register (Register 12-4) 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’.
Note:
The ANSELA register must be initialized
to configure an analog channel as a digital
input. Pins configured as analog inputs
will read ‘0’.
 2011-2013 Microchip Technology Inc.
Preliminary
DS40001453D-page 119