PIC17C4X
Example 9-3 shows the instruction sequence to initial-
ize PORTD. The Bank Select Register (BSR) must be
selected to Bank 1 for the port to be initialized.
9.4
PORTD and DDRD Registers
PORTD is an 8-bit bi-directional port. The correspond-
ing data direction register is DDRD. A '1' in DDRD con-
figures the corresponding port pin as an input. A '0' in
the DDRC register configures the corresponding port
pin as an output. Reading PORTD reads the status of
the pins, whereas writing to it will write to the port latch.
PORTD is multiplexed with the system bus. When
operating as the system bus, PORTD is the high order
byte of the address/data bus (AD15:AD8). The timing
for the system bus is shown in the Electrical Character-
istics section.
EXAMPLE 9-3: INITIALIZING PORTD
MOVLB
CLRF
1
;
;
;
;
;
;
;
;
;
;
Select Bank 1
PORTD
Initialize PORTD data
latches before setting
the data direction
register
Value used to initialize
data direction
Set RD<3:0> as inputs
RD<5:4> as outputs
RD<7:6> as inputs
MOVLW 0xCF
MOVWF DDRD
Note: This port is configured as the system bus
when the device’s configuration bits are
selected to Microprocessor or Extended
Microcontroller modes. In the two other
microcontroller modes, this port is a gen-
eral purpose I/O.
FIGURE 9-7: PORTD BLOCK DIAGRAM (IN I/O PORT MODE)
to D_Bus → IR
INSTRUCTION READ
Data Bus
TTL
Input
Buffer
RD_PORTD
WR_PORTD
Port
D
D
0
1
Q
Data
CK
RD_DDRD
WR_DDRD
Q
R
CK
S
EX_EN
DATA/ADDR_OUT
DRV_SYS
SYS BUS
Control
Note: I/O pins have protection diodes to VDD and Vss.
DS30412C-page 60
1996 Microchip Technology Inc.