English
Language : 

PIC16F946 Datasheet, PDF (29/274 Pages) Microchip Technology – 64-Pin Flash-Based, 8-Bit CMOS Microcontrollers with LCD Driver and nanoWatt Technology
3.0 I/O PORTS
This device includes four 8-bit port registers along with
their corresponding TRIS registers and one four bit
port:
• PORTA and TRISA
• PORTB and TRISB
• PORTC and TRISC
• PORTD and TRISD
• PORTE and TRISE
• PORTF and TRISF
• PORTG and TRISG
3.1 PORTA and TRISA Registers
PORTA is a 8-bit wide, bidirectional port. The
corresponding data direction register is TRISA
(Register 3-2). 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.
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).
Reading the PORTA register (Register 3-1) 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 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 input always read
‘0’.
Note 1: The CMCON0 (9Ch) register must be
initialized to configure an analog channel
as a digital input. Pins configured as
analog inputs will read ‘0’.
2: Analog lines that carry LCD signals
(i.e., SEGx, COMy, where x and y are
segment and common identifiers) are
shown as direct connections to the device
pins. The signals are outputs from the
LCD module and may be tri-stated,
depending on the configuration of the
LCD module.
PIC16F946
EXAMPLE 3-1: INITIALIZING PORTA
BCF
BCF
CLRF
BSF
BCF
MOVLW
MOVWF
CLF
MOVLW
MOVWF
STATUS,RP0
STATUS,RP1
PORTA
STATUS,RP0
STATUS,RP1
07h
CMCON0
ANSEL
F0h
TRISA
BCF
STATUS,RP0
BCF
STATUS,RP1
;Bank 0
;
;Init PORTA
;Bank 1
;
;Set RA<2:0> to
;digital I/O
;Make all PORTA I/O
;Set RA<7:4> as inputs
;and set RA<3:0>
; as outputs
;Bank 0
;
© 2005 Microchip Technology Inc.
Preliminary
DS41265A-page 27