Datasheet

© 2007 Microchip Technology Inc. DS39599G-page 109
PIC18F2220/2320/4220/4320
10.4 PORTD, TRISD and LATD
Registers
PORTD is an 8-bit wide, bidirectional port. The corre-
sponding Data Direction register is TRISD. Setting a
TRISD bit (= 1) will make the corresponding PORTD
pin an input (i.e., put the corresponding output driver in
a high-impedance mode). Clearing a TRISD bit (= 0)
will make the corresponding PORTD pin an output (i.e.,
put the contents of the output latch on the selected pin).
The Data Latch register (LATD) is also memory mapped.
Read-modify-write operations on the LATD register read
and write the latched output value for PORTD.
All pins on PORTD are implemented with Schmitt Trig-
ger input buffers. Each pin is individually configurable
as an input or output.
Three of the PORTD pins are multiplexed with outputs
P1B, P1C and P1D of the Enhanced CCP module. The
operation of these additional PWM output pins is
covered in greater detail in Section 16.0 “Enhanced
Capture/Compare/PWM (ECCP) Module”.
PORTD can also be configured as an 8-bit wide micro-
processor port (Parallel Slave Port) by setting control
bit, PSPMODE (TRISE<4>). In this mode, the input
buffers are TTL. See Section 10.6 “Parallel Slave
Port” for additional information on the Parallel Slave
Port (PSP).
EXAMPLE 10-4: INITIALIZING PORTD
FIGURE 10-11: BLOCK DIAGRAM OF RD7:RD5 PINS
Note: PORTD is only available on PIC18F4X20
devices.
Note: On a Power-on Reset, these pins are
configured as digital inputs.
Note: When the enhanced PWM mode is used
with either dual or quad outputs, the PSP
functions of PORTD are automatically
disabled.
CLRF PORTD ; Initialize PORTD by
; clearing output
; data latches
CLRF LATD ; Alternate method
; to clear output
; data latches
MOVLW 0xCF ; Value used to
; initialize data
; direction
MOVWF TRISD : Set RD<3:0> as inputs
; RD<5:4> as outputs
; RD<7:6> as inputs
Data Bus
WR LATD
WR TRISD
Data Latch
TRIS Latch
RD TRISD
I/O pin
(1)
QD
CK
QD
CK
EN
QD
EN
RD LATD
or
PORTD
0
1
0
1
Q
Q
0
1
P
N
VDD
VSS
0
1
RD PORTD
PSP Write
PSP Read
Note 1: I/O pins have diode protection to V
DD and VSS.
TTL Buffer
Schmitt Trigger
Input Buffer
PORTD/CCP1 Select
CCP Data Out
PSPMODE