Microchip Technology PIC16F87X User Manual

PIC16F87X
RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2
RB1 RB0/INT VDD VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2/PSP2
MCLR/VPP
RA0/AN0 RA1/AN1
RA2/AN2/V
REF-
RA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
VDD VSS
OSC1/CLKIN
OSC2/CLKOUT
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RD0/PSP0 RD1/PSP1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
PIC16F877/874
PDIP
28/40-Pin 8-Bit CMOS FLASH Microcontr ollers
Devices Included in this Data Sheet:
•PIC16F873
•PIC16F874
•PIC16F876
•PIC16F877
Pin Diagram
Microcontroller Core Features:
• High performance RISC CPU
• Only 35 single word instructions to learn
• All single cycle instructions except for program branches which are two cycle
DC - 200 ns instruction cycle
• Up to 8K x 14 words of FLASH Progr am M emory, Up to 368 x 8 bytes of Data Memory (RAM) Up to 256 x 8 bytes of EEPROM Data Memory
• Pinout compatible to the PIC16C73B/74B/76/77
• Interrupt capability (up to 14 sources)
• Eight level deep hardware stack
• Direct, indirect and relative addressing modes
• Power-on Reset (PO R)
• Power-up Timer (PWRT) and Oscillator Start-up Timer (OST)
• Watchdog Timer (WDT) with its own on-chip RC oscillator for reliable operation
• Programmable code protection
• Power saving SLEEP mode
• Selectable oscillator options
• Low power, high speed CMOS FLASH/EEPROM technology
• Fully static design
• In-Circuit Serial Programming(ICSP)via two pins
• Single 5V In-Circu it Seria l P r ogra mmin g c apability
• In-Circuit Debugging via two pins
• Processor read/write access to program memory
• Wide operating voltage range: 2.0V to 5.5V
• High Sink/Source Current: 25 mA
• Commercial, Industria l and Extended temp erature ranges
• Low-power consumption:
- < 0.6 mA typical @ 3V, 4 MHz
-20 A typical @ 3V, 32 kHz
-< 1 A typical standby current
1998-2013 Microchip Technology Inc. DS30292D-page 1
Peripheral Features:
• Timer0: 8-bit timer/counter with 8-bit prescaler
• Timer1: 16-bit timer/counter with prescaler, can be incremented during SLEEP via external crystal/clock
• Timer2: 8-bit timer/counter with 8-bit period register, prescaler and postscaler
• Two Capture, Compare, PWM modules
- Capture is 16-bit, max. resolution is 12.5 ns
- Compare is 16-bit, max. resolution is 200 ns
- PWM max. resolution is 10-bit
• 10-bit multi-channel Analog-to-Digital converter
• Synchronous Serial Port (SSP) with SPI (Master mode) and I
• Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-bit address detection
• Parallel Slave Port (PSP) 8-bits wide, with external RD
• Brown-out detection circuitry for Brown-out Reset (BOR)
2C
(Master/Slave)
, WR and CS controls (40/44-pin only)
PIC16F87X
PIC16F876/873
10 11
2 3 4 5 6
1
8
7
9
12 13 14
15
16
17
18
19
20
23
24
25
26
27
28
22 21
MCLR/VPP
RA0/AN0 RA1/AN1
RA2/AN2/V
REF-
RA3/AN3/V
REF+
RA4/T0CKI
RA5/AN4/SS
VSS
OSC1/CLKIN
OSC2/CLKOUT
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RB0/INT V
DD
VSS RC7/RX/DT RC6/TX/CK RC5/SDO RC4/SDI/SDA
10 11 12 13 14 15 16 17
181920212223242526
44
8
7
65432
1
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
9
PIC16F877
RA4/T0CKI
RA5/AN4/SS
RE0/RD/AN5
OSC1/CLKIN
OSC2/CLKOUT
RC0/T1OSO/T1CK1
NC
RE1/WR
/AN6
RE2/CS
/AN7
V
DD
VSS
RB3/PGM RB2 RB1 RB0/INT V
DD
VSS RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RC7/RX/DT
RA3/AN3/VREF+
RA2/AN2/V
REF-
RA1/AN1
RA0/AN0
MCLR
/VPP
NC
RB7/PGD
RB6/PGC
RB5
RB4
NC
NC
RC6/TX/CK
RC5/SDO
RC4/SDI/SDA
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0
RC3/SCK/SCL
RC2/CCP1
RC1/T1OSI/CCP2
10 11
2 3 4 5 6
1
1819202122
121314
15
38
8
7
4443424140
39
16
17
29
30
31
32
33
23
24
25
26
27
28
363435
9
PIC16F877
37
RA3/AN3/VREF+
RA2/AN2/V
REF-
RA1/AN1
RA0/AN0
MCLR
/VPP
NC
RB7/PGD
RB6/PGC
RB5
RB4
NC
RC6/TX/CK
RC5/SDO
RC4/SDI/SDA
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0
RC3/SCK/SCL
RC2/CCP1
RC1/T1OSI/CCP2
NC
NC RC0/T1OSO/T1CKI OSC2/CLKOUT OSC1/CLKIN V
SS
VDD RE2/AN7/CS RE1/AN6/WR RE0/AN5/RD RA5/AN4/SS RA4/T0CKI
RC7/RX/DT
RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
V
SS
VDD
RB0/INT
RB1 RB2
RB3/PGM
PLCC
QFP
PDIP, SOIC
PIC16F874
PIC16F874
Pin Diagrams
DS30292D-page 2 1998-2013 Microchip Technology Inc.
PIC16F87X
Key Features
®
MCU Mid-Range Reference
PIC
Manual (DS33023)
Operating Frequency DC - 20 MHz DC - 20 MHz DC - 20 MHz DC - 20 MHz
RESETS (and Delays) POR, BOR
FLASH Program Memory
(14-bit words)
Data Memory (bytes) 192 192 368 368
EEPROM Data Memory 128 128 256 256
Interrupts 13 14 13 14
I/O Ports Ports A,B,C Ports A,B,C,D,E Ports A,B,C Ports A,B,C,D,E
Timers 3333
Capture/Compa re/PWM Modules 2 2 2 2
Serial Communications MSSP, USART MSSP, USART MSSP, USART MSSP, USART
Parallel Communications PSP PSP
10-bit Analog-to-Digital Module 5 input channels 8 input channels 5 input channels 8 input channels
Instruction Set 35 instructions 35 instructions 35 instructions 35 instructions
PIC16F873 PIC16F874 PIC16F876 PIC16F877
POR, BOR
(PWRT, OST)
4K 4K 8K 8K
(PWRT, OST)
POR, BOR
(PWRT, OST)
POR, BOR
(PWRT, OST)
1998-2013 Microchip Technology Inc. DS30292D-page 3
PIC16F87X
FLASH
Program
Memory
13
Data Bus
8
14
Program
Bus
Instruction reg
Program Counter
8 Level Stack
(13-bit)
RAM
File
Registers
Direct Addr
7
RAM Addr
(1)
9
Addr MUX
Indirect
Addr
FSR reg
STATUS reg
MUX
ALU
W reg
Power-up
Timer
Oscillator
Start-up Timer
Power-on
Reset
Watchdog
Timer
Instruction
Decode &
Control
Timing
Generation
OSC1/CLKIN OSC2/CLKOUT
MCLR
VDD, VSS
PORTA
PORTB
PORTC
RA4/T0CKI RA5/AN4/SS
RB0/INT
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1
RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
8
8
Brown-out
Reset
Note 1: Higher order bits are from the STATUS register.
USART
CCP1,2
Synchronous
10-bit A/DTimer0 Timer1 Timer2
Serial Port
RA3/AN3/VREF+
RA2/AN2/VREF-
RA1/AN1
RA0/AN0
8
3
Data EEPROM
RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
Device
Program
FLASH
Data Memory
Data
EEPROM
PIC16F873 4K 192 Bytes 128 Bytes PIC16F876 8K 368 Bytes 256 Bytes
In-Circuit
Debugger
Low Voltage
Programming
1.0 DEVICE OVERVIEW
This document contains device specific information. Additional information may be found in the PIC Mid-Range Reference Manual (DS33023), which may be obtained from your local Microchip Sales Represen­tative or downloaded from the Microchip website. The Reference Manual should be considered a complemen­tary document to this data sheet, and is highly recom­mended reading for a better understanding of the device architecture and operation of the peripheral modules.
FIGURE 1-1: PIC16F873 AND PIC16F876 BLOCK DIAGRAM
®
MCU
There are four devices (PIC16F873, PIC16F874, PIC16F876 and PIC16F877) covered by this data sheet. The PIC16F876/873 devices come in 28-pin packages and the PIC16F877/874 devices come in 40-pin packages. The Parallel Slave Port is not implemented on the 28-pin devic es .
The following device bloc k diagrams are s orted by pin number; 28-pin for Figure 1-1 and 40-pin for Figure 1-2. The 28-pin and 40-pin pin outs are listed in Table 1-1 and Table 1-2, respectively.
1998-2013 Microchip Technology Inc. DS30292D-page 5
PIC16F87X
FLASH Program
Memory
13
Data Bus
8
14
Program
Bus
Instruction reg
Program Counter
8 Level Stack
(13-bit)
RAM
File
Registers
Direct Addr
7
RAM Addr
(1)
9
Addr MUX
Indirect
Addr
FSR reg
STATUS reg
MUX
ALU
W reg
Power-up
Timer
Oscillator
Start-up Timer
Power-on
Reset
Watchdog
Timer
Instruction
Decode &
Control
Timing
Generation
OSC1/CLKIN OSC2/CLKOUT
MCLR
VDD, VSS
PORTA
PORTB
PORTC
PORTD
PORTE
RA4/T0CKI RA5/AN4/SS
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
RE0/AN5/RD RE1/AN6/WR
RE2/AN7/CS
8
8
Brown-out
Reset
Note 1: Higher order bits are from the STATUS register.
USART
CCP1,2
Synchronous
10-bit A/DTimer0 Timer1 Timer2
Serial Port
RA3/AN3/VREF+
RA2/AN2/VREF-
RA1/AN1
RA0/AN0
Parallel Slave Port
8
3
Data EEPROM
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
Device
Program
FLASH
Data Memory
Data
EEPROM
PIC16F874 4K 192 Bytes 128 Bytes PIC16F877 8K 368 Bytes 256 Bytes
In-Circuit
Debugger
Low-Voltage
Programming
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
FIGURE 1-2: PIC16F874 AND PIC16F877 BLOCK DIAGRAM
DS30292D-page 6 1998-2013 Microchip Technology Inc.
T ABLE 1-1: PIC16F873 AND PIC16F876 PINOUT DESCRIPTION
PIC16F87X
Pin Name
DIP
Pin#
OSC1/CLKIN 9 9 I ST/CMOS
SOIC
Pin#
I/O/P Type
Buffer
Type
Description
(3)
Oscillator crystal input/external clock source input.
OSC2/CLKOUT 10 10 O Oscillator crystal output. Connects to crystal or resonator in
crystal oscillator mode. In RC mode, the OSC2 pin outputs CLKOUT which has 1/4 the frequency of OSC1, and denotes the instruction cycle rate.
/VPP 1 1 I/P ST Master Clear (Reset) input or programming voltage input. This
MCLR
pin is an active low RESET to the device.
PORTA is a bi-directional I/O port. RA0/AN0 2 2 I/O TTL RA0 can also be analog input0. RA1/AN1 3 3 I/O TTL RA1 can also be analog input1. RA2/AN2/V
REF- 4 4 I/O TTL RA2 can also be analog input2 or negative analog
reference voltage.
RA3/AN3/V
REF+ 5 5 I/O TTL RA3 can also be analog input3 or positive analog
reference voltage.
RA4/T0CKI 6 6 I/O ST RA4 can also be the clock input to the Timer0
module. Output is open drain type.
/AN4 7 7 I/O TTL RA5 can also be analog input4 or the slave select
RA5/SS
for the synchronous serial port.
PORTB is a bi-directional I/O port. PORTB can be software
programmed for internal weak pull-up on all inputs. RB0/INT 21 21 I/O TTL/ST
(1)
RB0 can also be the external interrupt pin. RB1 22 22 I/O TTL RB2 23 23 I/O TTL RB3/PGM 24 24 I/O TTL RB3 can also be the low voltage programming input. RB4 25 25 I/O TTL Interrupt-on-change pin. RB5 26 26 I/O TTL Interrupt-on-change pin. RB6/PGC 27 27 I/O TTL/ST
(2)
Interrupt-on-change pin or In-Circuit Debugger pin. Serial
programming clock. RB7/PGD 28 28 I/O TTL/ST
(2)
Interrupt-on-change pin or In-Circuit Debugger pin. Serial
programming data.
PORTC is a bi-directional I/O port.
RC0/T1OSO/T1CKI 11 11 I/O ST RC0 can also be the Timer1 oscillator output or Timer1
clock input. RC1/T1OSI/CCP2 12 12 I/O ST RC1 can also be the Timer1 oscillator input or Capture2
input/Compare2 output/PWM2 output. RC2/CCP1 13 13 I/O ST RC2 can also be the Capture1 input/Compare1 output/
PWM1 output. RC3/SCK/SCL 14 14 I/O ST RC3 can also be the synchronous serial clock input/output
for both SPI and I RC4/SDI/SDA 15 15 I/O ST RC4 can also be the SPI Data In (SPI mode) or
data I/O (I
2
C mode).
2
C modes.
RC5/SDO 16 16 I/O ST RC5 can also be the SPI Data Out (SPI mode). RC6/TX/CK 17 17 I/O ST RC6 can also be the USART Asynchronous Transmit or
Synchronous Clock. RC7/RX/DT 18 18 I/O ST RC7 can also be the USART Asynchronous Receive or
Synchronous Data.
SS 8, 19 8, 19 P Ground reference for logic and I/O pins.
V
DD 20 20 P Positive supply for logic and I/O pins.
V Legend: I = input O = output I/O = input/output P = power
— = Not used TTL = TTL input ST = Schmitt Trigger input
Note 1: This buffer is a Schmitt Trigger input when configured as the external interrupt.
2: This buffer is a Schmitt Trigger input when used in Serial Programming mode. 3: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
1998-2013 Microchip Technology Inc. DS30292D-page 7
PIC16F87X
TABLE 1-2: PIC16F874 AND PIC16F877 PINOUT DESCRIPTION
DIP
Pin Name
OSC1/CLKIN 13 14 30 I ST/CMOS OSC2/CLKOUT 14 15 31 O Oscillator crystal output. Connects to crystal or resonator
/VPP 1 2 18 I/P ST Master Clear (Reset) input or programming voltage input.
MCLR
RA0/AN0 2 3 19 I/O TTL RA0 can also be analog input0. RA1/AN1 3 4 20 I/O TTL RA1 can also be analog input1. RA2/AN2/V
RA3/AN3/V
RA4/T0CKI 6 7 23 I/O ST RA4 can also be the clock input to the Timer0 timer/
RA5/SS/
RB0/INT 33 36 8 I/O TTL/ST RB1 34 37 9 I/O TTL RB2 35 38 10 I /O TTL RB3/PGM 36 39 11 I/O TTL RB3 can also be the low voltage programming input. RB4 37 41 14 I/O TTL Interrupt-on-change pin. RB5 38 42 15 I/O TTL Interrupt-on-change pin. RB6/PGC 39 43 16 I/O TTL/ST
RB7/PGD 40 44 17 I/O TTL/ST
Legend: I = input O = output I/O = input/output P = power
Note 1: This buffer is a Schmitt Trigger input when configured as an external interrupt.
REF- 4 5 21 I/O TTL RA2 can also be analog input2 or negative
REF+ 5 6 22 I/O TTL RA3 can also be analog input3 or positive
AN4 7 8 24 I/O TTL RA5 can also be analog input4 or the slave select for
2: This buffer is a Schmitt Trigger input when used in Serial Programming mode. 3: This buffer is a Schmitt Trigger input when configured as general purpose I/O and a TTL input when used in the Parallel
Slave Port mode (for interfacing to a microprocessor bus).
4: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
PLCC
Pin#
— = Not used TTL = TTL input ST = Schmitt Trigger input
Pin#
QFP Pin#
I/O/P Type
Buffer
Type
Description
(4)
Oscillator crystal input/external clock source input.
in crystal oscillator mode. In RC mode, OSC2 pin outputs CLKOUT which has 1/4 the frequency of OSC1, and denotes the instruction cycle rate.
This pin is an active low RESET to the device. PORTA is a bi-directional I/O port.
analog reference voltage.
analog reference voltage.
counter. Output is open drain type.
the synchronous serial port.
PORTB is a bi-directional I/O port. PORTB can be soft­ware programmed for internal weak pull-up on all inputs.
(1)
(2)
(2)
RB0 can also be the external interrupt pin.
Interrupt-on-change pin or In-Circuit Debugger pin. Serial programming clock.
Interrupt-on-change pin or In-Circuit Debugger pin. Serial programming data.
DS30292D-page 8 1998-2013 Microchip Technology Inc.
PIC16F87X
T ABLE 1-2: PIC16F874 AND PIC16F877 PINOUT DESCRIPTION (CONTINUED)
DIP
Pin Name
Pin#
PLCC
Pin#
RC0/T1OSO/T1CKI 15 16 32 I/O ST RC0 can also be the Timer1 oscillator output or a
RC1/T1OSI/CCP2 16 18 35 I/O ST RC1 can also be the Timer1 oscillator input or
RC2/CCP1 17 19 36 I/O ST RC2 can also be the Capture1 input/Compare1
RC3/SCK/SCL 18 20 37 I/O ST RC3 can also be the synchronous serial clock input/
RC4/SDI/SDA 23 25 42 I/O ST RC4 can also be the SPI Data In (SPI mode) or
RC5/SDO 24 26 43 I/O ST RC5 can also be the SPI Data Out (SPI mode). RC6/TX/CK 25 27 44 I/O ST RC6 can also be the USART Asynchronous Transmit
RC7/RX/DT 26 29 1 I/O ST RC7 can also be the USART Asynchronous Receive
RD0/PSP0 19 21 38 I/O ST/TTL RD1/PSP1 20 22 39 I/O ST/TTL RD2/PSP2 21 23 40 I/O ST/TTL RD3/PSP3 22 24 41 I/O ST/TTL RD4/PSP4 27 30 2 I/O ST/TTL RD5/PSP5 28 31 3 I/O ST/TTL RD6/PSP6 29 32 4 I/O ST/TTL RD7/PSP7 30 33 5 I/O ST/TTL
/AN5 8 9 25 I/O ST/TTL
RE0/RD
RE1/WR
RE2/CS
V V
/AN6 9 10 26 I/O ST/TTL
/AN7 10 11 27 I/O ST/TTL
SS 12,31 13,34 6,29 P Ground reference for logic and I/O pins. DD 11,32 12,35 7,28 P Positive supply for logic and I/O pins.
NC 1,17,28,4012,13,
Legend: I = input O = output I/O = input/output P = power
— = Not used TTL = TTL input ST = Schmitt Trigger input
Note 1: This buffer is a Schmitt Trigger input when configured as an external interrupt.
2: This buffer is a Schmitt Trigger input when used in Serial Programming mode. 3: This buffer is a Schmitt Trigger input when configured as general purpose I/O and a TTL input when used in the Parallel
Slave Port mode (for interfacing to a microprocessor bus).
4: This buffer is a Schmitt Trigger input when configured in RC oscillator mode and a CMOS input otherwise.
QFP Pin#
33,34
I/O/P Type
Buffer
Type
Description
PORTC is a bi-directional I/O port.
Timer1 clock input.
Capture2 input/Compare2 output/PWM2 output.
output/PWM1 output.
2
output for both SPI and I
2
data I/O (I
C mode).
C modes.
or Synchronous Clock.
or Synchronous Data.
PORTD is a bi-directional I/O port or parallel slave port when interfacing to a microprocessor bus.
(3) (3) (3) (3) (3) (3) (3) (3)
PORTE is a bi-directional I/O port.
(3)
RE0 can also be read control for the parallel slave port, or analog input5.
(3)
RE1 can also be write control for the parallel slave port, or analog input6.
(3)
RE2 can also be select control for the parallel slave port, or analog input7.
These pins are not internally connected. These pins
should be left unconnected.
1998-2013 Microchip Technology Inc. DS30292D-page 9
Loading...