PIC16F87X
FIGURE 1-2: PIC16F874 AND PIC16F877 BLOCK DIAGRAM
Device
Program
FLASH
Data Memory
Data
EEPROM
PIC16F874
PIC16F877
4K
8K
192 Bytes
368 Bytes
128 Bytes
256 Bytes
13
8
PORTA
Data Bus
RAM
Program Counter
FLASH
RA0/AN0
RA1/AN1
Program
Memory
RA2/AN2/VREF-
RA3/AN3/VREF+
RA4/T0CKI
8 Level Stack
(13-bit)
File
Registers
RA5/AN4/SS
Program
Bus
14
RAM Addr (1)
PORTB
9
RB0/INT
RB1
RB2
RB3/PGM
RB4
Addr MUX
Instruction reg
Indirect
Addr
7
Direct Addr
8
RB5
FSR reg
RB6/PGC
RB7/PGD
STATUS reg
PORTC
8
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
3
MUX
Power-up
Timer
Oscillator
RC5/SDO
RC6/TX/CK
RC7/RX/DT
Instruction
Decode &
Control
Start-up Timer
ALU
Power-on
Reset
8
PORTD
Timing
Generation
Watchdog
Timer
W reg
OSC1/CLKIN
OSC2/CLKOUT
Brown-out
Reset
RD7/PSP7:RD0/PSP0
In-Circuit
Debugger
Low-Voltage
Programming
PORTE
Parallel Slave Port
RE0/AN5/RD
RE1/AN6/WR
RE2/AN7/CS
MCLR VDD, VSS
Timer0
Timer1
Timer2
10-bit A/D
USART
Data EEPROM
Synchronous
Serial Port
CCP1,2
Note 1: Higher order bits are from the STATUS register.
DS30292B-page 6
1999 Microchip Technology Inc.