English
Language : 

PIC18F66K22-I Datasheet, PDF (172/550 Pages) Microchip Technology – PIC18F87K22 Family Data Sheet
PIC18F87K22 FAMILY
12.3 PORTB, TRISB and
LATB Registers
PORTB is an eight-bit wide, bidirectional port. The
corresponding Data Direction and Output Latch registers
are TRISB and LATB. All pins on PORTB are digital only.
EXAMPLE 12-2: INITIALIZING PORTB
CLRF
CLRF
MOVLW
MOVWF
PORTB
LATB
0CFh
TRISB
; Initialize PORTB by
; clearing output
; data latches
; Alternate method
; to clear output
; data latches
; Value used to
; initialize data
; direction
; Set RB<3:0> as inputs
; RB<5:4> as outputs
; RB<7:6> as inputs
Each of the PORTB pins has a weak internal pull-up. A
single control bit can turn on all the pull-ups. This is
performed by clearing bit, RBPU (INTCON2<7>). The
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.
Four of the PORTB pins (RB<7:4>) have an
interrupt-on-change feature. Only pins configured as
inputs can cause this interrupt to occur. Any RB<7:4>
pin configured as an output will be excluded from the
interrupt-on-change comparison.
Comparisons with the input pins (of RB<7:4>) are
made with the old value latched on the last read of
PORTB. The “mismatch” outputs of RB<7:4> are ORed
together to generate the RB Port Change Interrupt with
Flag bit, RBIF (INTCON<0>).
This interrupt can wake the device from
power-managed modes. To clear the interrupt in the
Interrupt Service Routine:
a) Any read or write of PORTB (except with the
MOVFF (ANY), PORTB instruction). This will
end the mismatch condition.
b) Wait one instruction cycle (such as executing a
NOP instruction).
c) Clear flag bit, RBIF.
A mismatch condition will continue to set flag bit, RBIF.
Reading PORTB will end the mismatch condition and
allow flag bit, RBIF, to be cleared after one TCY delay.
The interrupt-on-change feature is recommended for
wake-up on key depression operation and operations
where PORTB is only used for the interrupt-on-change
feature. Polling of PORTB is not recommended while
using the interrupt-on-change feature.
The RB<3:2> pins are multiplexed as CTMU edge
inputs. RB5 has an additional function for Timer3 and
Timer1. It can be configured for Timer3 clock input or
Timer1 external clock gate input.
TABLE 12-3: PORTB FUNCTIONS
Pin Name
Function
TRIS
Setting
I/O
I/O
Type
Description
RB0/INT0/FLT0
RB0
0
O
DIG LATB<0> data output.
RB1/INT1
INT0
FLT0
RB1
1
I
TTL PORTB<0> data input; weak pull-up when RBPU bit is cleared.
1
I
ST External Interrupt 0 input.
x
I
ST Enhanced PWM Fault input for ECCPx.
0
O
DIG LATB<1> data output.
RB2/INT2/CTED1
INT1
RB2
1
I
TTL PORTB<1> data input; weak pull-up when RBPU bit is cleared.
1
I
ST External Interrupt 1 input.
0
O
DIG LATB<2> data output.
Legend:
Note 1:
1
I
TTL PORTB<2> data input; weak pull-up when RBPU bit is cleared.
INT2
1
I
ST External Interrupt 2 input.
CTED1
x
I
ST CTMU Edge 1 input.
O = Output, I = Input, ANA = Analog Signal, DIG = Digital Output, ST = Schmitt Trigger Buffer Input,
TTL = TTL Buffer Input, x = Don’t care (TRIS bit does not affect port direction or is overridden for this option).
Alternate assignment for ECCP2 when the CCP2MX Configuration bit is cleared and in Extended Microcontroller mode.
DS39960D-page 172
 2009-2011 Microchip Technology Inc.