2003 Microchip Technology Inc.
Preliminary
DS70091A-page 17
rfPIC12F675
3.0
GPIO PORT
There are as many as six general purpose I/O pins
available.
Depending
on
which
peripherals
are
enabled, some or all of the pins may not be available as
general purpose I/O. In general, when a peripheral is
enabled, the associated pin may not be used as a
general purpose I/O pin.
3.1
GPIO and the TRISIO Registers
GPIO is an 6-bit wide, bi-directional port. The
corresponding data direction register is TRISIO.
Setting a TRISIO bit (= 1) will make the corresponding
GPIO pin an input (i.e., put the corresponding output
driver in a Hi-impedance mode). Clearing a TRISIO bit
(= 0) will make the corresponding GPIO pin an output
(i.e., put the contents of the output latch on the selected
pin). The exception is GP3, which is input only and its
how to initialize GPIO.
Reading the GPIO register reads the status of the pins,
whereas writing to it will write to the port latch. All write
operations are read-modify-write operations. There-
fore, a write to a port implies that the port pins are read,
this value is modified, and then written to the port data
latch. GP3 reads ‘0’ when MCLREN = 1.
The TRISIO register controls the direction of the
GP pins, even when they are being used as analog
inputs. The user must ensure the bits in the TRISIO
register are maintained set when using them as analog
inputs. I/O pins configured as analog inputs always
read ‘0’.
EXAMPLE 3-1:
INITIALIZING GPIO
3.2
Additional Pin Functions
Every GPIO pin on the rfPIC12F675 has an interrupt-
on-change option and every GPIO pin, except GP3,
has a weak pull-up option. The next two sections
describe these functions.
3.2.1
WEAK PULL-UP
Each of the GPIO pins, except GP3, has an individually
configurable weak internal pull-up. Control bits WPUx
Each weak pull-up is automatically turned off when the
port pin is configured as an output. The pull-ups are
disabled on a Power-on Reset by the GPPU bit
(OPTION<7>).
REGISTER 3-1:
GPIO — GPIO REGISTER (ADDRESS: 05h)
Note:
Additional information on I/O ports may be
found in the PICmicro Mid-Range Refer-
ence Manual (DS33023)
Note:
The ANSEL (9Fh) and CMCON (19h)
registers (9Fh) must be initialized to
configure an analog channel as a digital
input. Pins configured as analog inputs will
read ‘0’.
bcf
STATUS,RP0
;Bank 0
clrf
GPIO
;Init GPIO
movlw
07h
;Set GP<2:0> to
movwf
CMCON
;digital IO
bsf
STATUS,RP0
;Bank 1
clrf
ANSEL
;Digital I/O
movlw
0Ch
;Set GP<3:2> as inputs
movwf
TRISIO
;and set GP<5:4,1:0>
;as outputs
U-0
R/W-x
—
GPIO5
GPIO4
GPIO3
GPIO2
GPIO1
GPIO0
bit 7
bit 0
bit 7-6:
Unimplemented: Read as ’0’
bit 5-0:
GPIO<5:0>: General Purpose I/O pin.
1 = Port pin is >VIH
0 = Port pin is <VIL
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