Você está na página 1de 172

Machine Translated by Google

PIC16F870/871
Microcontroladores CMOS FLASH de 28/40 pinos e 8 bits

Dispositivos incluídos nesta folha de dados: Diagrama de pinos

• PIC16F870 • PIC16F871 PDIP

MCLR/VPP/THV 40 RB7/PGD
Características principais do microcontrolador: RA0/YAN0 RB6/PGC
1 39
RA1/AN1 23 38 RB5
• CPU RISC de alto desempenho • Apenas RA2/AN2/VREF 4 37 RB4
35 instruções de palavra única para aprender • Todas as RA3/AN3/VREF+ 5 36 RB3/PGM
RA4/T0CKI 6 35 RB2
instruções de ciclo único, exceto para ramos de programa que
RA5/AN4 7 34 RB1
são de dois ciclos RE0/RD/AN5 8 33 RB0/INT
• Velocidade de operação: DC - entrada de clock de 20 MHz RE1/WR/AN6 9 32 VDD
DC - ciclo de instrução de 200 ns • 2K RE2/CS/AN7 10 PIC16F871
31 VSS
VDD 11 30 RD7/PSP7
x 14 palavras de memória de programa FLASH 128 x 8 bytes de VSS 12 29 RD6/PSP6
memória de dados (RAM) 64 x 8 bytes de memória de dados OSC1 / CLKI 13 28 RD5/PSP5

EEPROM • Pinagem compatível com os dispositivos OSC2/CLKO 14 27 RD4/PSP4


RC0/T1OSO/T1CKI 15 26 RC7/RX/DT
PIC16CXXX de 28 e 40 pinos • Capacidade de interrupção (acima RC1/T1AXIS RC6/TX/CK
16 25
para 11 fontes) • Pilha de hardware profunda de oito níveis • RC2/CCP1 17 24 RC5

Modos de endereçamento direto, indireto e relativo • Power-on RC3 18 23 RC4


RD0/PSP0 19 22 RD3/PSP3
Reset (POR) • Power-up Timer (PWRT) e 21
RD1/PSP1 20 RD2/PSP2

Temporizador de inicialização do oscilador Características periféricas:


(OST) • Temporizador Watchdog (WDT) com seu próprio oscilador
• Timer0: temporizador/contador de 8 bits com prescaler de 8 bits
RC no chip para operação confiável • Proteção de código
• Timer1: temporizador/contador de 16 bits com prescaler,
programável • Modo SLEEP de economia de energia • Opções de
pode ser incrementado durante o SLEEP via cristal/relógio
oscilador selecionáveis • Tecnologia CMOS FLASH/EEPROM de externo • Timer2: temporizador/contador de 8 bits com registro
baixa potência e alta velocidade • Design totalmente estático • de período de 8 bits, pré-escalador e pós-escalador • Um módulo
Programação Serial In-Circuitÿÿ(ICSPÿ) através de dois pinos de captura, comparação, PWM

- A captura é de 16 bits, máx. a resolução é de 12,5 ns - A


comparação é de 16 bits, máx. resolução é de 200 ns - PWM
máx. a resolução é 10 bits
• Capacidade de programação serial em circuito único de 5 V •
• Conversor analógico-digital multicanal de 10 bits • Receptor
Depuração em circuito através de dois pinos • Acesso de leitura/
assíncrono síncrono universal
gravação do processador à memória do programa • Ampla faixa de Transmissor (USART/SCI) com detecção de endereço de
tensão de operação: 2,0 V a 5,5 V • Corrente alta de dissipador/fonte: 9 bits

25 mA • Comercial e industrial faixas de temperatura • Baixo consumo • Porta Escrava Paralela (PSP) de 8 bits de largura, com
de energia: - < 1,6 mA típico @ 5V, 4 MHz - 20 ÿA típico @ 3V, 32 controles externos RD, WR e CS (somente 40/44 pinos)

kHz - < 1 ÿA corrente de espera típica • Circuito de detecção de brown-out para


Reinicialização de Brown-out (BOR)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 1


Machine Translated by Google

PIC16F870/871
Diagramas de pinos

DIP, SOIC, SSOP

MCLR/VPP/THV 28 RB7/PGD
RA0/YAN0 12 27 RB6/PGC
RA1/AN1 3 26 RB5
RA2/AN2/VREF 4 25 RB4
RA3/AN3/VREF+ 5 24 RB3/PGM
RA4/T0CKI 6 23 RB2
RA5/AN4 7 22 RB1

VSS 8 21 RB0/INT
PIC16F870

OSC1 / CLKI 9 20 VDD


OSC2/CLKO 10 19 VSS
RC0/T1OSO/T1CKI 11 18 RC7/RX/DT
RC1/T1AXIS 12 17 RC6/TX/CK
RC2/CCP1 13 16 RC5
RC3 14 15 RC4

CLP
AN2/
RA2/ VREF+
AN3/
VREF RA3/ RA1/
AN1 MCLR/
VPP/
THV YAN0
RA0/ NC PGD
RB7/ PGC
RB6/ RB4 RB5 NC

3
5
640
41
42
43
44
2
14

RA4/T0CKI 7
39 RB3/PGM
RA5/AN4 8 38 RB2
RE0/RD/AN5 9 37 RB1
RE1/WR/AN6 10 36 RB0/INT
RE2/CS/AN7 11 35 VDD
VDD 12
PIC16F871 34 VSS
VSS 13 33 RD7/PSP7
OSC1 / CLKI 14 32 RD6/PSP6
OSC2/CLKO 15 31 RD5/PSP5
RC0/T1OSO/T1CK1 16 28
27
26
25
24
23
22
21
20
19
18
30 RD4/PSP4
NC 17 29 RC7/RX/DT

NC
RC3 RC5 RC4

TQFP
RC6/
TX/
CK RC4 RC5 PSP3
RD3/ PSP2
RD2/ PSP1
RD1/ PSP0
RD0/ RC3 CCP1
T1AXIS RC2/
RC1/ NC T1AXIS
RC1/
CCP1
RC2/ PSP0
RD0/ PSP1
RD1/ PSP2
RD2/ PSP3
RD3/
RC6/
TX/
CK

34
35
36
37
38
39
40
41
42
43
44

RC7/RX/DT 33 NC
RD4/PSP4 1 32 RC0/T1OSO/T1CKI
RD5/PSP5 2 31 OSC2/CLKO
RD6/PSP6 3 30 OSC1 / CLKI
RD7/PSP7 4 29 VSS
VSS 5 PIC16F871 28 VDD
VDD 6 27 RE2/CS/AN7
RB0/INT 7 26 RE1/WR/AN6
RB1 8 25 RE0/RD/AN5
RB2 9 22
21
20
19
18
17
16
15
14
13
12 24 RA5/AN4
RB3/PGM 10 11 23 RA4/T0CKI

NC NC
RB5 RB4

YAN0
RA0/ RA1/
AN1
PGC
RB6/ PGD
RB7/

MCLR/
VPP/
THV VREF
AN2/
RA2/
VREF+
AN3/
RA3/

DS30569C-página 2 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871

Características principais

Manual de referência da família de MCU de médio alcance PICmicroTM PIC16F870 PIC16F871


(DS33023)

Frequência de operação CC - 20 MHz CC - 20 MHz

REINICIALIZAÇÕES (e atrasos) POR, BOR (PWRT, OST) POR, BOR (PWRT, OST)

Memória de programa FLASH (palavras de 14 bits) 2K 2K

Memória de dados (bytes) 128 128

Memória de dados EEPROM 64 64

Interrupções 10 11

Portas de E/S Portas A,B,C Portas A,B,C,D,E


Temporizadores 3 3

Módulos de captura/comparação/PWM 1 1

Comunicações seriais USAR USAR

Comunicações paralelas — PSP

Módulo analógico-digital de 10 bits 5 canais de entrada 8 canais de entrada


Conjunto de instruções 35 Instruções 35 Instruções

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 3


Machine Translated by Google

PIC16F870/871
Índice
1.0 Visão geral do dispositivo ............................................. .................................................. .................................................. ......................... 5 2.0 Organização da
Memória ........................ .................................................. .................................................. ......................... 11 3.0 EEPROM de dados e memória de programa
Flash.... .................................................. .................................................. ......................... 27 4.0 Portas de E/
S ........................ .................................................. .................................................. .................................................. ......... 33 5.0 Módulo
Temporizador0 .............................. .................................................. .................................................. ......................... 45 6.0 Módulo
Temporizador1 ............ ....................... .................................................. .................................................. ......................... 49 7.0 Módulo
Temporizador2 ............ .................................................. .................................................. .................................................. ........ 53 8.0 Módulos de Captura/
Comparação/PWM ........................ .................................................. .................................................. ........ 55 9.0 Transmissor Receptor Assíncrono Universal
Síncrono Endereçável (USART) .............................. ......................... 61 10.0 Módulo Conversor Analógico-Digital (A/
D)... .................................................. .................................................. ......................... 79 11.0 Recursos especiais da
CPU............... .................................................. .................................................. ......................... ......... 87 12.0 Resumo do Conjunto de
Instruções .................................. .................................................. .................................................. ......................... 103 13.0 Suporte ao
Desenvolvimento ....................... .................................................. .................................................. ....................................... 111 14.0 Características
Elétricas ........ .................................................. .................................................. ............................................. 117 15,0 CC e Gráficos e Tabelas de Características
de CA ............................................. .................................................. ......................... 137 16.0 Informações de
Embalagem ........................ .................................................. .................................................. .................................... 149 Apêndice A: Histórico de
revisões........ ................ .................................................. .................................................. ......................... 157 Apêndice B: Diferenças de
Dispositivos........... .................................................. .................................................. .................................. 157 Apêndice C: Considerações de
conversão .. .................................................. .................................................. ......................... 158 Apêndice D: Migração de dispositivos intermediários para
dispositivos avançados . .................................................. .................................................. ..... 158 Apêndice E: Migração de dispositivos avançados para dispositivos
avançados ....................... .................................................. ......................... 159
Índice ......................... .................................................. .................................................. .......................... ............................................. 161 Suporte On-
Line .................................................. .................................................. .................................................. ......................... 167 Informações de Sistemas e Linha Direta
de Atualização ............... .................................................. .................................................. .......... 167 Resposta do
Leitor .................................. .................................................. .................................................. ............................................. 168 PIC16F870/871 Produto Sistema de
identificação ........................................ .................................................. ......................... 169

AOS NOSSOS VALIOSOS CLIENTES


É nossa intenção fornecer aos nossos valiosos clientes a melhor documentação possível para garantir o uso bem-sucedido de seus produtos Microchip. Para
isso, continuaremos aprimorando nossas publicações para melhor atender às suas necessidades. Nossas publicações serão refinadas e aprimoradas à medida
que novos volumes e atualizações forem introduzidos.

Se você tiver dúvidas ou comentários sobre esta publicação, entre em contato com o Departamento de Comunicações de Marketing por e-mail em
docerrors@mail.microchip.com ou envie por fax o Formulário de Resposta do Leitor no verso desta folha de dados para (480) 792-4150.
Congratulamo-nos com o seu feedback.

Folha de dados mais atual


Para obter a versão mais atualizada desta folha de dados, registre-se em nosso site mundial em:

http://www.microchip.com

Você pode determinar a versão de uma folha de dados examinando seu número de literatura encontrado no canto inferior externo de qualquer página.
O último caractere do número da literatura é o número da versão (por exemplo, DS30000A é a versão A do documento DS30000).

Errata
Uma folha de errata, descrevendo pequenas diferenças operacionais da folha de dados e soluções recomendadas, pode existir para os dispositivos atuais. À
medida que os problemas do dispositivo/documentação se tornarem conhecidos por nós, publicaremos uma folha de errata. A errata especificará a revisão do
silício e a revisão do documento ao qual se aplica.
Para determinar se existe uma folha de errata para um determinado dispositivo, verifique com um dos seguintes: • Site
mundial da Microchip; http://www.microchip.com • Seu escritório de vendas local da Microchip (veja a última página) • O
Microchip Corporate Literature Center; FAX dos EUA: (480) 792-7277 Ao entrar em contato com um escritório de vendas
ou centro de literatura, especifique qual dispositivo, revisão de silício e folha de dados (inclua o número da literatura) você
está usando.

Sistema de Notificação do Cliente


Registre-se em nosso site em www.microchip.com/cn para receber as informações mais atuais sobre todos os nossos produtos.

DS30569C-página 4 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
1.0 VISÃO GERAL DO DISPOSITIVO Existem dois dispositivos (PIC16F870 e PIC16F871) cobertos por
esta folha de dados. O dispositivo PIC16F870 vem em um pacote
Este documento contém informações específicas do dispositivo. de 28 pinos e o dispositivo PIC16F871 vem em um pacote de 40
Informações adicionais podem ser encontradas no PICmicroTM Mid- pinos. O dispositivo de 28 pinos não possui uma Porta Escrava
Range MCU Family Reference Manual (DS33023), que pode ser Paralela implementada.
obtido com seu representante de vendas local da Microchip ou
As duas figuras a seguir são diagramas de blocos de dispositivos
baixado do site da Microchip. O Manual de Referência deve ser
classificados por número de pinos: 28 pinos para Figura 1-1 e 40
considerado um documento complementar a esta ficha técnica,
pinos para Figura 1-2. As pinagens de 28 pinos e 40 pinos estão
sendo sua leitura altamente recomendada para um melhor
listadas na Tabela 1-1 e na Tabela 1-2, respectivamente.
entendimento da arquitetura do dispositivo e funcionamento dos
módulos periféricos.

FIGURA 1-1: PIC16F870 DIAGRAMA DE BLOCO

Dispositivo Programa FLASH Dados Memória Dados EEPROM


PIC16F870 2K 128 Bytes 64 Bytes

13 8 TRAZ
Barramento de dados

Contador de programas
INSTANTÂNEO
RA0/YAN0

Programa RA1/AN1

Memória RA2/AN2/VREF
BATER
Pilha de 8 níveis Arquivo
RA3/AN3/VREF+
(13 bits) RA4/T0CKI
Registros
RA5/AN4

Programa 14
Ônibus Endereço RAM (1) 9 PORTB
RB0/INT
Endereço MUX RB1
Instrução reg
RB2
Endereço Direto 7 Indireto
RB3/PGM
8 Endereço
RB4
RB5
FSR reg
RB6/PGC
RB7/PGD
STATUS reg PORTO
8
RC0/T1OSO/T1CKI
RC1/T1AXIS

3 RC2/CCP1
MUX
Energizar RC3
Cronômetro
RC4
Instrução Oscilador RC5
Decodificar & Temporizador de inicialização RC6/TX/CK
VAI
Ao controle
Ligar RC7/RX/DT
Redefinir 8

Cronometragem cão de guarda


Geração Cronômetro W reg

OSC1 / CLKI Apagão


OSC2/CLKO Redefinir

Em circuito
Depurador

Baixa voltagem
Programação

MCLR VDD, VSS

Temporizador0 Temporizador1 Temporizador2 A/D de 10 bits

Dados EEPROM PCC1 USAR

Nota 1: Os bits de ordem superior são do registrador STATUS.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 5


Machine Translated by Google

PIC16F870/871
FIGURA 1-2: PIC16F871 DIAGRAMA DE BLOCO

Dispositivo Programa FLASH Dados Memória Dados EEPROM


PIC16F871 2K 128 Bytes 64 Bytes

13 8 TRAZ
Barramento de dados

INSTANTÂNEO
Contador de programas
RA0/YAN0

Programa RA1/AN1

Memória RA2/AN2/VREF
BATER
Pilha de 8 níveis RA3/AN3/VREF+
Arquivo

(13 bits) RA4/T0CKI


Registros
RA5/AN4

Programa 14
Ônibus Endereço RAM (1) 9 PORTB
RB0/INT
Endereço MUX RB1
Instrução reg
RB2
Endereço Direto 7 Indireto
RB3/PGM
8 Endereço
RB4
RB5
FSR reg
RB6/PGC
RB7/PGD
STATUS reg PORTO
8
RC0/T1OSO/T1CKI
RC1/T1AXIS

3 RC2/CCP1
MUX
Energizar RC3
Cronômetro
RC4
Instrução Oscilador RC5
Decodificar & Temporizador de inicialização RC6/TX/CK
VAI
Ao controle
Ligar RC7/RX/DT
Redefinir 8
PORTD

Cronometragem cão de guarda


Geração Cronômetro W reg

OSC1 / CLKI Apagão


OSC2/CLKO Redefinir RD7/PSP7:RD0/PSP0

Em circuito
Depurador

Baixa voltagem
Programação PORTÃO

RE0/RD/AN5

RE1/WR/AN6

MCLR VDD, VSS RE2/CS/AN7

Temporizador0 Temporizador1 Temporizador2 A/D de 10 bits

Dados EEPROM PCC1 Porta Escrava Paralela USAR

Nota 1: Os bits de ordem superior são do registrador STATUS.

DS30569C-página 6 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 1-1: DESCRIÇÃO DA PINAGEM DO PIC16F870

MERGULHAR SEC E/S/P Amortecedor


Nome do pino Descrição
Alfinete# Alfinete# Modelo Modelo

OSC1/CLKI 99I ST/CMOS(3) Entrada de cristal oscilador/entrada de fonte de relógio externa.

OSC2/CLKO 10 10 O — Saída de cristal do oscilador. Conecta-se ao cristal ou ressonador no modo Crystal


Oscillator. No modo RC, o pino OSC2 emite CLKO, que tem 1/4 da frequência
de OSC1 e denota a taxa de ciclo de instrução.

MCLR/VPP/THV 1 1 I/P ST Entrada Master Clear (Reset) ou entrada de tensão de programação ou controle
do modo High Voltage Test. Este pino é um RESET baixo ativo para o dispositivo.

PORTA é uma porta de E/S bidirecional.


RA0/YAN0 2 2 E/S TTL RA0 também pode ser entrada analógica 0.

RA1/AN1 3 3 E/S TTL RA1 também pode ser a entrada analógica 1.

RA2/AN2/VREF- 4 4 E/S TTL RA2 também pode ser entrada analógica 2 ou referência analógica negativa
Voltagem.
RA3/AN3/VREF+ 5 5 E/S TTL RA3 também pode ser entrada analógica 3 ou referência analógica positiva
Voltagem.
RA4/T0CKI 6 6 E/S ST/OD RA4 também pode ser a entrada do relógio para o módulo Timer0. Resultado
é do tipo dreno aberto.
RA5/AN4 7 7 E/S TTL RA5 também pode ser entrada analógica 4.

PORTB é uma porta de E/S bidirecional. O PORTB pode ser programado


por software para pull-up fraco interno em todas as entradas.
RB0/INT 21 21 E/S TTL/ST(1) RB0 também pode ser o pino de interrupção externo.

RB1 22 22 E/S TTL

RB2 23 23 E/S TTL

RB3/PGM 24 24 E/S TTL/ST(1) RB3 também pode ser a entrada de programação de baixa tensão.

RB4 25 25 E/S TTL Pino de interrupção na mudança.

RB5 26 26 E/S TTL Pino de interrupção na mudança.

RB6/PGC 27 27 E/S TTL/ST(2) Pino de interrupção na mudança ou pino do depurador em circuito.


Relógio de programação serial.
RB7/PGD 28 28 E/S TTL/ST(2) Pino de interrupção na mudança ou pino do depurador em circuito. Dados
de programação serial.

PORTC é uma porta de E/S bidirecional.


RC0/T1OSO/T1CKI 11 11 E/S ST RC0 também pode ser a saída do oscilador Timer1 ou o relógio Timer1
entrada.

RC1/T1AXIS 12 12 E/S ST RC1 também pode ser a entrada do oscilador Timer1.


RC2/CCP1 13 13 E/S ST RC2 também pode ser a entrada Capture1/Saída Compare1/
Saída PWM1.
RC3 14 14 E/S ST

RC4 15 15 E/S ST

RC5 16 16 E/S ST

RC6/TX/CK 17 17 E/S ST RC6 também pode ser a transmissão assíncrona USART ou o relógio
síncrono.
RC7/RX/DT 18 18 E/S ST RC7 também pode ser o USART Asynchronous Receive ou Synchronous
Data.
VSS 8, 19 8, 19 P — Referência de aterramento para pinos lógicos e de E/S.
VDD 20 20 P — Alimentação positiva para pinos lógicos e I/O.

O = Nota
Legenda: I = entrada OD = Open Drain TTL = entrada TTL saída1: Este buffer é uma entrada
I/O =Schmitt
entrada/saída
Trigger P = potência
quando configurado como interrupção— = Não ou
externa usado
modo LVP. ST = entrada do gatilho Schmitt

2: Este buffer é uma entrada Schmitt Trigger quando usado no modo de programação serial.
3: Este buffer é uma entrada Schmitt Trigger quando configurado no modo RC Oscillator e uma entrada CMOS caso contrário.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 7


Machine Translated by Google

PIC16F870/871
TABELA 1-2: DESCRIÇÃO DA PINAGEM DO PIC16F871

MERGULHAR CLP QFP E/S/P Amortecedor


Nome do pino Descrição
Alfinete# Alfinete# Alfinete# Modelo Modelo

OSC1 / CLKI 13 14 30 EU

ST/CMOS(4) Entrada de cristal oscilador/entrada de fonte de relógio externa.

OSC2/CLKO 14 15 31 O —
Saída de cristal do oscilador. Conecta-se ao cristal ou ressonador no modo
Crystal Oscillator. No modo RC, o pino OSC2 emite CLKO, que tem 1/4 da
frequência de OSC1 e denota a taxa de ciclo de instrução.

MCLR/VPP/THV 1 2 18 I/P ST Entrada Master Clear (Reset) ou entrada de tensão de programação ou


controle do modo High Voltage Test. Este pino é um RESET baixo ativo para
o dispositivo.

PORTA é uma porta de E/S bidirecional.


RA0/YAN0 2 3 19 E/S TTL RA0 também pode ser entrada analógica 0.

RA1/AN1 3 4 20 E/S TTL RA1 também pode ser a entrada analógica 1.

RA2/AN2/VREF- 4 5 21 E/S TTL RA2 também pode ser entrada analógica 2 ou tensão de referência
analógica negativa.
RA3/AN3/VREF+ 5 6 22 E/S TTL RA3 também pode ser entrada analógica 3 ou tensão de
referência analógica positiva.
RA4/T0CKI 6 7 23 E/S ST RA4 também pode ser a entrada do relógio para o
temporizador/contador Timer0. A saída é do tipo dreno aberto.
RA5/AN4 7 8 24 E/S TTL RA5 também pode ser entrada analógica 4.

PORTB é uma porta de E/S bidirecional. O PORTB pode ser programado por
software para pull-up fraco interno em todas as entradas.
RB0/INT 33 36 8 E/S TTL/ST(1) RB0 também pode ser o pino de interrupção externo.

RB1 34 37 9 E/S TTL

RB2 35 38 10 E/S TTL

RB3/PGM 36 39 11 E/S TTL/ST(1) RB3 também pode ser a entrada de programação de baixa tensão.

RB4 37 41 14 E/S TTL Pino de interrupção na mudança.

RB5 38 42 15 E/S TTL Pino de interrupção na mudança.

RB6/PGC 39 43 16 E/S TTL/ST(2) Pino de interrupção na mudança ou pino do depurador em circuito.


Relógio de programação serial.
RB7/PGD 40 44 17 E/S TTL/ST(2) Pino de interrupção na mudança ou pino do depurador em circuito.
Dados de programação serial.

PORTC é uma porta de E/S bidirecional.


RC0/T1OSO/T1CKI 15 16 32 E/S ST RC0 também pode ser a saída do oscilador Timer1 ou um Timer1
entrada do relógio.

RC1/T1AXIS 16 18 35 E/S ST RC1 também pode ser a entrada do oscilador Timer1.


RC2/CCP1 17 19 36 E/S ST RC2 também pode ser a entrada Capture1/Saída Compare1/
Saída PWM1.
RC3 18 20 37 E/S ST

RC4 23 25 42 E/S ST

RC5 24 26 43 E/S ST

RC6/TX/CK 25 27 44 E/S ST RC6 também pode ser a transmissão assíncrona USART ou


Relógio síncrono.
RC7/RX/DT 26 29 1 E/S ST RC7 também pode ser o USART Asynchronous Receive ou
Dados síncronos.

Legenda: I = entrada O = saída E/S = entrada/saída ST P = potência


— = Não usado TTL = entrada TTL = entrada Schmitt Trigger
Nota 1: Este buffer é uma entrada Schmitt Trigger quando configurado como uma interrupção externa ou modo LVP.
2: Este buffer é uma entrada Schmitt Trigger quando usado no modo de programação serial.
3: Este buffer é uma entrada Schmitt Trigger quando configurada como E/S de uso geral e uma entrada TTL quando usada no modo Parallel Slave Port (para interface com um
barramento de microprocessador).
4: Este buffer é uma entrada Schmitt Trigger quando configurado no modo RC Oscillator e uma entrada CMOS caso contrário.

DS30569C-página 8 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 1-2: DESCRIÇÃO DA PINAGEM DO PIC16F871 (CONTINUAÇÃO)

MERGULHAR CLP QFP E/S/P Amortecedor


Nome do pino Descrição
Alfinete# Alfinete# Alfinete# Modelo Modelo

PORTD é uma porta de E/S bidirecional ou porta escrava paralela ao fazer


interface com um barramento de microprocessador.
RD0/PSP0 19 21 38 E/S ST/TTL(3)

RD1/PSP1 20 22 39 E/S ST/TTL(3)

RD2/PSP2 21 23 40 E/S ST/TTL(3)

RD3/PSP3 22 24 41 E/S ST/TTL(3)

RD4/PSP4 27 30 2 E/S ST/TTL(3)

RD5/PSP5 28 31 3 E/S ST/TTL(3)

RD6/PSP6 29 32 4 E/S ST/TTL(3)

RD7/PSP7 30 33 5 E/S ST/TTL(3)

PORTE é uma porta de E/S bidirecional.


RE0/RD/AN5 8 9 25 E/S ST/TTL(3) RE0 também pode ser controle de leitura para a porta escrava paralela, ou
entrada analógica 5.

RE1/WR/AN6 9 10 26 E/S ST/TTL(3) RE1 também pode ser controle de gravação para a porta escrava paralela, ou
entrada analógica 6.

RE2/CS/AN7 10 11 27 E/S ST/TTL(3) RE2 também pode ser controle de seleção para a porta escrava paralela,
ou entrada analógica 7.

VSS P —
12,31 13,34 6,29 Referência de aterramento para pinos lógicos e de E/S.

VDD P —
11,32 12,35 7,28 Alimentação positiva para pinos lógicos e de E/S.
NC - 1,17,28, 12,13, — Esses pinos não estão conectados internamente. Esses pinos devem ser deixados
40 33,34 desconectados.

Legenda: I = entrada O = saída E/S = entrada/saída ST P = potência


— = Não usado TTL = entrada TTL = entrada Schmitt Trigger
Nota 1: Este buffer é uma entrada Schmitt Trigger quando configurado como uma interrupção externa ou modo LVP.
2: Este buffer é uma entrada Schmitt Trigger quando usado no modo de programação serial.
3: Este buffer é uma entrada Schmitt Trigger quando configurada como E/S de uso geral e uma entrada TTL quando usada no Paralelo
Modo Slave Port (para interface com um barramento de microprocessador).
4: Este buffer é uma entrada Schmitt Trigger quando configurado no modo RC Oscillator e uma entrada CMOS caso contrário.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 9


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 10 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
2.0 ORGANIZAÇÃO DA MEMÓRIA 2.2 Organização da Memória de Dados

Os dispositivos PIC16F870/871 possuem três memórias A memória de dados é particionada em vários bancos
blocos. A memória de programa e a memória de dados têm que contêm os Registros de Uso Geral e os
barramentos separados, para que o acesso simultâneo possa ocorrer, Registros de funções especiais. Bits RP1 (STATUS<6>)
e é detalhado nesta seção. Os dados da EEPROM e RP0 (STATUS<5>) são os bits de seleção de banco.
bloco de memória é detalhado na Seção 3.0.
PR<1:0> Banco
Informações adicionais sobre a memória do dispositivo podem ser encontradas
00 0
na referência da família de MCU de médio alcance PICmicroTM
Manual (DS33023). 01 1

10 2
2.1 Organização da Memória do Programa 11 3

Os dispositivos PIC16F870/871 possuem um programa de 13 bits


Cada banco se estende até 7Fh (128 bytes). Quanto mais baixo
contador capaz de endereçar um programa de 8K x 14
locais de cada banco são reservados para o Special
espaço de memória. Os dispositivos PIC16F870/871 possuem
Registros de Função. Acima dos Registros de Função Especial estão
2K x 14 palavras de memória de programa FLASH. Acessando
os Registros de Uso Geral, implementados como
um local acima do endereço fisicamente implementado
RAM estática. Todos os bancos implementados contêm
causará um wraparound.
Registros de Função. Alguma função especial de “alto uso”
O vetor RESET está em 0000h e o vetor de interrupção Registros de um banco podem ser espelhados em outro
é às 0004h. banco para redução de código e acesso mais rápido.

Nota: A descrição da memória de dados EEPROM pode


FIGURA 2-1: PROGRAMA PIC16F870/871
podem ser encontrados na Seção 3.0 desta Folha de Dados.
MAPA DE MEMÓRIA E PILHA
2.2.1 REGISTRO DE PROPÓSITO GERAL
ARQUIVO
PC<12:0>

O arquivo de registro pode ser acessado diretamente ou


LIGUE, DEVOLVA 13
indiretamente através do FSR de Registro de Seleção de Arquivo.
RETFIE, RETLW

Nível de pilha 1

Nível de pilha 2

Nível de pilha 8

REINICIAR Vetor 0000h

Vetor de interrupção 0004h

On-Chip 0005h

Programa Página 0
Memória 07FFh

08:00h

1FFFh

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 11


Machine Translated by Google

PIC16F870/871
FIGURA 2-2: PIC16F870/871 MAPA DE ARQUIVO DE REGISTRO

Arquivo Arquivo Arquivo Arquivo

Endereço Endereço Endereço Endereço

Endereço indireto(*) 00h Endereço indireto(*) 80h Endereço indireto(*) 100h Endereço indireto(*) 180h
TMR0 01h OPTION_REG 81h TMR0 101h OPTION_REG 181h
PCL 02h PCL 82h PCL 102h PCL 182h
STATUS 03h STATUS 83h STATUS 103h STATUS 183h
FSR 04h FSR 84h FSR 104h FSR 184h
TRAZ 05h TRISA 85h 105h 185h
PORTB 06h TRISB 86h PORTB 106h TRISB 186h
PORTO 07h TRISC 87h 107h 187h
PORTO(2) 08h TRISD(2) 88h 108h 188h
PORTA(2) 09h TRÊS(2) 89h 109h 189h
PCLATH 0Ah PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah
INTCON 0Bh INTCON 8Bh INTCON 10Bh INTCON 18 Ms
PIR1 0Ch TORTA1 8 canais A DAMA 10 canais EECON1 18 canais

PIR2 0Dh PIE2 8º EEADR 10º EECON2 18º


TMR1L 0Eh PCON 8Eh EEDATH 10 Eh Reservado(1) 18h
TMR1H 0 Fh 8Fh EEADRH 10Fh Reservado(1) 18Fh
T1CON 10h 90h 110h 190h
TMR2 11h 91h
T2CON 12h PR2 92h
13h 93h
14h 94h
CCPR1L 15h 95h
CCPR1H 16h 96h
CCP1CON 17h 97h
RCSTA 18h TXT 98h
TXREG 19h SPBRG 99h
RCREG 1Ah 9Ah
1 Sra 9Bh
1 canal 9 canais

1º 9 Dh
ENDEREÇO 1Eh MORADA 9Eh
ADCON0 1Fh ADCON1 9Fh
120h 1A0h
20h Em geral Ahh
Propósito acessos acessos
Registro 20h-7Fh A0h - BFh
Em geral
32 Bytes BF 1BFh
Propósito
Registro C0h 1C0h

96 Bytes 16Fh 1EFh


EFh
F0h 170h 1F0h
acessos acessos acessos
70h-7Fh 70h-7Fh 70h-7Fh
7Fh FF 17Fh 1FFh
Banco 0 Banco 1 Banco 2 Banco 3

Locais de memória de dados não implementados, lidos como '0'.


*
Não é um registro físico.
Nota 1: Esses registros são reservados; manter esses registros limpos.
2: Esses registros não são implementados no PIC16F870.

DS30569C-página 12 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
2.2.2 REGISTROS DE FUNÇÕES ESPECIAIS Os registradores de função especial podem ser classificados em
dois conjuntos: núcleo (CPU) e periférico. Esses registros
Os registradores de função especial são registradores usados por
associados com as funções principais são descritos em
a CPU e os módulos periféricos para controlar o
detalhe nesta seção. As relacionadas com a operação de
operação desejada do dispositivo. Esses registros são
os recursos periféricos são descritos em detalhes no
implementado como RAM estática. Uma lista desses registros é
seção de recursos periféricos.
dado na Tabela 2-1.

TABELA 2-1: RESUMO DO REGISTRO DE FUNÇÕES ESPECIAIS

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA(2)

Banco 0
00h(4) INC O endereçamento deste local usa o conteúdo do FSR para endereçar a memória de dados (não um registrador físico) 0000 0000 0000 0000
01h TMR0 Registro do Módulo Timer0 xxxx xxxx uuuu uuuu
02h(4) PCL 0000 0000 0000 0000
Byte menos significativo do contador de programa (PC)
03h(4) STATUS IRP RP1 RP0 PD DC
PARA A PARTIR DE

C 0001 1xxx 000q quuu


04h(4) FSR xxxx xxxx uuuu uuuu
Ponteiro de endereço de memória de dados indireto

05h TRAZ — --0x 0000 --0u 0000


— PORTA Data Latch quando escrito: pinos PORTA quando lidos
06h PORTB PORTB Data Latch quando escrito: pinos PORTB quando lidos xxxx xxxx uuuu uuuu

07h PORTO PORTC Data Latch quando escrito: pinos PORTC quando lidos xxxx xxxx uuuu uuuu

08h(5) PORTA 09h(5) PORTD Data Latch quando escrito: pinos PORTD quando lidos xxxx xxxx uuuu uuuu

PORTA — — — — — RE2 RE1 RE0 ---- -xxx ---- -uuu

0Ah(1,4) PCLATH — — ---0 0000 ---0 0000


— Buffer de gravação para os 5 bits superiores do contador de programa
0Bh(4) INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u

0Ch PIR1 PSPIF(3) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

0Dh PIR2 — — — EEIF — — — — ---0 ---- ---0 ----

0Eh TMR1L Registro de retenção para o byte menos significativo do registro TMR1 de 16 bits xxxx xxxx uuuu uuuu

0 Fh TMR1H Registro de retenção para o byte mais significativo do registro TMR1 de 16 bits xxxx xxxx uuuu uuuu

10h T1CON — — T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON --00 0000 --uuuuuu

11h TMR2 Registro do Módulo Timer2 0000 0000 0000 0000

12h T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000

13h — —
— Não implementado
14h — —
— Não implementado
15h CCPR1L Capturar/Comparar/Registro PWM1 (LSB) xxxx xxxx uuuu uuuu

16h CCPR1H Capturar/Comparar/Registro PWM1 (MSB) xxxx xxxx uuuu uuuu

17h CCP1CON — — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000

18h RCSTA ESPANHA RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x

19h TXREG Registro de Dados de Transmissão USART 0000 0000 0000 0000

1Ah RCREG Registro de Dados de Recepção USART 0000 0000 0000 0000

1 Sra — —
— Não implementado
— —
1 canal — Não implementado
1º — —
— Não implementado
1Eh ENDEREÇO Byte alto do registrador de resultado A/D xxxx xxxx uuuu uuuu

1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE — ADON 0000 00-0 0000 00-0

Legenda: x = desconhecido, u = inalterado, q = valor depende da condição, - = não implementado, lido como '0', r = reservado.
Locais sombreados não são implementados, lidos como '0'.
Nota 1: O byte superior do contador de programa não é acessível diretamente. PCLATH é um registrador de retenção para o PC<12:8> cujo
os conteúdos são transferidos para o byte superior do contador de programa.
2: Outros Resets (sem Power-up) incluem RESET externo através de MCLR e Watchdog Timer Reset.
3: Bits PSPIE e PSPIF são reservados nos dispositivos de 28 pinos; sempre mantenha esses bits claros.
4: Esses registradores podem ser endereçados de qualquer banco.
5: PORTD, PORTE, TRISD e TRISE não são implementados fisicamente nos dispositivos de 28 pinos, lidos como '0'.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 13


Machine Translated by Google

PIC16F870/871
TABELA 2-1: RESUMO DO REGISTRO DE FUNÇÕES ESPECIAIS (CONTINUAÇÃO)
Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA(2)

Banco 1
80h(4) INC O endereçamento deste local usa o conteúdo do FSR para endereçar a memória de dados (não um registrador físico) 0000 0000 0000 0000
81h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
82h(4) PCL 0000 0000 0000 0000
Byte menos significativo do contador de programa (PC)
83h(4) STATUS IRP RP1 RP0 PD DC
PARA A PARTIR DE

C 0001 1xxx 000q quuu


84h(4) FSR xxxx xxxx uuuu uuuu
Ponteiro de endereço de memória de dados indireto

85h TRISA — --11 1111 --11 1111


— Registro de Direção de Dados PORTA
86h TRISB Registro de Direção de Dados PORTB 1111 1111 1111 1111

87h TRISC Registro de Direção de Dados PORTC 1111 1111 1111 1111
88h(5) TERCEIRO 1111 1111 1111 1111
Registro de Direção de Dados PORTD
89h(5) TRÊS IBF OBF IBOV PSPMODE — Bits de direção de dados PORTE 0000 -111 0000 -111

8Ah(1,4) PCLATH — — ---0 0000 ---0 0000


— Buffer de gravação para os 5 bits superiores do contador de programa
8Bh(4) INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u

8 canais TORTA1 PSPIE(3) ADIE RCIE ESSA — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

8º PIE2 — — — ISTO — — — — ---0 ---- ---0 ----

8Eh PCON — — — — — — POR BOR ---- --qq ---- --uu

8Fh — —
— Não implementado
90h — —
— Não implementado
91h — —
— Não implementado
92h PR2 Registro do Período do Timer2 1111 1111 1111 1111

93h — —
— Não implementado
94h — —
— Não implementado
95h — —
— Não implementado
96h — —
— Não implementado
97h — —
— Não implementado
98h TXT CSRC TX9 CHEN SINCRONIZAÇÃO - BRGH TRMT TX9D 0000 -010 0000 -010

99h SPBRG Registro do gerador de taxa de transmissão 0000 0000 0000 0000

9Ah — —
— Não implementado
9Bh — —
— Não implementado
— —
9 canais — Não implementado
9 Dh — —
— Não implementado
9Eh MORADA Byte baixo do registrador de resultado A/D xxxx xxxx uuuu uuuu

9Fh ADCON1 ADFM — — — PCFG3 PCFG2 PCFG1 PCFG0 0--- 0000 0--- 0000

Legenda: x = desconhecido, u = inalterado, q = valor depende da condição, - = não implementado, lido como '0', r = reservado.
Locais sombreados não são implementados, lidos como '0'.
Nota 1: O byte superior do contador de programa não é acessível diretamente. PCLATH é um registrador de retenção para o PC<12:8> cujo
os conteúdos são transferidos para o byte superior do contador de programa.
2: Outros Resets (sem Power-up) incluem RESET externo através de MCLR e Watchdog Timer Reset.
3: Bits PSPIE e PSPIF são reservados nos dispositivos de 28 pinos; sempre mantenha esses bits claros.
4: Esses registradores podem ser endereçados de qualquer banco.
5: PORTD, PORTE, TRISD e TRISE não são implementados fisicamente nos dispositivos de 28 pinos, lidos como '0'.

DS30569C-página 14 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 2-1: RESUMO DO REGISTRO DE FUNÇÕES ESPECIAIS (CONTINUAÇÃO)
Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA(2)

Banco 2

100h(4) IDF O endereçamento deste local usa o conteúdo do FSR para endereçar a memória de dados (não um registrador físico) 0000 0000 0000 0000
101h TMR0 Registro do Módulo Timer0 xxxx xxxx uuuu uuuu

102h(4) PCL Byte menos significativo do contador de programa (PC) 0000 0000 0000 0000

103h(4) ESTADO IRP RP1 RP0 PARA PD A PARTIR DE DC C 0001 1xxx 000q quuu
104h(4) FSR Ponteiro de endereço de memória de dados indireto xxxx xxxx uuuu uuuu

105h — —
— Não implementado
106h PORTB PORTB Data Latch quando escrito: pinos PORTB quando lidos xxxx xxxx uuuu uuuu

107h — —
— Não implementado
108h — —
— Não implementado
109h — —
— Não implementado
10Ah(1,4) PCLATH — — ---0 0000 ---0 0000
— Buffer de gravação para os 5 bits superiores do contador de programa
10Bh(4) INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u

10 canais A DAMA Registro de dados EEPROM xxxx xxxx uuuu uuuu

10º EEADR Registro de Endereço EEPROM xxxx xxxx uuuu uuuu

10 Eh EEDATH — xxxx xxxx uuuu uuuu


— Registrador de Dados EEPROM High Byte
10Fh EEADRH — — xxxx xxxx uuuu uuuu
— Registrador de Endereço EEPROM High Byte
Banco 3

180h(4) IDF O endereçamento deste local usa o conteúdo do FSR para endereçar a memória de dados (não um registrador físico) 0000 0000 0000 0000
181h OPTION_REG RBPU INTEDG T0CS 182h(4) PCL 183h(4) T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111

STATUS 184h(4) FSR Byte menos significativo do contador de programa (PC) 0000 0000 0000 0000

IRP RP1 RP0 PARA PD A PARTIR DE DC C 0001 1xxx 000q quuu

Ponteiro de endereço de memória de dados indireto xxxx xxxx uuuu uuuu

185h — —
— Não implementado
186h TRISB Registro de Direção de Dados PORTB 1111 1111 1111 1111

187h — —
— Não implementado
188h — —
— Não implementado
189h — —
— Não implementado
18Ah(1,4) PCLATH — — ---0 0000 ---0 0000
— Buffer de gravação para os 5 bits superiores do contador de programa
18Bh(4) INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u

18 canais EECON1 EPGD — — — WRERR WREN WR RD x--- x000 x--- u000

18º EECON2 EEPROM Control Register2 (não é um registrador físico)


---- ---- ---- ----

18h — Reservado manter claro 0000 0000 0000 0000

18Fh — Reservado manter claro 0000 0000 0000 0000

Legenda: x = desconhecido, u = inalterado, q = valor depende da condição, - = não implementado, lido como '0', r = reservado.
Locais sombreados não são implementados, lidos como '0'.
Nota 1: O byte superior do contador de programa não é acessível diretamente. PCLATH é um registrador de retenção para o PC<12:8> cujo
os conteúdos são transferidos para o byte superior do contador de programa.
2: Outros Resets (sem Power-up) incluem RESET externo através de MCLR e Watchdog Timer Reset.
3: Bits PSPIE e PSPIF são reservados nos dispositivos de 28 pinos; sempre mantenha esses bits claros.
4: Esses registradores podem ser endereçados de qualquer banco.
5: PORTD, PORTE, TRISD e TRISE não são implementados fisicamente nos dispositivos de 28 pinos, lidos como '0'.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 15


Machine Translated by Google

PIC16F870/871
2.2.2.1 Cadastro de STATUS Por exemplo, CLRF STATUS limpará os três
bits e defina o bit Z. Isso deixa o registro STATUS
O registrador STATUS contém o status aritmético de
como 000u u1uu (onde u = inalterado).
a ALU, o status RESET e os bits de seleção de banco para
memória de dados. Recomenda-se, portanto, que apenas BCF, BSF,
As instruções SWAPF e MOVWF são usadas para alterar o
O registrador STATUS pode ser o destino de qualquer
registro STATUS, pois essas instruções não
instrução, como com qualquer outro registro. Se o ESTADO
afetam os bits Z, C ou DC do registrador STATUS. Por
registrador é o destino de uma instrução que afeta
outras instruções que não afetem nenhum bit de status, consulte o
os bits Z, DC ou C, então a gravação nesses três bits é
“Resumo do Conjunto de Instruções”.
Desativado. Esses bits são definidos ou apagados de acordo com o
lógica do dispositivo. Além disso, os bits TO e PD não são Nota 1: Os bits C e DC funcionam como um empréstimo
gravável, portanto, o resultado de uma instrução com o e dígito emprestado bit, respectivamente, na
O registro de STATUS como destino pode ser diferente de subtração. Veja o SUBLW e o SUBWF
pretendido. instruções para exemplos.

CADASTRO 2-1: REGISTRO DE STATUS (ENDEREÇO: 03h, 83h, 103h, 183h)


R/W-0 R/W-0 R/W-0 R-1 R-1 R/Lx R/Lx R/Lx

IRP RP1 RP0 PARA PD A PARTIR DE DC C

pedaço 7 bit 0

bocado 7-6 IRP: bit Register Bank Select (usado para endereçamento indireto)
1 = Banco 2, 3 (100h - 1FFh)
0 = Banco 0, 1 (00h - FFh)
bocado 6-5 RP1:RP0: Bits de seleção do banco de registradores (usados para endereçamento direto)

11 = Banco 3 (180h - 1FFh)


10 = Banco 2 (100h - 17Fh)
11 = banco 1 (80h - FFh)
10 = Banco 0 (00h - 7Fh)
Cada banco tem 128 bytes.
bocado 4 PARA: Bit de tempo limite

1 = Após energização, instrução CLRWDT ou instrução SLEEP


0 = Ocorreu um tempo limite WDT

parte 3 PD: Bit de desligamento

1 = Após energização ou pela instrução CLRWDT


0 = Por execução da instrução SLEEP
parte 2 Z: bit zero

1 = O resultado de uma operação aritmética ou lógica é zero


0 = O resultado de uma operação aritmética ou lógica não é zero
pedaço 1 DC: bit de transporte/empréstimo de dígito (instruções ADDWF, ADDLW, SUBLW, SUBWF)
(para emprestar, a polaridade é invertida)
1 = Ocorreu um carry-out do 4º bit de baixa ordem do resultado
0 = Nenhum carry-out do 4º bit de baixa ordem do resultado
bit 0 C: Carry/borrow bit (instruções ADDWF, ADDLW, SUBLW, SUBWF)
1 = Ocorreu um transporte do bit mais significativo do resultado
0 = Não ocorreu carry-out do bit mais significativo do resultado

Nota: Para empréstimo, a polaridade é invertida. Uma subtração é executada somando os dois
complemento do segundo operando. Para instruções de rotação (RRF, RLF), este bit é
carregado com o bit de ordem alta ou baixa do registrador de origem.

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

DS30569C-página 16 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
2.2.2.2 OPTION_REG Cadastro
O registrador OPTION_REG é um registrador legível e gravável
registrador, que contém vários bits de controle para configurar
o prescaler TMR0/WDT postscaler (registro de atribuição único conhecido
também como o prescaler), o External
Interrupção INT, TMR0 e os pull-ups fracos em PORTB.

Nota: Para obter uma atribuição de pré-escalonador 1:1 para


registrador TMR0, atribua o prescaler a
o temporizador do cão de guarda.

REGISTRO 2-2: OPTION_REG REGISTRO (ENDEREÇO: 81h,181h)


R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1

RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

pedaço 7 bit 0

pedaço 7 RBPU: bit de habilitação de pull-up PORTB

1 = pull-ups PORTB estão desabilitados


0 = pull-ups PORTB são habilitados por valores de trava de porta individual
bocado 6 INTEDG: Interromper o bit de seleção de borda

1 = Interrupção na borda ascendente do pino RB0/INT


0 = Interromper na borda descendente do pino RB0/INT
pedaço 5 T0CS: Bit de seleção da fonte do relógio TMR0

1 = Transição no pino RA4/T0CKI


0 = Relógio do ciclo de instrução interno (CLKO)
bocado 4 T0SE: Bit de seleção de borda de origem TMR0

1 = Incremento na transição de alto para baixo no pino RA4/T0CKI


0 = Incremento na transição de baixo para alto no pino RA4/T0CKI
parte 3 PSA: bit de atribuição do pré-escalador

1 = Prescaler é atribuído ao WDT


0 = Prescaler é atribuído ao módulo Timer0
pouco 2-0 PS2:PS0: bits de seleção de taxa do pré-escalador

Valor de Bit Taxa TMR0 Taxa WDT

000 1: 2 1: 1
001 1: 4 1: 2
010 1:8 1: 4
011 1: 16 1:8
100 1: 32 1: 16
101 1: 64 1: 32
110 1: 128 1: 64
111 1: 256 1: 128

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 17


Machine Translated by Google

PIC16F870/871
2.2.2.3 Registro INTCON
Nota: Os bits de flag de interrupção são definidos quando uma interrupção
O registrador INTCON é um registrador legível e gravável, que contém vários condição ocorre, independentemente do estado de
bits de habilitação e flag para o seu bit de habilitação correspondente ou o global
Estouro de registro TMR0, mudança de porta RB e externo bit de habilitação, GIE (INTCON<7>). O software do usuário
Interrupções do pino RB0/INT. deve garantir que os bits de sinalização de interrupção
apropriados estejam limpos antes de habilitar um
interromper.

REGISTRO 2-3: REGISTRO INTCON (ENDEREÇO: 0Bh, 8Bh, 10Bh, 18Bh)


R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/Lx

GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF

pedaço 7 bit 0

pedaço 7 GIE: bit de habilitação de interrupção global

1 = Habilita todas as interrupções não mascaradas


0 = Desativa todas as interrupções

bocado 6 PEIE: bit de habilitação de interrupção periférica

1 = Habilita todas as interrupções de periféricos não mascarados


0 = Desabilita todas as interrupções periféricas
pedaço 5 T0IE: bit de habilitação de interrupção de estouro TMR0

1 = Habilita a interrupção TMR0


0 = Desabilita a interrupção TMR0

bocado 4 INTE: Bit de habilitação de interrupção externa RB0/INT

1 = Habilita a interrupção externa RB0/INT


0 = Desabilita a interrupção externa RB0/INT

parte 3 RBIE: Bit de habilitação de interrupção de alteração de porta RB

1 = Habilita a interrupção de mudança de porta RB


0 = Desabilita a interrupção de mudança de porta RB
parte 2 T0IF: Bit sinalizador de interrupção de estouro TMR0

1 = O registrador TMR0 transbordou (deve ser apagado no software)


0 = registrador TMR0 não estourou
pedaço 1 INTF: Bit de sinalização de interrupção externa RB0/INT

1 = Ocorreu a interrupção externa RB0/INT (deve ser apagada no software)


0 = A interrupção externa RB0/INT não ocorreu

bit 0 RBIF: Bit de sinalização de interrupção de alteração de porta RB

1 = Pelo menos um dos pinos RB7:RB4 mudou de estado (deve ser apagado no software)
0 = Nenhum dos pinos RB7:RB4 mudou de estado

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

DS30569C-página 18 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
2.2.2.4 Registro PIE1
O registrador PIE1 contém os bits de habilitação individuais para
as interrupções periféricas.

Nota: O bit PEIE (INTCON<6>) deve ser configurado para


habilitar qualquer interrupção periférica.

REGISTRO 2-4: REGISTRO PIE1 (ENDEREÇO: 8Ch)


R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0

PSPIE(1) ADIE RCIE TXIE ÿ CCP1IE TMR2IE TMR1IE

pedaço 7 bit 0

pedaço 7 PSPIE(1): Bit de habilitação de interrupção de leitura/gravação da porta paralela escrava

1 = Habilita a interrupção de leitura/gravação do PSP


0 = Desabilita a interrupção de leitura/gravação do PSP

bocado 6 ADIE: bit de habilitação de interrupção do conversor A/D

1 = Habilita a interrupção do conversor A/D


0 = Desabilita a interrupção do conversor A/D

pedaço 5 RCIE: USART Receive Interrupt Enable bit

1 = Habilita a interrupção de recebimento USART


0 = Desabilita a interrupção de recebimento USART
bocado 4 TXIE: bit de habilitação de interrupção de transmissão USART

1 = Habilita a interrupção de transmissão USART


0 = Desativa a interrupção de transmissão USART

parte 3 Não implementado: Leia como '0'

parte 2 CCP1IE: bit de habilitação de interrupção CCP1

1 = Habilita a interrupção CCP1


0 = Desabilita a interrupção CCP1
pedaço 1 TMR2IE: bit de habilitação de interrupção de correspondência entre TMR2 e PR2

1 = Habilita a interrupção de correspondência TMR2 para PR2


0 = Desabilita a interrupção de correspondência TMR2 para PR2

bit 0 TMR1IE: bit de habilitação de interrupção de estouro TMR1

1 = Habilita a interrupção de estouro TMR1


0 = Desabilita a interrupção de estouro TMR1

Nota 1: PSPIE é reservado no PIC16F870; sempre mantenha este bit claro.

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 19


Machine Translated by Google

PIC16F870/871
2.2.2.5 Registro PIR1
O registrador PIR1 contém os bits de flag individuais para
as interrupções periféricas.

Nota: Os bits de flag de interrupção são definidos quando uma interrupção


condição ocorre, independentemente do estado de
seu bit de habilitação correspondente ou o global
bit de habilitação, GIE (INTCON<7>). O software do usuário
deve garantir que os bits de interrupção apropriados
estejam claros antes de habilitar um
interromper.

REGISTRO 2-5: REGISTRO PIR1 (ENDEREÇO: 0Ch)


R/W-0 R/W-0 R-0 R-0 U-0 R/W-0 R/W-0 R/W-0

PSPIF(1) ADIF RCIF TXIF ÿ CCP1IF TMR2IF TMR1IF

pedaço 7 bit 0

pedaço 7 PSPIF(1): Bit de sinalização de interrupção de leitura/gravação da porta paralela escrava

1 = Ocorreu uma operação de leitura ou escrita (deve ser apagada no software)


0 = Nenhuma leitura ou gravação ocorreu

bocado 6 ADIF: Bit sinalizador de interrupção do conversor A/D

1 = Uma conversão A/D concluída


0 = A conversão A/D não está completa

pedaço 5 RCIF: USART Receive Interrupt Flag bit


1 = O buffer de recepção USART está cheio
0 = O buffer de recebimento USART está vazio
bocado 4 TXIF: Bit sinalizador de interrupção de transmissão USART

1 = O buffer de transmissão USART está vazio


0 = O buffer de transmissão USART está cheio

parte 3 Não implementado: Leia como '0'

parte 2 CCP1IF: Bit de sinalização de interrupção CCP1

Modo de captura:
1 = Ocorreu uma captura de registro TMR1 (deve ser apagada no software)
0 = Nenhuma captura de registro TMR1 ocorreu

Modo de comparação:
1 = Ocorreu uma correspondência de comparação de registro TMR1 (deve ser apagada no software)
0 = Nenhuma correspondência de comparação de registro TMR1 ocorreu
Modo PWM:
Não utilizado neste modo.

pedaço 1 TMR2IF: Bit de sinalização de interrupção de correspondência de TMR2 para PR2

1 = ocorreu a correspondência de TMR2 para PR2 (deve ser apagada no software)


0 = Nenhuma correspondência TMR2 para PR2 ocorreu

bit 0 TMR1IF: Bit sinalizador de interrupção de estouro TMR1

1 = registrador TMR1 estourado (deve ser apagado no software)


0 = registrador TMR1 não estourou

Nota 1: PSPIF é reservado no PIC16F870; sempre mantenha este bit claro.

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'

- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

DS30569C-página 20 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
2.2.2.6 Registro PIE2
O registrador PIE2 contém o bit de habilitação individual para
a interrupção da operação de gravação da EEPROM.

REGISTRO 2-6: REGISTRO PIE2 (ENDEREÇO: 8Dh)


U-0 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0
— — — EEEE — —— —

pedaço 7 bit 0

bocado 7-5 Não implementado: Leia como '0'


bocado 4 EEIE: Bit de habilitação de interrupção da operação de gravação EEPROM

1 = Ativar interrupção de gravação EE


0 = Desativar interrupção de gravação EE
pouco 3-0 Não implementado: Leia como '0'

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 21


Machine Translated by Google

PIC16F870/871
2.2.2.7 Registro PIR2
O registrador PIR2 contém o bit sinalizador para a EEPROM
interrupção da operação de gravação.

.
Nota: Os bits de flag de interrupção são definidos quando uma interrupção
condição ocorre, independentemente do estado de
seu bit de habilitação correspondente ou o global
bit de habilitação, GIE (INTCON<7>). O software do
usuário deve garantir que os bits de sinalização de
interrupção apropriados estejam limpos antes de habilitar um
interromper.

REGISTRO 2-7: REGISTRO PIR2 (ENDEREÇO: 0Dh)


U-0 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0
— — — FEIE — —— —

pedaço 7 bit 0

bocado 7-5 Não implementado: Leia como '0'


bocado 4 EEIF: Bit sinalizador de interrupção da operação de gravação EEPROM

1 = A operação de gravação foi concluída (deve ser apagada no software)


0 = A operação de gravação não está concluída ou não foi iniciada
pouco 3-0 Não implementado: Leia como '0'

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

DS30569C-página 22 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
2.2.2.8 Registro PCON
O registrador Power Control (PCON) contém bits de flag
para permitir a diferenciação entre um Power-on Reset
(POR), um Brown-out Reset (BOR), um Watchdog Reset
(WDT) e um MCLR Reset externo.

Nota: BOR é desconhecido em POR. Deve ser definido


pelo usuário e verificados em
RESETS para ver se BOR está limpo, indicando
ocorreu um apagão. O BOR
bit de status é um don't care e não é
previsível se o circuito brown-out estiver desabilitado
(limpando o bit BOREN no
palavra de configuração).

REGISTRO 2-8: REGISTRO PCON (ENDEREÇO: 8Eh)


U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-1
— — — — — - POR Há

pedaço 7 bit 0

bocado 7-2 Não implementado: Leia como '0'


pedaço 1 POR: Bit de status de reinicialização de inicialização

1 = Nenhuma reinicialização de inicialização ocorreu

0 = Ocorreu um Power-on Reset (deve ser definido no software após ocorrer um Power-on Reset)
bit 0 BOR: bit de status de reinicialização de brown-out

1 = Não ocorreu nenhuma reinicialização de brown-out

0 = Ocorreu um Brown-out Reset (deve ser definido no software após ocorrer um Brown-out Reset)

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 23


Machine Translated by Google

PIC16F870/871
2.3 PCL e PCLATH A pilha funciona como um buffer circular. Isso significa que
depois que a pilha foi empurrada oito vezes, a nona
O Program Counter (PC) tem 13 bits de largura. O menor push sobrescreve o valor que foi armazenado desde o primeiro
byte vem do registrador PCL, que é um Empurre. O décimo push substitui o segundo push (e
e registro gravável. Os bits superiores (PC<12:8>) são em breve).
não legíveis, mas são indiretamente graváveis através do
Registro PCLATH. Em qualquer RESET, os bits superiores do Nota 1: Não há bits de status para indicar pilha
PC será limpo. A Figura 2-3 mostra as duas situações condições de estouro ou estouro de pilha.
para o carregamento do PC. O exemplo superior na figura mostra
2: Não há instruções/mnemônicos
como o PC é carregado em uma gravação para PCL
chamado PUSH ou POP. Estas são ações
(PCLATH<4:0> ÿ PCH). O exemplo inferior na figura mostra como o
que ocorrem a partir da execução da CHAMADA,
PC é carregado durante um CALL ou GOTO
Instruções RETURN, RETLW e RETFIE, ou a
instrução (PCLATH<4:3> ÿ PCH).
vetorização para uma interrupção
Morada.
FIGURA 2-3: CARREGAMENTO DO PC EM
SITUAÇÕES DIFERENTES
2.4 Paginação da Memória do Programa

PCH PCL A arquitetura PIC16FXXX é capaz de endereçar


um bloco de palavras contínuo de 8K de memória de programa. o
12 87 0 Instrução com
As instruções CALL e GOTO fornecem 11 bits do
computador
PCL como
Destino endereço, que permite ramificações dentro de qualquer programa 2K
PCLATH<4:0> 8
5
página de memória. Portanto, as 8 mil palavras do programa
VAI
memória são divididas em quatro páginas. Desde o
PIC16F872 tem apenas 2K palavras de memória de programa ou
PCLATH
uma página, não é necessário código adicional para garantir que
a página correta é selecionada antes de um CALL ou GOTO
PCH PCL
instrução é executada. Os bits PCLATH<4:3> devem
12 11 10 87 0
sempre ser mantido como zeros. Se um retorno de uma CHAMADA
computador IR, LIGAR
instrução (ou interrupção) é executada, toda a instrução de 13 bits
PCLATH<4:3> 11 PC é retirado da pilha. Manipulação do
2
Código de operação <10:0> PCLATH não é necessário para as instruções de devolução.

PCLATH
2,5 Endereçamento Indireto, INDF e
Registros FSR
2.3.1 GOTO COMPUTADO O registro INDF não é um registro físico. Endereçamento
o registrador INDF causará endereçamento indireto.
Um GOTO calculado é realizado adicionando um deslocamento
ao contador de programa (ADDWF PCL). Ao fazer um O endereçamento indireto é possível por meio do registro INDF.
tabela lida usando um método GOTO computado, cuidado Qualquer instrução usando o registrador INDF
deve ser exercido se a localização da mesa cruzar um PCL acessa o registro apontado pelo registro File Select, FSR. Lendo o
limite de memória (cada bloco de 256 bytes). Consulte o próprio registro INDF indiretamente
nota de aplicação, "Implementando uma leitura de tabela" (FSR = 0) lerá 00h. Escrevendo no registrador INDF
(AN556). indiretamente resulta em uma não operação (embora os bits de status
pode ser afetado). Um endereço efetivo de 9 bits é obtido
2.3.2 PILHA concatenando o registrador FSR de 8 bits e o bit IRP

A família PIC16FXXX tem uma profundidade de 8 níveis x 13 bits (STATUS<7>), conforme mostrado na Figura 2-4.

pilha de hardware ampla. O espaço da pilha não faz parte Um programa simples para limpar locais de RAM 20h-2Fh
programa ou espaço de dados e o ponteiro da pilha é usando endereçamento indireto é mostrado no Exemplo 2-1.
não legível ou gravável. O PC é empurrado para o
pilha quando uma instrução CALL é executada ou uma interrupção EXEMPLO 2-1: ENDEREÇO INDIRETO
causa uma ramificação. A pilha é POPed no evento movlw 0x20 ;inicializar ponteiro
de uma instrução RETURN, RETLW ou RETFIE movwf FSR ;para RAM
execução. PCLATH não é afetado por um PUSH ou POP PRÓXIMO clrf INC ;limpar registro INDF
Operação. incf FSR,F ;inc ponteiro
btfss FSR,4 ;tudo feito? vá para NEXT; não
está claro próximo
PROSSEGUIR
: ;sim continua

DS30569C-página 24 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 2-4: ENDEREÇO DIRETO/INDIRETO

Endereçamento direto Endereçamento indireto

RP1: RP0 6 do opcode 0 IRP 7 Registro FSR 0

Seleção de banco Seleção de local Seleção de banco Seleção de local

00 01 10 11

00h 80h 100h 180h

Dados

Memória(1)

7Fh FF 17Fh 1FFh

Banco 0 Banco 1 Banco 2 Banco 3

Nota 1: Para detalhes do mapa do arquivo de registro, veja a Figura 2-2.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 25


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 26 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
3.0 EEPROM DE DADOS E MEMÓRIA DE O valor escrito na memória de programa não precisa ser uma
instrução válida. Portanto, números de até 14 bits podem ser
PROGRAMA FLASH
armazenados na memória para uso como parâmetros de calibração,
A EEPROM de Dados e a Memória de Programa FLASH são números de série, ASCII de 7 bits compactados, etc. A execução
legíveis e graváveis durante a operação normal em toda a faixa de de um local de memória de programa contendo dados que formam
VDD . Uma operação de apagamento em massa não pode ser uma instrução inválida resulta em um NOP.
emitida a partir do código do usuário (o que inclui a remoção da
proteção do código). A memória de dados não é mapeada 3.1 EEADR
diretamente no espaço do arquivo de registro. Em vez disso, ele é
endereçado indiretamente por meio dos registradores de função especial (SFR).Os registradores de endereço podem endereçar até um máximo de
256 bytes de dados EEPROM ou até um máximo de 8K palavras de
Existem seis SFRs usados para ler e escrever o programa e a
programa FLASH. No entanto, o PIC16F870/871 possui 64 bytes de
memória EEPROM de dados. Esses registros são:
EEPROM de dados e 2K palavras de programa FLASH.
• EECON1
• EECON2
Ao selecionar um valor de endereço de programa, o MSByte do
• EDATA endereço é escrito no registrador EEADRH e o LSByte é gravado
• EEDATH no registrador EEADR. Ao selecionar um valor de endereço de
• EEADR dados, apenas o LSByte do endereço é escrito no registrador
EEADR.
• EEADRH
Nos dispositivos PIC16F870/871, os dois bits superiores do EEADR
A memória de dados EEPROM permite leitura e escrita de bytes.
devem sempre ser limpos para evitar o acesso inadvertido ao local
Ao fazer interface com o bloco de memória de dados, o EEDATA
errado na EEPROM de dados.
mantém os dados de 8 bits para leitura/gravação e o EEADR
Isso também se aplica à memória do programa. Os cinco MSbits
mantém o endereço da localização da EEPROM que está sendo
superiores do EEADRH devem estar sempre limpos durante o
acessada. Os registradores EEDATH e EEADRH não são utilizados
acesso ao FLASH do programa.
para acesso a dados EEPROM. Os dispositivos PIC16F870/871
possuem 64 bytes de EEPROM de dados com faixa de endereços
de 0h a 3Fh. 3.2 Registros EECON1 e EECON2
A memória de dados EEPROM é classificada para altos ciclos de O registro EECON1 é o registro de controle para configurar e iniciar
apagamento/gravação. O tempo de gravação é controlado por um o acesso. O registrador EECON2 não é um registrador implementado
temporizador no chip. O tempo de gravação varia de acordo com a fisicamente, mas é usado exclusivamente na sequência de gravação
tensão e temperatura, bem como de chip para chip. Consulte as da memória para evitar gravações inadvertidas.
especificações para obter os limites exatos.

A memória de programa permite leituras e escritas de palavras. Existem muitos bits usados para controlar as operações de leitura e
O acesso à memória do programa permite o cálculo da soma de escrita em dados EEPROM e memória de programa FLASH. O bit
verificação e o armazenamento da tabela de calibração. Uma escrita EEPGD determina se o acesso será um programa ou acesso à
de byte ou palavra apaga automaticamente a localização e grava os memória de dados. Quando estiver desmarcado, quaisquer
novos dados (apagar antes de gravar). A gravação na memória do operações subsequentes funcionarão na memória de dados
programa interromperá a operação até que a gravação seja EEPROM. Quando definido, todas as operações subsequentes
concluída. A memória do programa não pode ser acessada durante operarão na memória do programa.
a gravação, portanto, o código não pode ser executado. Durante a As operações de leitura usam apenas um bit adicional, RD, que
operação de escrita, o oscilador continua a cronometrar os periféricos inicia a operação de leitura a partir do local de memória desejado.
e, portanto, eles continuam a operar. Os eventos de interrupção Uma vez definido este bit, o valor da localização de memória
serão detectados e essencialmente “enfileirados” até que a gravação desejada estará disponível nos registradores de dados.
seja concluída. Quando a gravação for concluída, a próxima Este bit não pode ser apagado pelo firmware. Ele é automaticamente
instrução no pipeline será executada e ocorrerá a ramificação para apagado no final da operação de leitura. Para leituras de memória
o endereço do vetor de interrupção. de dados EEPROM, os dados estarão disponíveis no registrador
Ao fazer interface com o bloco de memória de programa, os EEDATA no próximo ciclo de instrução após o bit RD ser definido.
registradores EEDATH:EEDATA formam uma palavra de dois bytes, Para leituras de memória de programa, os dados serão carregados
que contém os dados de 14 bits para leitura/gravação. Os nos registradores EEDATH:EEDATA, seguindo a segunda instrução
registradores EEADRH:EEADR formam uma palavra de dois bytes, após o bit RD ser energizado.
que contém o endereço de 13 bits do local FLASH que está sendo
acessado. Os dispositivos PIC16F870/871 possuem 2K palavras de
programa FLASH com faixa de endereços de 0h a 7FFh. Os bits
superiores não utilizados nos registradores EEDATH e EEDATA
são todos lidos como '0's.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 27


Machine Translated by Google

PIC16F870/871
As operações de escrita têm dois bits de controle, WR e WREN, instruções fofas. A localização de memória desejada apontada
e dois bits de status, WRERR e EEIF. O bit WREN por EEADRH:EEADR será apagado. Em seguida, os dados
é usado para habilitar ou desabilitar a operação de gravação. Quando valor em EEDATH:EEDATA será programado. Quando
WREN estiver limpo, a operação de gravação será desabilitada. completo, o bit de flag EEIF será definido e o
Portanto, o bit WREN deve ser definido antes de executar microcontrolador continuará a executar o código.
uma operação de escrita. O bit WR é usado para iniciar a gravação O bit WRERR é usado para indicar quando o
Operação. Ele também é automaticamente limpo no final de
Os dispositivos PIC16F870/871 foram redefinidos durante uma gravação
a operação de escrita. O sinalizador de interrupção EEIF é usado para
Operação. WRERR deve ser apagado após a inicialização
determinar quando a gravação na memória é concluída. Esta bandeira
Redefinir. Depois disso, deve ser verificado em qualquer outro
deve ser apagado no software antes de definir o bit WR.
REDEFINIR. O bit WRERR é definido quando uma operação de gravação
Para memória de dados EEPROM, uma vez que o bit WREN e
é interrompido por um MCLR Reset, ou um WDT Time-out
o bit WR foi definido, o endereço de memória desejado
Reinicialize, durante a operação normal. Nestas situações, após um
no EEADR será apagado, seguido por uma gravação dos dados
RESET, o usuário deve verificar o bit WRERR
em EEDATA. Esta operação ocorre em paralelo com
e reescreva o local de memória, se definido. O conteúdo de
o microcontrolador continua a executar normalmente.
os registradores de dados, registradores de endereço e bit EPGD
Quando a gravação estiver concluída, o bit de sinalização EEIF será definido.
não são afetados por MCLR Reset ou WDT
Para memória de programa, uma vez que o bit WREN e o WR
Time-out Reset, durante a operação normal.
bit foi definido, o microcontrolador deixará de exe

REGISTRO 3-1: REGISTRO EECON1 (ENDEREÇO: 18Ch)


R/Lx U-0 U-0 U-0 R/Lx R/W-0 R/S-0 R/S-0

EPGD — — — WRERR WREN WR RD

pedaço 7 bit 0

pedaço 7 EPGD: Bit de seleção de EEPROM de programa/dados


1 = Acessa a memória do programa
0 = Acessa a memória de dados
(Este bit não pode ser alterado enquanto uma operação de leitura ou gravação estiver em andamento.)
bocado 6-4 Não implementado: Leia como '0'
parte 3 WRERR: Bit de sinalização de erro EEPROM
1 = Uma operação de gravação é encerrada prematuramente (qualquer reinicialização de MCLR ou qualquer reinicialização de WDT durante
operação normal)
0 = A operação de gravação foi concluída
parte 2 WREN: bit de habilitação de gravação de EEPROM

1 = Permite ciclos de gravação


0 = Inibe a gravação na EEPROM

pedaço 1 WR: bit de controle de gravação

1 = Inicia um ciclo de gravação. (O bit é apagado pelo hardware assim que a gravação estiver completa. O bit WR
só pode ser definido (não apagado) no software.)
0 = O ciclo de gravação na EEPROM está completo
bit 0 RD: bit de controle de leitura

1 = Inicia uma leitura de EEPROM. (RD é limpo no hardware. O bit RD só pode ser definido (não
desmarcado) no software.)
0 = Não inicia uma leitura de EEPROM

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

DS30569C-página 28 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
3.3 Lendo a Memória de Dados Os passos para escrever na memória de dados EEPROM são:

EEPROM 1. Se a etapa 10 não for implementada, verifique o bit WR


para ver se uma gravação está em andamento.
A leitura da memória de dados EEPROM requer apenas que o
2. Escreva o endereço para EEADR. Certifique-se de que o
endereço desejado para acesso seja escrito no EEADR
endereço não é maior que o tamanho da memória de
registrar e limpar o bit EPGD. Depois que o bit RD é definido,
os dispositivos PIC16F870/871.
dados estarão disponíveis no registro EEDATA no
ciclo de instrução muito próximo. EEDATA manterá esse valor 3. Escreva o valor de dados de 8 bits a ser programado em
até que outra operação de leitura seja iniciada ou até que seja o registro EEDATA.
escrito por firmware. 4. Limpe o bit EEPGD para apontar para os dados EEPROM
memória.
Os passos para ler a memória de dados EEPROM são:
5. Configure o bit WREN para habilitar as operações do programa.
1. Escreva o endereço para EEDATA. Certifique-se de que
6. Desabilite as interrupções (se habilitadas).
o endereço não é maior que o tamanho da memória
dos dispositivos PIC16F870/871. 7. Execute a sequência especial de cinco instruções:

2. Limpe o bit EEPGD para apontar para os dados EEPROM • Escreva 55h para EECON2 em duas etapas (primeiro para W,
memória. depois para EECON2)

3. Configure o bit RD para iniciar a operação de leitura. • Escreva AAh para EECON2 em duas etapas (primeiro para
W, então para EECON2)
4. Leia os dados do registro EEDATA.
• Defina o bit WR

EXEMPLO 3-1: LEITURA DE DADOS EEPROM 8. Habilite interrupções (se estiver usando interrupções).

BSF ESTADO, RP1 ; 9. Limpe o bit WREN para desabilitar o programa


BCF ESTADO, RP0 ;Banco 2 operações.
MOVF ADDR, W ;Escrever endereço 10. Na conclusão do ciclo de gravação, o bit WR
MOVWF EEADR ;para ler de
é apagado e o bit de sinalização de interrupção EEIF é definido.
BSF ESTADO, RP0 ;Banco 3
(EEIF deve ser apagado pelo firmware.) Se a etapa 1 for
BCF EECON1, EEPGD ;Apontar para a memória de dados
não implementado, então o firmware deve verificar
BSF EECON1, RD ;Iniciar operação de leitura
BCF para EEIF ser definido, ou WR para limpar, para indicar o
ESTADO, RP0 ;Banco 2
final do ciclo do programa.
MOVF EEDATA, W ; W = EEDATA

EXEMPLO 3-2: GRAVAÇÃO DE DADOS EEPROM

3.4 Gravando nos dados da EEPROM ESTADO BSF, RP1;


STATUS BSF, RP0 ;Banco 3
Memória
BTFSC EECON1, WR ;Esperar por
Existem muitos passos para escrever nos dados da EEPROM GOTO $-1 ;escrever para terminar
memória. Ambos os valores de endereço e dados devem ser escritos STATUS BCF, RP0 ;Banco 2

aos SFR. O bit EPGD deve ser apagado e o MOVF ADDR, W ;Endereço para
MOVWF EEADR ;escrever para
O bit WREN deve ser definido para habilitar gravações. O bit WREN
VALOR MOVF, W ;Dados para
devem ser mantidos sempre claros, exceto ao escrever para
MOVWF EEDATA ;Escreva
os dados da EEPROM. O bit WR só pode ser definido se o
STATUS BSF, RP0 ;Banco 3
bit WREN foi definido em uma operação anterior (ou seja, eles
BCF EECON1, EEPGD ;Apontar para a memória de dados
ambos não podem ser definidos na mesma operação). A CARRIÇA BSF EECON1, WREN ;Ativar gravações
bit deve ser apagado pelo firmware após a gravação. ;Apenas desabilita interrupções
Limpando o bit WREN antes da gravação BCF INTCON, GIE ;se já habilitado,
completes não encerrará a gravação em andamento. ;caso contrário, descarte
MOVLW 0x55 ;Escrever 55h para
As gravações na memória de dados EEPROM também devem ser
MOVWF EECON2 ;EECON2
precedidas por uma sequência especial de instruções que evitam MOVLW 0xAA ;Escrever AAh para
operações de gravação inadvertidas. Esta é uma sequência de MOVWF EECON2 ;EECON2
cinco instruções que devem ser executadas sem interrupções. O firmware BSF EECON1, WR ;Inicia a operação de escrita
deve verificar se uma gravação não está em ;Ativa apenas interrupções
progresso antes de iniciar outro ciclo. BSF INTCON, GIE ;se estiver usando interrupções,
;caso contrário, descarte
BCF EECON1, WREN ;Desativar gravações

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 29


Machine Translated by Google

PIC16F870/871
3.5 Lendo a Memória do Programa FLASH 3.6 Escrevendo para o programa FLASH
Memória

A leitura da memória de programa FLASH é muito parecida com a de A gravação na memória de programa FLASH é única, pois
memória de dados EEPROM, apenas duas instruções NOP devem o microcontrolador não executa instruções enquanto
ser inserido após o bit RD ser definido. Essas duas instruções programação está acontecendo. O oscilador continua
ciclos que as instruções NOP executam, serão usados por funcionar e todos os periféricos continuarem a operar e
o microcontrolador para ler os dados fora do programa interrupções de fila, se habilitadas. Uma vez que a operação de gravação
memória e insira o valor no EEDATH:EEDATA completa (especificação D133), o processador começa
registros. Os dados estarão disponíveis após a segunda executando o código de onde parou. A outra diferença importante ao
instrução NOP. EEDATH e EEDATA manterão seus escrever na memória do programa FLASH é que o bit de configuração
valor até que outra operação de leitura seja iniciada, ou até WRT, quando limpo,
eles são escritos por firmware. impede qualquer gravação na memória do programa (consulte a Tabela 3-1).

Os passos para ler a memória do programa FLASH são: Assim como a memória de dados EEPROM, existem muitas etapas

1. Escreva o endereço para EEADRH:EEADR. Faço por escrito na memória de programa FLASH. Ambos os endereços
e os valores de dados devem ser gravados nos SFRs. o
certifique-se de que o endereço não é maior do que o
O bit EPGD deve ser definido e o bit WREN deve ser definido
tamanho da memória dos dispositivos PIC16F870/871.
para habilitar gravações. O bit WREN deve ser mantido livre em
2. Defina o bit EPGD para apontar para o programa FLASH
todas as vezes, exceto ao gravar no programa FLASH
memória.
memória. O bit WR só pode ser definido se o bit WREN
3. Configure o bit RD para iniciar a operação de leitura. foi definido em uma operação anterior (ou seja, ambos não podem
4. Execute duas instruções NOP para permitir que o ser definido na mesma operação). O bit WREN deve
microcontrolador para ler a memória do programa. em seguida, ser limpo pelo firmware após a gravação. Limpando o
5. Leia os dados do EEDATH:EEDATA O bit WREN antes que a gravação seja realmente concluída não
registros. encerrar a gravação em andamento.

As gravações na memória do programa também devem ser precedidas por


EXEMPLO 3-3: LEIA O PROGRAMA FLASH uma sequência especial de instruções que impedem operações de
BSF ESTADO, RP1; gravação inadvertidas. Esta é uma sequência de cinco
BCF STATUS, RP0 ;Banco 2 instruções que devem ser executadas sem interrupção
MOVF ADDRL, W. ;Escreva o para cada byte escrito. Estas instruções devem então ser
MOVWF EEADR ;bytes de endereço seguido por duas instruções NOP para permitir que o microcontrolador
MOVF ADDRH,W ;para o desejado
configure a operação de gravação. Uma vez que a escrita é
MOVWF EEADRH ;endereço para ler
completo, a execução das instruções começa com o
BSF STATUS, RP0 ;Banco 3
instrução após o segundo NOP.
BSF EECON1, EEPGD ;Aponta para a memória do programa
BSF EECON1, RD ;Iniciar operação de leitura Os passos para escrever na memória de programa são:
NOP ;Necessário dois NOPs
1. Escreva o endereço para EEADRH:EEADR. Faço
NOP ;
BCF STATUS, RP0 ;Banco 2 certifique-se de que o endereço não é maior do que o
MOVF EEDATA, W ;DATAL = EEDATA tamanho da memória dos dispositivos PIC16F870/871.
DADOS DO MOVWF ; 2. Escreva o valor de dados de 14 bits a ser programado em
MOVF EEDATH,W ;DATAH = EEDATH os registradores EEDATH:EEDATA.
DADOS MOVWF ;
3. Defina o bit EPGD para apontar para o programa FLASH
memória.
4. Configure o bit WREN para habilitar as operações do programa.
5. Desabilite as interrupções (se habilitadas).
6. Execute a sequência especial de cinco instruções:
• Escreva 55h para EECON2 em duas etapas (primeiro para W,
depois para EECON2)
• Escreva AAh para EECON2 em duas etapas (primeiro para
W, depois para EECON2)
• Defina o bit WR
7. Execute duas instruções NOP para permitir que o
microcontrolador para configurar para operação de gravação.

8. Habilite interrupções (se estiver usando interrupções).


9. Limpe o bit WREN para desabilitar o programa
operações.

DS30569C-página 30 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Na conclusão do ciclo de escrita, o bit WR é 3.8 Proteção Contra Espúrios
apagado e o bit de flag de interrupção EEIF é definido. (EEIF Grava
deve ser limpo pelo firmware.) Como o microcontrolador
não executa instruções durante o ciclo de escrita, o Existem condições em que o dispositivo pode não querer
firmware não precisa necessariamente verificar gravar na memória de dados EEPROM ou programa FLASH
EEIF, ou WR, para determinar se a gravação foi concluída. memória. Para proteger contra essas condições de gravação espúrias,
vários mecanismos foram incorporados ao
EXEMPLO 3-4: GRAVAÇÃO DO PROGRAMA FLASH dispositivos PIC16F870/871. Ao ligar, o bit WREN
é apagado e o temporizador de inicialização (se habilitado)
BSF ESTADO, RP1;
BCF
impede gravações.
STATUS, RP0 ;Banco 2
MOVF ADDRL, W. ;Escrever endereço A sequência de início de gravação e o bit WREN juntos,
MOVWF EEADR ;de desejado
ajudar a evitar gravações acidentais durante o brown-out,
MOVF ADDRH, W ;memória do programa falhas de energia ou mau funcionamento do firmware.
MOVWF EEADRH ;localização
VALOR MOVF, W ;Escrever valor para
MOVWF EEDATA ;programa em
3.9 Operação Enquanto Código Protegido
MOVF VALUEH, W ;memória desejada
Os dispositivos PIC16F870/871 possuem dois códigos de proteção
MOVWF EEDATH ;localização
BSF
mecanismos, um bit para memória de dados EEPROM e
STATUS, RP0 ;Banco 3
BSF dois bits para memória de programa FLASH. Os dados podem ser lidos
EECON1, EEPGD ;Aponta para a memória do programa
BSF EECON1, WREN ;Ativar gravações e gravados na memória de dados EEPROM, independentemente
;Apenas desabilita interrupções do estado do bit de proteção de código, CPD. Quando o código
BCF INTCON, GIE ;se já habilitado, proteção está habilitada e CPD desmarcado, externo
;caso contrário, descarte o acesso via ICSP está desabilitado, independente do estado de
MOVLW 0x55 ;Escrever 55h para o código de memória do programa protege os bits. Isso impede
MOVWF EECON2 ;EECON2
o conteúdo da memória de dados EEPROM seja lido
MOVLW 0xAA ;Escrever AAh para fora do aparelho.
MOVWF EECON2 ;EECON2
BSF EECON1, WR ;Inicia a operação de escrita O estado do código de memória do programa protege os bits,
NOP ;Dois NOPs para permitir micro CP0 e CP1, não afetam a execução de instruções fora da memória do
NOP ;para configurar para escrever programa. O PIC16F870/871
;Ativa apenas interrupções os dispositivos podem sempre ler os valores na memória do programa,
BSF INTCON, GIE ;se estiver usando interrupções, independentemente do estado dos bits de proteção do código.
;caso contrário, descarte
No entanto, o estado do código protege os bits e o
BCF EECON1, WREN ;Desabilita gravações O bit WRT terá efeitos diferentes na gravação no programa
memória. A Tabela 4-1 mostra o efeito do código de proteção
bits e o bit WRT na memória do programa.
3.7 Verificação de Gravação
Uma vez que a proteção de código tenha sido habilitada para qualquer
Os dispositivos PIC16F870/871 não verificam automaticamente o valor Memória de dados EEPROM ou memória de programa FLASH,
escrito durante uma operação de escrita. Dependendo da aplicação, apenas um apagamento completo de todo o dispositivo desativará o código
boas práticas de programação podem proteção.
ditar que o valor escrito na memória seja verificado
contra o valor original. Isso deve ser usado em aplicações onde
gravações excessivas podem sobrecarregar bits próximos ao
limites de resistência especificados.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 31


Machine Translated by Google

PIC16F870/871
3.10 Proteção contra gravação de memória de
programa FLASH

A palavra de configuração contém um bit que protege contra gravação


a memória de programa FLASH, chamada WRT. Este pouco pode
só pode ser acessado ao programar o
Dispositivos PIC16F870/871 via ICSP. Uma vez que a proteção contra
gravação esteja habilitada, apenas uma exclusão de todo o dispositivo será
desativá-lo. Quando habilitada, a proteção contra gravação impede qualquer
grava na memória de programa FLASH. Proteção contra gravação
não afeta as leituras da memória do programa.

TABELA 3-1: LER/GRAVAR ESTADO DA MEMÓRIA INTERNA DO PROGRAMA FLASH

Bits de configuração interno interno


Localização da memória ICSP Leitura ICSP Gravação
Ler Escreva
CP1 CP0 WRT

00x Toda a memória do programa Sim Não Não Não

010 Áreas desprotegidas Sim Não Sim Não

010 Áreas Protegidas Sim Não Não Não

011 Áreas desprotegidas Sim Sim Sim Não

011 Áreas Protegidas Sim Não Não Não

100 áreas desprotegidas Sim Não Sim Não

100 áreas protegidas Sim Não Não Não

101 Áreas desprotegidas Sim Sim Sim Não

101 Áreas Protegidas Sim Não Não Não

110 Toda a memória do programa Sim Não Sim Sim

111 Toda a memória do programa Sim Sim Sim Sim

TABELA 3-2: REGISTROS ASSOCIADOS A EEPROM DE DADOS/PROGRAMA FLASH

Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ISSO É T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh
10º Registrador de Endereço EEADR EEPROM, Byte Baixo xxxx xxxx uuuu uuuu
10Fh EEADRH — — — Endereço EEPROM, High Byte xxxx xxxx uuuu uuuu
10 canais Registro de dados EEDATA EEPROM, byte baixo xxxx xxxx uuuu uuuu
10 Eh EEDATH — — Registrador de dados EEPROM, High Byte xxxx xxxx uuuu uuuu
18 canais EECON1 EEPGD — — — WRERR WREN WR RD x--- x000 x--- u000
18º — —
EECON2 EEPROM Control Register2 (não é um registro físico)
Lenda: x = desconhecido, u = inalterado, r = reservado, - = não implementado, lido como '0'.
As células sombreadas não são usadas durante o acesso FLASH/EEPROM.
Nota 1: Esses bits são reservados; sempre mantenha esses bits claros.

DS30569C-página 32 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
4.0 PORTAS E/S FIGURA 4-1: DIAGRAMA DE BLOCOS DE
RA3: PINOS RA0 E RA5
Alguns pinos para essas portas de E/S são multiplexados com um
função alternativa para os recursos periféricos no Dados
Ônibus
dispositivo. Em geral, quando um periférico é habilitado, esse D Q
O pino não pode ser usado como um pino de E/S de uso geral.
VDD
WR
Informações adicionais sobre portas de E/S podem ser encontradas no Porta
Manual de referência da família de MCU de médio porte PIC® CKQ
P
(DS33023). Trava de dados

N
4.1 PORTA e o Registo TRISA D Q Pino de E/S (1)

PORTA é uma porta bidirecional de 6 bits de largura. O registrador de WR


TRIS
direção de dados correspondente é TRISA. Definir um CKQ VSS
O bit TRISA (= 1) fará com que o pino PORTA correspondente Analógico
Trinco TRIS Entrada
uma entrada (ou seja, coloque o driver de saída correspondente em um Modo
Modo de alta impedância). Limpar um bit TRISA (= 0)
faça do pino PORTA correspondente uma saída (ou seja, coloque
o conteúdo da trava de saída no pino selecionado). RD TRIS TTL
Entrada
A leitura do registrador PORTA lê o status dos pinos, Amortecedor

enquanto escrever para ele irá escrever para a trava da porta. Tudo escrito Q D
operações são operações de leitura-modificação-gravação. Portanto,
uma gravação em uma porta implica que os pinos da porta são lidos, o
DENTRO
valor é modificado e, em seguida, gravado na trava de dados da porta.

O pino RA4 é multiplexado com o relógio do módulo Timer0


PORTO RD
entrada para se tornar o pino RA4/T0CKI. O RA4/T0CKI
pino é uma entrada Schmitt Trigger e uma saída de dreno aberto.
Conversor A/D
Todos os outros pinos PORTA têm níveis de entrada TTL e full
Drivers de saída CMOS.
Nota 1: Os pinos de E/S possuem diodos de proteção para VDD e VSS.
Outros pinos PORTA são multiplexados com entradas analógicas
e entrada analógica VREF . O funcionamento de cada pino é
selecionado limpando/definindo os bits de controle no FIGURA 4-2: DIAGRAMA DE BLOCOS DE
Registro ADCON1 (Registro de Controle A/D 1). PIN RA4/T0CKI
Nota: Em um Power-on Reset, esses pinos são Dados
Ônibus
configurados como entradas analógicas e lidos como DQ
'0'. WR
PORTA
O registrador TRISA controla a direção do RA CKQ
N Pino de E/S (1)
pinos, mesmo quando estão sendo usados como entradas analógicas. Trava de dados

O usuário deve garantir que os bits no registrador TRISA sejam


DQ VSS
mantidos ajustados ao usá-los como entradas analógicas.
WR
TRIS Schmitt
CKQ
EXEMPLO 4-1: INICIALIZANDO PORTA Acionar
Trinco TRIS Entrada
BCF ESTADO, RP0 ; Amortecedor

BCF ESTADO, RP1 ;Banco0


PORTA CLRF ;Iniciar PORTA por
;limpando a saída RD TRIS
;trava de dados
BSF ESTADO, RP0 ;Selecione o Banco 1 QD
MOVLW 0x06 ;Configura todos os pinos
MOVWF ADCON1 ;como entradas digitais
DENTRO
DENTRO

MOVLW 0xCF ;Valor utilizado


PORTO RD
para ;inicializar dados ;direção

MOVWF TRISA ;Defina RA<3:0> como


Entrada de relógio TMR0
;entradas
;RA<5:4> como saídas
Nota 1: O pino de E/S possui diodos de proteção somente para VSS .
;TRISA<7:6> são
;sempre leia como '0'.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 33


Machine Translated by Google

PIC16F870/871
TABELA 4-1: FUNÇÕES DA PORTA

Nome Pedaço# Amortecedor Função

RA0/YAN0 bit0 Entrada/saída TTL ou entrada analógica.


RA1/AN1 bit1 Entrada/saída TTL ou entrada analógica.
RA2/AN2 bit2 Entrada/saída TTL ou entrada analógica.
RA3/AN3/VREF bit3 Entrada/saída TTL ou entrada analógica ou VREF.
RA4/T0CKI bit4 Entrada/saída ST ou entrada de relógio externo para Timer0. A saída é do tipo dreno aberto.
RA5/AN4 bit5 Entrada/saída TTL ou entrada analógica.
Legenda: TTL = entrada TTL, ST = entrada Schmitt Trigger

TABELA 4-2: RESUMO DOS REGISTOS ASSOCIADOS A PORTA

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

05h PORTA — — RA5 RA4 RA3 RA2 RA1 RA0 --0x 0000 --0u 0000
85h TRISA — — Registro de Direção de Dados PORTA --11 1111 --11 1111
9Fh ADCON1 ADFM — — — PCFG3 PCFG2 PCFG1 PCFG0 --0- 0000 --0- 0000

Legenda: x = desconhecido, u = inalterado, - = locais não implementados lidos como '0'.


As células sombreadas não são usadas pelo PORTA.

DS30569C-página 34 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
4.2 PORTB e o Registro TRISB Essa interrupção pode despertar o dispositivo do SLEEP. O usuário, na
Rotina de Serviço de Interrupção, pode limpar a interrupção da seguinte
PORTB é uma porta bidirecional de 8 bits de largura. O registrador de maneira:
direção de dados correspondente é TRISB. Definir um bit TRISB (= 1) fará
a) Qualquer leitura ou gravação de PORTB. Isso vai acabar com o
com que o pino PORTB correspondente seja uma entrada (ou seja,
condição de incompatibilidade.
coloque o driver de saída correspondente em um modo de alta impedância).
Apagar um bit TRISB (= 0) fará com que o pino PORTB correspondente b) Apague o bit de flag RBIF.

seja uma saída (ou seja, coloque o conteúdo da trava de saída no pino Uma condição de incompatibilidade continuará a definir o bit de sinalização RBIF.
selecionado). A leitura de PORTB encerrará a condição de incompatibilidade e permitirá
Três pinos de PORTB são multiplexados com a função de Programação que o bit de sinalização RBIF seja apagado.
de Baixa Tensão: RB3/PGM, RB6/PGC e RB7/PGD. As funções O recurso de interrupção na alteração é recomendado para a operação de
alternativas desses pinos são descritas na Seção de Recursos Especiais. ativação ao pressionar a tecla e operações em que PORTB é usado
apenas para o recurso de interrupção na alteração. A sondagem de
Cada um dos pinos PORTB tem um pull-up interno fraco. Um único bit de PORTB não é recomendada ao usar o recurso de interrupção na alteração.
controle pode ativar todos os pull-ups. Isto é feito limpando o bit RBPU
(OPTION_REG<7>). O pull-up fraco é desligado automaticamente quando Esse recurso de interrupção na incompatibilidade, juntamente com pull-
o pino da porta é configurado como saída. Os pull-ups são desabilitados ups configuráveis por software nesses quatro pinos, permite uma interface
em um Power-on Reset. fácil com um teclado e possibilita o despertar ao pressionar a tecla.
Consulte o Manual do Controle Integrado, “Implementando o Despertar ao
Pressionar a Tecla” (AN552).
FIGURA 4-3: DIAGRAMA DE BLOCOS DE
PINS RB3:RB0
RB0/INT é um pino de entrada de interrupção externa e é configurado
VDD usando o bit INTEDG (OPTION_REG<6>).
RBPU(2) Fraco RB0/INT é discutido em detalhes na Seção 11.10.1.
P
Puxar para cima

Trava de dados
Barramento de dados

DQ
FIGURA 4-4: DIAGRAMA DE BLOCOS DE
PINS RB7:RB4
Porta WR Pino de E/S (1)
CK VDD

Trinco TRIS RBPU(2)


Fraco
P
DQ Puxar para cima
TTL Trava de dados
WR TRIS Entrada Barramento de dados

CK Amortecedor
DQ

Pino de E/S (1)


Porta WR CK

Trinco TRIS
RD TRIS
DQ
QD
WR TRIS TTL
CK
Entrada
Porta RD DENTRO
Amortecedor ST
Amortecedor

RB0/INT
RD TRIS Robusto
RB3/PGM
Gatilho Schmitt Porta RD QD
Amortecedor

Nota 1: Os pinos de E/S possuem proteção de diodo para VDD e VSS. Porta RD DENTRO Q1
conjunto RBIF
2: Para habilitar pull-ups fracos, defina o(s) bit(s) TRIS
apropriado(s) e limpe o bit RBPU (OPTION_REG<7>).

De outro QD
Quatro dos pinos do PORTB, RB7:RB4, possuem um recurso de pinos RB7:RB4 Porta RD
mudança de interrupção. Apenas os pinos configurados como entradas DENTRO

Q3
podem causar esta interrupção (ou seja, qualquer pino RB7:RB4
RB7:RB6 no modo de programação serial
configurado como uma saída é excluído da comparação de interrupção na
mudança). Os pinos de entrada (de RB7:RB4) são comparados com o Nota 1: Os pinos de E/S possuem proteção de diodo para VDD e VSS.
valor antigo travado na última leitura de PORTB. As saídas de 2: Para habilitar pull-ups fracos, defina o(s) bit(s) TRIS
apropriado(s) e limpe o bit RBPU (OPTION_REG<7>).
“incompatibilidade” de RB7:RB4 são combinadas em OR para gerar a
Interrupção de Mudança de Porta RB com o bit de flag RBIF (INTCON<0>).

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 35


Machine Translated by Google

PIC16F870/871
TABELA 4-3: FUNÇÕES DA PORTA

Nome Pedaço# Amortecedor Função

RB0/INT bit0 TTL/ST(1) Pino de entrada/saída ou entrada de interrupção externa. Pull-up fraco
programável por software interno.
RB1 bit1 TTL Pino de entrada/saída. Pull-up fraco programável por software interno.
RB2 bit2 TTL Pino de entrada/saída. Pull-up fraco programável por software interno.
RB3/PGM bit3 TTL/ST(1) Pino de entrada/saída ou pino de programação no modo LVP. Pull-up fraco
programável por software interno.
RB4 bit4 TTL Pino de entrada/saída (com interrupção na mudança). Pull-up fraco programável por software
interno.
RB5 bit5 TTL Pino de entrada/saída (com interrupção na mudança). Pull-up fraco programável por software
interno.
RB6/PGC bit6 TTL/ST(2) Pino de entrada/saída (com interrupção na mudança) ou pino do Depurador In-Circuit.
Pull-up fraco programável por software interno. Relógio de programação serial.
RB7/PGD bit7 TTL/ST(2) Pino de entrada/saída (com interrupção na mudança) ou pino do Depurador In-Circuit.
Pull-up fraco programável por software interno. Dados de programação serial.
Legenda: TTL = entrada TTL, ST = entrada Schmitt Trigger
Nota 1: Este buffer é uma entrada Schmitt Trigger quando configurado como interrupção externa ou modo LVP.
2: Este buffer é uma entrada Schmitt Trigger quando usado no modo de programação serial.

TABELA 4-4: RESUMO DOS REGISTOS ASSOCIADOS A PORTB


Valor em
Valor em:
Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

06h, 106h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx uuuu uuuu

86h, 186h TRISB Registro de direção de dados PORTB 1111 1111 1111 1111

81h, 181h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
Legenda: x = desconhecido, u = inalterado. As células sombreadas não são usadas pelo PORTB.

DS30569C-página 36 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
4.3 PORTC e o Registro TRISC FIGURA 4-5: DIAGRAMA DE BLOCO DA PORTA
(SAÍDA PERIFÉRICA
PORTC é uma porta bidirecional de 8 bits de largura. O registrador
SOBREPOR)
de direção de dados correspondente é TRISC. Definir um
Seleção de Porta/Periférico(2)
O bit TRISC (= 1) fará o PORTC correspondente
pin uma entrada (ou seja, coloque o driver de saída correspondente em Saída de dados periféricos VDD
0
um modo de alta impedância). Limpar um bit TRISC (= 0) Barramento de dados
DQ P
faça do pino PORTC correspondente uma saída (ou seja, coloque WR 1
PORTA
o conteúdo da trava de saída no pino selecionado). CKQ

PORTC é multiplexado com várias funções periféricas Trava de dados

(Tabela 4-5). Os pinos PORTC têm entrada Schmitt Trigger E/S


DQ
tampões. WR pino(1)
TRIS
CKQ N
Ao habilitar funções periféricas, deve-se ter cuidado
tomadas na definição de bits TRIS para cada pino PORTC. Algum Trinco TRIS
Vss
periféricos substituem o bit TRIS para tornar um pino uma saída,
enquanto outros periféricos substituem o bit TRIS para Schmitt
RD TRIS
fazer de um pino uma entrada. Uma vez que a substituição do bit TRIS está em Acionar
enquanto o periférico está habilitado, leia-modifique as instruções Periférico
VOCÊ(3) QD
de escrita (BSF, BCF, XORWF) com TRISC como
o destino deve ser evitado. O usuário deve
DENTRO
RD
consulte a seção periférica correspondente para o PORTA
configurações corretas de bits TRIS.
Entrada periférica

Nota 1: Os pinos de E/S possuem proteção de diodo para VDD e VSS.


2: O sinal Port/Peripheral Select seleciona entre os dados da
porta e a saída periférica.
3: Peripheral OE (Output Enable) só é ativado se Peripheral
Select estiver ativo.

TABELA 4-5: FUNÇÕES PORTC

Nome Bit# Tipo de Buffer Função

RC0/T1OSO/T1CKI bit0 ST Pino da porta de entrada/saída ou saída do oscilador Timer1/entrada do relógio Timer1.
RC1/T1AXIS bit1 ST Pino da porta de entrada/saída ou entrada do oscilador Timer1.
RC2/CCP1 bit2 ST Pino da porta de entrada/saída ou entrada Capture1/saída Compare1/
Saída PWM1.
RC3 bit3 ST Pino da porta de entrada/saída.

RC4 bit4 ST Pino da porta de entrada/saída.

RC5 bit5 ST Pino da porta de entrada/saída.

RC6/TX/CK bit6 ST Pino da porta de entrada/saída ou transmissão assíncrona USART ou


relógio síncrono.
RC7/RX/DT bit7 ST Pino da porta de entrada/saída ou recebimento assíncrono USART ou
dados síncronos.
Legenda: ST = entrada do gatilho Schmitt

TABELA 4-6: RESUMO DOS REGISTOS ASSOCIADOS A PORTC


Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

07h PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx uuuu uuuu
87h 1111 1111 1111 1111
Registro de Direção de Dados TRISC PORTC
Legenda: x = desconhecido, u = inalterado

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 37


Machine Translated by Google

PIC16F870/871
4.4 Registros PORTD e TRISD FIGURA 4-6: DIAGRAMA DE BLOCO PORTD
(NO MODO DE PORTA DE E/S)
Esta seção não é aplicável ao PIC16F870.
Dados
PORTD é uma porta de 8 bits com buffers de entrada Schmitt Trigger. Ônibus
D Q
Cada pino é configurável individualmente como entrada ou
WR
resultado. Porta Pino de E/S (1)
CK
PORTD pode ser configurado como uma porta de microprocessador de
Trava de dados
8 bits de largura (porta escrava paralela) definindo o bit de controle
PSPMODE (TRISE<4>). Neste modo, os buffers de entrada DQ
são TTL. WR
TRIS
CK Schmitt
Acionar
Trinco TRIS Entrada
Amortecedor

RD TRIS

Q D

DENTRO
DENTRO

Porta RD

Nota 1: Os pinos de E/S possuem diodos de proteção para VDD e VSS.

TABELA 4-7: FUNÇÕES PORTD

Nome Pedaço# Tipo de buffer Função

RD0/PSP0 bit0 ST/TTL(1) Pino da porta de entrada/saída ou porta paralela escrava bit0.

RD1/PSP1 bit1 ST/TTL(1) Pino da porta de entrada/saída ou bit1 da porta paralela escrava.

RD2/PSP2 bit2 ST/TTL(1) Pino da porta de entrada/saída ou bit2 da porta paralela escrava.

RD3/PSP3 bit3 ST/TTL(1) Pino da porta de entrada/saída ou bit3 da porta paralela escrava.

RD4/PSP4 bit4 ST/TTL(1) Pino da porta de entrada/saída ou porta paralela escrava bit4.

RD5/PSP5 bit5 ST/TTL(1) Pino da porta de entrada/saída ou porta paralela escrava bit5.

RD6/PSP6 bit6 ST/TTL(1) Pino da porta de entrada/saída ou porta paralela escrava bit6.

RD7/PSP7 bit7 ST/TTL(1) Pino da porta de entrada/saída ou porta paralela escrava bit7.

Legenda: ST = entrada Schmitt Trigger, TTL = entrada TTL Nota 1: Os


buffers de entrada são Schmitt Triggers quando em modo I/O e buffers TTL quando em modo Parallel Slave Port.

TABELA 4-8: RESUMO DOS REGISTOS ASSOCIADOS A PORTD

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

08h PORTA RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx uuuu uuuu

88h Registro de Direção de Dados TRISD PORTD 1111 1111 1111 1111

89h TRÊS IBF OBF IBOV PSPMODE — Bits de direção de dados PORT 0000 -111 0000 -111

Legenda: x = desconhecido, u = inalterado, - = não implementado lido como '0'. As células sombreadas não são usadas pelo PORTD.

DS30569C-página 38 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
4.5 Registro PORTE e TRISE FIGURA 4-7: DIAGRAMA DE BLOCO DE PORTA

(NO MODO DE PORTA DE E/S)


Esta seção não é aplicável ao PIC16F870.
Dados
O PORTE possui três pinos, RE0/RD/AN5, RE1/WR/AN6 e RE2/CS/AN7, Ônibus
DQ
que são configuráveis individualmente como entradas ou saídas. Esses WR
pinos possuem buffers de entrada Schmitt Trigger. PORTA Pino de E/S (1)
CK

Trava de dados
I/O PORTE torna-se entradas de controle para a porta do microprocessador
quando o bit PSPMODE (TRISE<4>) é definido. Neste modo, o usuário DQ

deve certificar-se de que os bits TRISE<2:0> estejam configurados (os WR


TRIS Schmitt
pinos são configurados como entradas digitais). Certifique-se de que CK
Acionar
ADCON1 esteja configurado para E/S digital. Neste modo, os buffers de Trinco TRIS buffer de
entrada são TTL. entrada

O registro 4-1 mostra o registro TRISE, que também controla a operação


da porta paralela escrava. RD TRIS

Os pinos PORTE são multiplexados com entradas analógicas. Quando


Q D
selecionado como uma entrada analógica, esses pinos serão lidos como '0's.

TRISE controla a direção dos pinos RE, mesmo quando estão sendo
DENTRO

usados como entradas analógicas. O usuário deve certificar-se de manter


PORTO RD
os pinos configurados como entradas ao usá-los como entradas analógicas.

Nota 1: Os pinos de E/S possuem diodos de proteção para VDD e VSS.


Nota: Em um Power-on Reset, esses pinos são configurados como
entradas analógicas.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 39


Machine Translated by Google

PIC16F870/871
REGISTRO 4-1: REGISTRO TRISE (ENDEREÇO: 89h)
R-0 R-0 R/W-0 R/W-0 U-0 R/W-1 R/W-1 R/W-1

IBF OBF IBOV PSPMODE — Bit2 Bit1 Bit0

pedaço 7 bit 0

pedaço 7 Bits de Status/Controle da Porta Escrava Paralela

IBF: bit de status completo do buffer de entrada

1 = Uma palavra foi recebida e está esperando para ser lida pela CPU
0 = Nenhuma palavra foi recebida

bocado 6 OBF: bit de status completo do buffer de saída

1 = O buffer de saída ainda contém uma palavra escrita anteriormente


0 = O buffer de saída foi lido
pedaço 5 IBOV: Bit de detecção de estouro de buffer de entrada (no modo microprocessador)

1 = Ocorreu uma gravação quando uma palavra inserida anteriormente não foi lida (deve ser
apagada no software)
0 = Não ocorreu estouro

bocado 4 PSPMODE: Bit de seleção do modo de porta paralela escrava


1 = Modo de Porta Escrava Paralela
0 = Modo de E/S de uso geral
parte 3 Não implementado: Leia como '0'
Bits de direção de dados PORTE

parte 2 Bit2: Bit de controle de direção para pino RE2/CS/AN7

1 = Entrada
0 = Saída
pedaço 1 Bit1: Bit de controle de direção para pino RE1/WR/AN6

1 = Entrada
0 = Saída
bit 0 Bit0: Bit de controle de direção para pino RE0/RD/AN5

1 = Entrada
0 = Saída

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

DS30569C-página 40 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 4-9: FUNÇÕES DE PORTA

Nome Pedaço# Tipo de buffer Função

RE0/RD/AN5 bit0 ST/TTL(1) Pino da porta de entrada/saída ou entrada de controle de leitura no modo Parallel Slave Port ou
entrada analógica:
RD

1 = Não é uma operação de leitura


0 = Operação de leitura. Lê o registro PORTD (se o chip estiver selecionado.)
RE1/WR/AN6 bit1 ST/TTL(1) Pino da porta de entrada/saída ou entrada de controle de gravação no modo Porta Escrava Paralela
ou entrada analógica:
WR

1 = Não é uma operação de gravação


0 = Operação de gravação. Escreve o registrador PORTD (se o chip for selecionado).
RE2/CS/AN7 bit2 ST/TTL(1) Pino da porta de entrada/saída ou entrada de controle de seleção de chip no modo de porta paralela
escrava ou entrada analógica:
CS
1 = O dispositivo não está selecionado
0 = O dispositivo está selecionado

Legenda: ST = entrada Schmitt Trigger, TTL = entrada TTL Nota 1: Os buffers

de entrada são Schmitt Triggers quando em modo I/O e buffers TTL quando em modo Parallel Slave Port.

TABELA 4-10: RESUMO DOS REGISTOS ASSOCIADOS À PORTE

Valor em
Valor em:
Nome do Endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

09:00 PORTA — — — — — RE2 RE1 RE0 ---- -xxx ---- -uuu

89h TRISE IBF OBF IBOV PSPMODE — Bits de direção de dados PORT 0000 -111 0000 -111

9Fh ADCON1 ADFM — — — PCFG3 PCFG2 PCFG1 PCFG0 --0- 0000 --0- 0000

Legenda: x = desconhecido, u = inalterado, - = não implementado lido como '0'. As células sombreadas não são usadas pelo PORTE.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 41


Machine Translated by Google

PIC16F870/871
4.6 Porta Escrava Paralela FIGURA 4-8: PORTO E PORTO
DIAGRAMA DE BLOCO
A Porta Escrava Paralela não é implementada no PIC16F870.
(PORTO ESCRAVO PARALELO)

PORTD opera como uma Porta Escrava Paralela de 8 bits ou porta


de microprocessador quando o bit de controle PSPMODE (TRISE<4>) Barramento de dados

DQ
é definido. No modo Slave, é legível e gravável de forma assíncrona
WR
pelo mundo externo através do pino de entrada de controle RD RE0/ pino
Porta
CK RDx
RD e do pino de entrada de controle WR RE1/WR.
TTL

Ele pode interagir diretamente com um barramento de dados de Q D

microprocessador de 8 bits. O microprocessador externo pode ler ou


gravar a trava PORTD como uma trava de 8 bits. A configuração do RD DENTRO
DENTRO

bit PSPMODE permite que o pino da porta RE0/RD seja a entrada Porta

RD, RE1/WR a entrada WR e RE2/CS a entrada CS (seleção de


Um pouco de PORTD
chip). Para esta funcionalidade, os bits de direção de dados
correspondentes do registrador TRISE (TRISE<2:0>) devem ser Definir sinalizador de interrupção

configurados como entradas (set). Os bits de configuração da porta PSPIF (PIR1<7>)


A/D PCFG3:PCFG0 (ADCON1<3:0>) devem ser configurados para
configurar os pinos RE2:RE0 como E/S digital.

Na verdade, existem duas travas de 8 bits. Um para saída de dados


e outro para entrada de dados. O usuário grava dados de 8 bits na Ler
RD
TTL
trava de dados PORTD e lê os dados da trava do pino da porta
Seleção de Chip
(observe que eles têm o mesmo endereço). Neste modo, o registro
TTL CS
TRISD é ignorado, pois o microprocessador está controlando a
direção do fluxo de dados. Escreva
TTL WR
Uma gravação no PSP ocorre quando as linhas CS e WR são
detectadas pela primeira vez como baixas. Quando as linhas CS ou
Nota: O pino de E/S possui diodos de proteção para VDD e VSS.
WR ficam altas (acionadas por nível), o bit de flag de status do buffer
de entrada cheio (IBF) (TRISE<7>) é definido no ciclo de clock Q4,
seguindo o próximo ciclo Q2, para sinalizar que a gravação está
concluída (Figura 4-9). O bit sinalizador de interrupção, PSPIF
(PIR1<7>), também é definido no mesmo ciclo de clock Q4. O IBF só
pode ser apagado lendo a trava de entrada PORTD.
O bit de flag de status Input Buffer Overflow (IBOV) (TRISE<5>) é
definido se uma segunda gravação no PSP for tentada quando o
byte anterior não tiver sido lido do buffer.

Uma leitura do PSP ocorre quando as linhas CS e RD são detectadas


pela primeira vez como baixas. O bit de flag de status do buffer de
saída cheio (OBF) (TRISE<6>) é apagado imediatamente (Figura
4-10), indicando que o latch PORTD está esperando para ser lido
pelo barramento externo. Quando o pino CS ou RD fica alto
(disparado por nível), o bit sinalizador de interrupção PSPIF é definido
no ciclo de clock Q4, seguindo o próximo ciclo Q2, indicando que a
leitura está completa. O OBF permanece baixo até que os dados
sejam gravados no PORTD pelo firmware do usuário.

Quando não estiver no modo PSP, os bits IBF e OBF são mantidos
limpos. No entanto, se o bit de sinalizador IBOV foi definido
anteriormente, ele deve ser limpo no firmware.

Uma interrupção é gerada e travada no bit de sinalização PSPIF


quando uma operação de leitura ou gravação é concluída.
PSPIF deve ser apagado pelo usuário no firmware e a interrupção
pode ser desabilitada apagando o bit de habilitação de interrupção
PSPIE (PIE1<7>).

DS30569C-página 42 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 4-9: FORMAS DE ONDA DE ESCRITA DE PORTA ESCRAVO PARALELA

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

CS

WR

RD

PORTE<7:0>

IBF

OBF

PSPIF

FIGURA 4-10: LEITURA DE FORMAS DE ONDA DE PORTA ESCRAVO PARALELA

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

CS

WR

RD

PORTE<7:0>

IBF

OBF

PSPIF

TABELA 4-11: REGISTROS ASSOCIADOS À PORTA ESCRAVO PARALELA

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

08h Trava de dados da porta PORTD quando gravada: pinos da porta quando lidos xxxx xxxx uuuu uuuu

09h PORTA — — — — — RE2 RE1 RE0 ---- -xxx ---- -uuu

89h TRÊS IBF OBF IBOV PSPMODE — PORT bits de direção de dados 0000 -111 0000 -111

0Ch PIR1 PSPIF ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 0000 0000 0000

8 canais TORTA1 RCIE DE FRANGO PSPIE TXIE — CCP1IE TMR2IE TMR1IE 0000 0000 0000 0000

9Fh ADCON1 ADFM — — — PCFG3 PCFG2 PCFG1 PCFG0 --0- 0000 --0- 0000

Legenda: x = desconhecido, u = inalterado, - = não implementado, lido como '0'. As células sombreadas não são usadas pela Porta Escrava Paralela.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 43


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 44 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
5.0 MÓDULO DE TEMPORIZADOR0 O modo contador é selecionado configurando o bit T0CS
(OPTION_REG<5>). No modo Contador, o Timer0 será incrementado
O temporizador/contador do módulo Timer0 possui os seguintes a cada borda ascendente ou descendente do pino RA4/T0CKI. A
recursos:
borda de incremento é determinada pelo bit Timer0 Source Edge
• temporizador/contador de 8 bits Select, T0SE (OPTION_REG<4>). O bit de limpeza T0SE seleciona a
• Legível e gravável borda ascendente. Restrições na entrada de clock externa são
discutidas em detalhes na Seção 5.2.
• Prescaler programável por software de 8 bits •
Seleção de relógio interno ou externo
O prescaler é mutuamente compartilhado exclusivamente entre o
• Interrupção no overflow de FFh a 00h • Seleção
módulo Timer0 e o Watchdog Timer. O pré-calador não é legível ou
de borda para relógio externo gravável. A seção 5.3 detalha a operação do prescaler.

A Figura 5-1 é um diagrama de blocos do módulo Timer0 e do


prescaler compartilhado com o WDT.
Informações adicionais sobre o módulo Timer0 estão disponíveis no 5.1 Interrupção do Temporizador0
PIC® Mid-Range MCU Family Reference Manual (DS33023).
A interrupção TMR0 é gerada quando o registrador TMR0 transborda
de FFh para 00h. Este estouro ativa o bit T0IF (INTCON<2>). A
O modo temporizador é selecionado limpando o bit T0CS interrupção pode ser mascarada limpando o bit T0IE (INTCON<5>). O
(OPTION_REG<5>). No modo Timer, o módulo Timer0 incrementará bit T0IF deve ser apagado no software pelo módulo Timer0 Interrupt
a cada ciclo de instrução (sem pré-caler). Se o registrador TMR0 for Service Routine antes de reativar esta interrupção. A interrupção
escrito, o incremento é inibido para os dois ciclos de instrução TMR0 não pode despertar o processador do SLEEP, pois o
seguintes. O usuário pode contornar isso escrevendo um valor ajustado temporizador é desligado durante o SLEEP.
no registro TMR0.

FIGURA 5-1: DIAGRAMA DE BLOCOS DO PRÉ-CALLER TIMER0/WDT

Barramento de dados
CLKO (= ESCURO/4)

8
M
0 1
pino RA4/T0CKI
DENTRO
M
SINCRONIZAÇÃO
X
DENTRO

1 0 2
TMR0 Reg
X Ciclos

T0SE
T0CS
PSA Definir o bit de sinalização
T0IF no estouro

PRÉ-CALCADOR

0
Pré-escalador de 8 bits
M
DENTRO

1 X
cão de guarda 8
Cronômetro

8 - a - 1MUX PS2:PS0

PSA

0 1
Bit de habilitação WDT

MUX PSA

WDT
Tempo esgotado

Nota: T0CS, T0SE, PSA, PS2:PS0 são (OPTION_REG<5:0>).

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 45


Machine Translated by Google

PIC16F870/871
5.2 Usando Timer0 com um relógio 5.3 Pré-escalador
externo
Existe apenas um prescaler disponível, que é mutuamente
Quando nenhum prescaler é usado, a entrada de clock externa é compartilhado exclusivamente entre o módulo Timer0 e o
o mesmo que a saída do prescaler. A sincronização Cronômetro de cão de guarda. Uma atribuição de pré-escalador para o
de T0CKI com os relógios de fase internos é obtido pela amostragem O módulo Timer0 significa que não há prescaler para o
da saída do prescaler no Q2 e Watchdog Timer e vice-versa. Este pré-escalador não é
Q4 ciclos dos relógios de fase internos. Portanto, é legível ou gravável (consulte a Figura 5-1).
necessário que o T0CKI seja alto por pelo menos 2 TOSC (e Os bits PSA e PS2:PS0 (OPTION_REG<3:0>)
um pequeno atraso RC de 20 ns) e baixo por pelo menos 2 TOSC determinar a atribuição do prescaler e a proporção do prescale.
(e um pequeno atraso RC de 20 ns). Consulte a parte elétrica
Quando atribuído ao módulo Timer0, todas as instruções
especificação do dispositivo desejado.
escrevendo no registrador TMR0 (por exemplo, CLRF1, MOVWF1,
BSF1,x....etc.) limpará o prescaler. Quando atribuído
para WDT, uma instrução CLRWDT limpará o prescaler
juntamente com o Watchdog Timer. O pré-escalador não é
legível ou gravável.

Nota: Gravando no TMR0 quando o prescaler é


atribuído a Timer0, limpará o
contagem do prescaler, mas não alterará a
atribuição do pré-escalador.

REGISTRO 5-1: OPTION_REG REGISTRO


R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1

RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

pedaço 7 bit 0

pedaço 7 RBPU

bocado 6 INTEG

pedaço 5 T0CS: Bit de seleção da fonte do relógio TMR0

1 = Transição no pino T0CKI


0 = Relógio do ciclo de instrução interno (CLKO)
bocado 4 T0SE: Bit de seleção de borda de origem TMR0
1 = Incremento na transição de alto para baixo no pino T0CKI
0 = Incremento na transição de baixo para alto no pino T0CKI
parte 3 PSA: bit de atribuição do pré-escalador
1 = Prescaler é atribuído ao WDT
0 = Prescaler é atribuído ao módulo Timer0
pouco 2-0 PS2:PS0: bits de seleção de taxa do pré-escalador

Valor de Bit Taxa TMR0 Taxa WDT

000 1: 2 1: 1
001 1: 4 1: 2
010 1:8 1: 4
011 1: 16 1:8
100 1: 32 1: 16
101 1: 64 1: 32
110 1: 128 1: 64
111 1: 256 1: 128

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

Nota: Para evitar um RESET não intencional do dispositivo, a sequência de instruções mostrada no Manual de Referência da Família PIC® Mid-
Range MCU (DS33023) deve ser executada ao alterar a atribuição do prescaler de Timer0
ao WDT. Esta sequência deve ser seguida mesmo que o WDT esteja desabilitado.

DS30569C-página 46 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 5-1: REGISTROS ASSOCIADOS A TIMER0
Valor em
Valor em:
Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

01h, 101h TMR0 Registro do Módulo Timer0 xxxx xxxx uuuu uuuu

0Bh,8Bh, INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh,18Bh
81h,181h OPTION_REG RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111
Legenda: x = desconhecido, u = inalterado, - = locais não implementados lidos como '0'.
As células sombreadas não são usadas pelo Timer0.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 47


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 48 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
6.0 MÓDULO DE TEMPORIZADOR 1 No modo Timer, Timer1 incrementa cada instrução
ciclo. No modo Contador, ele incrementa a cada subida
O módulo Timer1 é um temporizador/contador de 16 bits que consiste borda da entrada de clock externa.
de dois registradores de 8 bits (TMR1H e TMR1L), que são
Timer1 pode ser ativado/desativado configurando/limpando
legível e gravável. O par de registradores TMR1
bit de controle, TMR1ON (T1CON<0>).
(TMR1H:TMR1L) aumenta de 0000h a FFFFh
e rola para 0000h. A interrupção TMR1, se habilitada, O Timer1 também possui uma “entrada RESET” interna. este
é gerado no estouro, que é travado na interrupção RESET pode ser gerado por qualquer um dos dois CCP
bit de sinalizador, TMR1IF (PIR1<0>). Esta interrupção pode ser módulos (Seção 8.0). O registro 6-1 mostra o Timer1
ativado/desativado configurando/limpando a interrupção TMR1 registro de controle.
bit de habilitação, TMR1IE (PIE1<0>). Quando o oscilador Timer1 está habilitado (T1OSCEN é
Timer1 pode operar em um dos dois modos: set), os pinos RC1/T1OSI e RC0/T1OSO/T1CKI
tornam-se entradas. Ou seja, o valor TRISC<1:0> é
• Como um temporizador
ignorado e esses pinos são lidos como '0'.
• Como contador
Informações adicionais sobre módulos temporizadores estão disponíveis em
O modo de operação é determinado pela seleção do relógio
o Manual de referência da família de MCUs de médio porte PIC®
bit, TMR1CS (T1CON<1>).
(DS33023).

REGISTRO 6-1: T1CON: REGISTRO DE CONTROLE TIMER1 (ENDEREÇO: 10h)


U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON

pedaço 7 bit 0

bocado 7-6 Não implementado: Leia como '0'


bocado 5-4 T1CKPS1:T1CKPS0: Timer1 Input Clock Prescale Select bits
11 = 1:8 Valor de pré-escala
10 = 1:4 Valor de pré-escala
01 = 1:2 Valor de pré-escala
00 = 1:1 Valor de pré-escala

parte 3 T1OSCEN: Bit de controle de habilitação do oscilador Timer1

1 = O oscilador está habilitado


0 = O oscilador está desligado (o inversor do oscilador é desligado para eliminar o consumo de energia)
parte 2 T1SYNC: Bit de controle de sincronização de entrada de relógio externo do Timer1
Quando TMR1CS = 1:

1 = Não sincroniza a entrada do relógio externo


0 = Sincroniza a entrada do relógio externo
Quando TMR1CS = 0:

Este bit é ignorado. Timer1 usa o relógio interno quando TMR1CS = 0.


pedaço 1 TMR1CS: Bit de seleção da fonte do relógio do Timer1

1 = Relógio externo do pino RC0/T1OSO/T1CKI (na borda de subida)


0 = Relógio interno (ESCURO/4)
bit 0 TMR1ON: Temporizador1 em bit

1 = Ativa o Temporizador1
0 = Pára o temporizador1

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 49


Machine Translated by Google

PIC16F870/871
6.1 Funcionamento do Timer1 no Modo Timer 6.2 Operação do Contador do Temporizador1

O modo temporizador é selecionado limpando o bit TMR1CS O Timer1 pode operar no modo Síncrono ou Assíncrono, dependendo
(T1CON<1>). Neste modo, o relógio de entrada para o temporizador da configuração do bit TMR1CS.
é FOSC/4. O bit de controle de sincronização, T1SYNC (T1CON<2>),
não tem efeito, pois o relógio interno está sempre sincronizado.
Quando o Timer1 está sendo incrementado por meio de uma fonte
externa, os incrementos ocorrem em uma borda de subida. Após o
Timer1 ser habilitado no modo Contador, o módulo deve primeiro ter
uma borda descendente antes que o contador comece a incrementar.

FIGURA 6-1: BORDA DE INCREMENTO DO TIMER1

T1CKI

(Padrão Alto)

T1CKI

(Baixo padrão)

Nota: As setas indicam incrementos do contador.

6.3 Operação do Timer1 no Modo de Contador Se T1SYNC for desenergizado, a entrada do relógio externo será
Sincronizado sincronizada com os relógios de fase internos. A sincronização é
feita após a etapa de prescaler. O estágio de prescaler é um contador
O modo contador é selecionado configurando o bit TMR1CS. Neste de ondulação assíncrono.
modo, o temporizador é incrementado a cada flanco ascendente da
Nesta configuração, durante o modo SLEEP, o Timer1 não será
entrada de clock no pino RC1/T1OSI, quando o bit T1OSCEN é
incrementado mesmo que o relógio externo esteja presente, pois o
definido, ou no pino RC0/T1OSO/T1CKI, quando o bit T1OSCEN é
circuito de sincronização está desligado. O prescaler, no entanto,
apagado.
continuará a incrementar.

FIGURA 6-2: DIAGRAMA DE BLOCO DO TIMER1

Definir bit de sinalização

TMR1IF ativado
Transbordar Sincronizado
TMR1 0
Entrada de relógio

TMR1H TMR1L
1
TMR1ON
Ligado desligado T1SYNC
T1OSC
RC0/T1OSO/T1CKI 1
Pré- Sincronizar
T1OSCEN ESCURO/4 escalador 1, 2, 4, 8 a
Permitir interno 0
RC1/T1AXIS Oscilador(1) Relógio 2
Relógio Q
T1CKPS1:T1CKPS0
TMR1CS

Nota 1: Quando o bit T1OSCEN é apagado, o inversor é desligado. Isso elimina o dreno de energia.

DS30569C-página 50 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
6.4 Operação do Timer1 no Modo TABELA 6-1: SELEÇÃO DE CAPACITOR PARA

Contador Assíncrono O OSCILADOR DO TEMPORIZADOR1

Se o bit de controle T1SYNC (T1CON<2>) estiver definido, o Tipo de Osc Frequencia. C1 C2


a entrada do relógio não está sincronizada. O temporizador continua a
LP 32 kHz 33 pF 33 pF
incremento assíncrono aos relógios de fase internos.
O temporizador continuará a funcionar durante o SLEEP e pode 100 kHz 15 pF 15 pF
gerar uma interrupção no estouro, que vai acordar 200 kHz 15 pF 15 pF
o processador. No entanto, cuidados especiais na
Esses valores são apenas para orientação de projeto.
software são necessários para ler/escrever o temporizador
(Seção 6.4.1). Cristais testados:

No modo Contador Assíncrono, Timer1 não pode ser 32,768 kHz Epson C-001R32,768K-A ± 20 PPM
usado como base de tempo para capturar ou comparar operações. 100 kHz Epson C-2 100,00 KC-P ± 20 PPM
200 kHz STD XTL 200.000 kHz ± 20 PPM
6.4.1 TEMPORIZADOR DE LEITURA E ESCRITA 1 IN
CONTADOR ASSÍNCRONO Nota 1: A capacitância mais alta aumenta a estabilidade do
MODO oscilador, mas também aumenta o tempo de
inicialização.
Lendo TMR1H ou TMR1L enquanto o temporizador está em execução
2: Como cada ressonador/cristal tem seu próprio
de um relógio assíncrono externo, garantirá um
características, o usuário deve consultar o fabricante
leitura válida (cuidada no hardware). No entanto, o
do ressonador/cristal para valores apropriados de
usuário deve ter em mente que a leitura do temporizador de 16 bits
componentes externos.
em dois valores de 8 bits, apresenta alguns problemas, uma vez que
o temporizador pode estourar entre as leituras.
6.6 Redefinindo o temporizador1 usando um CCP
Para gravações, é recomendado que o usuário simplesmente pare
o temporizador e escreva os valores desejados. Uma contenção de Saída do gatilho
escrita pode ocorrer escrevendo nos registradores do temporizador, enquanto Se o módulo CCP1 estiver configurado no modo Comparar para
o registrador é incrementado. Isso pode produzir um gerar um “gatilho de evento especial” (CCP1M3:CCP1M0
valor imprevisível no registro do temporizador. = 1011), este sinal irá reiniciar o Timer1.
A leitura do valor de 16 bits requer alguns cuidados.
Nota: Os acionadores de eventos especiais do CCP1
Exemplos 12-2 e 12-3 no PIC® Mid-Range MCU
o módulo não definirá o bit de sinalização de interrupção
Manual de referência da família (DS33023) mostra como
TMR1IF (PIR1<0>).
ler e escrever Timer1 quando estiver rodando em
Modo assíncrono. O Timer1 deve ser configurado para o modo Timer ou Synchronized
Counter para aproveitar esse recurso.
6.5 Temporizador1 Oscilador Se o Timer1 estiver sendo executado no modo Contador Assíncrono,
esta operação RESET pode não funcionar.
Um circuito oscilador de cristal é embutido entre os pinos T1OSI No caso de uma gravação no Timer1 coincidir com um
(entrada) e T1OSO (saída do amplificador). Ele é habilitado por
acionador de evento especial do CCP1, a gravação levará
ajuste do bit de controle, T1OSCEN (T1CON<3>). O oscilador é um
precedência.
oscilador de baixa potência, classificado até 200 kHz. Será
continuar a correr durante o SONO. É destinado principalmente Neste modo de operação, o registro CCPRH:CCPRL

para uso com um cristal de 32 kHz. A Tabela 6-1 mostra o par efetivamente se torna o registrador de período para Timer1.

seleção do capacitor para o oscilador Timer1.


O oscilador Timer1 é idêntico ao oscilador LP.
O usuário deve fornecer um atraso de tempo de software para garantir
partida correta do oscilador.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 51


Machine Translated by Google

PIC16F870/871
6.7 Reinicialização do par de registros do Timer1 6.8 Temporizador1 Pré-escalonador
(TMR1H, TMR1L)
O contador do pré-escalador é apagado nas gravações no
Os registros TMR1H e TMR1L não são redefinidos para 00h em um registradores TMR1H ou TMR1L.
POR, ou qualquer outro RESET, exceto pelo CCP1 especial
acionador de evento.

O registro T1CON é redefinido para 00h em um Power-on Reset,


ou um Brown-out Reset, que desliga o temporizador e
deixa uma pré-escala 1:1. Em todos os outros RESETS, o registro
não é afetado.

TABELA 6-2: REGISTROS ASSOCIADOS AO TIMER1 COMO TEMPORIZADOR/CONTADOR

Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh,8Bh, INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
8 canais TORTA1 PSPIE(1) RCIE DE FRANGO TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000
0Eh Registro de retenção TMR1L para o byte menos significativo do registro TMR1 de 16 bits xxxx xxxx uuuu uuuu
0 Fh Registro de retenção TMR1H para o byte mais significativo do registro TMR1 de 16 bits xxxx xxxx uuuu uuuu
10h T1CON — — T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON --00 0000 --uuuuuu

Legenda: x = desconhecido, u = inalterado, - = não implementado, lido como '0'. As células sombreadas não são usadas pelo módulo Timer1.
Nota 1: Bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

DS30569C-página 52 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
7.0 MÓDULO DO TEMPORIZADOR 2 O registro 7-1 mostra o registro de controle do Timer2.

Informações adicionais sobre módulos temporizadores estão disponíveis em


Timer2 é um timer de 8 bits com um prescaler e um
o Manual de referência da família de MCUs de médio porte PIC®
pós-escalador. Pode ser usado como base de tempo PWM para o
(DS33023).
Modo PWM do(s) módulo(s) CCP. O registro TMR2
é legível e gravável e é apagado em qualquer dispositivo
FIGURA 7-1: DIAGRAMA DE BLOCO DO TEMPORIZADOR 2
REDEFINIR.

O clock de entrada (FOSC/4) tem uma opção de pré-escala de 1:1, Define o sinalizador
TMR2
bit TMR2IF
ou
1:4, 1:16, selecionado por bits de controle Saída(1)

T2CKPS1:T2CKPS0 (T2CON<1:0>).
REDEFINIR Pré-escalador
O módulo Timer2 possui um registrador de período de 8 bits, PR2. Registro TMR2 ESCURO/4
1:1, 1:4, 1:16
Timer2 incrementa a partir de 00h até corresponder a PR2 e
Pós-escalador
2
em seguida, redefine para 00h no próximo ciclo de incremento. PR2 é Comparador
1:1 para 1:16 EQ
um registrador legível e gravável. O registro PR2 é T2CKPS1:
inicializado para FFh no RESET. 4 T2CKPS0
PR2 Reg
T2OUTPS3:
A saída de correspondência do TMR2 passa por um 4-bit
T2OUTPS0
postscaler (que fornece uma escala de 1:1 a 1:16 inclusive)
para gerar uma interrupção TMR2 (travada no bit de flag Nota 1: A saída do registrador TMR2 pode ser selecionada por software pelo módulo
SSP como um relógio baud.
TMR2IF (PIR1<1>)).

Timer2 pode ser desligado limpando o bit de controle, TMR2ON


(T2CON<2>), para minimizar o consumo de energia.

REGISTRO 7-1: T2CON: REGISTRO DE CONTROLE TIMER2 (ENDEREÇO 12h)


U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0

pedaço 7 bit 0

pedaço 7 Não implementado: Leia como '0'


bocado 6-3 TOUTPS3:TOUTPS0: Bits de seleção de pós- escala de saída do Timer2
0000 = 1:1 Postscale
0001 = 1:2 Postscale
0010 = 1:3 Postscale


1111 = 1:16 Postscale

parte 2 TMR2ON: Temporizador2 em bit

1 = Temporizador2 está ligado

0 = Temporizador2 está desligado

pouco 1-0 T2CKPS1:T2CKPS0: Timer2 Clock Prescale Select bits

00 = Prescaler é 1
01 = Prescaler é 4
1x = Prescaler é 16

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 53


Machine Translated by Google

PIC16F870/871
7.1 Temporizador2 Pré-escalonador e Pós-escalonador 7.2 Saída do TMR2
Os contadores do pré-escalador e pós-escalador são apagados A saída do TMR2 (antes do postscaler) é alimentada ao
quando qualquer um dos seguintes ocorrer: Módulo SSP, que opcionalmente o utiliza para gerar mudança
relógio.
• uma gravação no registro TMR2
• uma gravação no registrador T2CON
• qualquer dispositivo RESET (POR, MCLR Reset, WDT
Redefinir ou BOR)
TMR2 não é apagado quando T2CON é escrito.

TABELA 7-1: REGISTROS ASSOCIADOS A TIMER2 COMO TEMPORIZADOR/CONTADOR


Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh,8Bh, INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
8 canais TORTA1 PSPIE(1) ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000
11h Registro do Módulo TMR2 Timer2 0000 0000 0000 0000
12h T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000
92h PR2 Registro do Período do Timer2 1111 1111 1111 1111

Legenda: x = desconhecido, u = inalterado, - = não implementado, lido como '0'. As células sombreadas não são usadas pelo módulo Timer2.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

DS30569C-página 54 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
8.0 MÓDULOS DE CAPTURA/COMPARAÇÃO/PWM Informações adicionais sobre os módulos CCP estão disponíveis em
o Manual de referência da família de MCUs de médio porte PIC®
(DS33023) e na nota de aplicação AN594, “Usando o
Cada módulo Capture/Compare/PWM (CCP) contém Módulos CCP” (DS00594).
um registrador de 16 bits que pode operar como:
TABELA 8-1: MODO CCP - TEMPORIZADOR
• Registro de captura de 16 bits
RECURSOS NECESSÁRIOS
• Registro de comparação de 16 bits

• Registro do Ciclo de Trabalho PWM Mestre/Escravo Modo PCC Recurso de temporizador

A Tabela 8-1 mostra os recursos e interações do Capturar Temporizador1

Módulo PCC. Nas seções a seguir, o funcionamento do Comparar Temporizador1

um módulo CCP é descrito. PWM Temporizador2

8.1 Módulo CCP1


Capture/Compare/PWM Register1 (CCPR1) é composto por dois
registradores de 8 bits: CCPR1L (low byte) e
CCPR1H (byte alto). O registrador CCP1CON controla
o funcionamento do PCC1. O acionador de evento especial é
gerado por uma correspondência de comparação e redefinirá o Timer1
e iniciar uma conversão A/D (se o módulo A/D estiver
ativado).

REGISTRO 8-1: CCP1CON REGISTRO REGISTRO (ENDEREÇO: 17h/1Dh)


U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0

pedaço 7 bit 0

bocado 7-6 Não implementado: Leia como '0'


bocado 5-4 CCP1X:CCP1Y: PWM bits menos significativos

Modo de captura:
Não usado

Modo de comparação:
Não usado

Modo PWM:

Esses bits são os dois LSbs do ciclo de trabalho PWM. Os oito MSbs são encontrados em CCPR1L.
pouco 3-0 CCP1M3:CCP1M0: Bits de seleção de modo CCP1

0000 = Capturar/Comparar/PWM desabilitado (reinicia o módulo CCP1)


0100 = Modo de captura, cada borda de queda
0101 = Modo de captura, cada borda de subida
0110 = Modo de captura, a cada 4 borda de subida
0111 = Modo de captura, a cada 16 bordas de subida
1000 = Modo de comparação, define a saída na correspondência (o bit CCP1IF é definido)
1001 = Modo de comparação, saída limpa na correspondência (bit CCP1IF está definido)
1010 = Modo de comparação, gera interrupção de software na correspondência (bit CCP1IF está definido, pino CCP1 está
não afetado)
1011 = Modo de comparação, acionar evento especial (bit CCP1IF está definido, pino CCP1 não é afetado);
CCP1 redefine o TMR1 e inicia uma conversão A/D (se o módulo A/D estiver habilitado)
11xx = modo PWM

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 55


Machine Translated by Google

PIC16F870/871
8.2 Modo de Captura 8.2.2 SELEÇÃO DO MODO TIMER1

No modo Capture, CCPR1H:CCPR1L captura o O Timer1 deve estar funcionando no modo Timer, ou modo Synchro
nized Counter, para que o módulo CCP use o
Valor de 16 bits do registrador TMR1 quando ocorre um evento
no pino RC2/CCP1. Um evento é definido como um dos recurso de captura. No modo Contador Assíncrono, o

Segue: operação de captura pode não funcionar.

• Cada borda de queda 8.2.3 INTERRUPÇÃO DO SOFTWARE


• Cada borda ascendente
Quando o modo de captura é alterado, uma captura falsa
• A cada 4 borda de subida interrupção pode ser gerada. O usuário deve manter bit
• A cada 16ª borda de subida CCP1IE (PIE1<2>) claro para evitar falsas interrupções e

O tipo de evento é configurado pelos bits de controle deve limpar o bit de flag, CCP1IF, seguindo qualquer

CCP1M3:CCP1M0 (CCP1CON<3:0>). Quando uma captura é feita, mudança no modo de operação.

o bit de flag de solicitação de interrupção CCP1IF


8.2.4 PRÉ-CALCADOR CCP
(PIR1<2>) está definido. O flag de interrupção deve ser apagado em
Programas. Se ocorrer outra captura antes do valor em Existem quatro configurações de prescaler, especificadas por bits
registrador CCPR1 é lido, o antigo valor capturado é CCP1M3:CCP1M0. Sempre que o módulo CCP é
substituído pelo novo valor. desligado ou o módulo CCP não está no modo de captura,
o contador do prescaler é apagado. Qualquer RESET será apagado
8.2.1 CONFIGURAÇÃO DO PIN CCP o contador do prescaler.

No modo Capture, o pino RC2/CCP1 deve ser Alternar de um prescaler de captura para outro pode
configurado como uma entrada definindo o bit TRISC<2>. gerar uma interrupção. Além disso, o contador do prescaler
não ser desmarcada, portanto, a primeira captura pode ser de
Nota: Se o pino RC2/CCP1 estiver configurado como
um pré-escalador diferente de zero. O Exemplo 8-1 mostra o método
saída, uma gravação na porta pode causar um
recomendado para alternar entre pré-calers de captura. Este exemplo
condição de captura.
também limpa o contador do prescaler
e não irá gerar a interrupção “falsa”.
FIGURA 8-1: MODO DE CAPTURA
BLOCO DE OPERAÇÃO
EXEMPLO 8-1: MUDANÇA ENTRE
DIAGRAMA
CAPTURA DE PRÉ-ESCALADORES
RC2/CCP1 Definir bit de sinalização CCP1IF
CLRF CCP1CON ; Desligue o módulo CCP
alfinete (PIR1<2>)
Pré-escalador
MOVLW NEW_CAPT_PS ; Carregue o registro W com
ÿ 1, 4, 16 ; o novo pré-escalador
CCPR1H CCPR1L ; mover valor e CCP ON
MOVWF CCP1CON ; Carregue o CCP1CON com este
e Capturar ; valor
Permitir
Detecção de borda

TMR1H TMR1L

CCP1CON<3:0>
Perguntas

DS30569C-página 56 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
8.3 Modo Comparar 8.3.2 SELEÇÃO DO MODO TIMER1

No modo Comparar, o valor do registro CCPR1 de 16 bits é O Timer1 deve estar em execução no modo Timer ou no modo
constantemente comparado com o valor do par de registros TMR1. Synchronized Counter, se o módulo CCP estiver usando o recurso
Quando ocorre uma correspondência, o pino RC2/CCP1 é: de comparação. No modo Contador Assíncrono, a operação de
comparação pode não funcionar.
• Dirigido alto •
Dirigido baixo 8.3.3 MODO DE INTERRUPÇÃO DO SOFTWARE
• Permanece inalterado Quando o modo Generate Software Interrupt é escolhido, o pino
A ação no pino é baseada no valor dos bits de controle, CCP1 não é afetado. O bit CCPIF é setado, causando uma
CCP1M3:CCP1M0 (CCP1CON<3:0>). Ao mesmo tempo, o bit de interrupção CCP (se habilitada).
flag de interrupção CCP1IF é definido.
8.3.4 GATILHO DE EVENTO ESPECIAL
FIGURA 8-2: MODO COMPARAR Neste modo, é gerado um trigger de hardware interno, que pode
BLOCO DE OPERAÇÃO ser utilizado para iniciar uma ação.
DIAGRAMA A saída de disparo de evento especial do CCP1 reinicializa o par
de registradores TMR1 e inicia uma conversão A/D (se o módulo
O disparo de evento especial
irá: resetar o Timer1, mas não definir o bit de sinalização de interrupção TMR1IF A/D estiver habilitado). Isso permite que o registrador CCPR1 seja
(PIR1<0>), e definir o bit GO/DONE (ADCON0<2>).
efetivamente um registrador de período programável de 16 bits
para o Timer1.
Acionador de evento especial

Nota: O disparo de evento especial do módulo CCP1 não


Definir bit de sinalização CCP1IF
definirá o bit de sinalização de interrupção TMR1IF
(PIR1<2>)
pino RC2/ CCPR1H CCPR1L (PIR1<0>).
CCP1
QS
Resultado
Comparador
Lógica Combine
R

TRISC<2> TMR1H TMR1L


Ativar saída CCP1CON<3:0>
Seleção de modo

8.3.1 CONFIGURAÇÃO DO PIN CCP

O usuário deve configurar o pino RC2/CCP1 como saída limpando


o bit TRISC<2>.

Nota: Apagar o registro CCP1CON forçará a trava de saída


de comparação RC2/CCP1 ao nível baixo padrão.
Este não é o
Trava de dados de E/S PORTC.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 57


Machine Translated by Google

PIC16F870/871
8.4 Modo PWM (PWM) 8.4.1 PERÍODO PWM

No modo Pulse Width Modulation, o pino CCP1 produz uma saída O período PWM é especificado escrevendo no registrador PR2. O

PWM de resolução de até 10 bits. Como o pino CCP1 é multiplexado período PWM pode ser calculado usando a seguinte fórmula:

com a trava de dados PORTC, o bit TRISC<2> deve ser limpo para
tornar o pino CCP1 uma saída. Período PWM = [(PR2) + 1] • 4 • TOSC •
(Valor de pré-escala TMR2)

Nota: Apagar o registro CCP1CON forçará a trava de saída CCP1 A frequência PWM é definida como 1 / [período PWM].
PWM para o nível baixo padrão. Esta não é a trava de Quando TMR2 é igual a PR2, os três eventos a seguir ocorrem no
dados de E/S PORTC.
próximo ciclo de incremento:
• TMR2 é limpo
A Figura 8-3 mostra um diagrama de blocos simplificado do módulo
• O pino CCP1 está definido (exceção: se o ciclo de trabalho
CCP no modo PWM.
PWM = 0%, o pino CCP1 não será definido) • O ciclo de
Para obter um procedimento passo a passo sobre como configurar o trabalho PWM é travado de CCPR1L em
módulo CCP para operação PWM, consulte a Seção 8.4.3. CCPR1H

FIGURA 8-3: BLOCO PWM SIMPLIFICADO Nota: O postscaler Timer2 (consulte a Seção 7.1) não é usado na
DIAGRAMA determinação da frequência PWM. O postscaler pode

CCP1CON<5:4> ser usado para ter uma taxa de atualização do servo


Registros de Ciclo de Trabalho
em uma frequência diferente da saída PWM.
CCPR1L

8.4.2 CICLO DE SERVIÇO PWM


O ciclo de trabalho PWM é especificado escrevendo no registrador
CCPR1H (Escravo) CCPR1L e nos bits CCP1CON<5:4>. Resolução de até 10 bits está
RC2/CCP1 disponível. O CCPR1L contém os oito MSbs e o CCP1CON<5:4>

Comparador RQ contém os dois LSbs. Este valor de 10 bits é representado por


CCPR1L:CCP1CON<5:4>. A seguinte equação é usada para calcular o
ciclo de trabalho PWM no tempo:
TMR2 (Nota 1)
S

Ciclo de trabalho PWM = (CCPR1L:CCP1CON<5:4>) •


TRISC<2>
Comparador TOSC • (valor de pré-escala TMR2)
Limpar
temporizador, CCPR1L e CCP1CON<5:4> podem ser gravados a qualquer momento,
pino CCP1 e trava DC
PR2 mas o valor do ciclo de trabalho não é travado em CCPR1H até que
ocorra uma correspondência entre PR2 e TMR2 (ou seja, o período está
Nota 1: O temporizador de 8 bits é concatenado com o relógio Q interno de
completo). No modo PWM, CCPR1H é um registrador somente leitura.
2 bits, ou 2 bits do prescaler, para criar uma base de tempo de
10 bits.

O registrador CCPR1H e um latch interno de 2 bits são usados para


Uma saída PWM (Figura 8-4) tem uma base de tempo (período) e um buffer duplo do ciclo de trabalho PWM. Esse buffer duplo é essencial
tempo em que a saída permanece alta (ciclo de trabalho). A frequência para uma operação PWM sem falhas.
do PWM é o inverso do período (1/período).
Quando o CCPR1H e o latch de 2 bits correspondem ao TMR2,
concatenado com um relógio Q interno de 2 bits, ou 2 bits do pré-
escalador TMR2, o pino CCP1 é limpo.
FIGURA 8-4: SAÍDA PWM
A resolução máxima de PWM (bits) para uma determinada frequência
Período de PWM é dada pela fórmula:

ESCURO )
log(FPWM
Resolução = bits
Ciclo de trabalho
log(2)

TMR2 = PR2
Nota: Se o valor do ciclo de trabalho PWM for maior que o período

TMR2 = Ciclo de Trabalho


PWM, o pino CCP1 não será apagado.

TMR2 = PR2

DS30569C-página 58 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
8.4.3 CONFIGURAÇÃO PARA OPERAÇÃO PWM

As etapas a seguir devem ser seguidas ao configurar


o módulo CCP para operação PWM:

1. Defina o período PWM escrevendo no registro PR2.

2. Defina o ciclo de trabalho PWM gravando no


Registro CCPR1L e bits CCP1CON<5:4>.
3. Torne o pino CCP1 uma saída limpando o
TRISC<2> bits.

4. Defina o valor de pré-escala TMR2 e ative o Timer2


escrevendo para T2CON.
5. Configure o módulo CCP1 para operação PWM.

TABELA 8-2: EXEMPLO DE FREQUÊNCIAS PWM E RESOLUÇÕES A 20 MHz

Frequência PWM 1,22 kHz 4,88 kHz 19,53 kHz 78,12 kHz 156,3 kHz 208,3 kHz

Pré-escalador do temporizador (1, 4, 16) 16 4 1 1 1 1


Valor PR2 0xFFh 0xFFh 0xFFh 0x3Fh 0x1Fh 0x17h

Resolução máxima (bits) 10 10 10 8 7 6,5

TABELA 8-3: REGISTROS ASSOCIADOS À CAPTURA, COMPARAÇÃO E TEMPORIZADOR1

Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh,8Bh, INTCON GIE COMO T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

8 canais TORTA1 PSPIE(1) RCIE DE FRANGO TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

87h Registro de Direção de Dados TRISC PORTC 1111 1111 1111 1111

0Eh Registro de retenção TMR1L para o byte menos significativo do registro TMR1 de 16 bits xxxx xxxx uuuu uuuu

0 Fh Registro de retenção TMR1H para o byte mais significativo do registro TMR1 de 16 bits xxxx xxxx uuuu uuuu

10h T1CON — — T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON --00 0000 --uuuuuu

15h CCPR1L Captura/Comparação/Registro PWM1 (LSB) xxxx xxxx uuuu uuuu

16h CCPR1H Capturar/Comparar/Registro PWM1 (MSB) xxxx xxxx uuuu uuuu

17h CCP1CON — — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000

Legenda: x = desconhecido, u = inalterado, - = não implementado, lido como '0'. As células sombreadas não são usadas pelo Capture e Timer1.
Nota 1: O PSP não é implementado no PIC16F870; sempre mantenha esses bits claros.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 59


Machine Translated by Google

PIC16F870/871
TABELA 8-4: REGISTROS ASSOCIADOS A PWM E TIMER2
Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh,8Bh, INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

8 canais TORTA1 PSPIE(1) ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000
87h Registro de Direção de Dados TRISC PORTC 1111 1111 1111 1111
11h Registro do Módulo TMR2 Timer2 0000 0000 0000 0000

92h PR2 Registro de Período do Módulo Timer2 1111 1111 1111 1111
12h T2CON — TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0 -000 0000 -000 0000
15h CCPR1L Captura/Comparação/Registro PWM1 (LSB) xxxx xxxx uuuu uuuu

16h CCPR1H Capturar/Comparar/Registro PWM1 (MSB) xxxx xxxx uuuu uuuu


17h CCP1CON — — CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0 --00 0000 --00 0000

Legenda: x = desconhecido, u = inalterado, - = não implementado, lido como '0'. As células sombreadas não são usadas por PWM e Timer2.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

DS30569C-página 60 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
9.0 UNIVERSAL ENDEREÇAVEL A USART pode ser configurada nos seguintes modos:
SÍNCRONO • Assíncrono (full-duplex)
RECEPTOR ASSÍNCRONO • Síncrono - Mestre (half-duplex)

TRANSMISSOR (USART) • Síncrono - Escravo (half-duplex)

O bit SPEN (RCSTA<7>) e os bits TRISC<7:6> devem


O Receptor Assíncrono Síncrono Universal
ser configurado para configurar os pinos RC6/TX/CK e
O módulo transmissor (USART) é um dos dois módulos seriais
RC7/RX/DT como o Síncrono Universal
Módulos de E/S. (A USART também é conhecida como Interface de
Transmissor Receptor Assíncrono.
Comunicação Serial ou SCI.) A USART pode ser configurada como
um sistema assíncrono full duplex que pode O módulo USART também possui um multiprocessador
comunicar com dispositivos periféricos, como terminais CRT e capacidade de comunicação usando endereço de 9 bits
detecção.
computadores pessoais, ou pode ser configurado
como um sistema síncrono half-duplex que pode se comunicar com
dispositivos periféricos, como A/D ou D/A
circuitos integrados, EEPROMs seriais, etc.

REGISTRO 9-1: TXSTA: REGISTRO DE STATUS DE TRANSMISSÃO E CONTROLE (ENDEREÇO: 98h)


R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0

CSRC TX9 TXEN SYNC — BRGH TRMT TX9D

pedaço 7 bit 0

pedaço 7 CSRC: bit de seleção da fonte de clock

Modo assíncrono:
Não se importe

Modo síncrono:
1 = modo Master (relógio gerado internamente pelo BRG)
0 = modo escravo (relógio de fonte externa)
bocado 6 TX9: bit de habilitação de transmissão de 9 bits

1 = Seleciona a transmissão de 9 bits


0 = Seleciona a transmissão de 8 bits

pedaço 5 TXEN: bit de habilitação de transmissão

1 = Transmissão habilitada
0 = Transmissão desabilitada

Nota: SREN/CREN substitui TXEN no modo Sync.

bocado 4 SINCRONIZAÇÃO: Bit de seleção do modo USART

1 = modo síncrono
0 = modo assíncrono
parte 3 Não implementado: Leia como '0'
parte 2 BRGH: Bit de seleção de alta taxa de transmissão

Modo assíncrono:
1 = Alta velocidade
0 = Baixa velocidade

Modo síncrono:
Não usado neste modo

pedaço 1 TRMT: Transmitir bit de status do registrador de deslocamento

1 = TSR vazio
0 = TSR cheio
bit 0 TX9D: 9º bit de Transmit Data, pode ser bit de paridade

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 61


Machine Translated by Google

PIC16F870/871
REGISTRO 9-2: RCSTA: RECEBER STATUS E CONTROLAR REGISTRO (ENDEREÇO 18h)
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0 R-0 Rx

ESPANHA RX9 SREN CREN ADDEN FERR OERR RX9D

pedaço 7 bit 0

pedaço 7 SPEN: bit de habilitação da porta serial

1 = Porta serial habilitada (configura os pinos RC7/RX/DT e RC6/TX/CK como pinos de porta serial)
0 = Porta serial desabilitada
bocado 6 RX9: bit de habilitação de recepção de 9 bits

1 = Seleciona a recepção de 9 bits


0 = Seleciona recepção de 8 bits
pedaço 5 SREN: bit de habilitação de recebimento único

Modo assíncrono:
Não se importe

Modo síncrono - mestre:


1 = Habilita recepção única
0 = Desativa o recebimento único
Este bit é apagado após a conclusão da recepção.

Modo síncrono - escravo:


Não se importe

bocado 4 CREN: bit de habilitação de recepção contínua

Modo assíncrono:
1 = Habilita a recepção contínua
0 = Desativa a recepção contínua

Modo síncrono:
1 = Habilita a recepção contínua até que o bit de habilitação CREN seja apagado (CREN substitui SREN)
0 = Desativa a recepção contínua

parte 3 ADDEN: Bit de habilitação de detecção de endereço

Modo assíncrono de 9 bits (RX9 = 1):


1 = Habilita a detecção de endereço, habilita a interrupção e o carregamento do buffer de recebimento quando
RSR<8> está definido

0 = Desativa a detecção de endereço, todos os bytes são recebidos e o nono bit pode ser usado como bit de paridade
parte 2 FERR: bit de erro de enquadramento

1 = Erro de enquadramento (pode ser atualizado lendo o registro RCREG e receber o próximo byte válido)
0 = Sem erro de enquadramento

pedaço 1 OERR: bit de erro de saturação

1 = Erro de overrun (pode ser apagado limpando o bit CREN)


0 = Sem erro de saturação

bit 0 RX9D: 9º bit de dados recebidos (pode ser bit de paridade, mas deve ser calculado pelo firmware do usuário)

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

DS30569C-página 62 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
9.1 Gerador de taxa de transmissão Pode ser vantajoso usar a alta taxa de transmissão

USART (BRG) (BRGH = 1), mesmo para clocks de transmissão mais lentos. Isto é
porque a equação FOSC/(16(X + 1)) pode reduzir o
O BRG suporta os modos assíncrono e síncrono do USART. É um erro de taxa de transmissão em alguns casos.
dedicado de 8 bits
Escrever um novo valor no registrador SPBRG faz com que o
gerador de taxa de transmissão. O registrador SPBRG controla a
Temporizador BRG a ser reiniciado (ou apagado). Isso garante a
período de um temporizador de 8 bits de execução livre. Em assíncrono BRG não espera por um estouro do temporizador antes
modo, o bit BRGH (TXSTA<2>) também controla o baud
emitindo a nova taxa de transmissão.
avaliar. No modo Síncrono, o bit BRGH é ignorado.
A Tabela 9-1 mostra a fórmula para cálculo do
9.1.1 AMOSTRAGEM
taxa de transmissão para diferentes modos USART que só se aplicam
no modo Master (relógio interno). Os dados no pino RC7/RX/DT são amostrados três vezes
por um circuito de detecção de maioria para determinar se um alto ou um
Dada a taxa de transmissão desejada e FOSC, o mais próximo
nível baixo está presente no pino RX.
valor inteiro para o registrador SPBRG pode ser calculado
usando a fórmula da Tabela 9-1. A partir disso, o erro de
taxa de transmissão pode ser determinada.

TABELA 9-1: FÓRMULA DA TAXA DE BAUD


SINCRONIZAR BRGH = 0 (Baixa Velocidade) BRGH = 1 (Alta Velocidade)

0 (Assíncrono) Taxa de transmissão = FOSC/(64(X+1)) Taxa de transmissão = FOSC/(16(X+1))


1 Taxa de transmissão (síncrona) = FOSC/(4(X+1)) N/D

Legenda: X = valor em SPBRG (0 a 255)

TABELA 9-2: REGISTROS ASSOCIADOS AO GERADOR DE TAXA BAUD

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x
99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = não implementado, lido como '0'. As células sombreadas não são usadas pelo BRG.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 63


Machine Translated by Google

PIC16F870/871
TABELA 9-3: TAXAS DE BAUD PARA MODO ASSÍNCRONO (BRGH = 0)
ESCURO = 20 MHz ESCURO = 16 MHz ESCURO = 10 MHz
BAUD
AVALIAR SPBRG SPBRG SPBRG
% % %
(K) valor valor valor
KBAUD ERRO KBAUD ERRO KBAUD ERRO
(decimal) (decimal) (decimal)

0,3 - - - - - - - - -

1.2 1.221 1,75 255 1.202 0,17 207 1.202 0,17 129
2.4 2.404 0,17 129 2.404 0,17 103 2.404 0,17 64
9.6 9.766 1,73 31 9.615 0,16 25 9.766 1,73 15
19.2 19.531 1,72 15 19.231 0,16 12 19.531 1,72 7
28,8 31.250 8,51 9 27.778 3,55 8 31.250 8,51 4
33,6 34.722 3,34 8 35.714 6,29 6 31.250 6,99 4
57,6 62.500 8,51 4 62.500 8,51 3 52.083 9,58 2
ALTO 1.221 - 255 0,977 - 255 0,610 - 255
BAIXO 312.500 - 0 250.000 - 0 156.250 - 0

ESCURO = 4 MHz ESCURO = 3,6864 MHz


BAUD
AVALIAR SPBRG SPBRG
% %
(K) valor valor
ERRO ERRO
KBAUD (decimal) KBAUD (decimal)

0,3 0,300 0 207 0,3 0 191


1.2 1.202 0,17 51 1.2 0 47
2.4 2.404 0,17 25 2.4 0 23
9.6 8.929 6,99 6 9.6 0 5
19.2 20.833 8,51 2 19.2 0 2
28,8 31.250 8,51 1 28,8 0 1
33,6 - - - - - -

57,6 62.500 8,51 0 57,6 0 0


ALTO 0,244 - 255 0,225 - 255
BAIXO 62.500 - 0 57,6 - 0

DS30569C-página 64 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871

TABELA 9-4: TAXAS DE BAUD PARA MODO ASSÍNCRONO (BRGH = 1)


ESCURO = 20 MHz ESCURO = 16 MHz ESCURO = 10 MHz
BAUD
AVALIAR SPBRG SPBRG SPBRG
% % %
(K) valor valor valor
KBAUD ERRO KBAUD ERRO KBAUD ERRO
(decimal) (decimal) (decimal)

0,3 - - - - - - - - -

1.2 - - - - - - - - -

2.4 - - - - - - 2.441 1,71 255


9.6 9.615 0,16 129 9.615 0,16 103 9.615 0,16 64
19.2 19.231 0,16 64 19.231 0,16 51 19.531 1,72 31
28,8 29.070 0,94 42 29.412 2.13 33 28.409 1,36 21
33,6 33.784 0,55 36 33.333 0,79 29 32.895 2.10 18
57,6 59.524 3,34 20 58.824 2.13 16 56.818 1,36 10
ALTO 4.883 - 255 3.906 - 255 2.441 - 255
BAIXO 1250.000 - 0 1.000.000 0 625.000 - 0

ESCURO = 4 MHz ESCURO = 3,6864 MHz


BAUD
AVALIAR SPBRG SPBRG
% %
(K) valor valor
ERRO ERRO
KBAUD (decimal) KBAUD (decimal)

0,3 - - - - - -

1.2 1.202 0,17 207 1.2 0 191


2.4 2.404 0,17 103 2.4 0 95
9.6 9.615 0,16 25 9.6 0 23
19.2 19.231 0,16 12 19.2 0 11
28,8 27.798 3,55 8 28,8 0 7
33,6 35.714 6,29 6 32,9 2.04 6
57,6 62.500 8,51 3 57,6 0 3
ALTO 0,977 - 255 0,9 - 255
BAIXO 250.000 - 0 230,4 - 0

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 65


Machine Translated by Google

PIC16F870/871
9.2 Modo Assíncrono USART habilitado/desabilitado configurando/apagando o bit de habilitação TXIE
(PIE1<4>). O bit de sinalização TXIF será definido, independentemente do
Neste modo, o USART usa o formato padrão sem retorno a zero (NRZ) (um estado do bit de habilitação TXIE e não pode ser apagado no software. Ele
bit START, oito ou nove bits de dados e um bit STOP). O formato de dados será redefinido somente quando novos dados forem carregados no registro
mais comum é de 8 bits. Um gerador de taxa de transmissão de 8 bits TXREG. Enquanto o bit de flag TXIF indica o status do registrador TXREG,
dedicado no chip pode ser usado para derivar frequências de taxa de outro bit, TRMT (TXSTA<1>), mostra o status do registrador TSR. O bit de
transmissão padrão do oscilador. A USART transmite e recebe primeiro o status TRMT é um bit somente leitura, que é definido quando o registrador
LSb. O transmissor e o receptor são funcionalmente independentes, mas
TSR está vazio. Nenhuma lógica de interrupção está vinculada a esse bit,
usam o mesmo formato de dados e taxa de transmissão. O gerador de taxa
portanto, o usuário deve pesquisar esse bit para determinar se o registrador
de transmissão produz um clock, x16 ou x64 da taxa de deslocamento de TSR está vazio.
bits, dependendo do bit BRGH (TXSTA<2>). A paridade não é suportada
pelo hardware, mas pode ser implementada em software (e armazenada
como o nono bit de dados). O modo assíncrono é interrompido durante o Nota 1: O registrador TSR não é mapeado na memória de dados,

SLEEP. portanto não está disponível para o usuário.

2: O bit de sinalização TXIF é definido quando o bit de


habilitação TXEN é definido. TXIF é apagado carregando TXREG.

O modo assíncrono é selecionado limpando o bit SYNC (TXSTA<4>). A transmissão é habilitada configurando o bit de habilitação TXEN
(TXSTA<5>). A transmissão real não ocorrerá até que o registrador TXREG

O módulo USART Assíncrono consiste nos seguintes elementos importantes: tenha sido carregado com dados e o gerador de taxa de transmissão (BRG)
tenha produzido um relógio de deslocamento (Figura 9-2). A transmissão
também pode ser iniciada carregando primeiro o registrador TXREG e depois
• Gerador de taxa de transmissão
configurando o bit de habilitação TXEN. Normalmente, quando a transmissão
• Circuito de Amostragem é iniciada, o registrador TSR está vazio. Nesse ponto, a transferência para o
• Transmissor Assíncrono • Receptor registrador TXREG resultará em uma transferência imediata para o TSR,
Assíncrono resultando em um TXREG vazio. Uma transferência back-to-back é assim
possível (Figura 9-3).
9.2.1 USART ASSÍNCRONO
TRANSMISSOR Apagar o bit de habilitação TXEN durante uma transmissão fará com que a
transmissão seja abortada e reinicializará o transmissor. Como resultado, o
O diagrama de blocos do transmissor USART é mostrado na Figura 9-1. O
pino RC6/TX/CK reverterá para alta impedância.
coração do transmissor é o registrador de deslocamento de transmissão
(serial) (TSR). O registrador Shift obtém seus dados do buffer de transmissão
de leitura/gravação, TXREG. O registrador TXREG é carregado com dados Para selecionar a transmissão de 9 bits, o bit de transmissão TX9
no software. O registrador TSR não é carregado até que o bit STOP tenha (TXSTA<6>) deve ser definido e o nono bit deve ser escrito em TX9D
sido transmitido do carregamento anterior. Assim que o bit STOP é (TXSTA<0>). O nono bit deve ser escrito antes de escrever os dados de 8
transmitido, o TSR é carregado com novos dados do registrador TXREG (se bits no registrador TXREG. Isso ocorre porque uma gravação de dados no
disponível). Uma vez que o registrador TXREG transfere os dados para o registrador TXREG pode resultar em uma transferência imediata dos dados
registrador TSR (ocorre em um TCY), o registrador TXREG fica vazio e o bit para o registrador TSR (se o TSR estiver vazio). Nesse caso, um nono bit de

sinalizador TXIF (PIR1<4>) é definido. Esta interrupção pode ser dados incorreto pode ser carregado no registrador TSR.

FIGURA 9-1: DIAGRAMA DE BLOCO DE TRANSMISSÃO USART

Barramento de dados

TXIF Registro TXREG


ESSA
8
MSb LSb
0 Buffer de
(8) •ÿÿÿ •ÿÿÿ •
pinos e controle
Registro TSR
pino RC6/TX/CK
Interromper

Taxa de transmissão TXEN CLK

TRMT ESPANHA

SPBRG

TX9
Gerador de taxa de transmissão

TX9D

DS30569C-página 66 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Ao configurar uma Transmissão Assíncrona, 5. Habilite a transmissão configurando o bit TXEN,
Siga esses passos: que também definirá o bit TXIF.

1. Inicialize o registro SPBRG para o 6. Se a transmissão de 9 bits for selecionada, o nono bit
deve ser carregado no bit TX9D.
taxa de transmissão. Se uma taxa de transmissão de alta velocidade for desejada,

defina o bit BRGH (Seção 9.1). 7. Carregar dados para o registro TXREG (inicia
2. Habilite a porta serial assíncrona limpando transmissão).
bit SYNC e bit de configuração SPEN. 8. Se estiver usando interrupções, certifique-se de que GIE e PEIE
3. Se as interrupções forem desejadas, defina o bit de habilitação (bits 7 e 6) do registrador INTCON são energizados.
ESSA.

4. Se a transmissão de 9 bits for desejada, defina a transmissão


pouco TX9.

FIGURA 9-2: TRANSMISSÃO MASTER ASSÍNCRONA

Escreva para TXREG


Palavra 1
Saída BRG
(Mudar Relógio)

RC6/TX/CK (pino)
INICIAR Bit Bit 0 Bit 1 Bit 7/8 STOP Bit
Palavra 1
bit TXIF
(Transmissão Buffer
Reg. Bandeira vazia)

bit TRMT Palavra 1


(Transmitir Turno Transmitir Registro de Turno
Reg. Bandeira vazia)

FIGURA 9-3: TRANSMISSÃO MESTRE ASSÍNCRONA (COSTAS A COSTAS)

Escreva para TXREG


Palavra 1 Palavra 2
Saída BRG
(Mudar Relógio)

RC6/TX/CK (pino) INICIAR Bit Bit 0 Bit 1 Bit 7/8 STOP Bit START Bit Bit 0
Palavra 1 Palavra 2
bit TXIF
(Interromper Reg. Flag)

bit TRMT Palavra Palavra 2


(Transmitir Turno 1 Transmissão Reg.
Reg. Bandeira vazia) Transmissão Reg.

Observação: Este diagrama de tempo mostra duas transmissões consecutivas.

TABELA 9-5: REGISTROS ASSOCIADOS À TRANSMISSÃO ASSÍNCRONA


Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ASSIM NÃO RBI T0IF INTF R0IF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
18h RCSTA SPEN RX9 SREN CREN — FERR OERR RX9D 0000 -00x 0000 -00x
19h Registro de Transmissão TXREG USART 0000 0000 0000 0000
8 canais TORTA1 PSPIE(1) FRANGO RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000
98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010
99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = locais não implementados lidos como '0'. As células sombreadas não são usadas para transmissão assíncrona.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 67


Machine Translated by Google

PIC16F870/871
9.2.2 RECEPTOR ASSÍNCRONO USART é possível que dois bytes de dados sejam recebidos e transferidos
para o RCREG FIFO e um terceiro byte comece a se deslocar para
o registrador RSR. Na detecção do bit STOP do terceiro byte, se o
O diagrama de blocos do receptor é mostrado na Figura 9-4. Os
registrador RCREG ainda estiver cheio, o bit de erro de overrun
dados são recebidos no pino RC7/RX/DT e acionam o bloco de
OERR (RCSTA<1>) será definido. A palavra no RSR será perdida.
recuperação de dados. O bloco de recuperação de dados é na
O registrador RCREG pode ser lido duas vezes para recuperar os
verdade um shifter de alta velocidade, operando a x16 vezes a taxa
dois bytes no FIFO. O bit de overrun OERR deve ser apagado no
de transmissão; enquanto que o deslocador serial de recepção software.
principal opera na taxa de bits ou no FOSC.
Isso é feito redefinindo a lógica de recepção (o CREN é limpo e,
Uma vez selecionado o modo Assíncrono, a recepção é habilitada em seguida, definido). Se o bit OERR for definido, as transferências
configurando o bit CREN (RCSTA<4>). do registrador RSR para o registrador RCREG são inibidas e
nenhum dado adicional será recebido. Portanto, é essencial limpar
O coração do receptor é o registrador de deslocamento Receive
(Serial) (RSR). Após a amostragem do bit STOP, os dados o bit de erro OERR se estiver definido. O bit de erro de
recebidos no RSR são transferidos para o registrador RCREG (se enquadramento FERR (RCSTA<2>) é definido se um bit STOP for
detectado como limpo. O bit FERR e o 9º bit de recepção são
estiver vazio). Se a transferência estiver completa, o bit de flag
RCIF (PIR1<5>) é definido. A interrupção real pode ser habilitada/ armazenados em buffer da mesma forma que os dados de
recepção. A leitura do RCREG carregará os bits RX9D e FERR
desabilitada configurando/apagando o bit de habilitação RCIE
com novos valores, portanto, é essencial que o usuário leia o
(PIE1<5>). O bit de sinalização RCIF é um bit somente leitura, que
é limpo pelo hardware. Ele é apagado quando o registrador RCREG registro RCSTA antes de ler o registro RCREG para não perder as
informações antigas de FERR e RX9D.
foi lido e está vazio. O RCREG é um registrador de buffer duplo (ou
seja, é um FIFO de duas profundidades). Isto

FIGURA 9-4: USART RECEBER DIAGRAMA DE BLOCO

x64 Baud Rate CLK


OERR FERR
ELES ACREDITAM
SOMBRIO

SPBRG
ÿ64 MSb Registro RSR LSb
ou
Gerador de taxa de transmissão ÿ16
PARAR (8) 7 •ÿÿ •ÿÿ • 1 0 INÍCIO

RC7/RX/DT

Buffer de Dados
pinos e controle RX9
Recuperação

ESPANHA Registro RX9D RCREG


FIFO

8
RCIF
Interromper
Barramento de dados
RCIE

FIGURA 9-5: RECEPÇÃO ASSÍNCRONA

START COMEÇAR START


RX (pino)
bit bit0 bit1 bit 7/8 STOP bit bit bit0 bit 7/8 STOP bit bit bit 7/8 STOP
bit
Turno Rcv
Registro

Registro de buffer Rcv


Palavra 1 Palavra 2
RCREG RCREG
Leia Rcv
Registro de buffer
RCREG

RCIF
(Bandeira de interrupção)

bit OERR

ELES ACREDITAM

Nota: Este diagrama de tempo mostra três palavras que aparecem na entrada RX. O RCREG (buffer de recepção) é lido após a terceira palavra,
fazendo com que o bit OERR (overrun) seja definido.

DS30569C-página 68 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Ao configurar uma Recepção Assíncrona, siga 6. O bit de sinalização RCIF será definido quando a recepção
estes passos: estiver completa e uma interrupção será gerada se habilitada
bit RCIE está definido.
1. Inicialize o registro SPBRG para o
taxa de transmissão. Se uma taxa de transmissão de alta velocidade for desejada, 7. Leia o registro RCSTA para obter o nono bit (se
defina o bit BRGH (Seção 9.1). habilitado) e determine se ocorreu algum erro
durante a recepção.
2. Habilite a porta serial assíncrona limpando
bit SYNC e bit de configuração SPEN. 8. Leia os dados recebidos de 8 bits lendo o
registro RCREG.
3. Se as interrupções forem desejadas, defina o bit de habilitação
RCIE. 9. Se ocorrer algum erro, limpe o erro limpando
habilita o bit CREN.
4. Se a recepção de 9 bits for desejada, defina o bit RX9.
10. Se estiver usando interrupções, certifique-se de que GIE e PEIE
5. Habilite a recepção configurando o bit CREN.
(bits 7 e 6) do registrador INTCON são energizados.

TABELA 9-6: REGISTROS ASSOCIADOS A RECEPÇÃO ASSÍNCRONA

Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ASSIM T0IE NÃO RBI T0IF INTF R0IF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF -000 0000 -000 0000

18h RCSTA SPEN RX9 SREN CREN — FERR OERR RX9D 0000 -00x 0000 -00x

1Ah Registro de recebimento RCREG USART 0000 0000 0000 0000

8 canais TORTA1 PSPIE(1) ADIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = locais não implementados lidos como '0'. As células sombreadas não são usadas para recepção assíncrona.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 69


Machine Translated by Google

PIC16F870/871
9.2.3 CONFIGURANDO O MODO DE 9 BITS COM • O bit de sinalização RCIF será definido quando a recepção for com
DETECÇÃO DE ENDEREÇO completo, e uma interrupção será gerada se o bit de habilitação
RCIE foi definido.
Ao configurar uma Recepção Assíncrona com
Detecção de endereço habilitada: • Leia o registrador RCSTA para obter o nono bit e determinar se
ocorreu algum erro durante a recepção.
• Inicialize o registro SPBRG para o apropriado
• Leia os dados recebidos de 8 bits lendo o
taxa de transmissão. Se desejar uma taxa de transmissão de alta velocidade,
Registro RCREG, para determinar se o dispositivo está sendo
defina o bit BRGH.
endereçado.
• Habilite a porta serial assíncrona limpando o bit SYNC e configurando
• Se ocorrer algum erro, limpe o erro limpando
o bit SPEN.
habilita o bit CREN.
• Se as interrupções forem desejadas, defina o bit de habilitação RCIE.
• Se o dispositivo foi endereçado, limpe o
• Defina o bit RX9 para habilitar a recepção de 9 bits. ADDEN bit para permitir que bytes de dados e bytes de endereço
• Configure ADDEN para habilitar a detecção de endereço. sejam lidos no buffer de recebimento e interrompa a CPU.
• Habilite a recepção configurando o bit de habilitação CREN.

FIGURA 9-6: USART RECEBER DIAGRAMA DE BLOCO

x64 Baud Rate CLK


OERR FERR
ELES ACREDITAM

SOMBRIO
SPBRG

ÿ 64 MSb Registro RSR LSb


ou
Gerador de taxa de transmissão ÿ 16 1 0 INÍCIO
PARAR (8) 7 •ÿÿ •ÿÿ •

RC7/RX/DT

Buffer de pinos Dados


RX9
e controle Recuperação

ESPANHA

RX9
Permitir
ADICIONAR Carga de

Receber
RX9
Amortecedor
ADICIONAR
RSR<8> 8

RX9D Registro RCREG


FIFO

RCIF
Interromper Barramento de dados

RCIE

DS30569C-página 70 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 9-7: RECEPÇÃO ASSÍNCRONA COM DETECÇÃO DE ENDEREÇO

COMEÇAR COMEÇAR
RC7/RX/DT (pino)
pedaço bit0 bit1 bit8 PARE pouco bit0 bit8 PARAR
pouco pedaço

Carregar RSR

Palavra 1
Bit8 = 0, Byte de Dados Bit8 = 1, Byte de Endereço
RCREG
Ler

RCIF

Observação: Este diagrama de tempo mostra um byte de dados seguido por um byte de endereço. O byte de dados não é lido no RCREG (buffer de recepção)
porque ADD = 1.

FIGURA 9-8: RECEPÇÃO ASSÍNCRONA COM ENDEREÇO BYTE PRIMEIRO

COMEÇAR COMEÇAR
RC7/RX/DT (pino)
pedaço
bit0 bit1 bit8 PARE pouco bit0 bit8 PARAR
pouco pedaço

Carregar RSR

Palavra 1
Bit8 = 1, Byte de Endereço Bit8 = 0, Byte de Dados
RCREG
Ler

RCIF

Observação: Este diagrama de tempo mostra um byte de dados seguido por um byte de endereço. O byte de dados não é lido no RCREG (buffer de recepção)
porque ADDEN não foi atualizado e ainda = 0.

TABELA 9-7: REGISTOS ASSOCIADOS A RECEPÇÃO ASSÍNCRONA

Valor ativado
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ASSIM T0IE INTER RBIE T0IF INTF R0IF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x
1Ah Registro de recebimento RCREG USART 0000 0000 0000 0000
8 canais TORTA1 PSPIE(1) FRANGO RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010
99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = locais não implementados lidos como '0'. As células sombreadas não são usadas para recepção assíncrona.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 71


Machine Translated by Google

PIC16F870/871
9.3 Modo Mestre Apagar o bit de habilitação TXEN durante uma transmissão fará com
que a transmissão seja abortada e reinicializará o transmissor. Os
Síncrono USART
pinos DT e CK reverterão para alta impedância. Se o bit CREN ou o
No modo Synchronous Master, os dados são transmitidos de forma bit SREN for definido durante uma transmissão, a transmissão será
half-duplex (ou seja, transmissão e recepção não ocorrem ao mesmo abortada e o pino DT reverterá para um estado de alta impedância
tempo). Ao transmitir dados, a recepção é inibida e vice-versa. O (para uma recepção).
modo síncrono é inserido configurando o bit SYNC (TXSTA<4>). O pino CK permanecerá como saída se o bit CSRC estiver definido
Além disso, o bit de habilitação SPEN (RCSTA<7>) é definido para (relógio interno). A lógica do transmissor, no entanto, não é resetada,
configurar os pinos de E/S RC6/TX/CK e RC7/RX/DT para as linhas embora esteja desconectada dos pinos. Para reinicializar o
CK (clock) e DT (dados), respectivamente. O modo Master indica transmissor, o usuário deve limpar o bit TXEN.
que o processador transmite o clock master na linha CK. O modo Se o bit SREN estiver definido (para interromper uma transmissão
Master é inserido configurando o bit CSRC (TXSTA<7>). em andamento e receber uma única palavra), depois que a única
palavra for recebida, o bit SREN será apagado e a porta serial
voltará a transmitir, pois o bit TXEN ainda está definido. A linha DT
mudará imediatamente do modo de recepção de alta impedância
9.3.1 MESTRE SÍNCRONO USART para transmitir e começar a dirigir.
TRANSMISSÃO Para evitar isso, o bit TXEN deve ser apagado.

O diagrama de blocos do transmissor USART é mostrado na Figura Para selecionar a transmissão de 9 bits, o bit TX9 (TXSTA<6>) deve
9-6. O coração do transmissor é o registrador de deslocamento de ser definido e o nono bit deve ser escrito no bit TX9D (TXSTA<0>).
transmissão (serial) (TSR). O registrador Shift obtém seus dados do O nono bit deve ser escrito antes de escrever os dados de 8 bits no
registrador Read/Write Transmit Buffer TXREG. O registrador registrador TXREG. Isso ocorre porque uma gravação de dados no
TXREG é carregado com dados no software. O registrador TSR não TXREG pode resultar em uma transferência imediata dos dados para
é carregado até que o último bit tenha sido transmitido do o registrador TSR (se o TSR estiver vazio). Se o TSR estava vazio e
carregamento anterior. Assim que o último bit é transmitido, o TSR é o TXREG foi escrito antes de escrever o “novo” TX9D, o valor
carregado com novos dados do TXREG (se disponível). Uma vez “presente” do bit TX9D é carregado.
que o registrador TXREG transfere os dados para o registrador TSR
(ocorre em um TCYCLE), o TXREG fica vazio e o bit de interrupção
Etapas a seguir ao configurar um mestre síncrono
TXIF (PIR1<4>) é setado. A interrupção pode ser habilitada/ Transmissão:
desabilitada configurando/apagando o bit de habilitação TXIE
(PIE1<4>). O bit de sinalização TXIF será definido, independentemente 1. Inicialize o registro SPBRG para o
do estado do bit de habilitação TXIE e não pode ser apagado no taxa de transmissão (Seção 9.1).
software. Ele será redefinido somente quando novos dados forem 2. Habilite a porta serial mestre síncrona configurando os bits
carregados no registro TXREG. Enquanto o bit de flag TXIF indica o SYNC, SPEN e CSRC.
status do registrador TXREG, outro bit TRMT (TXSTA<1>) mostra o 3. Se as interrupções forem desejadas, defina o bit de habilitação TXIE.
status do registrador TSR. TRMT é um bit somente leitura que é 4. Se desejar uma transmissão de 9 bits, defina o bit TX9.
definido quando o TSR está vazio. Nenhuma lógica de interrupção
5. Habilite a transmissão configurando o bit TXEN.
está vinculada a esse bit, portanto, o usuário deve pesquisar esse
6. Se a transmissão de 9 bits for selecionada, o nono bit deve ser
bit para determinar se o registrador TSR está vazio.
carregado no bit TX9D.

O TSR não é mapeado na memória de dados, portanto, não está 7. Inicie a transmissão carregando os dados no registrador
disponível para o usuário. TXREG.

A transmissão é habilitada configurando o bit de habilitação TXEN 8. Se estiver usando interrupções, certifique-se de que GIE e
(TXSTA<5>). A transmissão real não ocorrerá até que o registro PEIE (bits 7 e 6) do registrador INTCON estejam definidos.
TXREG tenha sido carregado com dados.
O primeiro bit de dados será deslocado na próxima borda de subida
disponível do clock na linha CK. A saída de dados é estável em
torno da borda descendente do relógio síncrono (Figura 9-9). A
transmissão também pode ser iniciada carregando primeiro o
registrador TXREG e depois definindo o bit TXEN (Figura 9-10). Isto
é vantajoso quando baixas taxas de transmissão são selecionadas,
pois o BRG é mantido em RESET quando os bits TXEN, CREN e
SREN estão limpos.
A configuração do bit de habilitação TXEN iniciará o BRG, criando
um relógio de deslocamento imediatamente. Normalmente, quando
a transmissão é iniciada, o registrador TSR está vazio, então uma
transferência para o registrador TXREG resultará em uma
transferência imediata para o TSR, resultando em um TXREG vazio.
Transferências consecutivas são possíveis.

DS30569C-página 72 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 9-8: REGISTROS ASSOCIADOS À TRANSMISSÃO MESTRA SÍNCRONA

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ASSIM T0IE INTER RBIE T0IF INTF R0IF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN — FERR OERR RX9D 0000 -00x 0000 -00x

19h Registro de Transmissão TXREG USART 0000 0000 0000 0000

8 canais TORTA1 PSPIE(1) FRANGO RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = não implementado, lido como '0'. As células sombreadas não são usadas para transmissão mestre síncrona.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

FIGURA 9-9: TRANSMISSÃO SÍNCRONA

Q1Q2 Q3Q4 Q1 Q2Q3 Q4Q1 Q2Q3 Q4Q1 Q2Q3 Q4Q1 Q2 Q3Q4 Q3Q4 Q1Q2 Q3Q4 Q1Q2 Q3Q4 Q1Q2 Q3 Q4Q1 Q2Q3 Q4Q1 Q2Q3 Q4Q1 Q2Q3 Q4

pino RC7/RX/DT bit 0 pedaço 1 parte 2 pedaço 7 bit 0 pedaço 1 pedaço 7

Palavra 1 Palavra 2

pino RC6/TX/CK

Escrever para

TXREG reg

Escrever palavra1 Escrever palavra2


bit TXIF
(Bandeira de interrupção)

bit TRMT

'1' '1'
bit TXEN

Nota: Modo Sync Master; SPBRG = 0. Transmissão contínua de duas palavras de 8 bits.

FIGURA 9-10: TRANSMISSÃO SÍNCRONA (ATRAVÉS DE TXEN)

pino RC7/RX/DT bit0 bit1 bit2 bit6 bit7

pino RC6/TX/CK

Escrever para

TXREG Reg

bit TXIF

bit TRMT

bit TXEN

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 73


Machine Translated by Google

PIC16F870/871
9.3.2 RECEPÇÃO MASTER SÍNCRONA USART Ao configurar uma recepção mestre síncrona:

1. Inicialize o registro SPBRG para o


Uma vez selecionado o modo Síncrono, a recepção é habilitada taxa de transmissão (Seção 9.1).

configurando o bit de habilitação SREN (RCSTA<5>), ou o bit de 2. Habilite a porta serial mestre síncrona configurando os bits
habilitação CREN (RCSTA<4>). Os dados são amostrados no pino SYNC, SPEN e CSRC.
RC7/RX/DT na borda descendente do relógio. Se o bit de habilitação 3. Certifique-se de que os bits CREN e SREN estejam limpos.
SREN estiver definido, apenas uma única palavra será recebida. Se
4. Se as interrupções forem desejadas, defina o bit de habilitação
o bit de habilitação CREN estiver definido, a recepção é contínua até RCIE.
que CREN seja apagado. Se ambos os bits estiverem definidos, o
5. Se a recepção de 9 bits for desejada, defina o bit RX9.
CREN tem precedência. Após cronometrar o último bit, os dados
recebidos no registrador Receive Shift (RSR) são transferidos para o 6. Se for necessária uma única recepção, defina o bit SREN.
registrador RCREG (se estiver vazio). Quando a transferência estiver Para recepção contínua, defina o bit CREN.

completa, o bit de flag de interrupção RCIF (PIR1<5>) é definido. A 7. O bit sinalizador de interrupção RCIF será definido quando a
interrupção real pode ser habilitada/desabilitada configurando/ recepção for concluída e uma interrupção será gerada se o
apagando o bit de habilitação RCIE (PIE1<5>). O bit de sinalização bit de habilitação RCIE foi definido.
RCIF é um bit somente leitura, que é redefinido pelo hardware. Neste 8. Leia o registro RCSTA para obter o nono bit (se habilitado) e
caso, é resetado quando o registrador RCREG foi lido e está vazio. determine se ocorreu algum erro durante a recepção.
O RCREG é um registrador de buffer duplo (ou seja, é um FIFO de
duas profundidades). É possível que dois bytes de dados sejam 9. Leia os dados recebidos de 8 bits lendo o registrador RCREG.
recebidos e transferidos para o RCREG FIFO e um terceiro byte
comece a se deslocar para o registrador RSR. No clock do último bit
10. Se ocorrer algum erro, limpe o erro limpando o bit CREN.
do terceiro byte, se o registrador RCREG ainda estiver cheio, então
o bit de erro de overrun OERR (RCSTA<1>) é definido. A palavra no
11. Se estiver usando interrupções, certifique-se de que GIE e
RSR será perdida.
PEIE (bits 7 e 6) do registrador INTCON estejam definidos.

O registrador RCREG pode ser lido duas vezes para recuperar os


dois bytes no FIFO. O bit OERR deve ser apagado no software
(limpando o bit CREN). Se o bit OERR estiver definido, as
transferências do RSR para o RCREG são inibidas, portanto, é
essencial limpar o bit OERR se estiver definido. O nono bit de
recebimento é armazenado em buffer da mesma forma que os dados
de recebimento. A leitura do registrador RCREG carregará o bit RX9D
com um novo valor, portanto, é essencial que o usuário leia o
registrador RCSTA antes de ler o RCREG, para não perder as
informações antigas do RX9D.

DS30569C-página 74 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 9-9: REGISTROS ASSOCIADOS À RECEPÇÃO MASTER SÍNCRONA

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ASSIM T0IE INTER RBIE T0IF INTF R0IF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
18h RCSTA SPEN RX9 SREN CREN — FERR OERR RX9D 0000 -00x 0000 -00x
1Ah Registro de recebimento RCREG USART 0000 0000 0000 0000

8 canais TORTA1 PSPIE(1) FRANGO RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000
98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010
99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = não implementado, lido como '0'. As células sombreadas não são usadas para recepção mestre síncrona.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

FIGURA 9-11: RECEPÇÃO SÍNCRONA (MODO MASTER, SREN)

Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

pino RC7/RX/DT bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7

pino RC6/TX/CK

Escrever para

bit SREN

bit SREN

bit CREN '0' '0'

bit RCIF
(Interromper)

Ler
RXREG

Nota: O diagrama de temporização demonstra o modo Sync Master com bit SREN = 1 e bit BRG = 0.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 75


Machine Translated by Google

PIC16F870/871
9.4 Modo Escravo Síncrono USART Ao configurar uma Transmissão Slave Síncrona,
Siga esses passos:
O modo escravo síncrono difere do modo mestre
1. Habilite a porta serial escrava síncrona definindo os bits SYNC
no fato de que o relógio de mudança é fornecido externamente em
e SPEN e o bit de limpeza
o pino RC6/TX/CK (em vez de ser fornecido internamente
CSRC.
no modo Mestre). Isso permite que o dispositivo transfira ou
receber dados enquanto estiver no modo SLEEP. O modo escravo é 2. Limpe os bits CREN e SREN.

inserido limpando o bit CSRC (TXSTA<7>). 3. Se as interrupções forem desejadas, defina o bit de habilitação
ESSA.
9.4.1 ESCRAVO SÍNCRONO USART 4. Se a transmissão de 9 bits for desejada, defina o bit TX9.
TRANSMITE
5. Habilite a transmissão definindo o bit de habilitação
A operação do mestre e escravo síncrono CHEN.
modos é idêntico, exceto no caso do modo SLEEP. 6. Se a transmissão de 9 bits for selecionada, o nono bit
Se duas palavras forem gravadas no TXREG e, em seguida, o deve ser carregado no bit TX9D.

instrução SLEEP for executada, ocorrerá o seguinte: 7. Inicie a transmissão carregando dados no TXREG
registro.
a) A primeira palavra será imediatamente transferida para o
TSR registrar e transmitir. 8. Se estiver usando interrupções, certifique-se de que GIE e PEIE
(bits 7 e 6) do registrador INTCON são energizados.
b) A segunda palavra permanecerá no registrador TXREG. c) O
bit de sinalização TXIF não será definido. d) Quando a primeira
palavra for deslocada do TSR,
o registrador TXREG irá transferir a segunda palavra
para o TSR e o bit de flag TXIF agora será definido. e)
Se o bit de habilitação TXIE estiver definido, a interrupção será ativada
o chip do SLEEP e se a interrupção global
estiver habilitado, o programa irá ramificar para o
vetor de interrupção (0004h).

TABELA 9-10: REGISTROS ASSOCIADOS À TRANSMISSÃO SÍNCRONA DE ESCRAVO


Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ASSIM T0IE INTER RBIE T0IF INTF R0IF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x
19h Registro de Transmissão TXREG USART 0000 0000 0000 0000
8 canais TORTA1 PSPIE(1) FRANGO RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010
99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = não implementado, lido como '0'. As células sombreadas não são usadas para transmissão síncrona de escravo.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870; sempre mantenha esses bits claros.

DS30569C-página 76 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
9.4.2 RECEPÇÃO SÍNCRONA DE ESCRAVO USART Ao configurar uma Recepção Slave Síncrona,
Siga esses passos:

A operação do mestre e escravo síncrono 1. Habilite a porta serial mestre síncrona


modos é idêntico, exceto no caso do SLEEP bits de configuração SYNC e SPEN e bit de limpeza
modo. Bit SREN é um “don't care” no modo Slave. CSRC.

2. Se as interrupções forem desejadas, defina o bit de habilitação RCIE.


Se o recebimento estiver habilitado configurando o bit CREN antes do
instrução SLEEP, então uma palavra pode ser recebida durante 3. Se a recepção de 9 bits for desejada, defina o bit RX9.
DORME. Ao receber completamente a palavra, o RSR 4. Para habilitar a recepção, defina o bit de habilitação CREN.
registrar transferirá os dados para o registro RCREG 5. O bit de sinalização RCIF será definido quando a recepção
e se o bit RCIE do bit de habilitação estiver definido, a interrupção gerada estiver completa e uma interrupção será gerada, se
vai acordar o chip do SLEEP. Se a interrupção global for habilitar bit RCIE foi definido.
habilitado, o programa irá desviar para o vetor de interrupção
6. Leia o registro RCSTA para obter o nono bit (se
(0004h).
habilitado) e determine se ocorreu algum erro
durante a recepção.
7. Leia os dados recebidos de 8 bits lendo o
registro RCREG.
8. Se ocorrer algum erro, limpe o erro limpando
Bit CREN.

9. Se estiver usando interrupções, certifique-se de que GIE e PEIE


(bits 7 e 6) do registrador INTCON são energizados.

TABELA 9-11: REGISTROS ASSOCIADOS A RECEPÇÃO SÍNCRONA DE ESCRAVOS

Valor em
Valor em:
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR, BOR
REINICIA

0Bh, 8Bh, INTCON GIE ASSIM T0IE INTER RBIE T0IF INTF R0IF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x 0000 000x
1Ah Registro de recebimento RCREG USART 0000 0000 0000 0000
8 canais TORTA1 PSPIE(1) FRANGO RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010
99h Registro do Gerador de Taxa de Transmissão SPBRG 0000 0000 0000 0000

Legenda: x = desconhecido, - = não implementado, lido como '0'. As células sombreadas não são usadas para recepção síncrona de escravos.
Nota 1: Os bits PSPIE e PSPIF são reservados no PIC16F870, mantenha sempre estes bits livres.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 77


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 78 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
O módulo A/D possui quatro registradores. Esses registros
10.0 ANALÓGICO PARA DIGITAL (A/D)
são:
MÓDULO CONVERSOR
• Registro Alto de Resultado A/D (ADRESH)
O módulo Conversor Analógico-Digital (A/D) tem cinco
• Registro Baixo de Resultado A/D (ADRESL)
entradas para os dispositivos de 28 pinos e oito para os outros
dispositivos. • Registro de Controle A/D0 (ADCON0)
• Registro de Controle A/D1 (ADCON1)
A entrada analógica carrega um capacitor de amostragem e retenção.
A saída do capacitor de amostra e retenção é a entrada O registro ADCON0, mostrado no Registro 10-1, controla a operação
no conversor. O conversor gera então um resultado digital deste nível do módulo A/D. O ADCON1
analógico por meio de aproximações sucessivas. A conversão A/D do registrador, mostrado no registrador 10-2, configura as funções dos
sinal de entrada analógico pinos da porta. Os pinos da porta podem ser configurados
resulta em um número digital de 10 bits correspondente. o como entradas analógicas (RA3 também pode ser a tensão
O módulo A/D tem entrada de referência de alta e baixa tensão referência), ou como E/S digital.
que é selecionável por software para alguma combinação de VDD, Informações adicionais sobre o uso do módulo A/D podem ser
VSS, RA2 ou RA3. encontrado no PIC® Mid-Range MCU Family Reference
O conversor A/D tem a característica única de poder Manual (DS33023).
para operar enquanto o dispositivo estiver no modo SLEEP. Para
operar em SLEEP, o relógio A/D deve ser derivado do
Oscilador RC interno do A/D.

REGISTRO 10-1: REGISTRO ADCON0 (ENDEREÇO: 1Fh)


R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0

ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE — ADON

pedaço 7 bit 0

bocado 7-6 ADCS1:ADCS0: bits de seleção de relógio de conversão A/D


00 = ESCURO/2
01 = ESCURO/8
10 = ESCURO/32
11 = FRC (relógio derivado do oscilador RC do módulo A/D interno)
bocado 5-3 CHS2:CHS0: bits de seleção de canal analógico
000 = Canal 0, (RA0/AN0)
010 = Canal 2, (RA2/AN2)
011 = Canal 3, (RA3/AN3)
100 = Canal 4, (RA5/AN4)
101 = Canal 5, (RE0/AN5)(1)
110 = Canal 6, (RE1/AN6)(1)
111 = Canal 7, (RE2/AN7)(1)
parte 2 GO/DONE: bit de status de conversão A/D
Se ADON = 1:
1 = conversão A/D em andamento (definir este bit inicia a conversão A/D)
0 = A conversão A/D não está em andamento (este bit é automaticamente apagado pelo hardware quando o A/D
conversão está completa)
pedaço 1 Não implementado: Leia como '0'
bit 0 ADON: A/D no bit

1 = módulo conversor A/D está operando


0 = O módulo conversor A/D está desligado e não consome corrente operacional
Nota 1: Esses canais não estão disponíveis no dispositivo PIC16F870.

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 79


Machine Translated by Google

PIC16F870/871
REGISTRO 10-2: REGISTRO ADCON1 (ENDEREÇO: 9Fh)
U-0 U-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

ADFM — — — PCFG3 PCFG2 PCFG1 PCFG0

pedaço 7 bit 0

pedaço 7 ADFM: Bit de seleção de formato de resultado A/D

1 = Justificado à direita. 6 Os bits mais significativos de ADRESH são lidos como '0'.
0 = justificado à esquerda. 6 Bits menos significativos de ADRSL são lidos como '0'.
bocado 6-4 Não implementado: Leia como '0'
pouco 3-0 PCFG3:PCFG0: Bits de controle de configuração da porta A/D:

PCFG3: AN7(1) AN6(1) AN5(1) AN4 AN3 AN2 AN1 AN0 CHAN/
VREF+ VREF-
PCFG0 RE2 RE1 RE0 RA5 RA3 RA2 RA1 RA0 Refs(2)

0000 UMA UMA UMA UMA UMA


AA AVDD VSS 8/0
0001 UMA UMA A AVREF+ AAA RA3 VSS 01/07

0010 D D D UMA UMA


AA AVDD VSS 5/0
0011 D D D AVREF+ AAA RA3 VSS 01/04

0100 D D D D UMA
DA AVDD VSS 3/0

0101 D D D DVREF+ DAA RA3 VSS 01/02

011x D D D D D D D DVDD VSS 0/0


1000 UMA UMA A AVREF+ VREF- AA RA3 RA2 6/2

1001 D D UMA UMA UMA


AA AVDD VSS 6/0
1010 D D A AVREF+ AAA RA3 VSS 01/05

1011 D D A AVREF+ VREF- AA RA3 RA2 4/2

1100 D D D AVREF+ VREF- AA RA3 RA2 3/2


1101 D D D DVREF+ VREF- AA RA3 RA2 2/2
1110 D D D D D D D AVDD VSS 1/0
1111 D D D DVREF+ VREF- DA RA3 RA2 1/2

A = Entrada analógica D = E/S digital

Nota 1: Esses canais não estão disponíveis no dispositivo PIC16F870.

2: Esta coluna indica o número de canais analógicos disponíveis como entradas A/D e
o número de canais analógicos usados como entradas de referência de tensão.

Lenda:
R = bit legível W = bit gravável U = bit não implementado, lido como '0'
- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

Os registradores ADRESH:ADRESL contêm os registros de 10 bits Para determinar o tempo de amostragem, consulte a Seção 10.1. Depois disto
resultado da conversão A/D. Quando a conversão A/D decorrido o tempo de aquisição, a conversão A/D pode
está completo, o resultado é carregado neste par de registradores de ser iniciado.
resultados A/D, o bit GO/DONE (ADCON0<2>) é apagado
e o bit de sinalização de interrupção A/D ADIF é definido. O bloco
diagrama do módulo A/D é mostrado na Figura 10-1.

Após o módulo A/D ter sido configurado conforme desejado,


o canal selecionado deve ser adquirido antes que a conversão seja
iniciada. Os canais de entrada analógica devem
têm seus bits TRIS correspondentes selecionados como entradas.

DS30569C-página 80 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Estas etapas devem ser seguidas para fazer um A/D 3. Aguarde o tempo de aquisição necessário.
Conversão: 4. Inicie a conversão:

1. Configure o módulo A/D: • Configure • Definir bit GO/DONE (ADCON0)


os pinos analógicos/referência de tensão e E/S digital 5. Aguarde a conclusão da conversão A/D, por meio de: •
(ADCON1) Polling para que o bit GO/DONE seja apagado (com
• Selecione o canal de entrada A/D (ADCON0) interrupções habilitadas); OU
• Selecione o relógio de conversão A/D (ADCON0) • Aguardando o par de registradores
• Ligue o módulo A/D (ADCON0) 6. Leia o resultado de A/D de interrupção A/D
2. Configure a interrupção A/D (se desejar): (ADRESH:ADRESL), limpe o bit ADIF se necessário.
• Limpar bit ADIF 7. Para a próxima conversão, vá para a etapa 1 ou etapa 2,
• Definir bit ADIE conforme necessário. O tempo de conversão A/D por bit é
definido como TAD. É necessária uma espera mínima de
• Defina ESTE bit
2 TAD antes do início da próxima aquisição.
• Definir bit GIE

FIGURA 10-1: DIAGRAMA DE BLOCO A/D


CHS2:CHS0

111
RE2/AN7(1)

110
RE1/AN6(1)

101
RE0/AN5(1)

100
RA5/AN4

011
(Tensão de entrada) RA3/AN3/VREF+

010
DE ANÚNCIOS RA2/AN2/VREF
Conversor
001
RA1/AN1

000
VDD RA0/YAN0

VREF+

(Referência
Tensão)

PCFG3:PCFG0

VREF-

(Referência
Tensão)
VSS

PCFG3:PCFG0

Nota 1: Não disponível no dispositivo PIC16F870.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 81


Machine Translated by Google

PIC16F870/871
10.1 Requisitos de Aquisição A/D ser diminuído. Depois que o canal de entrada analógica for selecionado
(alterado), esta aquisição deve ser feita antes que a conversão possa ser
Para que o conversor A/D atinja sua precisão especificada, o iniciada.
capacitor de retenção de carga (CHOLD) deve ser totalmente
Para calcular o tempo mínimo de aquisição, a Equação 10-1 pode ser
carregado até o nível de tensão do canal de entrada. O modelo de
usada. Esta equação assume que 1/2 erro LSb é usado (1024 passos
entrada analógica é mostrado na Figura 10-2. A impedância da
para o A/D). O erro de 1/2 LSb é o erro máximo permitido para o A/D
fonte (RS) e a impedância da chave de amostragem interna (RSS)
atingir sua resolução especificada.
afetam diretamente o tempo necessário para carregar o capacitor
CHOLD. A impedância da chave de amostragem (RSS) varia com
a tensão do dispositivo (VDD), consulte a Figura 10-2. A Para calcular o tempo mínimo de aquisição, TACQ, consulte o PIC® Mid-
impedância máxima recomendada para fontes analógicas é Range MCU Family Reference Manual (DS33023).
de 10 kÿ. À medida que a impedância diminui, o tempo de
aquisição pode

EQUAÇÃO 10-1: TEMPO DE AQUISIÇÃO

TACQ =
Tempo de estabilização do amplificador + tempo de carregamento do capacitor de retenção + coeficiente de temperatura

= TAMP + TC + TCOFF 2
=
ÿs + TC + [(Temperatura – 25°C)(0,05 ÿs/°C)]
TC = CHOLD (RIC + RSS + RS) In(1/2047) -
= 120 pF (1 kÿ + 7 kÿ + 10 kÿ) In(0,0004885) 16,47 ÿs
= 2 ÿs + 16,47 ÿs + [(50°C) – 25ÿC)(0,05 ÿs/ÿC) 19,72
TACQ = ÿs
=

Nota 1: A tensão de referência (VREF) não tem efeito na equação, pois ela se cancela.

2: O capacitor de retenção de carga (CHOLD) não é descarregado após cada conversão.

3: A impedância máxima recomendada para fontes analógicas é de 10 kÿ. Isso é necessário para atender o pino
especificação de vazamento.

4: Após a conclusão de uma conversão, um atraso de 2,0 TAD deve ser concluído antes que a aquisição possa começar novamente.
Durante este tempo, o capacitor de retenção não está conectado ao canal de entrada A/D selecionado.

FIGURA 10-2: MODELO DE ENTRADA ANALÓGICA

VDD
Amostragem
Trocar
VT = 0,6 V
ANx RIC ÿ 1k SS RSS
RS

CHOLD
E CPIN FUGA ± = capacitância DAC =
VT = 0,6 V 500 nA 120 pF
5 pF

VSS

Legendas do CPIN = capacitância de


6V
VT entrada = tensão limite 5V
EU VAZAMENTO = corrente de fuga no pino devido a VDD 4V
várias junções = 3V
resistência de interconexão = 2V
RIC
SS interruptor de amostragem =
CHOLD capacitância de amostra/retenção (do DAC) 5 6 7 8 9 10 11
Chave de Amostragem
(kÿ)

DS30569C-página 82 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
10.2 Selecionando o Relógio de Conversão Para conversões A/D corretas, o relógio de conversão A/D
A/D (TAD) deve ser selecionado para garantir um tempo mínimo de TAD
de 1,6 ÿs.
O tempo de conversão A/D por bit é definido como TAD. o A Tabela 10-1 mostra os tempos TAD resultantes derivados de
A conversão A/D requer um mínimo de 12 TAD por 10 bits
as frequências de operação do dispositivo e o relógio A/D
conversão. A fonte do relógio de conversão A/D é
fonte selecionada.
software selecionado. As quatro opções possíveis para TAD
são:

• 2 GROSSOS

• 8 ÁSPERO

• 32 ÁSPERO

• Oscilador RC do módulo A/D interno (2-6 ÿs)

TABELA 10-1: TAD vs. FREQUÊNCIAS MÁXIMAS DE OPERAÇÃO DO DISPOSITIVO (DISPOSITIVOS PADRÃO (C))

Fonte de relógio AD (TAD) Frequência máxima do dispositivo

Operação ADCS1:ADCS0 Máx.

2 ÁSPERO 00 1,25 MHz

8 ÁSPERO 01 5MHz

32 ÁSPERO 10 20MHz
RC(1, 2, 3) 11 (Nota 1)

Nota 1: A fonte RC tem um tempo TAD típico de 4 ÿs, mas pode variar entre 2-6 ÿs.
2: Quando as frequências do dispositivo são maiores que 1 MHz, a fonte de clock de conversão RC A/D é apenas
recomendado para operação SLEEP.
3: Para dispositivos de tensão estendida (LC), consulte as Características Elétricas (Seção 14.1 e 14.2).

10.3 Configurando os pinos da porta analógica Nota 1: Ao ler o registro da porta, qualquer pino
configurado como um canal de entrada analógica
Os registradores ADCON1 e TRIS controlam a operação
lido como limpo (um nível baixo). Os pinos
dos pinos da porta A/D. Os pinos de porta que são desejados como
configurados como entradas digitais converterão
as entradas analógicas devem ter seus bits TRIS correspondentes
uma entrada de registro analógico. Níveis analógicos em um digital
definir (entrada). Se o bit TRIS for apagado (saída), o sinal digital
entrada configurada não afetará o
nível de saída (VOH ou VOL) será convertido.
precisão de conversão.
A operação A/D é independente do estado do
bits CHS2:CHS0 e os bits TRIS. 2: Níveis analógicos em qualquer pino definido como
uma entrada digital (incluindo o AN7:AN0
pinos), pode fazer com que o buffer de entrada
consuma corrente que está fora do dispositivo
especificações.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 83


Machine Translated by Google

PIC16F870/871
10.4 Conversões A/D aquisição é iniciada. Após esta espera de 2 TAD , aquisição
no canal selecionado é iniciado automaticamente. o
Apagar o bit GO/DONE durante uma conversão O bit GO/DONE pode então ser definido para iniciar a conversão.
abortar a conversão atual. O registro de resultado A/D
Na Figura 10-3, após o bit GO ser definido, a primeira vez
par NÃO será atualizado com o parcialmente concluído
segmento tem um mínimo de TCY e um máximo de TAD.
Amostra de conversão A/D. Ou seja, o ADRESH:ADRESL
registradores continuarão a conter o valor do último Nota: O bit GO/DONE NÃO deve ser definido em
conversão concluída (ou o último valor gravado no a mesma instrução que liga o A/D.
ADRESH: registradores ADRESL). Após a conversão A/D
é abortado, uma espera de 2 TAD é necessária antes do próximo

FIGURA 10-3: CICLOS TAD DE CONVERSÃO A/D

TCY para TAD TAD1 TAD2 TAD3 TAD4 TAD5 TAD6 TAD7 TAD8 TAD9 TAD10 TAD11

b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

A conversão começa

O capacitor de retenção é desconectado da entrada analógica (normalmente 100 ns)

Definir bit GO
O ADRES está carregado
O bit GO é limpo
O bit ADIF é definido

O capacitor de retenção está conectado à entrada analógica

10.4.1 REGISTROS DE RESULTADOS A/D mat Select bit (ADFM) controla esta justificação.
A Figura 10-4 mostra o funcionamento da justificação do resultado A/
O par de registradores ADRESH:ADRESL é o local
D. Os bits extras são carregados com '0'. Quando um A/D
onde o resultado A/D de 10 bits é carregado na conclusão do
resultado não substituirá esses locais (desativação A/D),
a conversão A/D. Este par de registradores tem 16 bits de largura.
esses registradores podem ser usados como dois propósitos gerais
O módulo A/D oferece flexibilidade para justificar à esquerda ou à direita
registradores de 8 bits.
o resultado de 10 bits no registrador de resultados de 16 bits. O A/D para

FIGURA 10-4: JUSTIFICAÇÃO DO RESULTADO A/D

Resultado de 10 bits

ADFM = 1 ADFM = 0

7 2107 0 7 0765 0

0000 00 0000 00

ENDEREÇO MORADA ENDEREÇO MORADA

Resultado de 10 bits Resultado de 10 bits

Justificado corretamente Justificado à esquerda

DS30569C-página 84 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
10.5 Operação A/D durante o SONO Desligar o A/D coloca o módulo A/D na posição mais baixa
estado de consumo atual.
O módulo A/D pode operar durante o modo SLEEP. este
requer que a fonte de clock A/D seja configurada para RC Nota: Para que o módulo A/D opere em SLEEP,
a fonte do relógio A/D deve ser configurada para RC
(ADCS1:ADCS0 = 11). Quando a fonte do relógio RC é
selecionado, o módulo A/D aguarda um ciclo de instrução (ADCS1:ADCS0 = 11). Para permitir que a conversão
antes de iniciar a conversão. Isso permite que o SONO ocorra durante o SLEEP, certifique-se de que o
instrução a ser executada, o que elimina todas as A instrução SLEEP segue imediatamente a
instrução que energiza o bit GO/DONE.
ruído de comutação da conversão. Quando a conversão estiver
completa, o bit GO/DONE será apagado e
o resultado carregado no registrador ADRES. Se o A/D 10.6 Efeitos de um RESET
interrupção estiver habilitada, o dispositivo acordará
Um dispositivo RESET força todos os registradores ao seu RESET
DORME. Se a interrupção A/D não estiver habilitada, o módulo A/D
Estado. Isso força o módulo A/D a ser desligado e
será então desligado, embora o bit ADON
permanecer definido. qualquer conversão é abortada. Todos os pinos de entrada A/D são
configurados como entradas analógicas.
Quando a fonte de relógio A/D é outra opção de relógio (não
O valor que está nos registradores ADRESH:ADRESL é
RC), uma instrução SLEEP fará com que a conversão atual seja
não modificado para um Power-on Reset. o
abortada e o módulo A/D seja desligado,
ADRESH:Registros ADRESL conterão dados desconhecidos
embora o bit ADON permaneça definido.
após uma reinicialização ao ligar.

TABELA 10-2: REGISTROS/BITS ASSOCIADOS A A/D


Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 MCLR,
POR, BOR
WDT

0Bh,8Bh, INTCON GIE ASSIM NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh,18Bh
0Ch PIR1 PSPIF(1) ADIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

8 canais TORTA1 PSPIE(1) RCIE DE FRANGO TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

1Eh Registrador de Resultado A/D ADRESH Byte Alto xxxx xxxx uuuu uuuu

9Eh Byte baixo do registrador de resultado A/D ADRESL xxxx xxxx uuuu uuuu

1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE — ADON 0000 00-0 0000 00-0

9Fh ADCON1 ADFM — — — PCFG3 PCFG2 PCFG1 PCFG0 --0- 0000 --0- 0000

85h TRISA — — Registro de Direção de Dados PORTA --11 1111 --11 1111

05h PORTA — — PORTA Data Latch quando escrito: pinos PORTA quando lidos --0x 0000 --0u 0000
89h(1) TRÊS IBF OBF IBOV PSPMODE — PORTE bits de direção de dados 0000 -111 0000 -111
09h(1) PORTA — — — — — RE2 RE1 RE0 ---- -xxx ---- -uuu

Legenda: x = desconhecido, u = inalterado, - = não implementado, lido como '0'. As células sombreadas não são usadas para conversão A/D.
Nota 1: Esses registradores/bits não estão disponíveis nos dispositivos de 28 pinos.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 85


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 86 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
11.0 CARACTERÍSTICAS ESPECIAIS DA CPU O modo SLEEP foi projetado para oferecer um modo Power-down de corrente
muito baixa. O usuário pode acordar do SLEEP através de RESET externo,
Watchdog Timer Wake-up ou através de uma interrupção.
Os dispositivos PIC16F870/871 possuem uma série de recursos destinados a

maximizar a confiabilidade do sistema, minimizar custos por meio da eliminação Várias opções de osciladores também são disponibilizadas para permitir que a
de componentes externos, fornecer modos de operação de economia de energia peça se ajuste à aplicação. A opção de oscilador RC economiza o custo do
e oferecer proteção de código. Estes são:
sistema, enquanto a opção de cristal LP economiza energia. Um conjunto de bits
de configuração é usado para selecionar várias opções.
• Seleção do oscilador

• REDEFINIR Informações adicionais sobre recursos especiais estão disponíveis no PIC® Mid-

- Reinicialização ao ligar (POR) Range MCU Family Reference Manual (DS33023).

- Temporizador de inicialização (PWRT)

- Temporizador de inicialização do oscilador (OST)

- Reinicialização de Brown-out (BOR) •


11.1 Bits de Configuração
Interrupções • Temporizador Watchdog Os bits de configuração podem ser programados (lidos como '0'), ou deixados não

(WDT) • SLEEP programados (lidos como '1'), para selecionar várias configurações de dispositivos.
O valor apagado ou não programado da palavra de configuração é 3FFFh. Esses
bits são mapeados no local de memória do programa 2007h.
• Proteção de Código

• Locais de identificação
É importante observar que o endereço 2007h está além do espaço de memória
• Programação Serial In-Circuit • Programação
do programa do usuário, que pode ser acessado somente durante a programação.
Serial In-Circuit de Baixa Tensão • Depurador In-Circuit

Os dispositivos PIC16F870/871 possuem um Watchdog Timer, que pode ser


desligado somente através de bits de configuração. Ele funciona com seu próprio
oscilador RC para maior confiabilidade.

Existem dois temporizadores que oferecem atrasos necessários na inicialização.


Um deles é o Oscillator Start-up Timer (OST), destinado a manter o chip em
RESET até que o oscilador de cristal esteja estável. O outro é o Power-up Timer
(PWRT), que fornece um atraso fixo de 72 ms (nominal) apenas na inicialização.
Ele é projetado para manter a peça em RESET enquanto a fonte de alimentação
se estabiliza. Com esses dois temporizadores no chip, a maioria dos aplicativos
não precisa de circuitos RESET externos.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 87


Machine Translated by Google

PIC16F870/871
REGISTRO 11-1: PALAVRA DE CONFIGURAÇÃO (ENDEREÇO 2007h)(1)
CP1 CP0 DEBUG — WRT CPD LVP BOREN CP1 CP0 PWRTEN WDTEN FOSC1 FOSC0

pedaço 13 bit 0

bits 13-12, CP1:CP0: bits de proteção de código de memória de programa FLASH(2)


bocado 5-4
11 = Proteção de código desligada
10 = Não suportado
01 = Não suportado
00 = Proteção de código ativada

pedaço 11 DEBUG: Modo de depuração em circuito

1 = In-Circuit Debugger desativado, RB6 e RB7 são pinos de E/S de uso geral
0 = In-Circuit Debugger habilitado, RB6 e RB7 são dedicados ao depurador

pedaço 10 Não implementado: Leia como '1'

bocado 9 WRT: FLASH Program Memory Write Enable

1 = A memória de programa desprotegida pode ser gravada pelo controle EECON


0 = A memória de programa desprotegida não pode ser gravada pelo controle EECON

bocado 8 CPD: Proteção de Código de Memória Data EE

1 = Proteção de código desligada


0 = Código de memória EEPROM de dados protegido

pedaço 7 LVP: Bit de habilitação de programação serial em circuito de baixa tensão

1 = pino RB3/PGM tem função PGM, programação de baixa tensão habilitada


0 = RB3 é E/S digital, HV em MCLR deve ser usado para programação

bocado 6 BOREN: Bit de habilitação de reinicialização de brown-out (3)

1 = BOR ativado
0 = BOR desabilitado

parte 3 PWRTEN: bit de habilitação do temporizador de inicialização (3)

1 = PWRT desativado
0 = PWRT ativado

parte 2 WDTEN: bit de ativação do temporizador de watchdog


1 = WDT ativado
0 = WDT desabilitado

pouco 1-0 FOSC1:FOSC0: bits de seleção do oscilador

11 = oscilador RC
10 = oscilador HS
01 = oscilador XT
00 = oscilador LP

Lenda:

R = bit legível W = bit gravável U = bit não implementado, lido como '0'

- n = Valor em POR '1' = Bit está definido '0' = Bit é apagado x = Bit é desconhecido

Nota 1: O valor apagado (não programado) da palavra de configuração é 3FFFh.


2: Todos os pares CP1:CP0 devem receber o mesmo valor para habilitar o esquema de proteção de código listado.

3: Habilitar o Brown-out Reset habilita automaticamente o Power-up Timer (PWRT), independentemente do valor do bit
PWRTEN. Certifique-se de que o temporizador de inicialização esteja ativado sempre que a reinicialização de brown-out estiver ativada.

DS30569C-página 88 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
11.2 Configurações do oscilador FIGURA 11-2: ENTRADA DE RELÓGIO EXTERNO
OPERAÇÃO (HS, XT OU LP
11.2.1 TIPOS DE OSCILADOR CONFIGURAÇÃO OSC)
O PIC16F870/871 pode ser operado em quatro
Modos do oscilador. O usuário pode programar dois bits de
configuração (FOSC1 e FOSC0) para selecionar um desses bits. Relógio de OSC1
quatro modos:
Ramal Sistema PIC16F870/871
• LP Cristal de baixa potência
Abrir OSC2
• XT Cristal/Ressonador
• Cristal/Ressonador de Alta Velocidade HS
• Resistor/Capacitor RC

11.2.2 OSCILADOR DE CRISTAL/CERÂMICA


RESSONADORES
TABELA 11-1: RESSONADORES CERÂMICOS
Nos modos XT, LP ou HS, um ressonador de cristal ou cerâmica
está conectado aos pinos OSC1/CLKI e OSC2/CLKO Faixas testadas:
para estabelecer a oscilação (Figura 11-1). O PIC16F870/ Modo OSC1 OSC2
Frequencia.
O projeto do oscilador 871 requer o uso de um corte paralelo
cristal. O uso de um cristal de corte em série pode fornecer uma frequência XT 455 kHz 68 - 100 pF 68 - 100 pF
fora das especificações dos fabricantes de cristal. Quando em 2,0 MHz 15 - 68 pF 15 - 68 pF
modos XT, LP ou HS, o dispositivo pode ter um 4,0 MHz 15 - 68 pF 15 - 68 pF
fonte de clock para acionar o pino OSC1/CLKI (Figura 11-2). HS 8,0 MHz 10 - 68 pF 10 - 68 pF
16,0 MHz 10 - 22 pF 10 - 22 pF
FIGURA 11-1: CRISTAL/CERÂMICA Esses valores são apenas para orientação de projeto.
OPERAÇÃO DO RESSONADOR Consulte as notas após a Tabela 11-2.
(HS, XT OU LP Ressonadores usados:
CONFIGURAÇÃO OSC)
455 kHz Panasonic EFO-A455K04B ÿ 0,3%
C1(1) OSC1
2,0 MHz Murata Erie CSA2.00MG ÿ 0,5%
Para
4,0 MHz Murata Erie CSA4.00MG ÿ 0,5%
interno
XTAL Lógica 8,0 MHz Murata Erie CSA8.00MT ÿ 0,5%
RF(3)
OSC2 16,0 MHz Murata Erie CSA16,00MX ÿ 0,5%
DORME
(2) Todos os ressonadores usados não tinham capacitores embutidos.
Rs
C2(1) PIC16F870/871

Nota 1: Consulte a Tabela 11-1 e a Tabela 11-2 para


valores recomendados de C1 e C2.

2: Um resistor em série (Rs) pode ser necessário para


Cristais de corte em tira AT.
3: RF varia com o cristal escolhido.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 89


Machine Translated by Google

PIC16F870/871
TABELA 11-2: SELEÇÃO DE CAPACITOR PARA 11.2.3 OSCILADOR RC
OSCILADOR DE CRISTAL Para aplicações insensíveis ao tempo, o dispositivo “RC”
Cristal Boné. Faixa Boné. Faixa opção oferece economia de custos adicionais. O oscilador RC
Tipo de Osc a frequência é uma função da tensão de alimentação, dos valores
Freq. C1 C2
do resistor (REXT) e do capacitor (CEXT) e da temperatura de
LP 32 kHz 33 pF 33 pF operação. Além disso, o oscilador
200 kHz 15 pF 15 pF a frequência variará de unidade para unidade devido à variação
XT 200 kHz normal dos parâmetros do processo. Além disso, a diferença
47-68 pF 47-68 pF
na capacitância do quadro de chumbo entre os tipos de pacote
1 MHz 15 pF 15 pF
também afetam a frequência de oscilação, especialmente para
4MHz 15 pF 15 pF Valores CEXT . O usuário também precisa levar em consideração
HS 4MHz variação devido à tolerância de R e C externos
15 pF 15 pF
8MHz componentes usados. A Figura 11-3 mostra como o R/C
15-33 pF 15-33 pF
combinação está conectada ao PIC16F870/871.
20 MHz 15-33 pF 15-33 pF
Esses valores são apenas para orientação de projeto. FIGURA 11-3: MODO DE OSCILADOR RC
Veja as notas após esta tabela.
VDD
Cristais usados

32 kHz Epson C-001R32.768K-A ± 20 PPM CERTO

200 kHz STD XTL 200.000 KHz ± 20 PPM interno


OSC1
Relógio
1 MHz ECS ECS-10-13-1 ± 50 PPM
CEXT PIC16F870/871
4MHz ECS ECS-40-20-1 ± 50 PPM
8 MHz EPSON CA-301 8.000MC ± 30 PPM VSS
OSC2/CLKO
20 MHz EPSON CA-301 20.000MC ± 30 PPM ESCURO/4

Valores recomendados: 3 kÿ ÿ REXT ÿ 100 kÿ

Nota 1: A capacitância mais alta aumenta a estabilidade CEXT > 20pF

do oscilador, mas também aumenta a


tempo de inicialização.

2: Como cada ressonador/cristal tem seu próprio


características, o usuário deve consultar
o fabricante do ressonador/cristal para
valores apropriados de componentes externos.

3: Rs pode ser necessário no modo HS, também


como modo XT, para evitar cristais excessivos
com especificação de baixo nível de acionamento.

4: Ao migrar de outros dispositivos PIC®,


o desempenho do oscilador deve ser verificado.

DS30569C-página 90 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
11.3 REINICIAR SLEEP e Brown-out Reset (BOR). Eles não são afetados por um WDT
Wake-up, que é visto como a retomada da operação normal. Os bits
O PIC16F870/871 diferencia entre vários tipos de RESET:
TO e PD são definidos ou apagados de forma diferente em diferentes
situações de RESET, conforme indicado na Tabela 11-4. Esses bits
• Power-on Reset (POR) • MCLR são usados em software para determinar a natureza do RESET.
Consulte a Tabela 11-6 para obter uma descrição completa dos estados
Reset durante operação normal • MCLR Reset
RESET de todos os registradores.
durante SLEEP • WDT Reset (durante operação
normal) • WDT Wake-up (durante SLEEP) • Brown-
Um diagrama de blocos simplificado do Circuito de Reinicialização On-
out Reset (BOR)
Chip é mostrado na Figura 11-4.
Esses dispositivos possuem um filtro de ruído MCLR no caminho MCLR
Alguns registradores não são afetados em nenhuma condição de
Reset. O filtro detectará e ignorará pequenos pulsos.
RESET. Seu status é desconhecido no POR e inalterado em qualquer
outro RESET. A maioria dos outros registradores são redefinidos para
Deve-se notar que um WDT Reset não leva o pino MCLR para baixo.
um “estado RESET” no Power-on Reset (POR), no MCLR e WDT
Reset, no MCLR Reset durante

FIGURA 11-4: DIAGRAMA DE BLOCOS SIMPLIFICADO DO CIRCUITO DE REINICIALIZAÇÃO NO CHIP

Externo
REDEFINIR

MCLR

DORME
WDT WDT
Módulo
Tempo esgotado

Redefinir

Aumento de VDD

Detectar
Reinicialização ao ligar
VDD

Apagão
S
Redefinir BOREN

OST/PWRT
OST
Chip_Reset
Contador de ondulação de 10 bits R Q
OSC1

(1) PWRT
No chip
RC OSC Contador de ondulação de 10 bits

Ativar PWRT

Ativar OST

Nota 1: Este é um oscilador separado do oscilador RC do pino CLKI.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 91


Machine Translated by Google

PIC16F870/871
11.4 Reinicialização ao ligar (POR) 11.7 Reinicialização de Brown-out (BOR)

Um pulso de Power-on Reset é gerado no chip quando O bit de configuração, BOREN, pode habilitar ou desabilitar
O aumento de VDD é detectado (na faixa de 1,2 V - 1,7 V). Para o circuito Brown-out Reset. Se VDD cair abaixo de VBOR
aproveite o POR, amarre o pino MCLR diretamente (parâmetro D005, cerca de 4V) por mais tempo que TBOR
(ou através de um resistor) para VDD. Isso vai eliminar (parâmetro #35, cerca de 100 ÿS), a situação de apagão
componentes RC externos normalmente necessários para criar um irá reiniciar o dispositivo. Se VDD ficar abaixo de VBOR por menos
Reinicialização de inicialização. Um tempo máximo de subida para VDD é que TBOR, um RESET pode não ocorrer.
Especificadas. Consulte Especificações elétricas para obter detalhes.
Uma vez que o brown-out ocorre, o dispositivo permanecerá em
Quando o dispositivo inicia a operação normal (sai do Brown-out Reinicialização até que o VDD fique acima do VBOR. o
condição RESET), os parâmetros operacionais do dispositivo (tensão, O temporizador de inicialização mantém o dispositivo em RESET por
frequência, temperatura,...) devem ser atendidos para garantir TPWRT (parâmetro nº 33, cerca de 72 ms). Se o VDD cair
Operação. Se essas condições não forem atendidas, o dispositivo abaixo de VBOR durante TPWRT, o processo Brown-out Reset será
deve ser mantido em RESET até que as condições de operação reiniciado quando VDD subir acima de VBOR com o
são atendidas. Brown-out Reset pode ser usado para Reinicialização do temporizador de inicialização. O temporizador de inicialização é sempre

condições de arranque. Para obter informações adicionais, consulte habilitado quando o circuito Brown-out Reset está habilitado,
Nota de aplicação, AN007, “Solução de problemas de inicialização” independentemente do estado do bit de configuração PWRT.
(DS00007).
11.8 Sequência de tempo limite
11.5 Temporizador de inicialização (PWRT)
Ao ligar, a sequência de tempo limite é a seguinte: O
O temporizador de inicialização fornece um valor nominal fixo de 72 ms O atraso PWRT inicia (se habilitado) quando um POR Reset
tempo limite ao ligar apenas a partir do POR. O Power up Timer opera ocorre. Então OST começa a contar 1024 oscilador
em um oscilador RC interno. o ciclos quando o PWRT termina (LP, XT, HS). Quando o OST
chip é mantido em RESET enquanto o PWRT estiver ativo. termina, o aparelho sai do RESET.
O atraso de tempo do PWRT permite que o VDD suba para um
Se o MCLR for mantido baixo por tempo suficiente, os tempos limite serão
nível aceitável. Um bit de configuração é fornecido para
expirar. Colocar o MCLR alto começará a execução imediatamente. Isso
habilitar/desabilitar o PWRT.
é útil para fins de teste ou para sincronizar mais de um dispositivo
O atraso de tempo de inicialização irá variar de chip para chip devido PIC16F870/871 operando em
ao VDD, temperatura e variação do processo. Ver DC paralelo.
parâmetros para detalhes (TPWRT, parâmetro #33). A Tabela 11-5 mostra as condições de RESET para o
Registradores de STATUS, PCON e PC, enquanto a Tabela 11-6
11.6 Temporizador de inicialização do oscilador (OST) mostra as condições de RESET para todos os registradores.

O temporizador de inicialização do oscilador (OST) fornece um atraso de


1024 ciclos do oscilador (da entrada OSC1) após o
11.9 Controle de Energia/Registro de Status
O atraso do PWRT terminou (se o PWRT estiver ativado). Isso ajuda a (PCON)
certifique-se de que o oscilador ou ressonador de cristal tenha
iniciado e estabilizado. O Power Control/Status Register, PCON, tem até
dois bits dependendo do dispositivo.
O tempo limite OST é invocado apenas para XT, LP e HS
Bit0 é o bit de status de reinicialização de Brown-out, BOR. O bit BOR é
modos e apenas em Power-on Reset ou Wake-up de
DORME. desconhecido em um Power-on Reset. Em seguida, deve ser definido por
o usuário e verificado em RESETS subsequentes para ver se
bit BOR apagado, indicando que ocorreu um BOR. Quando o
Brown-out Reset está desabilitado, o estado do bit BOR é
imprevisível e, portanto, não é válido em nenhum momento.

Bit1 é POR (bit de status de reinicialização de inicialização). Está desmarcado em


um Power-on Reset e não afetado de outra forma. O usuário
deve definir este bit após um Power-on Reset.

TABELA 11-3: TEMPO LIMITADO EM VÁRIAS SITUAÇÕES

Oscilador Energizar
Apagão Acordar do SONO
Configuração PWRTEN = 0 PWRTEN = 1

XT, HS, LP 72 ms + 1024 TOSC 1024 GROSSO 72 ms + 1024 TOSC 1024 GROSSO

RC 72ms — 72ms —

DS30569C-página 92 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 11-4: BITS DE STATUS E SEU SIGNIFICADO

POR BOR PARA PD

0 x 11 Reinicialização ao ligar

0 x 0x Ilegal, TO é definido em POR


0 x x0 Ilegal, PD está definido em POR
1 0 11 Reinicialização de Brown-out

1 1 01 Reinicialização WDT
1 1 00 WDT Despertar
1 1 uu MCLR Reinicialização durante a operação normal
1 1 10 MCLR Reinicialização durante o SLEEP ou interrupção do despertar do SLEEP

Legenda: x = não importa, u = inalterado

TABELA 11-5: CONDIÇÃO DE REINICIALIZAÇÃO PARA REGISTOS ESPECIAIS

Programa STATUS PCON


Doença
Contador Registro Registro

Reinicialização ao ligar 000h 0001 1xxx ---- --0x

Reinicialização MCLR durante a operação normal 000h 000 uuuu ---- -- Ei

Reinicialização do MCLR durante o SONO 000h 0001 0uuuu ---- -- Ei

Redefinir WDT 000h 0000 1uuu ---- -- Ei

Despertar WDT PC + 1 uuu0 0uuu ---- -- Ei

Reinicialização de Brown-out 000h 0001 1uuu ---- --u0

Interromper o despertar da legenda PC + 1(1) uuu1 0uuu ---- -- Ei

SLEEP: u = inalterado, x = desconhecido, - = bit não implementado, lido como '0'


Nota 1: Quando o despertar é devido a uma interrupção e o bit GIE está definido, o PC é carregado com o vetor de interrupção (0004h).

TABELA 11-6: CONDIÇÕES DE INICIALIZAÇÃO PARA TODOS OS REGISTOS

Reinicialização de inicialização, Reinicializações MCLR Despertar via WDT ou


Registro Dispositivos
Reinicialização de Brown-out Redefinir WDT Interromper
Dentro PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

INC PIC16F870 PIC16F871 N/D N/D N/D


TMR0 PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

PCL PIC16F870 PIC16F871 0000h 0000h PC + 1(2)

STATUS PIC16F870 PIC16F871 0001 1xxx 000q quuu(3) uau uau (3)
FSR PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

TRAZ PIC16F870 PIC16F871 --0x 0000 --0u 0000 --uuuuuuuuuuuuuuuuuuuuuuuuuuuu

PORTB PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

PORTO PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

PORTD PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

PORTÃO PIC16F870 PIC16F871 ---- -xxx -----uuu -----uuu


PCLATH PIC16F870 PIC16F871 ---0 0000 ---0 0000 ---uuuu

INTCON PIC16F870 PIC16F871 0000 000x 0000 000u uau uau(1)

Legenda: u = inalterado, x = desconhecido, - = bit não implementado, lido como '0', q = valor depende da condição, r = reservado, mantenha
limpo
Nota 1: Um ou mais bits em INTCON, PIR1 e/ou PIR2 serão afetados (para causar despertar).
2: Quando o despertar é devido a uma interrupção e o bit GIE é definido, o PC é carregado com o vetor de interrupção
(0004h).
3: Consulte a Tabela 11-5 para o valor RESET para condição específica.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 93


Machine Translated by Google

PIC16F870/871
TABELA 11-6: CONDIÇÕES DE INICIALIZAÇÃO PARA TODOS OS REGISTOS (CONTINUAÇÃO)

Reinicialização de inicialização, Reinicializações MCLR Despertar via WDT ou


Registro Dispositivos
Reinicialização de Brown-out Redefinir WDT Interromper
PIR1 PIC16F870 PIC16F871 r000 -000 r000 -000 ruuu -uuu(1)
PIC16F870 PIC16F871 0000 -000 0000 -000 uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

PIR2 PIC16F870 PIC16F871 ---0 ---- ---0 ---- ---dentro ----(1)

TMR1L PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

TMR1H PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

T1CON PIC16F870 PIC16F871 --00 0000 --uuuuuuuuuuuuuuuuuuuuuuuuuuuu --uuuuuuuuuuuuuuuuuuuuuuuuuuuu

TMR2 PIC16F870 PIC16F871 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

T2CON PIC16F870 PIC16F871 -000 0000 -000 0000 -uuuuuuuuuuuuuuuuuuuuuuuuu

CCPR1L PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

CCPR1H PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

CCP1CON PIC16F870 PIC16F871 --00 0000 --00 0000 --uuuuuuuuuuuuuuuuuuuuuuuuuuuu

RCSTA PIC16F870 PIC16F871 0000 000x 0000 000x uuuuuuuuuuuuuuuuuuuuuu

TXREG PIC16F870 PIC16F871 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

RCREG PIC16F870 PIC16F871 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

ENDEREÇO PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

ADCON0 PIC16F870 PIC16F871 0000 00-0 0000 00-0 uuuuuuuuuuuuuuuuuuuuuuuuuuuu

OPTION_REG PIC16F870 PIC16F871 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TRISA PIC16F870 PIC16F871 --11 1111 --11 1111 --uuuuuuuuuuuuuuuuuuuuuuuuuuuu

TRISB PIC16F870 PIC16F871 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TRISC PIC16F870 PIC16F871 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TERCEIRO PIC16F870 PIC16F871 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TRÊS PIC16F870 PIC16F871 0000 -111 0000 -111 uuuuuuuuuuuuuuuuuuuuuu

TORTA1 PIC16F870 PIC16F871 r000 -000 r000 -000 ruuu-uuu


PIC16F870 PIC16F871 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

PIE2 PIC16F870 PIC16F871 ---0 ---- ---0 ---- ---dentro ----

PCON PIC16F870 PIC16F871 ---- --qq ---- -- Ei ---- -- Ei

PR2 PIC16F870 PIC16F871 1111 1111 1111 1111 1111 1111


TXT PIC16F870 PIC16F871 0000 -010 0000 -010 uuuuuuuuuuuuuuuuuuuuuu

SPBRG PIC16F870 PIC16F871 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

MORADA PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

ADCON1 PIC16F870 PIC16F871 0--- 0000 0--- 0000 u--- uuuu


A DAMA PIC16F870 PIC16F871 0--- 0000 0--- 0000 u--- uuuu
EEADR PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

EEDATH PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

EEADRH PIC16F870 PIC16F871 xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

EECON1 PIC16F870 PIC16F871 x--- x000 u--- u000 u--- uuuu


EECON2 PIC16F870 PIC16F871 ---- ---- ---- ---- ---- ----

Legenda: u = inalterado, x = desconhecido, - = bit não implementado, lido como '0', q = valor depende da condição, r = reservado,
mantenha limpo
Nota 1: Um ou mais bits em INTCON, PIR1 e/ou PIR2 serão afetados (para causar despertar).
2: Quando o despertar é devido a uma interrupção e o bit GIE é definido, o PC é carregado com o vetor de interrupção
(0004h).
3: Consulte a Tabela 11-5 para o valor RESET para condição específica.

DS30569C-página 94 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 11-5: SEQUÊNCIA DE TEMPO LIMITE NA LIGAÇÃO (MCLR LIGADO A VDD)

VDD

MCLR

INTERNO POR

TPWRT

TEMPO LIMITE PWRT TOST

TEMPO LIMITE OST

REINICIALIZAÇÃO INTERNA

FIGURA 11-6: SEQUÊNCIA DE TEMPO LIMITE NA LIGAÇÃO (MCLR NÃO LIGADO A VDD): CASO 1

VDD

MCLR

INTERNO POR

TPWRT

TEMPO LIMITE PWRT TOST

TEMPO LIMITE OST

REINICIALIZAÇÃO INTERNA

FIGURA 11-7: SEQUÊNCIA DE TEMPO LIMITE NA LIGAÇÃO (MCLR NÃO LIGADO A VDD): CASO 2

VDD

MCLR

INTERNO POR

TPWRT

TEMPO LIMITE PWRT


TOST

TEMPO LIMITE OST

REINICIALIZAÇÃO INTERNA

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 95


Machine Translated by Google

PIC16F870/871
FIGURA 11-8: TEMPO DE ELEVAÇÃO LENTA (MCLR LIGADO A VDD)

5V

VDD 0V 1V

MCLR

INTERNO POR

TPWRT

TEMPO LIMITE PWRT

TOST

TEMPO LIMITE OST

REINICIALIZAÇÃO INTERNA

11.10 Interrupções Os sinalizadores de interrupção de periféricos estão contidos nos


registradores de funções especiais, PIR1 e PIR2. Os bits de
A família PIC16F870/871 possui até 14 fontes de interrupção. O habilitação de interrupção correspondentes estão contidos em
registrador de controle de interrupção (INTCON) registra solicitações registradores de função especial, PIE1 e PIE2, e o bit de habilitação
de interrupção individuais em bits de sinalização. Ele também possui de interrupção periférica está contido no registrador de função
bits de habilitação de interrupção individual e global. especial, INTCON.
Nota: Os bits de flag de interrupção individuais são definidos, Quando uma interrupção é respondida, o bit GIE é limpo para
independentemente do status do bit de máscara desabilitar qualquer outra interrupção, o endereço de retorno é
correspondente ou do bit GIE. colocado na pilha e o PC é carregado com 0004h. Uma vez na
Um bit de habilitação de interrupção global, GIE (INTCON<7>), Rotina de Serviço de Interrupção, a(s) fonte(s) da interrupção
habilita (se definido) todas as interrupções não mascaradas ou pode(m) ser determinada pelo polling dos bits de flag de interrupção.
desabilita (se desmarcado) todas as interrupções. Quando o bit GIE O(s) bit(s) do sinalizador de interrupção deve(m) ser apagado(s) no
está habilitado e o bit de flag e o bit de máscara de uma interrupção software antes de reativar as interrupções para evitar interrupções
são definidos, a interrupção será vetorizada imediatamente. recursivas.
Interrupções individuais podem ser desabilitadas através de seus Para eventos de interrupção externos, como o pino INT ou interrupção
bits de habilitação correspondentes em vários registradores. Bits de de alteração PORTB, a latência da interrupção será de três ou quatro
interrupção individuais são definidos, independentemente do status ciclos de instrução. A latência exata depende de quando ocorre o
do bit GIE. O bit GIE é apagado em RESET. evento de interrupção. A latência é a mesma para instruções de um
A instrução “return from interrupt”, RETFIE, sai da rotina de ou dois ciclos. Os bits de sinalização de interrupção individuais são
interrupção e energiza o bit GIE, que reativa as interrupções. definidos, independentemente do status de seu bit de máscara
correspondente, bit PEIE ou bit GIE.

A interrupção de pino RB0/INT, a interrupção de mudança de porta


RB e os sinalizadores de interrupção de estouro TMR0 estão
contidos no registro INTCON.

DS30569C-página 96 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 11-9: LÓGICA DE INTERRUPÇÃO

EEIF
ISTO

PSPIF
PSPIE
ADIF T0IF
Despertar (se estiver no modo SLEEP)
FRANGO
T0IE

RCIF INTF
RCIE NÃO
Interrupção para CPU
TXIF RBIF
ESSA RBIE

ASSIM
CCP1IF
CCP1IE GIE
TMR2IF
TMR2IE
TMR1IF
TMR1IE

A tabela a seguir mostra quais dispositivos têm quais interrupções.

Dispositivo T0IF INTF RBIF PSPIF ADIF RCIF TXIF CCP1IF TMR2IF TMR1IF EEIF

PIC18F870 Sim Sim Sim Sim Sim Sim Sim Sim Sim Sim
PIC18F871 Sim Sim Sim Sim Sim Sim Sim Sim Sim Sim Sim

11.10.1 INTERRUPÇÃO INT 11.10.2 TMR0 INTERRUPÇÃO

A interrupção externa no pino RB0/INT é acionada por borda, Um overflow (FFh ÿ 00h) no registrador TMR0 irá definir
ou subindo, se o bit INTEDG (OPTION_REG<6>) estiver definido, bit de sinalizador T0IF (INTCON<2>). A interrupção pode ser
ou caindo, se o bit INTEDG estiver limpo. Quando uma aresta válida habilitado/desabilitado configurando/apagando o bit de habilitação T0IE
aparece no pino RB0/INT, bit de flag INTF (INTCON<5>) (Seção 5.0).
(INTCON<1>) está definido. Esta interrupção pode ser desabilitada por
apagando o bit de habilitação INTE (INTCON<4>). Bit de sinalização INTF 11.10.3 MUDANÇA DE INTCON DE PORTAB

deve ser limpo em software no Interrupt Service Uma alteração de entrada em PORTB<7:4> define o bit de sinalização RBIF
Rotina antes de reativar esta interrupção. A interrupção INT pode (INTCON<0>). A interrupção pode ser habilitada/desabilitada
acordar o processador do SLEEP, se o bit INTE definindo/limpando o bit de habilitação RBIE (INTCON<4>)
foi definido antes de entrar em SLEEP. O status do mundo (Seção 4.2).
bit de habilitação de interrupção, GIE, decide se o
processador ramifica para o vetor de interrupção seguindo
acordar. Consulte a Seção 11.13 para obter detalhes sobre SLEEP
modo.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 97


Machine Translated by Google

PIC16F870/871
11.11 Salvamento de contexto durante interrupções Como os 16 bytes superiores de cada banco são comuns em
os dispositivos PIC16F870/871, registros de retenção temporários
Durante uma interrupção, apenas o valor de retorno do PC é salvo W_TEMP, STATUS_TEMP e PCLATH_TEMP
na pilha. Normalmente, os usuários podem desejar salvar registros deve ser colocado aqui. Esses 16 locais não
de chave durante uma interrupção (ou seja, registro W e STATUS exigem serviços bancários e, portanto, facilitam o salvamento e a
registro). Isso terá que ser implementado em software. restauração de contexto. O mesmo código mostrado em
Para os dispositivos PIC16F870/871, o registro W_TEMP O Exemplo 11-1 pode ser usado.
deve ser definido em ambos os bancos 0 e 1 e deve ser
definido no mesmo deslocamento do endereço base do banco
(ou seja, se W_TEMP for definido em 0x20 no banco 0, ele deve
também ser definido em 0xA0 no banco 1). Os registros,
PCLATH_TEMP e STATUS_TEMP, são apenas definidos
no banco 0.

EXEMPLO 11-1: SAVING STATUS, W, E PCLATH REGISTERS NA RAM


MOVWF W_TEMP ;Copiar W para registro TEMP
SWAPF ESTADO, W ;Swap status a ser salvo em W ;banco 0, independente
CLRF STATUS do banco atual, Compensa IRP,RP1,RP0
MOVWF STATUS_TEMP ;Salva o status no banco zero STATUS_TEMP registrador
MOVF PCLATH, W ;Necessário apenas se estiver usando as páginas 1, 2 e/ou 3
MOVWF PCLATH_TEMP ;Salva PCLATH em W
CLRF PCLATH ;Página zero, independente da página atual
:
:(ISR) ;(Insira o código do usuário aqui)
:
MOVF PCLATH_TEMP, W ;Restaurar PCLATH
MOVWF PCLATH ;Mova W para PCLATH
SWAPF STATUS_TEMP,W ;Troca o registro STATUS_TEMP para W ;(define o banco
para o estado original)
MOVWF STATUS ;Move W para o registrador STATUS
SWAPF W_TEMP,F ;Trocar W_TEMP
SWAPF W_TEMP,W ;Troca W_TEMP por W

DS30569C-página 98 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
11.12 Temporizador Watchdog (WDT) Os valores do período de tempo limite do WDT podem ser encontrados
na seção Especificações elétricas no parâmetro #31. Valores para o
O Watchdog Timer é um oscilador RC on-chip de execução livre que prescaler WDT (na verdade um postscaler, mas
não requer nenhum componente externo. compartilhado com o prescaler Timer0) pode ser atribuído
Este oscilador RC é separado do oscilador RC de usando o registrador OPTION_REG.
o pino OSC1/CLKI. Isso significa que o WDT será executado,
mesmo que o relógio no OSC1/CLKI e OSC2/CLKO Nota 1: As instruções CLRWDT e SLEEP

pinos do dispositivo foi parado, por exemplo, por limpe o WDT e o postscaler, se
execução de uma instrução SLEEP. atribuído ao WDT e impedi-lo de
tempo limite e geração de um dispositivo
Durante a operação normal, um time-out WDT gera um Condição REINICIAR.
dispositivo RESET (Reinicialização do Temporizador do Watchdog). Se o dispositivo estiver
no modo SLEEP, um tempo limite WDT faz com que o dispositivo 2: Quando uma instrução CLRWDT é executada

acordar e continuar com a operação normal e o prescaler é atribuído ao WDT,


(Acordar Cronômetro de Watchdog). O bit TO no STATUS a contagem do prescaler será apagada, mas
registro será limpo após um Watchdog Timer a atribuição do prescaler não é alterada.
tempo esgotado.

O WDT pode ser desativado permanentemente limpando


bit de configuração WDTEN (Seção 11.1).

FIGURA 11-10: DIAGRAMA DE BLOCO DE TEMPORIZADOR DE WATCHDOG

Da fonte de relógio TMR0


(Figura 5-1)

0
M Pós-escalador
1
DENTRO

Temporizador WDT
X
8

8 - a - 1 MUX PS2:PS0

PSA
WDT
Ativar bit

Para TMR0 (Figura 5-1)

0 1

MUX PSA

WDT
Tempo esgotado

Nota: PSA e PS2:PS0 são bits no registrador OPTION_REG.

TABELA 11-7: RESUMO DOS REGISTROS DO TEMPORIZADOR DO WATCHDOG

Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

2007h Config. bits (1) PERFURAÇÃO(1) CP1 CP0 PWRTEN(1) WDTEN FOSC1 FOSC0

81h,181h OPTION_REG RBPU INTEDG T0CS T0SE Legenda: Células sombreadas não PSA PS2 PS1 PS0

são usadas pelo Watchdog Timer.


Nota 1: Veja o Registro 11-1 para operação destes bits.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 99


Machine Translated by Google

PIC16F870/871
11.13 Modo de desligamento (SLEEP) Quando a instrução SLEEP está sendo executada, a próxima instrução
(PC + 1) é pré-buscada. Para que o dispositivo acorde através de um
O modo de desligamento é inserido executando uma instrução SLEEP. evento de interrupção, o bit de habilitação de interrupção correspondente
deve ser definido (habilitado). O despertar é independente do estado do
Se habilitado, o Watchdog Timer será apagado, mas continua bit GIE. Se o bit GIE estiver limpo (desabilitado), o dispositivo continua
funcionando, o bit PD (STATUS<3>) é apagado, o bit TO (STATUS<4>) a execução na instrução após a instrução SLEEP. Se o bit GIE estiver
é definido e o driver do oscilador é desligado. As portas de E/S mantêm setado (habilitado), o dispositivo executa a instrução após a instrução

o status que tinham antes da execução da instrução SLEEP (condução SLEEP e então desvia para o endereço de interrupção (0004h). Nos
alta, baixa ou alta impedância). casos em que a execução da instrução após SLEEP não for desejável,
o usuário deve ter um NOP após a instrução SLEEP.

Para o menor consumo de corrente neste modo, coloque todos os pinos


de E/S em VDD ou VSS, certifique-se de que nenhum circuito externo
esteja consumindo corrente do pino de E/S, desligue o A/D e desative 11.13.2 DESPERTAR USANDO INTERRUPÇÕES
os relógios externos. Puxe todos os pinos de E/S que são entradas de
alta impedância, externamente alta ou baixa, para evitar correntes de Quando as interrupções globais são desabilitadas (GIE desenergizado)
comutação causadas por entradas flutuantes. A entrada T0CKI também e qualquer fonte de interrupção tem o bit de habilitação de interrupção e
deve estar em VDD ou VSS para menor consumo de corrente. A o bit de sinalização de interrupção definidos, ocorrerá um dos seguintes:
contribuição dos pull-ups on-chip no PORTB também deve ser • Se a interrupção ocorrer antes da execução de um
considerada. instrução SLEEP, a instrução SLEEP será completada como um

O pino MCLR deve estar em um nível lógico alto (VIHMC). NOP. Portanto, o postscaler WDT e WDT não será apagado, o
bit TO não será definido e os bits PD não serão apagados.
11.13.1 DESPERTAR DO SONO

O dispositivo pode acordar do SLEEP por meio de um dos seguintes • Se a interrupção ocorrer durante ou após o
execução de uma instrução SLEEP, o dispositivo despertará
eventos:
imediatamente do SLEEP. A instrução SLEEP será executada
1. Entrada de RESET externo no pino MCLR.
completamente antes do despertar. Portanto, o postscaler WDT
2. Despertar do Watchdog Timer (se o WDT estiver ativado). e WDT será apagado, o bit TO será definido e o bit PD será
apagado.
3. Interrupção do pino INT, mudança de porta RB ou interrupção
periférica.
Mesmo que os bits de sinalização tenham sido verificados antes de
A reinicialização externa de MCLR causará uma reinicialização do executar uma instrução SLEEP, pode ser possível que os bits de
dispositivo. Todos os outros eventos são considerados uma continuação sinalização sejam ativados antes que a instrução SLEEP seja concluída.
da execução do programa e causam um “despertar”. Os bits TO e PD Para determinar se uma instrução SLEEP foi executada, teste o bit PD.
no registrador STATUS podem ser usados para determinar a causa do Se o bit PD estiver energizado, a instrução SLEEP foi executada como
RESET do dispositivo. O bit PD, que é definido na energização, é NOP.
apagado quando SLEEP é invocado. O bit TO é apagado se ocorrer um
Para garantir que o WDT seja limpo, uma instrução CLRWDT deve ser
tempo limite WDT e causar o despertar.
executada antes de uma instrução SLEEP.

As seguintes interrupções periféricas podem despertar o dispositivo do


SLEEP:

1. Leitura ou gravação do PSP (somente PIC16F874/877).


2. Interrupção TMR1. Timer1 deve estar operando como um contador
assíncrono.
3. Interrupção do modo de captura CCP.
4. Acionador de evento especial (Timer1 em modo Assíncrono
usando um relógio externo).
5. O bit SSP (START/STOP) detecta interrupção.
6. SSP transmite ou recebe no modo Slave (SPI/I2C).

7. USART RX ou TX (modo escravo síncrono).


8. Conversão A/D (quando a fonte do relógio A/D é RC).
9. Conclusão da operação de gravação da EEPROM

Outros periféricos não podem gerar interrupções, pois durante o SLEEP


não há relógios no chip.

DS30569C-página 100 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 11-11: DESPERTAR DO SONO ATRAVÉS DA INTERRUPÇÃO

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
OSC1

CLKO(4) TOST(2)

pino INT

Sinalizador INTF
(INTCON<1>) Interromper latência(2)

bit GIE
Processador em
(INTCON<7>)
DORME

FLUXO DE INSTRUÇÕES

computador computador PC+1 PC+2 PC+2 PC + 2 0004h 0005h


Instrução
Buscado Inst(PC) = SONO Inst(PC + 1) Inst(PC + 2) Inst(0004h) Inst(0005h)

Instrução
Executado Inst(PC - 1) DORME Inst(PC + 1) Ciclo fictício Ciclo fictício Inst(0004h)

Nota 1: Modo oscilador XT, HS ou LP assumido.


2: TOST = 1024 TOSC (desenho fora de escala). Este atraso não existirá para o modo RC Osc.
3: GIE = 1 assumido. Neste caso, após o despertar, o processador salta para a rotina de interrupção. Se GIE = 0, a execução continuará em linha.
4: CLKO não está disponível nestes modos Osc, mas é mostrado aqui para referência de tempo.

11.14 Depurador em Circuito 11.15 Verificação do Programa/Proteção do


Código
Quando o bit DEBUG na palavra de configuração é programado
para '0', a funcionalidade In-Circuit Debugger Se o(s) bit(s) de proteção de código não foram programados, a
está ativado. Esta função permite funções de depuração simples memória do programa no chip pode ser lida
quando usada com MPLAB® ICD. Quando o microcontrolador para fins de verificação.
tem este recurso habilitado, alguns dos
recursos não estão disponíveis para uso geral. Tabela 11-8 11.16 Locais de identificação
mostra quais recursos são consumidos pelo
depurador em segundo plano. Quatro locais de memória (2000h - 2003h) são designados
como locais de ID, onde o usuário pode armazenar checksum ou
TABELA 11-8: RECURSOS DO DEBUGADOR outros números de identificação de código. Esses locais são

RB6, RB7 não acessíveis durante a execução normal, mas são legíveis e
Pinos de E/S
graváveis durante a programação/verificação. Recomenda-se
Pilha 1 nível
que apenas os 4 bits menos significativos do ID
O endereço de memória do programa 0000h deve ser NOP local são usados.
Últimas 100h palavras

Memória de dados 0x070 (0x0F0, 0x170, 0x1F0)


0x1EB - 0x1EF

Para usar a função In-Circuit Debugger do microcontrolador, o


projeto deve implementar In-Circuit Serial
Programação de conexões para MCLR/VPP, VDD, GND,
RB7 e RB6. Isso fará a interface com o In-Circuit
Módulo depurador disponível da Microchip, ou um dos
as empresas de ferramentas de desenvolvimento de terceiros.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 101


Machine Translated by Google

PIC16F870/871
11.17 Programação serial em circuito
Nota 1: O modo de programação de alta tensão está sempre
Os microcontroladores PIC16F870/871 podem ser programados
disponível, independentemente do estado do bit
em série enquanto estão no circuito de aplicação final. Isso é feito
LVP, aplicando VIHH ao pino MCLR.
simplesmente com duas linhas para clock e dados e três outras
linhas para alimentação, terra e tensão de programação. Isso permite
que os clientes fabriquem placas com dispositivos não programados 2: Enquanto estiver no modo ICSP de baixa tensão, o
e, em seguida, programem o microcontrolador antes de enviar o pino RB3 não pode mais ser usado como um pino
produto. Isso também permite que o firmware mais recente ou um de E/S de uso geral.
firmware personalizado seja programado. 3: Ao usar programação ICSP de baixa tensão (LVP) e
os pull-ups no PORTB estão habilitados, o bit 3 no
Ao usar ICSP, a peça deve ser fornecida em 4,5V a 5,5V, caso seja registro TRISB deve ser desenergizado para
executado um apagamento em massa. Isso inclui a reprogramação desabilitar o pull-up no RB3 e garantir o bom
do código de proteção, tanto do estado ligado para o estado funcionamento do dispositivo.
desligado. Para todos os outros casos de ICSP, a peça pode ser
programada nas tensões normais de operação. 4: O RB3 não deve flutuar se o LVP estiver habilitado.
Isso significa que valores de calibração, IDs de usuário exclusivos ou código Um dispositivo pull-down externo deve ser usado
de usuário podem ser reprogramados ou adicionados. para padronizar o dispositivo para o modo

Para detalhes completos da programação serial, consulte a operacional normal. Se o RB3 flutuar alto, os
Especificação de Programação de Memória EEPROM para o dispositivos PIC16F870/871 entrarão no modo de
PIC16F87X (DS39025). programação.

5: O modo LVP é ativado por padrão em todos os


11.18 Programação ICSP de Baixa Tensão dispositivos enviados pela Microchip. Ele pode ser
desabilitado limpando o bit LVP no registrador
O bit LVP da palavra de configuração habilita a programação ICSP
CONFIG.
de baixa tensão. Este modo permite que o microcontrolador seja
programado via ICSP, utilizando uma fonte VDD na faixa de tensão 6: Desativar o LVP fornecerá compatibilidade máxima
de operação. Isso significa apenas que o VPP não precisa ser levado com outros dispositivos PIC16CXXX.
ao VIHH, mas pode ser deixado na tensão normal de operação.
Neste modo, o pino RB3/PGM é dedicado à função de programação Se o modo de programação de baixa tensão não for usado, o bit
e deixa de ser um pino de E/S de uso geral. Durante a programação, LVP pode ser programado para '0' e RB3/PGM se torna um pino de
o VDD é aplicado ao pino MCLR. Para entrar no modo de E/S digital. No entanto, o bit LVP só pode ser programado quando a
programação, o VDD deve ser aplicado ao pino RB3/PGM, desde programação é inserida com VIHH no MCLR. O bit LVP só pode ser
que o bit LVP esteja definido. O bit LVP é padronizado como ligado carregado ao usar alta tensão no MCLR.
('1') de fábrica.

Deve-se notar que uma vez que o bit LVP é programado para 0,
apenas o modo de programação de alta tensão está disponível e
somente o modo de programação de alta tensão pode ser usado
para programar o dispositivo.

Ao usar ICSP de baixa tensão, a peça deve ser fornecida em 4,5V a


5,5V, caso seja executado um apagamento em massa. Isso inclui a
reprogramação dos bits de proteção de código de um estado ligado
para um estado desligado. Para todos os outros casos de ICSP de
baixa tensão, a peça pode ser programada na tensão de operação
normal. Isso significa que valores de calibração, IDs de usuário
exclusivos ou código de usuário podem ser reprogramados ou adicionados.

DS30569C-página 102 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
12.0 RESUMO DO CONJUNTO DE INSTRUÇÕES Todas as instruções são executadas dentro de um único ciclo de
instrução, a menos que um teste condicional seja verdadeiro ou o
Cada instrução PIC16F870/871 é uma palavra de 14 bits, contador do programa seja alterado como resultado de uma instrução.
dividido em um OPCODE, que especifica o tipo de instrução, e um ou Neste caso, a execução leva dois ciclos de instrução,
mais operandos, que com o segundo ciclo executado como um NOP. Um ciclo de instrução
especificar a operação da instrução. o consiste em quatro períodos osciladores. Assim, para
Resumo do conjunto de instruções PIC16F870/871 na Tabela 12-2 uma frequência de oscilador de 4 MHz, a instrução normal
lista operações orientadas a byte, orientadas a bits e literais e de o tempo de execução é de 1 ÿs. Se um teste condicional for verdadeiro, ou o
controle . A Tabela 12-1 mostra o campo opcode contador de programa é alterado como resultado de uma
descrições. instrução, o tempo de execução da instrução é de 2 ÿs.
Para instruções orientadas a byte , 'f' representa um designador de A Tabela 12-2 lista as instruções reconhecidas pelo
registro de arquivo e 'd' representa um designador de destino. O Montador MPASMTM .
designador de registro de arquivo especifica qual arquivo
A Figura 12-1 mostra os formatos gerais que o
registrador deve ser usado pela instrução.
instruções podem ter.
O designador de destino especifica onde o resultado da
a operação deve ser colocada. Se 'd' for zero, o resultado é Nota: Para manter a compatibilidade ascendente com

colocado no registrador W. Se 'd' for um, o resultado é colocado futuros produtos PIC16F870/871, não
use as instruções OPTION e TRIS.
no registrador de arquivo especificado na instrução.

Para instruções orientadas a bits , 'b' representa um campo de bits Todos os exemplos usam o seguinte formato para representar um
número hexadecimal:
designador que seleciona o número do bit afetado
pela operação, enquanto 'f' representa o endereço do 0xhh
arquivo no qual o bit está localizado.
onde h significa um dígito hexadecimal.
Para operações literais e de controle , 'k' representa um
constante de oito ou onze bits ou valor literal. FIGURA 12-1: FORMATO GERAL PARA
INSTRUÇÕES
TABELA 12-1: CAMPO OPCODE
Operações de registro de arquivo orientadas a byte
DESCRIÇÕES 13 876 0
Campo Descrição CÓDIGO DE OPERAÇÃO d f (arquivo #)

f Endereço do arquivo de registro (0x00 a 0x7F) d = 0 para destino W


d = 1 para destino f
Dentro
Registro de trabalho (acumulador) f = endereço de registro de arquivo de 7 bits
b Endereço de bit dentro de um registro de arquivo de 8 bits

k Campo literal, dados constantes ou rótulo Operações de registro de arquivo orientadas a bits
13 10 9 7 6 0
x Não importa a localização (= 0 ou 1).
CÓDIGO DE OPERAÇÃO
b (BIT #) f (arquivo #)
O montador irá gerar código com x = 0.
É a forma de uso recomendada para b = endereço de bits de 3 bits
compatibilidade com todas as ferramentas de software Microchip. f = endereço de registro de arquivo de 7 bits

d Seleção de destino; d = 0: armazena o resultado em W,


d = 1: armazena o resultado no registro do arquivo f. Operações literais e de controle
O padrão é d = 1.
Em geral
computador
Contador de programas
13 87 0
PARA Bit de tempo limite
CÓDIGO DE OPERAÇÃO
k (literal)
Bit de desligamento PD
k = valor imediato de 8 bits
O conjunto de instruções é altamente ortogonal e agrupado
em três categorias básicas:
Apenas instruções CALL e GOTO
• Operações orientadas a bytes 13 11 10 0
• Operações orientadas a bits CÓDIGO DE OPERAÇÃO
k (literal)
• Operações literais e de controle
k = valor imediato de 11 bits

Uma descrição de cada instrução está disponível no PIC®


Manual de referência da família MCU de médio porte (DS33023).

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 103


Machine Translated by Google

PIC16F870/871
TABELA 12-2: CONJUNTO DE INSTRUÇÕES PIC16F870/871

Código de operação de 14 bits


Mnemônico, Status
Descrição Ciclos Notas
Operandos Afetado
MSb LSb

OPERAÇÕES DE REGISTRO DE ARQUIVO ORIENTADO A BYTE

JURAMENTO f, Adicione W e f 1 00 0111 dfff ffff C,DC,Z 1,2


EWF df, E W com f 1 00 0101 dfff ffff A PARTIR DE
1,2
CLRF df Limpar f 1 00 0001 ffff ffff A PARTIR DE 2
CLRW - Limpar W 1 00 0001 0xxx xxxx A PARTIR DE

COMF f, Complemento f 1 00 1001 dfff ffff A PARTIR DE


1,2
DECF df, Diminuir f 1 00 0011 dfff ffff A PARTIR DE
1,2
DECFSZ df, Decrementa f, Pule se 0 1(2) 1 00 1011 dfff ffff 1,2,3
INCF df, Incrementar f 1(2) 00 1010 dfff ffff A PARTIR DE
1,2
INCFSZ df, Incrementar f, pular se 0 1111 00 1111 dfff ffff 1,2,3
IORWF df, Inclusivo OR W com f 111 00 0100 dfff ffff A PARTIR DE
1,2
MOVF df, Mover f 11 00 1000 dfff ffff A PARTIR DE
1,2
MOVWF df Mover W para f 00 0000 ffff ffff
NOP - 00 0000 0xx0 0000
Nenhuma operação
RLF f, Girar para a esquerda f através de Carregar 00 1101 dfff ffff C 1,2
RRF df, Girar para a direita f através do transporte 00 1100 dfff ffff C 1,2
SUBWF df, Subtraia W de f 00 0010 dfff ffff C,DC,Z 1,2
SWAPF df, Trocar petiscos em f 00 1110 dfff ffff 1,2
XORWF df, d Exclusivo OU W com f 00 0110 dfff ffff A PARTIR DE
1,2

OPERAÇÕES DE REGISTRO DE ARQUIVO ORIENTADO A BIT

BCF f, Bit Limpar f 01 00bb bffff ffff 1,2


BSF bf, Conjunto de bits f 01 01bb bffff ffff 1,2
BTFSC bf, Teste de Bit f, Ignorar se Limpar 111 01 10bb bffff ffff 3
BTFSS bf, b Teste de Bit f, Ignorar se Definido (2) 1 (2) 01 11bb bffff ffff 3

OPERAÇÕES LITERAIS E DE CONTROLE

ADDW Adicione literal e W 1 11 111x kkkk kkkk C,DC,Z


ANDLW E literal com W 1 11 1001 kkkk kkkk A PARTIR DE

LIGAR kkk Chamar sub-rotina 2 10 0kkk kkkk kkkk


CLRWDT - 1 00 0000 0110 0100 PARA, PD
Limpar temporizador do watchdog
VÁ PARA Ir para o endereço 2 10 1 kkk kkkk kkkk
IORLW Literal OR inclusivo com W 1 11 1000 kkkk kkkk A PARTIR DE

MOVLW kkk Mover literal para W 1 11 00xx kkkk kkkk


RETFIE - 00 0000 0000 1001
Retorno da interrupção 2

RETIRAR k Retorno com literal em W 2 11 01xx kkkk kkkk


RETORNA - Retorno da Sub-rotina 2 00 0000 0000 1000
DORME - 00 0000 0110 0011
Entre no modo de espera 1 PARA, PD
SUBLW Subtrair W do literal 1 11 110x kkkk kkkk C,DC,Z
XORLW kk Literal OR exclusivo com W 1 11 1010 kkkk kkkk A PARTIR DE

Nota 1: Quando um registrador de E/S é modificado em função de si mesmo (por exemplo, MOVF PORTB, 1), o valor utilizado será aquele valor presente nos
próprios pinos. Por exemplo, se a trava de dados for '1' para um pino configurado como entrada e for baixado por um dispositivo externo, os dados
serão escritos de volta com um '0'.
2: Se esta instrução for executada no registrador TMR0 (e, quando aplicável, d = 1), o prescaler será zerado se atribuído ao módulo Timer0.

3: Se Program Counter (PC) for modificado, ou um teste condicional for verdadeiro, a instrução requer dois ciclos. O segundo ciclo é
executado como um NOP.

Nota: Informações adicionais sobre o conjunto de instruções de médio alcance estão disponíveis no Manual de Referência da Família
PIC® Mid-Range MCU (DS33023).

DS30569C-página 104 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
12.1 Descrições das Instruções

ADDW Adicione Literal e W BCF Bit Limpar f

Sintaxe: [ etiqueta ] ADDLW k Sintaxe: [ etiqueta ] BCF f,b

Operandos: 0 ÿ k ÿ 255 Operandos: 0 ÿ f ÿ 127


0ÿbÿ7
Operação: (W) + k ÿ (W)

Status Afetado: C, DC, Z Operação: 0 ÿ (f<b>)


Status Afetado: Nenhum
Descrição: O conteúdo do registrador W é
adicionado ao literal de oito bits 'k' e o Descrição: O bit 'b' no registrador 'f' é apagado.
resultado é colocado no registrador W.

JURAMENTO Adicione W e f BSF Conjunto de bits f

Sintaxe: [ label ] ADDWF f,d Sintaxe: [ etiqueta ] BSF f,b

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


d ÿÿÿÿÿÿÿ 0ÿbÿ7

Operação: (W) + (f) ÿ (destino) Operação: 1 ÿ (f<b>)

Status Afetado: C, DC, Z Status Afetado: Nenhum

Descrição: Adicione o conteúdo do registrador W com Descrição: Bit 'b' no registrador 'f' é definido.
o registrador 'f'. Se 'd' for 0, o resultado é
armazenado no registrador W. Se 'd' for 1,
o resultado é armazenado de volta no
registrador 'f'.

ANDLW E Literal com W BTFSS Teste de Bit f, Ignorar se Definido

Sintaxe: [ label ] ANDLW k Sintaxe: [ label ] BTFSS f,b

Operandos: 0 ÿ k ÿ 255 Operandos: 0 ÿ f ÿ 127


0ÿb<7
Operação: (VARINHA. (k) ÿ (W)
Status Afetado: Z Operação: pule se (f<b>) = 1
Status Afetado: Nenhum
Descrição: O conteúdo do registrador W é AND'ed
com o literal de oito bits 'k'. O resultado Descrição: Se o bit 'b' no registrador 'f' for '0', a
é colocado no registrador W. próxima instrução é executada.
Se o bit 'b' for '1', então a próxima instrução
é descartada e um NOP é executado em
seu lugar, tornando esta uma instrução 2
TCY .

EWF E W com f BTFSC Teste de Bits, Ignorar se Limpar

Sintaxe: [ label ] ANDWF f,d Sintaxe: [ etiqueta ] BTFSC f,b

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


d ÿÿÿÿÿÿÿ 0ÿbÿ7

Operação: (VARINHA. (f) ÿ (destino) Operação: pule se (f<b>) = 0

Status Afetado: Z Status Afetado: Nenhum

Descrição: E o registrador W com registrador 'f'. Se Descrição: Se o bit 'b' no registrador 'f' for '1', a
'd' for 0, o resultado é armazenado no próxima instrução é executada.
registrador W. Se 'd' for 1, o resultado é Se o bit 'b', no registrador 'f', for '0', a
armazenado de volta no registrador 'f'. próxima instrução é descartada e um
NOP é executado em seu lugar, tornando
esta uma instrução 2 TCY .

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 105


Machine Translated by Google

PIC16F870/871

LIGAR Chamar sub-rotina CLRWDT Limpar temporizador do watchdog

Sintaxe: [ etiqueta ] LIGUE k Sintaxe: [ rótulo ] CLRWDT

Operandos: 0 ÿ k ÿ 2047 Operandos: Nenhum

Operação: (PC)+ 1ÿ TOS, Operação: 00h ÿ WDT


k ÿ PC<10:0>, 0 ÿ prescaler WDT,
(PCLATH<4:3>) ÿ PC<12:11> 1 ÿ PARA
1 ÿ PD
Status Afetado: Nenhum
Status Afetado: TO, PD
Descrição: Chamar sub-rotina. Primeiro, o
endereço de retorno (PC+1) é colocado Descrição: A instrução CLRWDT reinicializa o
na pilha. O endereço imediato de onze Watchdog Timer. Ele também redefine
bits é carregado nos bits do PC <10:0>. o prescaler do WDT. Os bits de status
Os bits superiores do PC são carregados TO e PD são definidos.
do PCLATH.
CALL é uma instrução de dois ciclos.

CLRF Limpar f COMF Complemento f

Sintaxe: [ label ] CLRF f Sintaxe: [ etiqueta ] COMF f,d

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


dÿ [0,1]
Operação: 00h ÿ (f)
1ÿZ Operação: (f) ÿ (destino)
Status Afetado: Z Status Afetado: Z

Descrição: O conteúdo do registrador 'f' é Descrição: O conteúdo do registrador 'f' é


apagado e o bit Z é definido. complementado. Se 'd' for 0, o resultado
será armazenado em W. Se 'd' for 1, o
resultado será armazenado de volta no registrador 'f'.

CLRW Limpar W DECF Diminuir f

Sintaxe: [ rótulo ] CLRW Sintaxe: [ etiqueta ] DECF f,d

Operandos: Nenhum Operandos: 0 ÿ f ÿ 127


dÿ [0,1]
Operação: 00h ÿ (W)
1ÿZ Operação: (f) - 1 ÿ (destino)
Status Afetado: Z Status Afetado: Z

Descrição: O registrador W é apagado. Bit zero (Z) Descrição: Decrementar o registro 'f'. Se 'd' for 0, o
está definido. resultado é armazenado no registrador
W. Se 'd' for 1, o resultado é armazenado
de volta no registrador 'f'.

DS30569C-página 106 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871

DECFSZ Decrementa f, Pule se 0 INCFSZ Incrementar f, pular se 0

Sintaxe: [ label ] DECFSZ f,d Sintaxe: [ label ] INCFSZ f,d

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


dÿ [0,1] dÿ [0,1]

Operação: (f) - 1 ÿ (destino); pule se Operação: (f) + 1 ÿ (destino),


resultado = 0 pule se resultado = 0
Status Afetado: Nenhum Status Afetado: Nenhum

Descrição: O conteúdo do registrador 'f' é Descrição: O conteúdo do registrador 'f' é


decrementado. Se 'd' for 0, o resultado é incrementado. Se 'd' for 0, o resultado é
colocado no registrador W. Se 'd' for 1, o colocado no registrador W. Se 'd' for 1, o
resultado é colocado de volta no registrador resultado é colocado de volta no registrador
'f'. 'f'.
Se o resultado for 1, a próxima instrução Se o resultado for 1, a próxima instrução
é executada. Se o resultado for 0, então é executada. Se o resultado for 0, um
um NOP é executado em vez de uma NOP é executado, tornando-se uma
instrução 2 TCY . instrução 2 TCY .

VÁ PARA Ramificação Incondicional IORLW Inclusivo OU Literal com W

Sintaxe: [ label ] GOTO k Sintaxe: [ label ] IORLW k

Operandos: 0 ÿ k ÿ 2047 Operandos: 0 ÿ k ÿ 255

Operação: k ÿ PC<10:0> Operação: (W) .OR. k ÿ (W)


PCLATH<4:3> ÿ PC<12:11>
Status Afetado: Z
Status Afetado: Nenhum
Descrição: O conteúdo do registrador W é OR'ed com
Descrição: GOTO é uma ramificação incondicional. o literal de oito bits 'k'.
O valor imediato de onze bits é carregado O resultado é colocado no registrador
em bits de PC <10:0>. Os bits superiores W.
do PC são carregados de PCLATH<4:3>.
GOTO é uma instrução de dois ciclos.

INCF Incrementar f IORWF Inclusivo OR W com f

Sintaxe: [ etiqueta ] INCF f,d Sintaxe: [ label ] IORWF f,d

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


dÿ [0,1] dÿ [0,1]

Operação: (f) + 1 ÿ (destino) Operação: (W) .OR. (f) ÿ (destino)

Status Afetado: Z Status Afetado: Z

Descrição: O conteúdo do registrador 'f' é Descrição: Inclusivo OR o registrador W com


incrementado. Se 'd' for 0, o resultado é registrador 'f'. Se 'd' for 0, o resultado é
colocado no registrador W. Se 'd' for 1, o colocado no registrador W. Se 'd' for 1, o
resultado é colocado de volta no registrador resultado é colocado de volta no
'f'. registrador 'f'.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 107


Machine Translated by Google

PIC16F870/871

MOVF Mover f NOP Nenhuma operação

Sintaxe: [ rótulo ] MOVF f,d Sintaxe: [ etiqueta ] NOP

Operandos: 0 ÿ f ÿ 127 Operandos: Nenhum

dÿ [0,1]
Operação: Nenhuma operação
Operação: (f) ÿ (destino) Status Afetado: Nenhum
Status Afetado: Z
Descrição: Nenhuma operação.
Descrição: O conteúdo do registrador f é
movido para um destino dependente do
status de d. Se d = 0, o destino é o
registrador W. Se d = 1, o destino é o
próprio registro de arquivo f. d = 1 é útil
para testar um registro de arquivo, pois o
sinalizador de status Z é afetado.

MOVLW Mover Literal para W RETFIE Retorno da interrupção

Sintaxe: [ etiqueta ] MOVLW k Sintaxe: [ etiqueta ] RETFIE

Operandos: 0 ÿ k ÿ 255 Operandos: Nenhum

Operação: k ÿ (W) Operação: TOS ÿ PC,


1 ÿ GIE
Status Afetado: Nenhum
Status Afetado: Nenhum
Descrição: O literal de oito bits 'k' é carregado no
registrador W. O don't cares será
montado como 0's.

MOVWF Mover W para f RETIRAR Retorno com Literal em W

Sintaxe: [ label ] MOVWF f Sintaxe: [ etiqueta ] RETLW k

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ k ÿ 255

Operação: (W) ÿ (f) Operação: k ÿ (W);


TOS ÿ PC
Status Afetado: Nenhum
Status Afetado: Nenhum
Descrição: Mova os dados do registrador W para
o registrador 'f'. Descrição: O registrador W é carregado com o literal
de oito bits 'k'. O contador de programa é
carregado do topo da pilha (o endereço
de retorno).
Esta é uma instrução de dois ciclos.

DS30569C-página 108 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871

RLF Girar para a esquerda f através de Carregar DORME

Sintaxe: [ etiqueta ] RLF f,d Sintaxe: [ etiqueta ] DORMIR

Operandos: 0 ÿ f ÿ 127 Operandos: Nenhum

dÿ [0,1]
Operação: 00h ÿ WDT,
Operação: Veja a descrição abaixo 0 ÿ prescaler WDT,
Status Afetado: C 1 ÿ PARA,
0 ÿ PD
Descrição: O conteúdo do registrador 'f' é girado um bit
Status Afetado: TO, PD
para a esquerda através do Carry Flag. Se
'd' for 0, o resultado é colocado no Descrição: O bit de status de desligamento, PD é
registrador W. Se 'd' for 1, o resultado é apagado. Bit de status de tempo limite, TO
armazenado de volta no registrador 'f'. está definido. Watchdog Timer e seu
C Registre-se prescaler são apagados.
O processador é colocado no modo
SLEEP com o oscilador parado.

RETORNA Retorno da Sub-rotina SUBLW Subtraia W de Literal

Sintaxe: [ etiqueta ] VOLTAR Sintaxe: [ etiqueta ] SUBLW k

Operandos: Nenhum Operandos: 0 ÿÿk ÿÿ255

Operação: TOS ÿ PC Operação: k - (W) ÿÿÿW)


Status Afetado: Nenhum Status Afetado: C, DC, Z

Descrição: Retorno da sub-rotina. A pilha é POPed e Descrição: O registrador W é subtraído (método do


o topo da pilha (TOS) é carregado no complemento de 2) do literal de oito bits
contador de programa. Esta é uma 'k'. O resultado é colocado no registrador
instrução de dois ciclos. W.

RRF Girar para a direita f através do transporte SUBWF Subtraia W de f

Sintaxe: [ etiqueta ] RRF f,d Sintaxe: [ label ] SUBWF f,d

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿÿf ÿÿ127


dÿ [0,1] dÿ [0,1]

Operação: Veja a descrição abaixo Operação: (f) - (W) ÿÿÿdestino)


Status Afetado: C Status C, DC, Z
Afetado:
Descrição: O conteúdo do registrador 'f' é girado
um bit para a direita através do Carry Descrição: Subtrair (método do complemento de 2)
Flag. Se 'd' for 0, o resultado é colocado Registro W do registro 'f'. Se 'd' for 0, o
no registrador W. Se 'd' for 1, o resultado resultado é armazenado no registrador W.
é colocado de volta no registrador 'f'. Se 'd' for 1, o resultado é armazenado de
volta no registrador 'f'.
C Registre-se

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 109


Machine Translated by Google

PIC16F870/871

SWAPF Trocar Nibbles em f XORWF Exclusivo OU W com f

Sintaxe: [ etiqueta ] SWAPF f,d Sintaxe: [ label ] XORWF f,d


Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127
dÿ [0,1] dÿ [0,1]
Operação: (f<3:0>) ÿ (destino<7:4>), Operação: (W) .XOR. (f) ÿÿÿdestino)
(f<7:4>) ÿ (destino<3:0>) Status Afetado: Z
Status Afetado: Nenhum
Descrição: OR exclusivo o conteúdo do registrador
Descrição: Os nibbles superior e inferior do W com o registrador 'f'. Se 'd' for 0, o
registro 'f' são trocados. Se 'd' for 0, o resultado é armazenado no registrador
resultado é colocado no registrador W. Se 'd' for 1, o resultado é armazenado
W. Se 'd' for 1, o resultado é colocado de volta no registrador 'f'.
no registrador 'f'.

XORLW Exclusivo OU Literal com W

Sintaxe: [ label ] XORLW k


Operandos: 0 ÿÿk ÿÿ255

Operação: (W) .XOR. k ÿÿÿW)


Status Afetado: Z

Descrição: O conteúdo do registrador W é


submetido a um XOR com o literal
de oito bits 'k'. O resultado é
colocado no registrador W.

DS30569C-página 110 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
13.0 SUPORTE AO DESENVOLVIMENTO 13.1 Software do Ambiente de Desenvolvimento
Integrado MPLAB
Os microcontroladores PIC® são suportados com uma gama completa
de ferramentas de desenvolvimento de hardware e software: O software MPLAB IDE traz uma facilidade de desenvolvimento de

• Ambiente de desenvolvimento integrado software nunca vista no mercado de microcontroladores de 8/16 bits. O
MPLAB IDE é um aplicativo baseado em Windows® que contém:
- Software MPLAB® IDE •

Montadores/Compiladores/Linkers
- Montador MPASMTM • Uma interface para ferramentas de
depuração - simulador
- Compiladores MPLAB C17 e MPLAB C18 C
- programador (vendido separadamente) -
- Ligador de Objetos MPLINKTM/
Bibliotecário de Objetos MPLIBTM emulador (vendido separadamente) -

- Compilador MPLAB C30 C depurador no circuito (vendido separadamente) •


Um editor completo com contexto codificado por cores
- Montador/Linker/Biblioteca MPLAB ASM30 • Simuladores
• Um gerente de projeto múltiplo •

- Simulador de software MPLAB SIM Janelas de dados personalizáveis com edição direta de
conteúdo
- Simulador de software MPLAB dsPIC30
• Emuladores • Depuração de código-fonte de alto nível •
Inspeção com o mouse sobre variáveis • Ampla
- Emulador em circuito MPLAB ICE 2000
- Emulador em circuito MPLAB ICE 4000 ajuda on-line

• Depurador em circuito O MPLAB IDE permite:

- MPLAB ICD 2 • Edite seus arquivos de origem (montagem ou C) • Montagem

• Programadores de dispositivos com um toque (ou compilação) e download para ferramentas de


emulador e simulador PIC MCU (atualiza automaticamente todas
- Programador de dispositivo universal PRO MATE® II
as informações do projeto)
- Programador de Desenvolvimento PICSTART® Plus • Placas
de Demonstração de Baixo Custo • Depure usando:

- Placa de Demonstração PICDEMTM 1 - arquivos de origem (assembly ou C) -

- Placa de Demonstração PICDEM.netTM arquivo de listagem absoluta (assembly misto e C) - código


de máquina
- Placa de Demonstração PICDEM 2 Plus
- Placa de Demonstração PICDEM 3 O MPLAB IDE suporta várias ferramentas de depuração em um único

- Placa de Demonstração PICDEM 4 paradigma de desenvolvimento, desde simuladores econômicos, passando


por depuradores de circuito de baixo custo, até emuladores completos.
- Placa de Demonstração PICDEM 17
Isso elimina a curva de aprendizado ao atualizar para ferramentas com
- Placa de Demonstração PICDEM 18R
maior flexibilidade e potência.
- Placa de Demonstração PICDEM LIN
- Placa de demonstração USB PICDEM
• Kits de avaliação 13.2 Montagem MPASM
- KEELOQ®
O montador MPASM é um montador de macro universal completo para
- PICDEM MSC - todos os PIC MCUs.
microID®
O montador MPASM gera arquivos de objetos relocáveis para o vinculador
- POSSO de objetos MPLINK, arquivos HEX padrão Intel®, arquivos MAP para
- PowerSmart® detalhar o uso de memória e referência de símbolos, arquivos LST
absolutos que contêm linhas de origem e código de máquina gerado e
- Analógico
arquivos COFF para depuração.

Os recursos do montador MPASM incluem:

• Integração em projetos MPLAB IDE • Macros


definidas pelo usuário para simplificar o código assembly • Montagem
condicional para fonte multiuso
arquivos

• Diretrizes que permitem controle total sobre o processo de


montagem

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 111


Machine Translated by Google

PIC16F870/871
13.3 MPLAB C17 e MPLAB C18 13.6 Montador, Linker e Bibliotecário MPLAB
Compiladores C ASM30

Os sistemas de desenvolvimento de código MPLAB C17 e MPLAB C18 são O montador MPLAB ASM30 produz código de máquina relocável a partir de
compiladores ANSI C completos para a família de microcontroladores linguagem de montagem simbólica para dispositivos dsPIC30F. O compilador
PIC17CXXX e PIC18CXXX da Microchip. Esses compiladores fornecem MPLAB C30 usa o montador para produzir seu arquivo objeto. O montador
recursos de integração poderosos, otimização de código superior e facilidade gera arquivos de objetos relocáveis que podem ser arquivados ou vinculados
de uso não encontrada em outros compiladores. a outros arquivos de objetos relocáveis e arquivamentos para criar um arquivo
executável. As características notáveis do montador incluem:

Para facilitar a depuração no nível da fonte, os compiladores fornecem


informações de símbolo que são otimizadas para o depurador MPLAB IDE.
• Suporte para todo o conjunto de instruções dsPIC30F • Suporte para

dados de ponto fixo e ponto flutuante • Interface de linha de comando


13.4 Linker de Objetos MPLINK/
Bibliotecário de Objetos MPLIB • Conjunto de diretivas ricas

O vinculador de objetos MPLINK combina objetos relocáveis criados pelo • Linguagem de macro flexível •

montador MPASM e pelos compiladores MPLAB C17 e MPLAB C18 C. Ele Compatibilidade com MPLAB IDE
pode vincular objetos relocáveis de bibliotecas pré-compiladas, usando
diretivas de um script vinculador. 13.7 Simulador de Software MPLAB SIM

O simulador de software MPLAB SIM permite o desenvolvimento de código


O bibliotecário de objetos MPLIB gerencia a criação e modificação de arquivos
em um ambiente hospedado em PC, simulando os microcontroladores da
de biblioteca de código pré-compilado. Quando uma rotina de uma biblioteca série PIC em um nível de instrução. Em qualquer instrução, as áreas de dados
é chamada de um arquivo de origem, apenas os módulos que contêm essa
podem ser examinadas ou modificadas e os estímulos podem ser aplicados a
rotina serão vinculados ao aplicativo. Isso permite que grandes bibliotecas
partir de um arquivo, ou pressionamento de tecla definido pelo usuário, a
sejam usadas com eficiência em muitos aplicativos diferentes.
qualquer pino. A execução pode ser realizada no modo Single-Step, Execute
Until Break ou Trace.
Os recursos do vinculador/biblioteca de objetos incluem:

• Vinculação eficiente de bibliotecas únicas em vez de muitas O simulador MPLAB SIM suporta totalmente a depuração simbólica usando
arquivos menores os compiladores MPLAB C17 e MPLAB C18 C, bem como o montador

• Manutenibilidade de código aprimorada por agrupamento MPASM. O simulador de software oferece a flexibilidade de desenvolver e

módulos relacionados juntos depurar código fora do ambiente do laboratório, tornando-o uma ferramenta
de desenvolvimento de software excelente e econômica.
• Criação flexível de bibliotecas com fácil listagem, substituição,
exclusão e extração de módulos

13.5 Compilador MPLAB C30 C


13.8 Simulador de Software MPLAB SIM30
O compilador MPLAB C30 C é um compilador de otimização completo,
O simulador de software MPLAB SIM30 permite o desenvolvimento de código
compatível com ANSI, que traduz programas ANSI C padrão em fonte de
em um ambiente hospedado em PC, simulando os microcontroladores da
linguagem assembly dsPIC30F. O compilador também suporta muitas opções
série dsPIC30F em um nível de instrução. Em qualquer instrução, as áreas
de linha de comando e extensões de linguagem para aproveitar ao máximo
de dados podem ser examinadas ou modificadas e os estímulos podem ser
os recursos de hardware do dispositivo dsPIC30F e permitir um controle
aplicados a partir de um arquivo, ou pressionamento de tecla definido pelo
preciso do gerador de código do compilador.
usuário, a qualquer um dos pinos.

O simulador MPLAB SIM30 suporta totalmente a depuração simbólica usando


o compilador MPLAB C30 C e o montador MPLAB ASM30. O simulador é
O MPLAB C30 é distribuído com uma biblioteca padrão ANSI C completa.
executado em um modo de linha de comando para tarefas automatizadas ou
Todas as funções da biblioteca foram validadas e estão em conformidade
a partir do MPLAB IDE. Este simulador de alta velocidade foi projetado para
com o padrão de biblioteca ANSI C. A biblioteca inclui funções para
depurar, analisar e otimizar rotinas de DSP de uso intensivo de tempo.
manipulação de strings, alocação dinâmica de memória, conversão de dados,
cronometragem e funções matemáticas (trigonométricas, exponenciais e
hiperbólicas). O compilador fornece informações simbólicas para depuração
de fonte de alto nível com o MPLAB IDE.

DS30569C-página 112 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
13.9 MPLAB ICE 2000 13.11 MPLAB ICD 2 In-Circuit Debugger
Universal de alto desempenho O In-Circuit Debugger da Microchip, MPLAB ICD 2, é uma
Emulador de circuito ferramenta de desenvolvimento em tempo de execução
O emulador de circuito universal MPLAB ICE 2000 destina-se poderosa, de baixo custo, que se conecta ao PC host através
de uma interface RS-232 ou USB de alta velocidade. Esta
a fornecer ao engenheiro de desenvolvimento de produtos
ferramenta é baseada nos MCUs FLASH PIC e pode ser
um conjunto completo de ferramentas de projeto de
usada para desenvolver para estes e outros microcontroladores
microcontroladores para microcontroladores PIC. O controle
PIC. O MPLAB ICD 2 utiliza a capacidade de depuração de
de software do emulador de circuito MPLAB ICE 2000 é
circuito integrado nos dispositivos FLASH. Esse recurso,
avançado pelo MPLAB Integrated Development Environment,
junto com o protocolo In-Circuit Serial ProgrammingTM
que permite edição, construção, download e depuração de
(ICSPTM) da Microchip , oferece depuração FLASH
origem a partir de um único ambiente.
econômica no circuito a partir da interface gráfica do usuário
O MPLAB ICE 2000 é um sistema emulador completo com do MPLAB Integrated Development Environment. Isso permite
recursos aprimorados de rastreamento, disparo e que um designer desenvolva e depure o código-fonte definindo
monitoramento de dados. Módulos de processador pontos de interrupção, variáveis únicas e de observação,
intercambiáveis permitem que o sistema seja facilmente status da CPU e registros de periféricos. A execução em
reconfigurado para emulação de diferentes processadores. A velocidade máxima permite testar hardware e aplicativos em
arquitetura universal do emulador de circuito MPLAB ICE tempo real. O MPLAB ICD 2 também serve como programador
permite a expansão para suportar novos microcontroladores PIC. de desenvolvimento para dispositivos PIC selecionados.
O sistema emulador de circuito MPLAB ICE 2000 foi projetado
como um sistema de emulação em tempo real com recursos 13.12 Dispositivo Universal PRO MATE II
avançados que normalmente são encontrados em ferramentas
Programador
de desenvolvimento mais caras. A plataforma do PC e o
sistema operacional Microsoft® Windows de 32 bits foram O PRO MATE II é um programador de dispositivo universal
escolhidos para melhor disponibilizar esses recursos em um compatível com CE com verificação de tensão programável
aplicativo simples e unificado. em VDDMIN e VDDMAX para máxima confiabilidade. Possui
um display LCD para instruções e mensagens de erro e um
13.10 MPLAB ICE 4000 conjunto de soquete destacável modular para suportar vários
tipos de embalagens. No modo Stand-Alone, o programador
Universal de alto desempenho de dispositivos PRO MATE II pode ler, verificar e programar
Emulador de circuito dispositivos PIC sem uma conexão com o PC. Ele também
O emulador de circuito universal MPLAB ICE 4000 destina-se pode definir a proteção de código neste modo.
a fornecer ao engenheiro de desenvolvimento de produto um
conjunto completo de ferramentas de projeto de 13.13 Programador de Desenvolvimento
microcontrolador para microcontroladores PIC de ponta. O
PICSTART Plus
controle de software do emulador de circuito MPLAB ICE é
fornecido pelo MPLAB Integrated Development Environment, O programador de desenvolvimento PICSTART Plus é um
que permite edição, construção, download e depuração de programador de protótipo fácil de usar e de baixo custo. Ele
origem a partir de um único ambiente. se conecta ao PC através de uma porta COM (RS-232). O
software MPLAB Integrated Development Environment torna
O MPLAB ICD 4000 é um sistema emulador premium,
o uso do programador simples e eficiente. O programador de
fornecendo os recursos do MPLAB ICE 2000, mas com maior
desenvolvimento PICSTART Plus suporta a maioria dos
memória de emulação e desempenho de alta velocidade para
dispositivos PIC de até 40 pinos. Dispositivos de contagem
dispositivos dsPIC30F e PIC18XXXX. Seus recursos
de pinos maiores, como o PIC16C92X e o PIC17C76X,
avançados de emulador incluem disparo e temporização
podem ser suportados com um soquete adaptador. O
complexos, até 2 Mb de memória de emulação e a capacidade
programador de desenvolvimento PICSTART Plus é
de visualizar variáveis em tempo real. compatível com CE.
O sistema emulador de circuito MPLAB ICE 4000 foi projetado
como um sistema de emulação em tempo real com recursos
avançados que normalmente são encontrados em ferramentas
de desenvolvimento mais caras. A plataforma PC e o sistema
operacional Microsoft Windows de 32 bits foram escolhidos
para melhor disponibilizar esses recursos em um aplicativo
simples e unificado.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 113


Machine Translated by Google

PIC16F870/871
13.14 Placa de Demonstração 13.17 Placa de Demonstração PICDEM
PICDEM 1 PIC MCU 3 PIC16C92X

A placa de demonstração PICDEM 1 demonstra as A placa de demonstração PICDEM 3 suporta o PIC16C923


capacidades do PIC16C5X (PIC16C54 a PIC16C58A), e PIC16C924 no pacote PLCC. Todo o hardware e software
PIC16C61, PIC16C62X, PIC16C71, PIC16C8X, PIC17C42, necessários estão incluídos para executar os programas de
PIC17C43 e PIC17C44. Todo o hardware e software demonstração.
necessários estão incluídos para executar programas de
demonstração básicos. Os microcontroladores de amostra 13.18 PICDEM 4 8/14/18-Pin Painel de
fornecidos com a placa de demonstração PICDEM 1 podem Demonstração
ser programados com um programador de dispositivo PRO
MATE II ou um programador de desenvolvimento PICSTART Plus. O PICDEM 4 pode ser usado para demonstrar as
A placa de demonstração PICDEM 1 pode ser conectada capacidades dos MCUs PIC16XXXX e PIC18XXXX de 8,
ao emulador de circuito MPLAB ICE para teste. Uma área 14 e 18 pinos, incluindo os microcontroladores
de protótipo estende o circuito para componentes de PIC16F818/819, PIC16F87/88, PIC16F62XA e PIC18F1320.
aplicação adicionais. Os recursos incluem uma interface O PICDEM 4 destina-se a mostrar os muitos recursos
RS-232, um potenciômetro para entrada analógica simulada, dessas peças de baixa contagem de pinos, incluindo LIN e
interruptores de botão e oito LEDs. controle de motor usando ECCP. Provisões especiais são
feitas para operação de baixa potência com o circuito
13.15 Placa de Demonstração de Internet/ supercapacitor, e jumpers permitem que o hardware
integrado seja desabilitado para eliminar o consumo de
Ethernet PICDEM.net
corrente neste modo. Incluído na placa de demonstração
A placa de demonstração PICDEM.net é uma placa de estão provisões para os modos Crystal, RC ou Canned
demonstração de Internet/Ethernet usando o microcontrolador Oscillator, um regulador de cinco volts para uso com um
PIC18F452 e firmware TCP/IP. A placa suporta qualquer adaptador de parede de nove volts ou bateria, interface
dispositivo DIP de 40 pinos que esteja em conformidade DB-9 RS-232, conector ICD para programação via ICSP e
com a pinagem padrão usada pelo PIC16F877 ou desenvolvimento com MPLAB ICD 2, display de cristal
PIC18C452. Este kit apresenta uma pilha TCP/IP amigável, líquido 2x16, pegadas de PCB para driver de motor H-
servidor web com HTML, um EEPROM serial 24L256 para Bridge, transceptor LIN e EEPROM. Também estão
download de Xmodem para páginas web em um conector incluídos: header para expansão, oito LEDs, quatro
de interface Serial EEPROM, ICSP/MPLAB ICD 2, uma potenciômetros, três botões e uma área de prototipagem.
interface Ethernet, interface RS-232 e um Visor LCD de 16 Incluído com o kit está um PIC16F627A e um PIC18F1320.
x 2. Também está incluído o livro e CD-ROM “TCP/ IP Lean, O firmware do tutorial está incluído junto com o Guia do usuário.
Web Servers for Embedded Systems”, de Jeremy Bentham
13.19 Quadro de Demonstração do PICDEM 17

A placa de demonstração PICDEM 17 é uma placa de


13.16 PICDEM 2 Plus
avaliação que demonstra as capacidades de vários
Quadro de Demonstração
microcontroladores Microchip, incluindo PIC17C752,
A placa de demonstração PICDEM 2 Plus suporta muitos PIC17C756A, PIC17C762 e PIC17C766. Uma amostra
microcontroladores de 18, 28 e 40 pinos, incluindo programada está incluída. O programador de dispositivo
dispositivos PIC16F87X e PIC18FXX2. Todo o hardware e PRO MATE II, ou o programador de desenvolvimento
software necessários estão incluídos para executar os PICSTART Plus, pode ser usado para reprogramar o
programas de demonstração. Os microcontroladores de dispositivo para o desenvolvimento de aplicativos
amostra fornecidos com a placa de demonstração PICDEM personalizados pelo usuário. A placa de demonstração
2 podem ser programados com um programador de PICDEM 17 suporta download e execução de programas
dispositivo PRO MATE II, programador de desenvolvimento da memória FLASH interna externa. Uma área de protótipo
PICSTART Plus ou MPLAB ICD 2 com um adaptador de programadorgenerosa
universal.está disponível para expansão de hardware do usuário.
Os emuladores de circuito MPLAB ICD 2 e MPLAB ICE
também podem ser usados com a placa de demonstração
PICDEM 2 para testar o firmware. Uma área de protótipo
estende o circuito para componentes de aplicativos
adicionais. Alguns dos recursos incluem uma interface
RS-232, um display LCD 2 x 16, um alto-falante piezo, um
sensor de temperatura integrado, quatro LEDs e
microcontroladores FLASH de amostra PIC18F452 e PIC16F877.

DS30569C-página 114 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
13.20 PICDEM 18R PIC18C601/801 Placa de 13.23 PICDEM USB PIC16C7X5
Demonstração Quadro de Demonstração
A placa de demonstração PICDEM 18R serve para auxiliar O PICDEM USB Demonstration Board mostra o
desenvolvimento da família PIC18C601/801 de Microchip capacidades do PIC16C745 e PIC16C765 USB
microcontroladores. Ele fornece implementação de hardware microcontroladores. Esta placa fornece a base para
de 8 bits multiplexado/desmultiplexado e de 16 bits futuros produtos USB.
Modos de memória. A placa inclui 2 Mb externos
memória FLASH e memória SRAM de 128 Kb, bem como 13.24 Ferramentas de
EEPROM serial, permitindo acesso a uma ampla gama de
Avaliação e Programação
tipos de memória suportados pelo PIC18C601/801.
Além da série de circuitos PICDEM, a Microchip
tem uma linha de kits de avaliação e software de demonstração
13.21 Placa de Demonstração PICDEM
para estes produtos.
LIN PIC16C43X
• Ferramentas de avaliação e programação KEELOQ para
O poderoso kit de hardware e software LIN inclui um
Produtos de dados seguros HCS da Microchip
série de placas e três microcontroladores PIC. o
• Kit de desenvolvedores CAN para aplicativos de rede
pequena pegada PIC16C432 e PIC16C433 são usados
como escravos na comunicação LIN e apresentam transceptores LIN automotiva

integrados. Um microcontrolador FLASH PIC16F874 serve como • Placas de design analógico e software de design de filtro
mestre. Todos os três microcontroladores são programados com • Avaliação de carregamento da bateria PowerSmart/
firmware para fornecer LIN kits de calibração
comunicação de ônibus. • Kit de desenvolvimento IrDA®
• desenvolvimento de microID e desenvolvimento de rfLabTM
13.22 PICkitTM 1 FLASH Starter Kit Programas

• Kit de designer SEEVAL® para avaliação de memória e cálculos


Um completo "sistema de desenvolvimento em uma caixa", o PICkit
de resistência
O FLASH Starter Kit inclui um conveniente multi-seção
placa para programação, avaliação e desenvolvimento • Placas de demonstração PICDEM MSC para fonte de alimentação
de microcontroladores FLASH PIC® de 8/14 pinos. Alimentado por de modo de comutação, driver IR de alta potência, delta sigma
USB, a placa opera em uma GUI simples do Windows. ADC e sensor de vazão
O PICkit 1 Starter Kit inclui o guia do usuário (no Verifique a página da Web do Microchip e o Produto mais recente
CD ROM), software tutorial PICkit 1 e código para várias aplicações. Cartão de linha para a lista completa de demonstração e
Também estão incluídos o software MPLAB® IDE (Ambiente de kits de avaliação.
Desenvolvimento Integrado), software
e hardware "Dicas e truques para FLASH PIC® de 8 pinos
Manual de microcontroladores" e uma interface USB
Cabo. Suporta todos os FLASH PIC atuais de 8/14 pinos
microcontroladores, bem como muitos futuros
dispositivos.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 115


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 116 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
14.0 CARACTERÍSTICAS ELÉTRICAS

Classificações Máximas Absolutas †


Temperatura ambiente sob polarização ............................................. .................................................. .........-55 a +125°C
Temperatura de armazenamento ................................................ .................................................. ......................... -65°C a +150°C
Tensão em qualquer pino em relação ao VSS (exceto VDD, MCLR. e RA4) .............................. ........ -0,3V a (VDD + 0,3V)
Tensão no VDD em relação ao VSS ............................................. .................................................. ............... -0,3 a +7,5V
Tensão no MCLR em relação ao VSS (Nota 2) ............................................. .................................................. ...0 a +13,25V
Tensão em RA4 em relação a Vss............................................. .................................................. .......................0 a +8,5V
Dissipação total de energia (Nota 1) ............................................. .................................................. ......................... 1,0 W
Corrente máxima fora do pino VSS .................................................. .................................................. ......................... 300 mA
Corrente máxima no pino VDD ............................................. .................................................. ..............................250 mA
Corrente de pinça de entrada, IIK (VI < 0 ou VI > VDD) ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 20 mA
Corrente de pinça de saída, IOK (VO < 0 ou VO > VDD ) ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 20 mA
Corrente máxima de saída absorvida por qualquer pino de E/S........................................ .................................................. ................25 mA
Corrente máxima de saída originada por qualquer pino de E/S ........................................ .................................................. ..........25 mA
Corrente máxima absorvida por PORTA, PORTB e PORTE (combinados) (Nota 3)................................. ....................200 mA
Corrente máxima originada por PORTA, PORTB e PORTE (combinado) (Nota 3)................................. ..............200 mA
Corrente máxima afundada por PORTC e PORTD (combinados) (Nota 3) ................................. .................................. 200 mA
Corrente máxima fornecida por PORTC e PORTD (combinado) (Nota 3) ................................. .......................200 mA
Nota 1: A dissipação de energia é calculada da seguinte forma: Pdis = VDD x {IDD - ÿ IOH} + ÿ {(VDD - VOH) x IOH} + ÿ(VOl x IOL)
2: Picos de tensão abaixo de VSS no pino MCLR, induzindo correntes maiores que 80 mA, podem causar travamento.
Assim, um resistor em série de 50-100ÿ deve ser usado ao aplicar um nível “baixo” ao pino MCLR, em vez de
puxando este pino diretamente para VSS.

3: PORTD e PORTE não são implementados nos dispositivos de 28 pinos.

† AVISO: Estresses acima daqueles listados em “Classificações Máximas Absolutas” podem causar danos permanentes ao dispositivo.
Esta é apenas uma classificação de estresse e a operação funcional do dispositivo nessas ou quaisquer outras condições acima das
indicadas nas listas de operação desta especificação não está implícita. A exposição a condições de classificação máxima por longos
períodos pode afetar a confiabilidade do dispositivo.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 117


Machine Translated by Google

PIC16F870/871
FIGURA 14-1: PIC16FXXX GRÁFICO DE TENSÃO-FREQUÊNCIA

6,0 V
5,5 V

5,0 V

4,5 V

Tensão
4,0 V

3,5 V

3,0 V
2,5 V

2,0 V

20MHz
Frequência

FIGURA 14-2: PIC16LFXXX GRÁFICO DE TENSÃO-FREQUÊNCIA

6,0 V
5,5 V

5,0 V

4,5 V

Tensão
4,0 V

3,5 V

3,0 V

2,5 V Equação 1 Equação 2


2,0 V

4MHz 10MHz 20MHz

Frequência
Equação 1: FMAX = (6,0 MHz/V) (VDDAPPMIN – 2,0V) + 4 MHz; VDDAPPMIN = 2,0V - 3,0V
Equação 2: FMAX = (10,0 MHz/V) (VDDAPPMIN – 3,0V) + 10 MHz; VDDAPPMIN = 3,0V - 4,0V
Nota 1: VDDAPPMIN é a tensão mínima do dispositivo PIC® na aplicação.
Nota 2: FMAX tem uma frequência máxima de 10 MHz.

DS30569C-página 118 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
14.1 Características DC: PIC16F870/871 (Industrial, Estendido)
PIC16LF870/871 (Comercial, Industrial)

Condições Operacionais Padrão (salvo indicação em contrário)


PIC16LF870/871
Temperatura de operação -40°C ÿ TA ÿ +85°C para Industrial
(Comercial, Industrial)
0°C ÿ TA ÿ +70°C para Comercial

Condições Operacionais Padrão (salvo indicação em contrário)


PIC16F870/871
Temperatura de operação -40°C ÿ TA ÿ +85°C para Industrial
(Industrial, Estendido)
-40°C ÿ TA ÿ +125°C para Estendido

Parâmetro
Sim Característica Tipo mín.† Unidades máximas Condições
Não.

Tensão de Alimentação VDD


D001 PIC16LF870/871 2,0 — 5,5 V Todas as configurações. Consulte a Figura 14-2 para
detalhes.

D001 PIC16F870/871 4.0 — 5,5 DENTRO


Todas as configurações.
D001A VBOR* — 5,5 DENTRO
BOR habilitado, FMAX = 14 MHz (Nota 7),
-40°C a +85°C
VBOR — 5,5 DENTRO
BOR habilitado, FMAX = 10 MHz (Nota 7),
-40°C a +125°C

D002* Retenção de dados RAM VDR — 1,5 — V


Voltagem(1)

D003 VPOR VDD Tensão inicial para — Vss — V Veja a seção sobre Power-on Reset para detalhes
garantir o Power-on interno
Redefinir sinal
D004* SVDD VDD Rise Rate para garantir o sinal de 0,05 — — V/ms Consulte a seção sobre Reinicialização na inicialização para obter detalhes
Power-on Reset interno

D005 Redefinição de Brown-out VBOR 3.7 4,0 4,35 V BOREN bit na palavra de configuração habilitado
Tensão
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.
Nota 1: Este é o limite para o qual o VDD pode ser reduzido sem perder dados de RAM.
2: A corrente de alimentação é principalmente uma função da tensão e frequência de operação. Outros fatores, como carregamento de pinos
de E/S e taxa de comutação, tipo de oscilador, padrão de execução de código interno e temperatura também têm impacto no consumo
de corrente.
As condições de teste para todas as medições IDD no modo de operação ativo são:
OSC1 = onda quadrada externa, de trilho para trilho; todos os pinos de E/S tri-state, puxados para VDD
MCLR = VDD; WDT ativado/desativado conforme especificado.
3: A corrente de desligamento no modo SLEEP não depende do tipo de oscilador. A corrente de desligamento é medida com a peça no modo
SLEEP, com todos os pinos de E/S em estado de alta impedância e ligados a VDD e VSS.
4: Para configuração RC osc, a corrente através de REXT não está incluída. A corrente no resistor pode ser
estimado pela fórmula Ir = VDD/2REXT (mA) com REXT em kÿ.
5: O oscilador Timer1 (quando habilitado) adiciona aproximadamente 20 ÿA à especificação. Este valor é de
caracterização e é apenas para orientação de projeto. Isso não é testado.
6: A corrente ÿ é a corrente adicional consumida quando este periférico é habilitado. Esta corrente deve ser adicionada à medição de base IDD
ou IPD .

7: Quando o BOR está habilitado, o dispositivo funcionará corretamente até que o ponto de desarme de tensão VBOR seja alcançado.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 119


Machine Translated by Google

PIC16F870/871
14.1 Características DC: PIC16F870/871 (Industrial, Estendido)
PIC16LF870/871 (Comercial, Industrial) (Continuação)

Condições Operacionais Padrão (salvo indicação em contrário)


PIC16LF870/871
Temperatura de operação -40°C ÿ TA ÿ +85°C para Industrial 0°C ÿ
(Comercial, Industrial)
TA ÿ +70°C para Comercial

Condições Operacionais Padrão (salvo indicação em contrário)


PIC16F870/871
Temperatura de operação -40°C ÿ TA ÿ +85°C para Industrial
(Industrial, Estendido)
-40°C ÿ TA ÿ +125°C para Estendido

Param
Sim Característica Tipo mín.† Unidades máximas Condições
No.

Corrente de Alimentação IDD (2,5)


D010 PIC16LF870/871 — 0,6 2,0 mA XT, RC osc configuração
FOSC = 4 MHz, VDD = 3,0V (Nota 4)
D010A — 20 35 ÿA Configuração LP osc
FOSC = 32 kHz, VDD = 3,0 V, WDT desabilitado
D010 PIC16F870/871 — 1,6 4 mA XT, configuração RC osc FOSC = 4 MHz, VDD = 5,5
V (Nota 4)
D013 — 7 15 mA Configuração HS osc
FOSC = 20 MHz, VDD = 5,5V, -40ÿC a +85ÿC
— 7 15 mA Configuração HS osc FOSC = 10 MHz, VDD = 5,5V,
-40ÿC a +125ÿC — 85 200 ÿA BOR ativado, VDD = 5,0
D015* ÿIBOR Brown-out Reset V
Atual(6)

DPI Corrente de desligamento (3,5)


D020 PIC16LF870/871 — 7,5 30 ÿA VDD = 3,0V, WDT ativado, -40ÿC a +85ÿC VDD =
D021 — 0,8 4,5 3,0V, WDT desativado, 0ÿC a +70ÿC VDD = 3,0V,
ÿA
D021A — 0,9 5 WDT desativado, -40ÿC a +85ÿC VDD = 4,0V, WDT
ÿA
D020 PIC16F870/871 — 10,5 42 ÿA ativado, -40ÿC a +85ÿC VDD = 4,0V, WDT ativado,
D20A — 10,5 60 -40ÿC a +125ÿC VDD = 4,0V, WDT desativado, -0ÿC
ÿA
D021 — 1,5 16 a +70ÿ C VDD = 4,0V, WDT desativado, -40ÿC a
ÿA
D021A — 1,5 19 +85ÿC VDD = 4,0V, WDT desativado, -40ÿC a +125ÿC
ÿA
D21B — 1,5 30 — 85 200 ÿA BOR ativado, VDD = 5,0V
ÿA
D023* ÿIBOR Brown-out Reset
Atual(6)
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são apenas para orientação do
projeto e não são testados.
Nota 1: Este é o limite para o qual o VDD pode ser reduzido sem perder dados de RAM.
2: A corrente de alimentação é principalmente uma função da tensão e frequência de operação. Outros fatores, como carregamento
de pinos de E/S e taxa de comutação, tipo de oscilador, padrão de execução de código interno e temperatura também têm
impacto no consumo de corrente.
As condições de teste para todas as medições IDD no modo de operação ativo são:
OSC1 = onda quadrada externa, de trilho para trilho; todos os pinos de E/S tri-state, puxados para VDD
MCLR = VDD; WDT ativado/desativado conforme especificado.
3: A corrente de desligamento no modo SLEEP não depende do tipo de oscilador. A corrente de desligamento é medida com a peça
no modo SLEEP, com todos os pinos de E/S em estado de alta impedância e ligados a VDD e VSS.
4: Para configuração RC osc, a corrente através de REXT não está incluída. A corrente no resistor pode ser
estimado pela fórmula Ir = VDD/2REXT (mA) com REXT em kÿ.
5: O oscilador Timer1 (quando habilitado) adiciona aproximadamente 20 ÿA à especificação. Este valor é de
caracterização e é apenas para orientação de projeto. Isso não é testado.
6: A corrente ÿ é a corrente adicional consumida quando este periférico é habilitado. Esta corrente deve ser adicionada à medição de
base IDD ou IPD .

7: Quando o BOR está habilitado, o dispositivo funcionará corretamente até que o ponto de desarme de tensão VBOR seja alcançado.

DS30569C-página 120 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
14.2 Características DC: PIC16F870/871 (Industrial)

Condições Operacionais Padrão (salvo indicação em contrário)


Temperatura de operação -40°C ÿ TA ÿ +85°C para Industrial
CARACTERÍSTICAS DC
Faixa de tensão de operação VDD conforme descrito nas especificações DC
Seção 14.1 e Seção 14.2.

Parâmetro
Sim Característica Mín. Typ† Max Units Condições
Não.

VAI Baixa Tensão de Entrada

Portas de E/S:

D030 com buffer TTL VSS — 0,15 VDD V Para toda a faixa VDD
D030A VSS — 0,8VV 4,5V ÿ VDD ÿÿ5,5V

D031 com buffer de disparo Schmitt VSS — 0,2 VDD V


D032 MCLR, OSC1 (no modo RC) VSS — 0,2 VDD V
D033 OSC1 (em XT, HS e LP) VSS — 0,3 VDD V (Nota 1)
Portas RC3 e RC4:
D034 com buffer de disparo Schmitt VSS — 0,3 VDD V Para toda a faixa VDD
D034A com SMBBus -0,5 - 0,6 V Para VDD = 4,5 a 5,5 V

HIV Alta Tensão de Entrada



Portas de E/S:

D040 com buffer TTL 2.0 — VDD V 4,5V ÿ VDD ÿÿ5,5V


D040A 0,25VDD + — VDD V Para toda a gama VDD
0,8V
D041 com Schmitt Trigger buffer 0,8 VDD — VDD V Para toda a faixa de VDD
D042 MCLR 0,8 VDD — VDD V
D042A OSC1 (XT, HS e LP) 0,7 VDD - VDD V (Nota 1)
D043 OSC1 (no modo RC) 0,9 VDD — VDD V
Portas RC3 e RC4:
D044 com Schmitt Trigger buffer 0,7 VDD — VDD V Para toda a faixa VDD
D044A com SMBBus 1,4 - 5,5 V para VDD = 4,5 a 5,5 V

D070 IPURB PORTB Fraco Pull-up 50 250 400 ÿA VDD = 5V, VPIN = VSS
Atual

IIL Corrente de Fuga de Entrada


(Notas 2, 3)
D060 Portas de E/S — — ÿ1 ÿA Vss ÿÿVPIN ÿÿVDD,
Pino em alta impedância
D061 MCLR, RA4/T0CKI — — ÿ5 ÿA Vss ÿÿVPIN ÿÿVDD
D063 OSC1 — — ÿ5 ÿA Vss ÿÿVPIN ÿÿVDD, XT, HS e
configuração LP osc
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.
Nota 1: Na configuração do oscilador RC, o pino OSC1/CLKI é uma entrada Schmitt Trigger. Não é recomendado que o
PIC16F870/871 ser acionado com clock externo em modo RC.

2: A corrente de fuga no pino MCLR é fortemente dependente do nível de tensão aplicado. O especificado
níveis representam condições normais de operação. A corrente de fuga mais alta pode ser medida em diferentes tensões
de entrada.
3: A corrente negativa é definida como a corrente originada pelo pino.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 121


Machine Translated by Google

PIC16F870/871
14.2 Características DC: PIC16F870/871 (Industrial) (Continuação)

Condições Operacionais Padrão (salvo indicação em contrário)


Temperatura de operação -40°C ÿ TA ÿ +85°C para Industrial
CARACTERÍSTICAS DC
Faixa de tensão de operação VDD conforme descrito nas especificações DC
Seção 14.1 e Seção 14.2.

Parâmetro
Sim Característica Mín. Typ† Max Units Condições
Não.

VOL Baixa Tensão de Saída


D080 Portas de E/S — — 0,6 V IOL = 8,5 mA, VDD = 4,5 V, -40ÿC
a +85ÿC
D083 OSC2/CLKO (configuração RC osc) — — 0,6 V IOL = 1,6 mA, VDD = 4,5 V, -40ÿC
a +85ÿC

Alta Tensão de Saída VOH


D090 Portas de E/S (Nota 3) VDD – 0,7 — — V IOH = -3,0 mA, VDD = 4,5 V, -40ÿC a +85ÿC

D092 OSC2/CLKO (configuração RC osc) VDD – 0,7 — — V IOH = -1,3 mA, VDD = 4,5V, -40ÿC a +85ÿC

D150* VOD Dreno Aberto Alta Tensão — — 8,5 pino V RA4

Especificações de carregamento
capacitivo nos pinos de saída

D100 COSC2 OSC2 pino — — 15 pF Nos modos XT, HS e LP quando o


clock externo é usado para acionar
o OSC1.
D101 CIO — — 50
Todos os pinos de E/S e pF
OSC2 (no modo RC)
D102 CB — — 400
SCL, SDA no modo I2C pF

Memória EEPROM de dados


D120 ED Resistência 100K — — E/W 25ÿC a 5V

D121 VDRW VDD para leitura/gravação VMIN - 5,5 V Usando EECON para ler/escrever
VMIN = tensão de operação mínima
D122 TDEW Tempo de ciclo de apagamento/gravação —4 8 EM

Programar Memória FLASH


D130 EP Resistência 1000 — — E/W 25ÿC a 5V

D131 VPR VDD para leitura VMIN - 5,5 V VMIN = tensão de operação mín.
D132a VDD para apagar/gravar VMIN - 5,5 V Usando EECON para ler/escrever,
VMIN = tensão de operação mínima
D133 TPEW Erase/Write tempo de ciclo —4 8 EM
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.
Nota 1: Na configuração do oscilador RC, o pino OSC1/CLKI é uma entrada Schmitt Trigger. Não é recomendado que o
PIC16F870/871 ser acionado com clock externo em modo RC.

2: A corrente de fuga no pino MCLR é fortemente dependente do nível de tensão aplicado. Os níveis especificados representam
condições normais de operação. A corrente de fuga mais alta pode ser medida em diferentes tensões de entrada.

3: A corrente negativa é definida como a corrente originada pelo pino.

DS30569C-página 122 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
14.3 Características DC: PIC16F870/871 (Estendido)

Condições Operacionais Padrão (salvo indicação em contrário)


Temperatura de operação -40°C ÿ TA ÿ +125°C
CARACTERÍSTICAS DC
Faixa de tensão de operação VDD conforme descrito na especificação DC
(Seção )

Parâmetro
Sim Característica Tipo mín.† Unidades máximas Condições
Não.

VAI Baixa Tensão de Entrada

Portas de E/S:

D030 com buffer TTL VSS — 0,15 VDD V Para toda a faixa VDD
D030A VSS — 0,8VV 4,5V ÿ VDD ÿÿ5,5V

D031 com buffer de disparo Schmitt VSS — 0,2 VDD V


D032 MCLR, OSC1 (no modo RC) VSS — 0,2 VDD V
D033 OSC1 (em XT, HS e LP) VSS — 0,3 VDD V (Nota 1)
Portas RC3 e RC4:
D034 com buffer de disparo Schmitt VSS — 0,3 VDD V Para toda a faixa VDD
D034A com SMBBus -0,5 — 0,6 V Para VDD = 4,5 a 5,5 V
HIV Alta Tensão de Entrada

Portas de E/S:

D040 com buffer TTL 2.0 — VDD V 4,5V ÿ VDD ÿÿ5,5V


D040A 0,25 VDD — VDD V Para toda a gama VDD
+ 0,8 V
D041 com buffer de disparo Schmitt 0,8 VDD — VDD V Para toda a faixa de VDD
D042 MCLR 0,8 VDD — VDD V
D042A OSC1 (XT, HS e LP) 0,7 VDD - VDD V (Nota 1)
D043 OSC1 (no modo RC) 0,9 VDD — VDD V
Portas RC3 e RC4:
D044 com buffer de disparo Schmitt 0,7 VDD — VDD V Para toda a faixa de VDD
D044A com SMBBus 1,4 — 5,5 V Para VDD = 4,5 a 5,5 V

D070A IPURB PORTB Corrente de pull-up fraca 50 250 400 ÿA VDD = 5V, VPIN = VSS
IIL
Corrente de Fuga de Entrada (2,3)
D060 Portas de E/S — — ÿ1 ÿA Vss ÿÿVPIN ÿÿVDD,
Pino em alta impedância
D061 MCLR, RA4/T0CKI — — ÿ5 ÿA Vss ÿÿVPIN ÿÿVDD
D063 OSC1 — — ÿ5 ÿA Vss ÿÿVPIN ÿÿVDD, XT, HS e LP
osc configuração
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.
Nota 1: Na configuração do oscilador RC, o pino OSC1/CLKI é uma entrada Schmitt Trigger. Não é recomendado que o
PIC16F87X ser acionado com clock externo em modo RC.
2: A corrente de fuga no pino MCLR é fortemente dependente do nível de tensão aplicado. Os níveis especificados representam
condições normais de operação. A corrente de fuga mais alta pode ser medida em diferentes tensões de entrada.

3: A corrente negativa é definida como a corrente originada pelo pino.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 123


Machine Translated by Google

PIC16F870/871
14.3 Características DC: PIC16F870/871 (Estendido) (Continuação)

Condições Operacionais Padrão (salvo indicação em contrário)


Temperatura de operação -40°C ÿ TA ÿ +125°C
CARACTERÍSTICAS DC
Faixa de tensão de operação VDD conforme descrito na especificação DC
(Seção )

Parâmetro
Sim Característica Tipo mín.† Unidades máximas Condições
Não.

VOL Baixa Tensão de Saída


D080A Portas de — — 0,6 V IOL = 7,0 mA, VDD = 4,5 V
D083A E/S OSC2/CLKO (configuração RC osc) — — 0,6 V IOL = 1,2 mA, VDD = 4,5 V

Alta Tensão de Saída VOH


D090A Portas de E/S (3) VDD – 0,7 — — V IOH = -2,5 mA, VDD = 4,5 V
D092A OSC2/CLKO (configuração RC osc) VDD – 0,7 — — V IOH = -1,0 mA, VDD = 4,5 V
D150* VOD Dreno Aberto Alta Tensão — — pino RA4 de 8,5 V
Especificações de carregamento capacitivo ativado
Pinos de saída
D100 COSC2 OSC2 pino — — 15 pF Nos modos XT, HS e LP quando o clock
externo é usado para conduzir
OSC1
D101 CIO — — 50
Todos os pinos de E/S e OSC2 pF
(modo RC)
D102 CB — — 400
SCL, SDA (modo I2C ) pF
Memória EEPROM de dados
D120 ED Resistência 100K — — E/W 25ÿC a 5V

D121 VDRW VDD para leitura/gravação VMIN — 5,5 V Usando EECON para ler/escrever,
VMIN = mín. tensão operacional
D122 TDEW Tempo de ciclo de apagamento/gravação —4 8 EM

Programar Memória FLASH


D130 EP Resistência 1000 — — E/W 25ÿC a 5V
D131 VPR VDD para leitura VMIN — 5,5 V VMIN = tensão mínima de operação
D132A VDD para apagar/gravar VMIN — 5,5 V Usando EECON para ler/escrever,
VMIN = mín. tensão operacional
D133 TPEW Erase/Write tempo de ciclo —4 8 EM
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.
Nota 1: Na configuração do oscilador RC, o pino OSC1/CLKI é uma entrada Schmitt Trigger. Não é recomendado que o
PIC16F87X ser acionado com clock externo em modo RC.

2: A corrente de fuga no pino MCLR é fortemente dependente do nível de tensão aplicado. O especificado
níveis representam condições normais de operação. A corrente de fuga mais alta pode ser medida em diferentes tensões
de entrada.
3: A corrente negativa é definida como a corrente originada pelo pino.

DS30569C-página 124 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
14.4 Simbologia do Parâmetro de Tempo
Os símbolos dos parâmetros de tempo foram criados
seguindo um dos seguintes formatos:

1. TppS2ppS 3. TCC:ST ( somente especificações I2C )


2. TppS 4. Ts ( somente especificações I2C )
T
F Frequência T Tempo

Letras minúsculas (pp) e seus significados:


pp
cc PCC1 osc OSC1
k CLKO rd RD
cs CS rw RD ou WR
a partir de SDI sc SCK
Faz SDO ss SS
dt Dados em t0 T0CKI
isto porta de entrada/saída
t1 T1CKI
mc MCLR wr WR

Letras maiúsculas e seus significados:


S
F Cair P Período
H Alto R Subir
EU

Inválido (alta impedância) DENTRO Válido


eu Baixo A PARTIR DE

Alta impedância

Eu 2C apenas

AA acesso de saída Alto Alto


BUF Ônibus grátis Baixo Baixo

TCC:ST ( somente especificações I2C )


CC
HD Aguarde Eles são
Configurar

ST
QUE Entrada de DADOS em espera O QUE condição PARAR
STA Condição de INICIAR

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 125


Machine Translated by Google

PIC16F870/871
FIGURA 14-3: CONDIÇÕES DE CARGA

Condição de carga 1 Condição de carga 2

VDD/2

RL

CL CL
Alfinete Alfinete

VSS VSS

RL = 464ÿ

CL = 50 pF para todos os pinos exceto OSC2, mas incluindo saídas PORTD e PORTE como portas

15 pF para saída OSC2

Nota: PORTD e PORTE não são implementados no PIC16F870.

FIGURA 14-4: CRONOGRAMA DE RELÓGIO EXTERNO

Q4 Q1 Q2 Q3 Q4 Q1

OSC1

1 4
3 3 4
2

CLKO

DS30569C-página 126 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
TABELA 14-1: REQUISITOS DE CRONOGRAMA DE RELÓGIO EXTERNO
Param
Sim Característica Tipo mín.† Unidades máximas Condições
No.

Frequência CLKI Externa FOSC DC — Modo XT e RC Osc de 4 MHz


(Nota 1) DC — modo 4 MHz HS Osc (-04)
DC — 20 MHz HS Modo Osc (-20)
DC — modo LP Osc de 200 kHz

Frequência do oscilador DC — Modo RC Osc de 4 MHz


(Nota 1) 0,1 — Modo XT Osc de 4 MHz
4 — 20 MHz Modo HS Osc
5 — 200 kHz Modo LP Osc
1 Período CLKI Externo TOSC 250 — — ns Modo XT e RC Osc
(Nota 1) 250 — — ns Modo Osc HS (-04)
50 — — ns Modo Osc HS (-20)
5— — ÿs LP Osc mode 250 — — ns RC Osc mode
Período do oscilador
(Nota 1) 250 — 10.000 ns Modo XT Osc ns Modo HS Osc (-04)
250 - 250
50 - 250 ns Modo Osc HS (-20)
5— — ÿs Modo LP Osc
2 TCY 200 TCY DC ns TCY = 4/FOSC
Tempo de Ciclo de Instrução
(Nota 1)
3 TosL, 100 — — ns oscilador XT
Relógio externo em (OSC1)
TosH hora alta ou baixa
2,5 — — ÿs oscilador LP
15 — — ns oscilador HS
4 TosR, — — 25 oscilador ns XT
Tempo de subida ou descida do
TosF relógio externo (OSC1) — — 50 ns oscilador LP
— — 15 ns oscilador HS

† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.
Nota 1: O período do ciclo de instrução (TCY) é igual a quatro vezes o período base de tempo do oscilador de entrada. Todos os valores
especificados são baseados em dados de caracterização para esse tipo de oscilador específico sob condições operacionais
padrão com o código de execução do dispositivo. Exceder esses limites especificados pode resultar em uma operação instável
do oscilador e/ou consumo de corrente maior do que o esperado. Todos os dispositivos são testados para operar em "min".
valores com um clock externo aplicado ao pino OSC1/CLKI. Quando uma entrada de relógio externa é usada, o valor "Max."
limite de tempo de ciclo é "DC" (sem relógio) para todos os dispositivos.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 127


Machine Translated by Google

PIC16F870/871
FIGURA 14-5: CLKO E TEMPO DE E/S

Q4 Q1 Q2 Q3

OSC1

10 11

CLKO

13 12
18
14 19 16

Pino de E/S

(Entrada)

17 15

Pino de E/S
Valor antigo Novo valor
(Resultado)

20, 21

Observação: Consulte a Figura 14-3 para obter as condições de carga.

TABELA 14-2: REQUISITOS DE TEMPORIZAÇÃO DE CLKO E E/S

Parâmetro
Sim Característica Mín. Modelo† Máx. Condições das unidades
Não.

10* TosH2ckL OSC1ÿ a CLKOÿ — 75 200 ns (Nota 1)


11* TosH2ckH OSC1ÿ a CLKOÿ — 75 200 ns (Nota 1)
12* TckR Tempo de subida CLKO — 35 100 ns (Nota 1)
13* TckF Tempo de queda CLKO — 35 100 ns (Nota 1)
14* TckL2ioV CLKOÿ para portar válido — — 0,5 TCY + 20 ns (Nota 1)
15* A porta TioV2ckH é válida antes de CLKOÿ TOSC + 200 — — ns (Nota 1)
16* TckH2ioI Porta em espera após CLKOÿ 0 — — ns (Nota 1)
17* TosH2ioV OSC1ÿ (ciclo Q1) para portar válido — 100 255 ns
18* TosH2ioI OSC1ÿ (ciclo Q2) para entrada de porta Padrão (F) 100 — — ns
inválida (E/S em tempo de espera) Estendido (LF) 200 — — ns
19* Entrada da porta TioV2osH válida para OSC1ÿÿ(E/S em tempo de configuração) 0 ——
ns
20* TIOR Tempo de subida da saída da porta Padrão (F) — 10 40 ns

Estendido (LF) — — 145 ns


21* TIOF Tempo de queda de saída da porta Padrão (F) — 10 40 ns

Estendido (LF) — — 145 ns

22††* TINP Pino INT alto ou baixo TCY — — ns

23††* TRBP tempo RB7:RB4 mudança INT alto ou baixo TCY — — ns


*
tempo Estes parâmetros são caracterizados, mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.
†† Esses parâmetros são eventos assíncronos não relacionados a nenhuma borda de clock interna.
Nota 1: As medições são feitas no modo RC onde a saída CLKO é 4 x TOSC.

DS30569C-página 128 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 14-6: REINICIAR, TEMPORIZADOR WATCHDOG, TEMPORIZADOR DE INICIALIZAÇÃO DO OSCILADOR E LIGAÇÃO
TEMPORIZADOR

VDD

MCLR

30
interno
POR

33
PWRT
Tempo esgotado
32

Osc
Tempo esgotado

interno
REDEFINIR

cão de guarda
Cronômetro

Redefinir
31
34
34

Pinos de E/S

Observação: Consulte a Figura 14-3 para obter as condições de carga.

FIGURA 14-7: TEMPO DE REINICIALIZAÇÃO DE BROWN-OUT

VDD VBOR

35

TABELA 14-3: REINICIALIZAÇÃO, TEMPORIZADOR WATCHDOG, TEMPORIZADOR DE INICIALIZAÇÃO DO OSCILADOR, TEMPORIZADOR DE LIGAÇÃO,
E REQUISITOS DE REINICIALIZAÇÃO DE BROWN-OUT

Param
Sim Característica Mín. Modelo† Unidades máximas Condições
No.

30 2 —
Largura de pulso TmcL MCLR (baixa) — ÿs VDD = 5V, -40°C a +85°C
31* Período de tempo limite do temporizador do watchdog TWDT 7 18 33 ms VDD = 5V, -40°C a +85°C
(Sem pré-escalador)

32 TOST Período do temporizador de inicialização de oscilação — 1024 TOSC — —TOSC = período OSC1
33* Período do temporizador de inicialização do TPWRT 28 72 132 ms VDD = 5V, -40°C a +85°C

34 TIOZ — — 2.1
Alta impedância de E/S de MCLR Baixa ou ÿs
Reinicialização do temporizador do watchdog

35 TBOR Largura de pulso de reinicialização de brown-out 100 — — ÿs VDD ÿ VBOR (D005)


*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são para orientação de projeto
apenas e não são testados.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 129


Machine Translated by Google

PIC16F870/871
FIGURA 14-8: TEMPORIZAÇÕES DE RELÓGIO EXTERNO TIMER0 E TIMER1

RA4/T0CKI

40 41

42

RC0/T1OSO/T1CKI

45 46

47 48

TMR0 ou
TMR1

Observação: Consulte a Figura 14-3 para obter as condições de carga.

TABELA 14-4: REQUISITOS DE RELÓGIO EXTERNO DE TIMER0 E TIMER1


Param
Sim Característica Mín. Typ† Max Units Condições
No.

40* Tt0H Largura de Pulso Alta T0CKI Sem pré-escalador 0,5 TCY + 20 — — ns Também deve atender
parâmetro 42
Com Pré-escalador 10 — — ns

41* Tt0L Largura de Pulso Baixa T0CKI Sem pré-escalador 0,5 TCY + 20 — — ns Também deve atender

Com Pré-escalador 10 — — ns parâmetro 42

42* TT0P Período T0CKI Sem pré-escalador TCY + 40 — — ns

Com Prescaler Maior de: — — ns N = valor de pré-escala


20 ou TCY + 40 (2, 4, ..., 256)
N

45* Tt1H T1CKI High Time Synchronous, Prescaler = 1 0,5 TCY + 20 — — ns Também deve atender

15 — — ns parâmetro 47
Síncrono, Padrão (F)
Pré-escalador = 2,4,8 25 — — ns
Estendido (LF)

Assíncrono Padrão (F) 30 — — ns

Estendido (LF) 50 — — ns

46* TT1L T1CKI Síncrono de Tempo Baixo, Pré-escalonador = 1 0,5 TCY + 20 — — ns Também deve atender

15 — — ns parâmetro 47
Síncrono, Padrão (F)
Pré-escalador = 2,4,8 25 — — ns
Estendido (LF)

Assíncrono Padrão (F) 30 — — ns

Estendido (LF) 50 — — ns

47* Tt1P Período de entrada T1CKI Síncrono Padrão (F) Maior de: — — ns N = valor de pré-escala (1, 2, 4, 8)
30 ou TCY + 40
N

Estendido(LF) Maior de: N = valor pré-escala


50 ou TCY + 40 (1, 2, 4, 8)
N

Assíncrono Padrão (F) 60 — — ns

Estendido (LF) 100 — — ns

Ft1 Faixa de frequência de entrada do oscilador DC - 200kHz


Timer1 (oscilador habilitado pelo ajuste do bit T1OSCEN)
48 TCKEZtmr1 Atraso da borda do relógio externo para o incremento do temporizador 2 ÁSPERO — 7 GROSSO —
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e não são testados.

DS30569C-página 130 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 14-9: CAPTURAR/COMPARAR/HORÁRIOS PWM (CCP1)

RC2/CCP1
(Modo de captura)

50 51

52

RC2/CCP1
(Comparar ou modo PWM)
53 54

Observação: Consulte a Figura 14-3 para obter as condições de carga.

TABELA 14-5: REQUISITOS DE CAPTURA/COMPARAÇÃO/PWM (CCP1)


Param
Sim Característica Mín. Typ† Max Units Condições
No.

50* TccL * PCC1 Sem pré-escalador 0,5 TCY + 20 — — ns

entrada de Padrão (F) 10 — — ns


Com Pré-escalador
tempo baixo
Estendido (LF) 20 — — ns
51* Entrada TccH CCP1 tempo alto Sem Prescaler 0,5 TCY + 20 — — ns

Padrão (F) 10 — — ns
Com Pré-escalador
Estendido (LF) 20 — — ns
52* Período de entrada TccP CCP1 3 TCY + 40 — — ns N = valor de pré-escala (1,4 ou 16)
N

53* Tempo de subida de saída TccR CCP1 Padrão (F) - 10 25 ns

Estendido (LF) — 25 50 ns
54* Tempo de queda de saída TccF CCP1 Padrão (F) - 10 25 ns

Estendido (LF) — 25 45 ns
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e não são
testado.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 131


Machine Translated by Google

PIC16F870/871
FIGURA 14-10: TEMPORIZAÇÃO DA PORTA ESCRAVO PARALELA (SOMENTE PIC16F871)

RE2/CS

RE0/RD

RE1/WR

65

RD7: RD0

62
64

63
Observação: Consulte a Figura 14-3 para obter as condições de carga.

TABELA 14-6: REQUISITOS DA PORTA ESCRAVA PARALELA (SOMENTE PIC16F871)


Parâmetro
Sim Característica Tipo mín.† Unidades máximas Condições
Não.

62 20 — — ns
TdtV2wrH Dados válidos antes de WRÿ ou CSÿ (tempo de configuração)
25 — —
ns Somente alcance estendido
63* TwrH2dtI WRÿ ou CSÿ para dados inválidos (tempo de espera) Padrão(F) 20 — — ns

Estendido(LF) 35 — — ns
64 TrdL2dtV RDÿ e CSÿ para saída de dados válida — — 80 ns
— — 90 ns Somente alcance estendido
65 TrdH2dtI RDÿ ou CSÿ para saída de dados inválido 10 - 30 ns
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e não são
testado.

DS30569C-página 132 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 14-11: CRONOGRAMA DE TRANSMISSÃO SÍNCRONA USART (MESTRE/ESCRAVO)

RC6/TX/CK
121
alfinete

121
RC7/RX/DT
alfinete

120
122

Observação: Consulte a Figura 14-3 para obter as condições de carga.

TABELA 14-7: REQUISITOS DE TRANSMISSÃO SÍNCRONA USART


Parâmetro
Sim Característica Tipo Mínimo† Condições de Unidades Máximas
Não.

120 TckH2dtV SYNC XMIT (MESTRE E ESCRAVO) Padrão (F)


— — 80 ns
Relógio alto para saída de dados válido

Estendido (LF) — — 100 ns


121 TckrfGenericName Cronometre o tempo de subida e o tempo de queda Padrão (F) — — 45 ns
(Modo mestre) Estendido (LF) — — 50 ns
122 TdtrfGenericName Tempo de saída de dados e tempo de queda Padrão (F) — — 45 ns

Estendido(LF) † — — 50 ns

Os dados na coluna “Typ” estão em 5V, 25ÿC, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e não são
testado.

FIGURA 14-12: TEMPO DE RECEPÇÃO SÍNCRONO USART (MESTRE/ESCRAVO)

RC6/TX/CK
alfinete
125
RC7/RX/DT
alfinete

126

Observação: Consulte a Figura 14-3 para obter as condições de carga.

TABELA 14-8: REQUISITOS DE RECEBIMENTO SÍNCRONO DE USART


Parâmetro
Sim Característica Mín. Modelo† Máx. Condições das unidades
Não.

125 TdtV2ckL SYNC RCV (MESTRE E ESCRAVO)


Configuração de dados antes de CK ÿ (tempo de configuração DT) 15 — — ns
126 TckL2dtl Dados retidos após CK ÿ (tempo de retenção DT) 15 — — ns

† Os dados na coluna “Typ” estão em 5V, 25ÿC, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e não são
testado.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 133


Machine Translated by Google

PIC16F870/871
TABELA 14-9: PIC16F870/871 (INDUSTRIAL)
PIC16LF870/871 (INDUSTRIAL)
Parâmetro
Sim Característica Mín. Modelo† Máx. Unidades Condições
Não.

A01 NÃO Resolução — — 10 bits bit VREF = VDD = 5,12V, VSS ÿ


VAIN ÿ VREF

A03 NÃO — —
Erro de linearidade integral <±1 LSb VREF = VDD = 5,12V, VSS ÿ
VAIN ÿ VREF
— —
A04 Erro de linearidade diferencial EDL <±1 LSb VREF = VDD = 5,12V, VSS ÿ
VAIN ÿ VREF

A06 Erro de compensação EOFF — —


<±1 LSb VREF = VDD = 5,12V, VSS ÿ
VAIN ÿ VREF

A07 Erro de ganho EGN — —


<±1 LSb VREF = VDD = 5,12V, VSS ÿ
VAIN ÿ VREF

A10 — Monotonicidade(3) — garantido — — VSS ÿ VAIN ÿ VREF

A20 VREF Tensão de referência (VREF+ – VREF-) 2,0 V — VDD + 0,3 V

A21 VREF+ Tensão de referência alta VDD - 2,5 V VDD + 0,3VV Deve atender às especificações. A20

A22 VREF- Tensão de referência baixa VSS - 0,3 V VREF+ – 2.0VV Deve atender às especificações. A20

A25 VAIN Tensão de entrada analógica VSS – 0,3 — VREF + 0,3 V


— — 10,0 kÿ
A30 ZAIN Impedância recomendada da fonte de tensão
analógica
Corrente de conversão A/D A40 IAD — 220 —
Padrão (F) ÿA Consumo médio de corrente quando A/
(VDD) 90 — D está ligado (Nota 1). ÿA
Estendido(LF) —
10 — 1000
A50 Corrente de entrada IREF VREF (Nota 2) ÿA Durante a aquisição VAIN .
Baseado no diferencial de VHOLD
para VAIN cobrar CHOLD, consulte
a Seção 10.1.
— — 10 ÿA Durante o ciclo de conversão A/D
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e não são
testado.

Nota 1: Quando o A/D está desligado, ele não consumirá nenhuma corrente além da corrente de fuga menor. A especificação de corrente de desligamento inclui qualquer
vazamento do módulo A/D.
2: A corrente VREF é do pino RA3 ou pino VDD , o que for selecionado como entrada de referência.
3: O resultado da conversão A/D nunca diminui com o aumento da tensão de entrada e não possui códigos ausentes.

DS30569C-página 134 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 14-13: TEMPO DE CONVERSÃO A/D

BSF ADCON0, GO 1 TCY

(TOSC/2)(1)
131
Q4
130

A/D CLK 132

DADOS A/D 9 8 7 ÿÿÿÿÿ ÿÿÿÿÿ


2 10

MORADA OLD_DATA NOVOS DADOS

ADIF

VAI FEITO

AMOSTRAGEM PARADA
AMOSTRA

Nota 1: Se a fonte do relógio A/D for selecionada como RC, um tempo de TCY é adicionado antes do início do relógio A/D. Isso permite que a
instrução SLEEP seja executada.

TABELA 14-10: REQUISITOS DE CONVERSÃO A/D


Parâmetro
Sim Característica Mín. Modelo† Unidades máximas Condições
Não.

130 TAD A/D período de relógio Padrão (F) 1,6 — — ÿs baseado em TOSC, VREF ÿ 3,0V

Estendido (LF) 3,0 — — ÿs baseado em TOSC, VREF ÿ 2,0V

Padrão (F) 2,0 4,0 6,0 ÿs Modo RC A/D

Estendido (LF) 3,0 6,0 9,0 ÿs Modo RC A/D


131 Tempo de conversão TCNV (não incluindo o tempo S/H) - 12 ENTÃO

(Nota 1)
40 —
132 Tempo de aquisição TACQ (Nota 2) ÿs

10* — —
ÿs O tempo mínimo é o tempo de estabilização
do amplificador. Isso pode ser usado se
a "nova" tensão de entrada não tiver
mudado em mais de 1 LSb (ou seja,
20,0 mV @ 5,12 V) da última tensão
amostrada (conforme indicado em
CHOLD).
134 TGO Q4 para início do relógio A/D — TOSC/2 § — — Se a fonte de relógio A/D estiver
selecionado como RC, um tempo de
TCY é adicionado antes do relógio A/D
começa. Isso permite que o SONO
instrução a ser executada.
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna "Typ" estão a 5V, 25°C, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e não são
testado.

§ Esta especificação assegurada pelo projeto.


Nota 1: O registro ADRES pode ser lido no ciclo TCY seguinte .
2: Consulte a Seção 10.1 para condições mínimas.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 135


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 136 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
15.0 GRÁFICOS E TABELAS DE CARACTERÍSTICAS DC E AC

Nota: Os gráficos e tabelas fornecidos após esta nota são um resumo estatístico baseado em um número limitado de
amostras e são fornecidos apenas para fins informativos. As características de desempenho listadas aqui
não são testados ou garantidos. Em alguns gráficos ou tabelas, os dados apresentados podem estar fora do especificado
faixa de operação (por exemplo, fora da faixa de alimentação especificada) e, portanto, fora da faixa garantida.

“Típico” representa a média da distribuição a 25°C. “Máximo” ou “mínimo” representa (média + 3ÿ) ou (média - 3ÿ)
respectivamente, onde ÿ é um desvio padrão, em toda a faixa de temperatura.

FIGURA 15-1: IDD TÍPICO vs. FOSC SOBRE VDD (MODO HS)

Típico: média estatística @ 25°C


6
Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

5,5 V
4
5,0 V
(mA)
IDD

4,5 V
3

4,0 V

2 3,5 V

3,0 V

2,5 V

2,0 V
0
4 6 8 10 12 14 16 18 20

F OSC (MHz)

FIGURA 15-2: IDD MÁXIMO vs. FOSC SOBRE VDD (MODO HS)

Típico: média estatística @ 25°C


7
Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)
6

5,5 V
5

5,0 V

(mA)
IDD
4
4,5 V

4,0 V
3

3,5 V

2
3,0 V

1
2,5 V
2,0 V

0
4 6 8 10 12 14 16 18 20

F OSC (MHz)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 137


Machine Translated by Google

PIC16F870/871
FIGURA 15-3: IDD TÍPICO vs. FOSC SOBRE VDD (MODO XT)

1,6

Típico: média estatística @ 25°C


1,4
Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)
5,5 V
1.2

5,0 V

1,0

4,5 V

(mA)
IDD
0,8
4,0 V

3,5 V
0,6

3,0 V

0,4
2,5 V

2,0 V
0,2

0,0
0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0

ESCURO (MHz)

FIGURA 15-4: IDD MÁXIMO vs. FOSC SOBRE VDD (MODO LP)

2,0

1,8

Típico: média estatística @ 25°C


1,6
Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C) 5,5 V

1,4

5,0 V

1.2

4,5 V
(mA)
IDD
1,0
4,0 V

0,8
3,5 V

0,6
3,0 V
2,5 V
0,4
2,0 V

0,2

0,0
0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0

ESCURO (MHz)

DS30569C-página 138 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 15-5: IDD TÍPICO vs. FOSC SOBRE VDD (MODO LP)

90

Típico: média estatística @ 25°C


80 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C) 5,5 V

70
5,0 V

60
4,5 V

50
4,0 V
(uA)
IDD

40 3,5 V

3,0 V
30
2,5 V

20 2,0 V

10

0
20 30 40 50 60 70 80 90 100

ESCURO (kHz)

FIGURA 15-6: IDD MÁXIMO vs. FOSC SOBRE VDD (MODO XT)

120

110 5,5 V
Típico: média estatística @ 25°C
Máximo: média + 3ÿ (-40°C a 125°C)
100 Mínimo: média – 3ÿ (-40°C a 125°C)

5,0 V
90

80
4,5 V

70

4,0 V
60
(uA)
IDD

3,5 V
50

3,0 V
40

2,5 V

30
2,0 V

20

10

0
20 30 40 50 60 70 80 90 100

ESCURO (kHz)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 139


Machine Translated by Google

PIC16F870/871
FIGURA 15-7: MÉDIA FOSC vs. VDD PARA VÁRIOS VALORES DE R (MODO RC, C = 20 pF, 25ÿC)

4,0

3,3kÿ
3,5

3,0

5,1kÿ
2,5

2,0
Frequência
(MHz)

10kÿ
1,5

1,0

0,5

100kÿ
0,0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

FIGURA 15-8: MÉDIA FOSC vs. VDD PARA VÁRIOS VALORES DE R (MODO RC, C = 100 pF, 25ÿC)

2,0

1,8

1,6
3,3 kÿ
1,4

1.2

5,1 kÿ
Frequência
(MHz)
1,0

0,8

0,6 10kÿ

0,4

0,2

100kÿ
0,0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V )

DS30569C-página 140 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 15-9: MÉDIA FOSC vs. VDD PARA VÁRIOS VALORES DE R (MODO RC, C = 300 pF, 25ÿC)

1,0

0,9

0,8
3,3 kÿ
0,7

0,6

5,1 kÿ
Frequência
(MHz)
0,5

0,4

0,3
10kÿ
0,2

0,1
100kÿ
0,0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VD D (V)

FIGURA 15-10: IPD vs. VDD (MODO SLEEP, TODOS OS PERIFÉRICOS DESABILITADOS)

100,00

Típico: média estatística @ 25°C


Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C) Máx. (125C)
10,00

Máx. (85C)

(ÿA)
IPD

1,00

0,10

Tipo (25C)

0,01
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 141


Machine Translated by Google

PIC16F870/871
FIGURA 15-11: ÿIBOR vs. VDD SOBRETEMPERATURA

1.2

Nota: A corrente do dispositivo em


1,0 RESET depende do modo, Típico: média estatística @ 25°C
frequência e circuito do oscilador. Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

0,8

REINICIALIZAÇÃO máx.

(mA)
ÿI
0,6

Indeterminado
Tipo RESET (25°C)
Estado
0,4

Dispositivo em SLEEP
Dispositivo em RESET
0,2
SONO máx.

Tipo SONO (25°C)


0,0
2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

FIGURA 15-12: TÍPICO E MÁXIMOÿÿITMR1 vs. VDD SOBRETEMPERATURA (-10ÿC A 70ÿC,


TIMER1 COM OSCILADOR, XTAL=32 kHZ, C1 E C2=50 pF)

90

Típico: média estatística @ 25°C


80 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

70

60

50

ÿITMR1
(uA)

40

Máx.
30

Tipo (25C)
20

10

0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

DS30569C-página 142 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 15-13: TÍPICO E MÁXIMO ÿIWDT vs. VDD SOBRETEMPERATURA

14

Típico: média estatística @ 25°C


12 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

10

Máx. (85C)

8
ÿIWDT
(uA)

Tipo (25C)

0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

FIGURA 15-14: PERÍODO DE WDT TÍPICO, MÍNIMO E MÁXIMO vs. VDD (-40ÿC A 125ÿC)

60

Típico: média estatística @ 25°C


50 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

40

Máx. (125C)
30
Período
WDT
(ms)

20
Tipo (25C)

10 Mínimo (-40C)

0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 143


Machine Translated by Google

PIC16F870/871
FIGURA 15-15: PERÍODO MÉDIO DE WDT vs. VDD SOBRETEMPERATURA (-40ÿC A 125ÿC)

50

45
Típico: média estatística @ 25°C
Máximo: média + 3ÿ (-40°C a 125°C)
40 Mínimo: média – 3ÿ (-40°C a 125°C)

125C

35

85C
30

25
Período
WDT
(ms)
25C

20

-40C
15

10

0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

FIGURA 15-16: TÍPICO, MÍNIMO E MÁXIMO VOH vs. IOH (VDD = 5V, -40ÿC A 125ÿC)

5,0

Máx (-40C)
4,5

Tipo (25C)
4,0

VOH
(V)

3,5

Mínimo (125C)

3,0

Típico: média estatística @ 25°C


2,5 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

2,0
0 5 10 15 20 25

IOH (-mA)

DS30569C-página 144 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 15-17: TÍPICO, MÍNIMO E MÁXIMO VOH vs. IOH (VDD = 3V, -40ÿC A 125ÿC)

3,0

Máx (-40C)
Típico: média estatística @ 25°C
2,5 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

Tipo (25C)

2,0

VOH
(V)
1,5

Mínimo (125C)

1,0

0,5

0,0
0 5 10 15 20 25

IOH (-mA)

FIGURA 15-18: VOL TÍPICO, MÍNIMO E MÁXIMO vs. LIO (VDD = 5V, -40ÿC A 125ÿC)

2,0

1,8

Típico: média estatística @ 25°C


1,6
Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)
1,4

1.2

VOL
(V)
1,0
Máx. (125C)

0,8

0,6
Tipo (25C)

0,4

Mínimo (-40C)
0,2

0,0
0 5 10 15 20 25

LIO (-mA)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 145


Machine Translated by Google

PIC16F870/871
FIGURA 15-19: VOL TÍPICO, MÍNIMO E MÁXIMO vs. LIO (VDD = 3V, -40ÿC A 125ÿC)

3,0

Típico: média estatística @ 25°C


2,5 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

2,0

VOL
(V) 1,5

Máx. (125C)

1,0

Tipo (25C)

0,5

Mínimo (-40C)

0,0
0 5 10 15 20 25

LIO (-mA)

FIGURA 15-20: VIN MÍNIMO E MÁXIMO vs. VDD, (ENTRADA TTL, -40ÿC A 125ÿC)

1,8

Típico: média estatística @ 25°C


1,6 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)
Máx (-40C)
1,4

1.2

Mínimo (125C)

1,0
VIN
(V)

0,8

0,6

0,4

0,2

0,0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

DS30569C-página 146 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
FIGURA 15-21: VIN MÍNIMO E MÁXIMO vs. VDD (ENTRADA ST, -40ÿC A 125ÿC)

4,5

Típico: média estatística @ 25°C


4,0
Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)

3,5

Máximo Alto (125C)

3,0

Mínimo Alto (-40C)

2,5

VIN
(V)

2,0

Máx. Baixo (125C)


1,5

Mínimo Baixo (-40C)

1,0

0,5

0,0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

FIGURA 15-22: VIN MÍNIMO E MÁXIMO vs. VDD ( ENTRADA I2C, -40ÿC A 125ÿC)

3,5

Típico: média estatística @ 25°C


3,0 Máximo: média + 3ÿ (-40°C a 125°C)
Mínimo: média – 3ÿ (-40°C a 125°C)
Máximo Alto (125C)

2,5
Mínimo Alto (-40C)

Máx. Baixo (125C)


2,0

VIN
(V) Mínimo Baixo (25C)

1,5

1,0

0,5

0,0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (V)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 147


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 148 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
16.0 INFORMAÇÕES DA EMBALAGEM

16.1 Informações de marcação do pacote

PDIP de 28 derivações (Skinny DIP) Exemplo

XXXXXXXXXXXXXXX PIC16F870-I/SP
XXXXXXXXXXXXXXX
YYWNNNN 0317017

28-Lead SEC Exemplo

XXXXXXXXXXXXXXX PIC16F870-I/SO
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
YYWNNNN 0310017

SSOP de 28 derivações Exemplo

XXXXXXXXXXXX PIC16F870-I/SS
XXXXXXXXXXXX
YYWNNNN 0320017

Legenda: XX...X Informações específicas do cliente Y


Código do ano (último dígito do ano civil)
YY Código do ano (últimos 2 dígitos do ano civil)
Código da semana WW (a semana de 1º de janeiro é a semana '01')
NNN Código de rastreabilidade alfanumérico
e3 Designador JEDEC sem Pb para Matte
Tin (Sn)
*
Este pacote é livre de Pb. O designador JEDEC sem Pb ( ) e3 pode
ser
encontrado na embalagem externa deste pacote.

Nota: Caso o número de peça do Microchip completo não possa ser marcado em uma linha,
ele será transferido para a próxima linha, limitando assim o número de caracteres
disponíveis para informações específicas do cliente.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 149


Machine Translated by Google

PIC16F870/871
Informações de marcação do pacote (cont.)

PDIP de 40 derivações Exemplo

XXXXXXXXXXXXXXX PIC16F871-I/P
XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
YYWNNNN 0312017

TQFP de 44 derivações Exemplo

XXXXXXXXX PIC16F871
XXXXXXXXX -I/PT
XXXXXXXXX
YYWNNNN 0320017

PLCC de 44 derivações Exemplo

XXXXXXXXX PIC16F871
XXXXXXXXX -I/L
XXXXXXXXX
YYWNNNN 0320017

DS30569C-página 150 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Plástico fino de 28 derivações em linha dupla (SP) - 300 mil (PDIP)

Nota: Para os desenhos de embalagem mais atuais, consulte a Especificação de Embalagem de Microchip localizada
em http://www.microchip.com/packaging

E1

n 1
ÿ

E
A2

UMA

eu
c

ÿ A1 B1

eB B p

Unidades POLEGADAS* MILÍMETROS

Limites de dimensão MIN NOME MÁX. MIN NOME MÁX.

Número de pinos n 28 28

Tom p 0,100 2,54

De cima para o avião sentado UMA .140 0,150 .160 3,56 3,81 4.06

Espessura do pacote moldado A2 .125 .130 .135 3,18 3h30 3,43

Base para avião de assento A1 0,015 0,38

Largura ombro a ombro E 0,300 .310 .325 7,62 7,87 8,26

Largura do pacote moldado E1 .275 .285 .295 6,99 7,24 7,49

Comprimento total D 1,345 1,365 1,385 34.16 34,67 35,18

Dica para o avião sentado eu .125 .130 .135 3,18 3h30 3,43

Espessura do Chumbo c 0,008 0,012 0,015 0,20 0,29 0,38

Largura do cabo superior B1 0,040 0,053 0,065 1,02 1,33 1,65

Largura Inferior do Cabo B 0,016 0,019 0,022 0,41 0,48 0,56

Espaçamento geral entre linhas § eB .320 0,350 .430 8.13 8,89 10,92

Ângulo de inclinação do molde ÿ 5 10 15 5 10 15

superior Ângulo de inclinação do ÿ 5 10 15 5 10 15

molde inferior * Parâmetro de controle


§ Característica Significativa
Notas:
As dimensões D e E1 não incluem rebarbas ou saliências do molde. As rebarbas ou saliências do molde não devem exceder 0,010” (0,254
mm) por lado.
JEDEC Equivalente: MO-095
Desenho nº C04-070

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 151


Machine Translated by Google

PIC16F870/871
Contorno pequeno de plástico de 28 derivações (SO) - Largo, 300 mil (SOIC)

Nota: Para os desenhos de embalagem mais atuais, consulte a Especificação de Embalagem de Microchip localizada
em http://www.microchip.com/packaging

E1
p

B
2
n 1

h
ÿ

45ÿ

c
UMA A2

ÿ eu A1

Unidades POLEGADAS* MILÍMETROS


Limites de dimensão MIN NOME MÁX. MIN NOME MÁX.
Número de pinos n 28 28
Tom p 0,050 1,27

Altura Geral UMA 0,093 0,099 .104 2,36 2,50 2,64

Espessura do pacote moldado A2 0,088 0,091 0,094 2,24 2,31 2,39

Impasse § A1 .004 .008 .012 0,10 0,20 0,30


Largura total E .394 .407 .420 10,01 10,34 10,67

Largura do pacote moldado E1 .288 .295 .299 7,32 7,49 7,59

Comprimento total D 0,695 .704 .712 17,65 17,87 18.08


Distância do chanfro h .010 .020 .029 0,25 0,50 0,74

Comprimento do pé eu .016 .033 .050 0,41 0,84 1,27

Parte superior do ângulo do pé ÿ 048048


Espessura do Chumbo c 0,009 0,011 0,013 0,23 0,28 0,33
Largura do condutor B 0,014 0,017 0,020 0,36 0,42 0,51

Topo do ângulo de calado do molde


ÿ 0 12 15 0 12 15

Inferior do ângulo de inclinação do molde ÿ 0 12 15 0 12 15

* Parâmetro de controle
§ Característica Significativa

Notas:
As dimensões D e E1 não incluem rebarbas ou saliências do molde. As rebarbas ou saliências do molde não devem exceder 0,010” (0,254
mm) por lado.
JEDEC Equivalente: MS-013
Desenho nº C04-052

DS30569C-página 152 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Contorno pequeno de plástico retrátil de 28 derivações (SS) - 209 mil, 5,30 mm (SSOP)

Nota: Para os desenhos de embalagem mais atuais, consulte a Especificação de Embalagem de Microchip localizada
em http://www.microchip.com/packaging

E1

2
n 1

UMA

A2

A1
ÿ

eu
ÿ

Unidades POLEGADAS MILÍMETROS*


Limites de dimensão MIN NOME MÁX. MIN NOME MÁX.
Número de pinos n 28 28
Tom p 0,026 0,65

Altura Geral UMA .068 .073 .078 1,73 1,85 1,98

Espessura do pacote moldado A2 .064 .068 .072 1,63 1,73 1,83

Impasse § A1 0,002 0,006 0,010 0,05 0,15 0,25


Largura total E .299 .309 .319 7,59 7,85 8.10

Largura do pacote moldado E1 .201 .207 .212 5.11 5,25 5,38

Comprimento total D .396 .402 .407 10,06 10,20 10,34

Comprimento do pé eu .022 .030 .037 0,56 0,75 0,94


Espessura do Chumbo c 0,004 0,007 0,010 0,10 0,18 0,25

Ângulo do pé ÿ 0 4 8 0,00 101,60 203,20


Largura do condutor B .010 0,013 .015 0,25 0,32 0,38

Topo do ângulo de calado do molde


ÿ 5 10 5 10

Inferior do ângulo de inclinação do molde ÿ 00 5 10 00 5 10

* Parâmetro de controle
§ Característica Significativa

Notas:
As dimensões D e E1 não incluem rebarbas ou saliências do molde. As rebarbas ou saliências do molde não devem exceder 0,010” (0,254
mm) por lado.
JEDEC Equivalente: MS-150
Desenho nº C04-073

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 153


Machine Translated by Google

PIC16F870/871
Plástico de 40 derivações em linha dupla (P) - 600 mil (PDIP)

Nota: Para os desenhos de embalagem mais atuais, consulte a Especificação de Embalagem de Microchip localizada
em http://www.microchip.com/packaging

E1

2 ÿ

n 1

UMA A2

eu
c

B1
ÿ A1
eB B p

Unidades POLEGADAS* MILÍMETROS


Limites de dimensão MIN NOME MÁX. MIN NOME MÁX.
Número de pinos n 40 40
Tom p 0,100 2,54

De cima para o avião sentado UMA .160 .175 .190 4,06 4,45 4,83

Espessura do pacote moldado A2 .140 .150 .160 3,56 3,81 4.06

Base para avião de assento A1 .015 0,38


Largura ombro a ombro E 0,595 0,600 0,625 15.11 15,24 15,88

Largura do pacote moldado E1 0,530 .545 0,560 13,46 13,84 14.22

Comprimento total D 2.045 2.058 2.065 51,94 52,26 52,45

Dica para o avião sentado eu .120 .130 .135 3,05 3,30 3,43
Espessura do Chumbo c .008 .012 .015 0,20 0,29 0,38

Largura do cabo superior B1 0,030 0,050 0,070 0,76 1,27 1,78


Largura Inferior do Cabo B 0,014 0,018 0,022 0,36 0,46 0,56

Espaçamento total entre linhas § eB 0,620 .650 .680 15,75 16,51 17,27

Ângulo de inclinação do molde ÿ 5 10 15 5 10 15

Topo Ângulo de inclinação do molde ÿ 5 10 15 5 10 15

Inferior * Parâmetro de controle


§ Característica Significativa
Notas:
As dimensões D e E1 não incluem rebarbas ou saliências do molde. As rebarbas ou saliências do molde não devem exceder 0,010” (0,254
mm) por lado.
JEDEC Equivalente: MO-011
Desenho nº C04-016

DS30569C-página 154 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Flatpack quádruplo fino de plástico de 44 derivações (PT) Corpo de 10x10x1 mm, forma de derivação de 1,0/0,10 mm (TQFP)

Nota: Para os desenhos de embalagem mais atuais, consulte a Especificação de Embalagem de Microchip localizada
em http://www.microchip.com/packaging

E1

#leads=n1

D1 D

2
1
B

n ÿ
CH x 45
ÿ
UMA

ÿ
ÿ A1 A2
eu

(F)

Unidades POLEGADAS MILÍMETROS*


Limites de dimensão MIN NOME MÁX. MIN NOME MÁX.
Número de pinos n 44 44
Tom p 0,031 0,80

Pinos por lado n1 11

Altura Geral UMA .039 .047 1,00 1,10 1,20

Espessura do pacote moldado A2 .037 11.043.039 .041 0,95 1,00 1,05

Impasse § A1 0,002 0,004 0,006 0,05 0,10 0,15

Comprimento do pé eu 0,018 0,024 0,030 0,45 0,60 0,75

Pegada (Referência) (F) .039 1,00

Ângulo do pé ÿ 0 3.5 7 0 3,5 7


Largura total E .463 .472 .482 11,75 12,00 12,25

Comprimento total D .463 .472 .482 11,75 12h00 12,25

Largura do pacote moldado E1 .390 .394 .398 9,90 10,00 10.10

Comprimento do pacote moldado D1 .390 .394 .398 9,90 10,00 10.10


Espessura do Chumbo c .004 .006 .008 0,09 0,15 0,20
Largura do condutor B 0,012 0,015 0,017 0,30 0,38 0,44
Pino 1 Chanfro de Canto CH 0,025 0,035 0,045 0,64 0,89 1,14

Topo do ângulo de calado do molde


ÿ 5 10 15 5 10 15

Inferior do ângulo de inclinação do molde ÿ 5 10 15 5 10 15

* Parâmetro de controle
§ Característica Significativa

Notas:
As dimensões D1 e E1 não incluem rebarbas ou saliências do molde. As rebarbas ou saliências do molde não devem exceder 0,010” (0,254
mm) por lado.
JEDEC Equivalente: MS-026
Desenho nº C04-076

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 155


Machine Translated by Google

PIC16F870/871
Porta-cavacos com chumbo de plástico de 44 derivações (L) - Quadrado (PLCC)

Nota: Para os desenhos de embalagem mais atuais, consulte a Especificação de Embalagem de Microchip localizada
em http://www.microchip.com/packaging

E1

#leads=n1

D1 D

n 1 2

CH2 x 45ÿ CH1 x 45ÿ


ÿ
A3

A2 UMA
35ÿ

B1
c
B A1
ÿ
p

E2 D2

Unidades POLEGADAS* MILÍMETROS


Limites de dimensão MIN NOME MÁX. MIN NOME MÁX.
Número de pinos n 44 44
Tom p 0,050 1,27

Pinos por lado n1 11 11

Altura Geral UMA .165 .173 .180 4,19 4,39 4,57

Espessura do pacote moldado A2 .145 .153 .160 3,68 3,87 4.06

Impasse § A1 .020 .028 .035 0,51 0,71 0,89

Altura do Chanfro Lateral 1 A3 0,024 0,029 0,034 0,61 0,74 0,86


Chanfro de canto 1 CH1 0,040 0,045 0,050 1,02 1,14 1,27

Chanfro de canto (outros) CH2 .000 .005 .010 0,00 0,13 0,25
Largura total E .685 .690 .695 17,40 17,53 17,65

Comprimento total D .685 0,690 0,695 17h40 17,53 17,65

Largura do pacote moldado E1 0,650 .653 .656 16,51 16,59 16,66

Comprimento do pacote moldado D1 0,650 .653 .656 16,51 16,59 16,66

Largura da Pegada E2 .590 .620 .630 14,99 15,75 16h00

Comprimento da Pegada D2 .590 .620 .630 14,99 15,75 16h00


Espessura do Chumbo c 0,008 0,011 0,013 0,20 0,27 0,33

Largura do cabo superior B1 0,026 0,029 0,032 0,66 0,74 0,81


Largura Inferior do Cabo B 0,013 0,020 0,021 0,33 0,51 0,53

Ângulo de inclinação do molde ÿ 0 5 10 0 5 10

superior Ângulo de inclinação do ÿ 0 5 10 0 5 10

molde inferior * Parâmetro de controle


§ Característica Significativa
Notas:
As dimensões D e E1 não incluem rebarbas ou saliências do molde. As rebarbas ou saliências do molde não devem exceder 0,010” (0,254
mm) por lado.
JEDEC Equivalente: MO-047
Desenho nº C04-048

DS30569C-página 156 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
APÊNDICE A: HISTÓRICO DE REVISÃO APÊNDICE B: DISPOSITIVO
DIFERENÇAS
Revisão A (dezembro de 1999) As diferenças entre os dispositivos listados nestes dados
Folha de dados original para a família PIC16F870/871. são mostradas na Tabela B-1.

Revisão B (abril de 2003)


Esta revisão inclui as características DC e AC
Gráficos e Tabelas. As Especificações Elétricas em
A seção 14.0 foi atualizada e houve
pequenas correções no texto da folha de dados.

Revisão C (janeiro de 2013)


Adicionada uma nota a cada desenho de contorno de pacote.

TABELA B-1: DIFERENÇAS DO DISPOSITIVO

Característica PIC16F870 PIC16F871

Memória de programa no chip (Kbytes) 2K 2K

Memória de dados (bytes) 128 128

Bloco de inicialização (bytes) 2048 512

Opção de baixa potência do temporizador1 Sim Não

Portas de E/S Portas A, B, C Portas A, B, C, D, E


Canais A/D 5 8

Interface de memória externa Não Não

Tipos de pacote 28 pinos DIP, SOIC, SSOP PDIP de 40 pinos, PLCC de 44 pinos, TQFP

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 157


Machine Translated by Google

PIC16F870/871
APÊNDICE C: CONVERSÃO APÊNDICE D: MIGRAÇÃO DE
CONSIDERAÇÕES MÉDIO A
DISPOSITIVOS MELHORADOS
Este apêndice discute as considerações para a conversão de
versões anteriores de um dispositivo para as versões anteriores. Uma discussão detalhada das diferenças entre os
listados nesta folha de dados. Normalmente, essas alterações são dispositivos MCU de médio porte (ou seja, PIC16CXXX) e o
devido às diferenças na tecnologia de processo utilizada. dispositivos aprimorados (ou seja, PIC18FXXX) é fornecido em
Um exemplo deste tipo de conversão é de um AN716, “Migrando Projetos de PIC16C74A/74B para
PIC17C756 para um PIC18F8720.
PIC18C442.” As mudanças discutidas, enquanto o dispositivo
Não aplicável específicos, são geralmente aplicáveis a todas as gamas médias a
migrações de dispositivos aprimoradas.

Esta Nota de Aplicação está disponível como Número de Literatura


DS00716.

DS30569C-página 158 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
APÊNDICE E: MIGRAÇÃO DE
HIGH-END TO
DISPOSITIVOS MELHORADOS

Uma discussão detalhada do caminho de migração e as diferenças


entre os dispositivos MCU de ponta (ou seja,
PIC17CXXX) e os dispositivos aprimorados (ou seja,
PIC18FXXXX) é fornecido em AN726, “PIC17CXXX para
Migração PIC18CXXX.” Esta Nota de Aplicação é
disponível como Literatura Número DS00726.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 159


Machine Translated by Google

PIC16F870/871
NOTAS:

DS30569C-página 160 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
ÍNDICE
UMA
Temporizador1 ................................................. ......................... 50
Temporizador2 ......................... .............................................. 53
DE ANÚNCIOS ............................................... ....................................... 79
USART Assíncrono Receber......................... 68 USART Recepção
Requisitos de aquisição ........ ................................... 82 Registrador
Assíncrona (Modo de 9 bits) ..... ........ 70 USART
ADCON0........... ....................................... 79 Registro
Transmissão ........................................ ......... 66 Temporizador de
ADCON1.... .................................................. 79 Bit
ADIF.............................................. ......................... 80 Registro Watchdog .............................. .......................... 99
BOR. Consulte Reinicialização de Brown-out.
ADRESH ....................... ......................... 79 Cadastro
Bit BRGH .................................................. ......................... 63 Reinicialização
ADRSL ............ ......................................... 79 Pinos da Porta
de Brown-out (BOR)............ ......................... 87, 91, 92, 93 Status BOR
Analógica ..... ............................................. 41, 42 Associados
(BOR Bit) ............... ......................... 23
Registradores e Bits .................................. 85 Calculando o Tempo
de Aquisição ....... ......................... 82 Configurando os pinos da porta C
analógica.......... ......................... 83 Configurando a
Compiladores
Interrupção ....................... ......................... 81 Configurando o
C MPLAB C17.............................................. ............... 112 MPLAB
Módulo........................ ......................... 81 Relógio de
C18 .............................. .............................. 112 MPLAB
conversão... .................................................. ... 83
C30................ ............................................. 112 Capturar/Comparar /
Conversões ............................................. ................... 84
PWM (CCP) .......................................... 55 Registros Associados Capturar,
Atrasos .................................... ......................................... 82 Efeitos
Comparar e Temporizar1......................... 59 PWM e
de um RESET . .................................................. .. 85 bits GO/
Temporizador2............ ......................... 60 Modo de
DONE................................................ ................... 80 Impedância do
Captura .......... ........................................ 56
Interruptor de Amostragem Interno (Rss) ................ 82 Operação
CCP1IF .................................................. .......... 56 Pré-
Durante o Sono... ......................................... 85 Registros de
escalonador .................................. ......................... 56 Recursos
resultados...... .................................................. .. 84 Impedância da
de Cronômetro CCP ....................... ......................... 55
fonte ............................................. ......... 82 Atrasos de
Comparar a Saída de Gatilho Especial do CCP1........ ......... 57 Modo
tempo ....................................... ......................... 82 Classificações
Comparar ......................................... ......................... 57 Modo de
Máximas Absolutas ......................... ......................... 117 Registro
interrupção do software......................... ............ 57 Acionador
ADCON0 ....................... .......................................... 13 Registro
de Evento Especial .................. ......................... 57 Modo
ADCON1..... .................................................. ........ 14 Registros
PWM.............................. ....................................... 58 Ciclo de
ADRESH .......... .................................................. 13 Registro
Trabalho ........ .................................................. 58 Exemplo de
ADRESL ............................................. .................. 14 Conversor Analógico-
Frequências/Resoluções (tabela).......... 59 Período
Digital. Veja A/D.
PWM ......................... ......................... 58 Configuração para
Notas de Aplicação
operação PWM ....................... ............... 59 Gatilho de Evento
AN552 (Implementando o Despertar ao Pressionar a Tecla) ......... 35
Especial e Conversões A/D .............. 57 CCP. Consulte
AN556 (Implementando uma Leitura de Tabela) ....................... .... 24
Capturar/Comparar/PWM.
Montador MPASM Montador ............................................. ......... 111
Registros Associados de Recepção Assíncrona ....................... ..............
69 Recepção Assíncrona (Modo 9 bits)
Registro CCP1CON................................................ ............ 13 Bit
CCP1M0 .............................. ......................... 55 CCP1M1
Bit .......... .................................................. ............ 55 Bit
Registros Associados ........................................................ .. 71
CCP1M2 .............................. ......................... 55 CCP1M3
B Bit ......... .................................................. ............ 55 Bits
CCP1X .................................. ......................................... 55 CCP1Y
Banco, Memória de Dados ............................................. ......... 11 Gerador
Bit ........ .................................................. ................ 55 Registro
de Taxa de Transmissão (BRG)
CCPR1H .............................. ......................... 13, 55 Registro
Registros Associados ........................................................ .. 63
CCPR1L ................... ......................... 13, 55 Exemplos de código Alterando
Diagramas de Blocos A/D ............................................. ....................................
81 Modelo de Entrada Analógica .......... ......................................... 82 entre Prescalers de Captura ... .......... 56 Leitura de dados de
EEPROM .................................. ......................... 29 Gravação de
Operação do Modo de Captura ... ......................................... 56
dados EEPROM ........................ .............. 29 Leitura do programa
Operação do modo de comparação ..... ......................... 57 Lógica de
FLASH.... .................................... 30 Gravação de programa
interrupção .......... .................................................. . 97 Circuito de
FLASH.. ............................................. 31 Endereçamento
REINICIALIZAÇÃO no chip ........................................ ... 91
Indireto. .................................................. .. 24 Inicializando o
PIC16F870.............................................. ......................... 5
PIC16F871......................... ....................................... 6 PORTC PORTA ............................................. ......... 33 Salvando os Registros
(Substituição de Saída Periférica) ......................... 37 PORTD (No STATUS, W e PCLATH na RAM ....................... ......................... 98

modo de porta de E/S)............... ......................... 38 PORTD e


PORTE (Porta Escrava Paralela).............. .... 42 PORTE (No modo
Dados de operação protegidos
de porta de E/S).................................... ...... 39 Modo
por código EEPROM e memória de programa FLASH ........... 31
PWM ........................ ......................................... 58 Pinos RA3:RA0
e RA5.. ......................................... 33 Pino RA4/ Proteção de código ........................... ......................... 87, 101 Calculado

T0CKI. .................................................. ......... 33 Pinos GOTO.............. .................................................. 24 Bits de


RB3:RB0 ........................................ ......................... 35 Pinos Configuração ............................................. ............... 87 Palavra de
RB7:RB4 ................... ......................................... 35 Temporizador0/ configuração .............................. ......................... 88 Considerações de
conversão.................. .............................. 158
WDT Pré-escalonador .... .......................................... 45

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 161


Machine Translated by Google

PIC16F870/871
D Endereçamento Indireto ........................................................ ..........
Dados EEPROM ................................................. .................... 27 25 Registro FSR .................................. ......................... 11,
24 Registro INDF ........................ ......................... 24
Registros Associados .................... ......................... 32
Proteção de Código ........................ ......................... 31 Descrições das Instruções ......... ....................................... 105
Formato de Instrução.... .................................................. ....... 103
Leitura ......... .................................................. ....... 29
Conjunto de Instruções ........................................ .........................
Proteção contra gravação espúria ........................................ ....
103 ADDLW......... ........................................ 105
31 Verificação de Gravação .................................... .........................
ADDWF .................................................. ................... 105
31 Escrevendo para ......................... .........................................
ANDLW .................................... ....................................... 105
29 Memória de dados... .................................................. .......... 11
ANDWF........ .................................................. ........... 105
Seleção de Banco (RP1:RP0 Bits) ....................... ...............
BCF ........................................ ....................................... 105
11 Registros de Uso Geral .............................. ........... 11
BSF........... .................................................. .............. 105
Mapa de Arquivo de Registro .............................. .........................
BTFSC .................... .................................................. 105
12 Registros de Funções Especiais ......................... ...............
BTFSS .................................................... ......................... 105
13 Gráficos e Tabelas de Características DC e AC ........ 137 DC C
CHAMADA .......................... ......................................... 106
características PIC16F870/871 (Estendido) ......................................
CLRF . .................................................. ......................... 106
123 PIC16F870/871 ( Industrial).........................................
CLRW .......................... ......................................... 106
121 PIC16F870/871 (Industrial, Estendido) e PIC16LF870/871
CLRWDT .... .................................................. ............ 106
(Comercial, Industrial)........ 119 Placas de Demonstração
COMF ................................... ................................... 106
PICDEM 1 .......................... ......................... 114
DECF.......... .................................................. ......... 106
PICDEM 17 .......... .................................................. ... 114 PICDEM
DECFSZ ........................................ ......................... 107 IR
18R PIC18C601/801.............................. 115 PICDEM 2
PARA ................... .................................................. 107
Plus ... .................................................. .... 114 PICDEM 3
INCF ............................................. ......................... 107
PIC16C92X ............................................. ... 114 PICDEM
INCFSZ ...................... .............................................. 107
4 ................................................... ......................... 114
IORLW. .................................................. ................... 107
PICDEM LIN PIC16C43X ......................... ................ 115
IORF ................................... ......................................... 107
PICDEM USB PIC16C7X5.............................. .......... 115
MOVF ....... .................................................. .............. 108
PICDEM.net Internet/Ethernet ........................ 114 Suporte
MOVLW .................................... .................................. 108
ao Desenvolvimento ............................................. ......... 111
MOVWF......... .................................................. .... 108
Dispositivo Di diferenças .................................................... ...........
NOP .................................................... ..............................
157 Visão geral do dispositivo .................................. .........................
108 RETFIE .................. .................................................. 108
5 Endereçamento Direto............... ........................................ 25
RETLW ................................................. ......................... 108
RETORNO .......................... ......................................... 109
RLF......... .................................................. .........................
E 109 RRF .............................. ......................................... 109
DORMIR .... .................................................. ................ 109
Registo EEADR ........................................................ ................. 15
SUBLW .............................. ....................................... 109
Registro EEADRH .............................. ......................... 15 Registro
SUBWF....... .................................................. ............ 109
EECON1......... ......................................... 15, 27 Registro
SWAPF ........................................ ......................... 110
EECON2.. .................................................. ..... 15, 27 Registro
XORLW ............... .................................................. ... 110
EEDATA ........................................ ....................... 15 Registro
XORWF ................................................... ......................... 110
EEDATH ........................ ....................................... 15 Características
Elétricas........ .......................................... 117 Tabela Resumo ........................ .............................. 104
Errata ..... .................................................. ......................... 4 Interrupção INT (RB0/INT). Consulte Fontes de interrupção.
INTCON .................................................... .................................. 15
Ferramentas de Avaliação e Programação................ .................. 115
Registro INTCON ......................... ........................................ 13, 15
F GIE Bit ..... .................................................. ......... 18 INTE
Instruções de Firmware................................................ ........ 103 Bit .............................. ......................................... 18 INTF
Memória de Programa FLASH ....................................... .............. Bit ....... .................................................. .............. 18 PEIE
27 Registros Associados .................................... ......... 32 Bit ................................... ................................... 18 RBIE
Proteção de Código .............................. ......................... 31 Bit ................... .................................................. ......... 18
Bits de configuração e estado de leitura/gravação .............. ...... RBIF Bit ........................................ ......................... 18, 35
32 Leitura ....................................... .................................. 30 T0IE Bit ......... .................................................. .. 18 Interruptor
Proteção contra gravação espúria .................. .............................. de Amostragem Interna (Rss) Impedância ....................... 82 Fontes
31 Proteção contra gravação ....................... ......................... de Interrupção ............ ............................................. 87, 96
32 Verificação de Gravação .......... .................................................. ..... Interrupção- On-Change (RB7:RB4).................................. 35
31 Escrevendo para ....................................... ......................... RB0/INT Pino, Externo.. ......... ....................................... 97
30 Registro FSR .......... ....................................... 13, 14, 15 TMR0 Estouro......... .................................................. 97
USART Receber/Transmitir Concluído .......................... 61
EU

Interrupções, Salvamento de Contexto Durante ............ .......................... 98


Portas de E/S ............................................. ......................... 33
Localizações de ID ............... ......................................... 87 , 101
Depurador In-Circuit........................................ ......... 87, 101 In-
Circuit Serial Programming (ICSP) ........................ 87, 102 INDF
Register .................................................. ......... 13, 14, 15

DS30569C-página 162 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Interrupções, Habilitar Bits P
Habilitar Interrupção Global (Bit GIE) .......................... 18, 96
Embalagem................................................. ......................... 149 Informações
Interrupção na Mudança (RB7:RB4) Habilitar (Bit
de Marcação ........................ .......................... 149 Porta Escrava
RBI) ............................................. ......... 18, 97 Habilitar
Paralela (PSP) ............... ......................... 9, 38, 42 Registros
interrupção periférica (bit PEIE) ....................... 18 Habilitar RB0/INT
Associados ............... ......................... 43 RE0/RD/AN5
(INTE Bit) .................................. 18 Habilitar estouro TMR0 (Bit
Pino .......... ................................... 41, 42 RE1/WR/AN6
T0IE )................................. 18 Interrupções, Bits de Sinalização
Pino . ........................................ 41, 42 Pino RE2/CS/
Interrupção na Mudança (RB7:RB4)
AN7 ............................................. ....... 41, 42 Selecionar (PSPMODE
Bit) ....................... 38, 39, 40, 42 Registro
Sinalizador (Bit RBIF) ....................................... 18, 35, 97
PCL ............................................. ..... 13, 14, 15, 24 Registro
Sinalizador RB0/INT (Bit INTF) ............................................. .... 18
PCLATH ........................................ ......... 13, 14, 15, 24 Registro
Sinalizador de Transbordo TMR0 (Bit T0IF) ....................... 97
PCON ................................ ......................... 14, 15, 92 BOR
eu
Bit ....................... .................................................. 23 POR
Bit................................................ ....................... 23 P ICkit 1 FLASH
Carregamento do PC ............................................. ....................... 24
Starter Kit................................................ ... 115 Programador de
Programação Serial em Circuito de Baixa Tensão ................ 87, 102
desenvolvimento do PICSTART Plus......... 113 Registro
M PIE1 ..................... ............................................. 14, 15 Registro
PIE2 .................................................. ............. 14, 15 Descrições de
Master Clear (MCLR)
Pinagem PIC16F870 .............................. .................................... 7
Reinicialização MCLR, Operação Normal .......................... 91, 93
PIC16F871 .............. .................................................. ..... 8 Registro
Reinicialização MCLR, SLEEP........... ......................... 91, 93 Pino
PIR1 .......................................... ......................... 13 Registro
MCLR/VPP/THV ........ .................................................. 7, 8 Memória de
PIR2 ......................... ......................................... 13
Dados de Organização da Memória ............................................. ......... 11
POP .................................................. ................................... 24 POR.
Memória de Programa .................................. ......................... 11
Consulte Reinicialização ao ligar.
Migração de dispositivos avançados para dispositivos
avançados ............ ... 159 Migração de Mid-Range para Dispositivos
PORTA .................................................... ......................... 7, 8 Registros
Avançados ............. 158 MPLAB ASM30 Assembler, Linker,
Associados ............... ......................... 34 Registo
Librarian ................. .. 112 MPLAB ICD 2 In-Circuit
PORTA........... .................................... 33 Pino RA0/
Debugger ................................... 113 MPLAB ICE 2000 High Performance
AN0 .. .................................................. ........ 7, 8 pinos RA1/
Emulador Universal In-Circuit ............................................. ........ 113
MPLAB ICE 4000 Emulador Universal In-Circuit de Alto AN1 .............................. ......................... 7, 8 RA2/AN2/VREF-
Pino ............... ................................... 7 RA2/AN2/VREF-
Desempenho .............................. ......................... 113 Software de
Pino ... .................................................. 8 RA3/AN3/VREF+
Ambiente de Desenvolvimento Integrado
Pino ............................................. ........... 7 RA3/AN3/VREF+
MPLAB ....................... ......................... 111 MPLINK Ob ject Linker/MPLIB
Pino ........................ ......................... 8 Pino RA4/
Object Librarian ................ 112
T0CKI ........................ ......................... 7, 8 pinos RA5/
AN4 .......... .................................................. 7, 8 Registo
O TRISA............................................. .............. 33 Registo
Descrições dos Campos OPCODE.............................................. 103 PORTA .................................... ......................................... ... 13 PORTA
OPÇÃO .................................................. ......................... 15 OPÇÃO B ............................................. ......................... 7, 8 Registro

Cadastro ........................ ............................................. 15 OPTION_REG PORTB .......... ......................................... 35 Ativação de pull-up ( Bit
Registrar .. ............................................. 14, 17 INTEG RBPU).............................................. 17 Borda RB0/INT Selecione
Pedaço ................................................. ............... 17 bits (Bit INTEDG) .......................... 17 Pino RB0/
PSA .............................. ......................................... 17 RBPU INT ............ .................................................. 7 , 8 Pino RB0/INT,
Bit...... .................................................. .............. 17 T0CS Externo ............................................. ...... 97 Pino
Bit ................................... .................................... 17 T0SE RB1 ........................................ ................... 7, 8 pinos
Bit........... .................................................. ......... 17 Pino OSC1/ RB2 ................... .................................................. 7, 8 pinos RB3/
CLKI .................................. ................................... 7, 8 pinos OSC2/ PGM ............................................. ............... 7, 8 pinos
CLKO .............. .................................................. 7 , 8 Configuração do RB4 .................................. ........................................ 7, 8 pinos
RB5 ...... .................................................. ............ 7, 8 pinos RB6/
oscilador............................................. ......... 87
HS ........ .................................................. ......... 89, 92 PGC.............................. ................................... 7, 8 pinos RB7/
LP ........................................ ................................... 89, 92 PGD........... ......................................... ............ 7, 8 RB7:RB4

RC ................... .................................................. ...... 89, 90, 92 Interrupção na Mudança ........................... ........ 97 RB7:RB4
XT ........................................ ................................... 89, 92 Oscilador, Habilitação de Interrupção na Mudança (Bit RBIE) ....................... .............
WDT......... .................................................. ......... 99 Osciladores Seleção 18, 97 RB7:RB4 Sinalizador de Interrupção na Mudança (Bit
de Capacitores ........................................ ............... 90 Ressonadores de RBIF).................... ................... 18, 35, 97 Registro
Cristal e Cerâmica .............................. .. 89 TRISB ........................ ......................... 35 Registro

RC.............................................. ......................... 90 PORTB......... .............................................. 13, 15

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 163


Machine Translated by Google

PIC16F870/871
PORTO................................................. .................................. 7, 8 Registros Modulação de largura de pulso.
Associados ................ ......................... 37 Registro Consulte Capturar/Comparar/PWM, Modo PWM.
PORTC .......... ......................................... 37 RC0/T1OSO/T1CKI EMPURRE................................................. ......................... 24
Pino ................................... 7, 8 RC1/ Pino
T1OSI ............................................. ......... 7, 8 pinos RC2/
R
CCP1 ....................... ........................ 7, 8 pinos BATER. Consulte Memória de dados.
RC3 ....................... ........................................ 7, 8 pinos Registo RCREG ........................................................ ................ 13 Registro
RC4.............................................. ......................... 7, 8 pinos RCSTA .............................. .................................. 13 ADICIONAR
RC5 ....................... ............................................. 7, 8 RC6 /TX/CK Bit .......... .................................................. ... 62 bits

Pin ............................................. ...... 7, 8, 62 pinos RC7/RX/ CREN .................................................. ......................... 62 FERR

DT.............................. ............ 7, 8, 62, 63 Registro Bit ......................... ......................................... 62 OERR

TRISC ....................... ......................... 37, 61 Registro Bit . .................................................. ......... 62 RX9

PORTC ....................... ........................ ............ 13 Bit .............................. ......................................... 62 bits

PORTA................................................. ....................................... 9, 42 Registros RX9D...... .................................................. .......... 62 Bit

Associados ..... ............................................. 38 Porta Escrava Paralela SPEN .................................. .................................. 61, 62 SREN
( PSP) Função .................................. 38 Registro Bit ................ .................................................. .. 62 Registrar

PORTD ............... ............................................. 38 Pino RD0/ Arquivo.............................................. ......................... 11 Mapa de Arquivo de


PSP0 ... .................................................. ......... 9 pinos RD1/ Registro......... ............................................. 12 Registradores ADC ON0 (Controle
PSP1 .................................. ......................... 9 pinos RD2/ A/D 0) ............................................. .. 79 ADCON1 (Controle A/D
PSP2 ................... ................................... 9 pinos RD3/ 1)......................................... ..... 80 CCP1CON (Controle de CCP
PSP3 .. .................................................. .......... 9 pinos RD4/ 1) .............................. .. 55 EECON1 (Controle de EEPROM 1) .......................
PSP4 .................................. ................... 9 pinos RD5/ 28 INTCON..... .................................................. ............... 18
PSP5 ................... ......................................... 9 pinos RD6/ OPÇÃO_REG ................................. ................... 17, 46 PCON (Controle de
PSP6 . .................................................. ........... 9 pinos RD7/ Potência) ................... .......................... 23 PIE1 (Habilitar Interrupção
PSP7 .............................. .................................. 9 Registro Periférica 1)................ ........... 19 PIE2 (Peripheral Interrupt Enable
TRISD .................... .................... ................... 38 Registro 2)........................... 21 PIR1 (Peripheral Interrupt Enable Sinalizador de
PORTD ................... ......................................... 13 solicitação de interrupção 1) ................ 20 PIR2 (Sinalizador de solicitação
PORTA......... .................................................. ......................... 9 Pinos da Porta de interrupção periférica 2) ................ 22 RCSTA (Receber Status e
Analógica ........................ ......................... 41, 42 Registros Controle) ....................... 62 STATUS ..................... ..................................................
Associados ........................ ......................... 41 Status completo do buffer 16 T1CON (Controle do Temporizador1) ............................................. 49
de entrada (Bit IBF) ......... ......................... 40 Estouro de buffer de entrada T2CON (Controle do Temporizador 2) ......... ......................... 53
(Bit IBOV) ....................... ............... 40 Status Cheio do Buffer de Saída (Bit TRISE .............. .................................................. ......... 40 TXSTA (Estado

OBF) .......................... ... 40 Registro de Transmissão e Controle) ....................... 61


PORTE .................................................. ............. 39 Seleção do modo PSP Reinicializar ....... .................................................. ................... 87, 91
(PSPMODE Bit) ........... 38, 39, 40, 42 RE0/RD/AN5 Reinicialização MCLR. Veja MCLR.

Pin..... .......................................... 9, 41, 42 RE1/WR /AN6


Pino ............................................. 9 , 41, 42 RE2/CS/AN7
Pino ........................................ ......... 9, 41, 42 Registro
TRISE .............................. ....................... 39 Registro Condições de RESET para Todos os Registros ....................... 93 Condições
PORTE .................................................. ............... 13 Postscaler, Atribuição WDT de RESET para Registro PCON ............ ........... 93 Condições de RESET
(Bit PSA) .......................... .......................17 Modo de desligamento. Veja DORMIR. para Contador de Programa......... 93 Condições de RESET para Registro
de STATUS....... ............ 93 Reinicialização Reinicialização de Brown-out
(BOR). Consulte Reinicialização de Brown-out (BOR).

Reinicialização ao ligar (POR) .............................. 87, 91, 92, 93 Temporizador de


inicialização do oscilador (OST) .............................. 87, 92 Status POR (Bit Reinicialização ao ligar (POR). Consulte Reinicialização ao ligar (POR).
POR).... .............................................23 Controle de Potência (PCON ) Reinicialização WDT. Consulte Temporizador de cão de guarda (WDT).

Registrar .................. 92 Desligamento (PD Bit) ....... ....................................... Histórico de Revisão................................................ ................ 157
91 Temporizador de inicialização (PWRT ) ......................................... 87,
92 Tempo limite (TO Bit) . .................................................. ..... 91
S
SCI. Consulte Interface
PR2 .......................................... ......................................... 15 PR2
Registo..... .................................................. .......... 14, 53 Prescaler, Timer0 de comunicação serial USART. Veja USART.

Atribuição (PSA Bit) ....................... ....17 Programador de dispositivo universal DORME ................................................. .................. 87, 91, 100 Simulador de

PRO MATE II .................... 113 Sistema de identificação do Software (MPLAB SIM) ....................... .............. 112 Simulador de Software

produto ......................................... 169 Condições de REINICIALIZAÇÃO (MPLAB SIM30) ....................... ... 112
SPBRG ................................................... ......................... 15 Registro
do contador de programa . .................................................. ... 93 Memória de
programa ............................................. ......... 11 Vetor de SPBRG .......... .................................................. .. 14 Recursos especiais da

interrupção .............................. .................................. 11 Mapa e CPU ............................................. .... 87 Registros de funções


Pilha .................. ....................................... 11 especiais ............................................. ....... 13 Resumo do Registro de Funções

Paginação..... .................................................. .......... 24 REINICIAR Especiais .......................... 13 Velocidade,

Vetor .................................. ......................... 11 Verificação do Operação ........ .................................................. ........ 1 Registro

Programa............... .......................................... 101 Programação, Instruções SSPADD ....................................... ......................... 15 Registro

do Dispositivo .. ......................... 103 SSPSTAT ....................... ......................... 15


Pilha .......... .................................................. ......................... 24
Transbordamento......................... .... ......................................... 24
Subfluxo ......... .................................................. ........ 24

DS30569C-página 164 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
Cadastro de STATUS ................................................. ......... 13, 15 PD Recepção Assíncrona com
Bit ........................................ ......................................... 91 PARA Detecção de Endereço............................................. ...... 71
Bit......... .................................................. ............... 91 Reinicialização de Brown-out ........................................ ................
Recepção mestre síncrona 129 Capturar/Comparar/PWM (CCP1) ........................ ..... 131
Registros Associados ........................................................ .. 75 CLKO e E/S ........................................ ................... 128 Relógio
Registros Associados de Transmissão Mestre Externo .................... .............................. 126 Leitura da Porta
Síncrona ............................................. ........ 73 Escrava Paralela (PSP) ........... ....................... 43 Gravação da
Recepção Escrava Síncrona Porta Escrava Paralela (PSP) ................... ............... 43 RESET,
Registros Associados ........................................................ .. 77 Watchdog Timer, Temporizador de Inicialização do Oscilador e
Registros Associados de Transmissão Síncrona de Temporizador de Inicialização ............... 129 Lento Tempo
Escravos ........................................... ........ 76 de subida (MCLR vinculado ao VDD) ....................... 96 Sequência
de tempo limite na inicialização (MCLR não vinculado ao VDD)
T
T1CKPS0 Bit................................................ ......................... 49 Caso 1 ................................................ ................ 95 Caso
T1CKPS1 Bit........................ .............................................. 49 Registro 2 .............................. ......................... 95
T1CON .................................................. ............... 13 T1OSCEN Sequência de tempo limite na
Bit .............................. ....................................... 49 T1SYNC inicialização (MCLR vinculado ao VDD) .............................. .......
Bit......... .................................................. .............. 49 T2CKPS0 95 Timer0 e Timer1 Relógio Externo ....................... 130 USART
Bit ................................... ....................................... 53 T2CKPS1 Recepção Assíncrona ...... ......................... 68 Recepção Síncrona
Bit......... .................................................. ............ 53 Registro USART (Mestre/Escravo) .... 133 Recepção Síncrona USART
T2CON .................................. .............................. 13
TAD .................. .................................................. .......... 83 Sequência (Modo Mestre, SREN) ....................................... 75
de tempo limite ....................... ......................... 92 Temporizador Transmissão Síncrona USART ......................... 73 Transmissão
0......... .................................................. ......... 45 Registros Síncrona USART (Mestre/Escravo) .............. ....................................
Associados .................................. ......................... 47 Seleção de 133 Despertar do SLEEP via Interrupção ...... .........................
Borda da Fonte do Relógio (Bit T0SE).................... ..... 17 Seleção 101 Simbologia do Parâmetro de Tempo .............................. ................
de Fonte de Relógio (Bit T0CS) ..................... 17 Relógio 125 Registro TMR0 .............................. .............................. 13, 15 bits
Externo .................................................. ........... 46 TMR1CS........... .................................................. ........ 49 Registro
Interromper ............................................. ......................... 45 TMR1H ....................................... ......................... 13 Registro
Habilitar estouro (Bit T0IE) ......... ......................... 18 Sinalizador TMR1L ....................... ............................................. 13 TMR1ON
de estouro (Bit T0IF)........... ......................... 97 Interrupção de Bit .. .................................................. ................... 49 Registro
estouro .......... .......................................... 97 Pré- TMR2 .................................... ........................................ 13 TMR2ON
escalonador..... .................................................. .............. 46 Bit ....... .................................................. .............. 53 TOUTPS0
T0CKI ................................... ....................................... 46 Bit.............................. ....................................... 53 TOUTPS1
Temporizador1........ .................................................. ....................... 49 Bit........ .................................................. ............ 53 TOUTPS2
Registros Associados ........................ ......................... 52 Modo Bit .............................. ................................... 53 TOUTPS3
Contador Assíncrono Leitura e Gravação em ................ ....................... Bit............ .................................................. ........ 53
51 Operação do Contador ............... ......................................... TRISA ........................................ ......................................... 15 Registo
50 Incrementando a Borda (figura) ..... .................................... 50 TRISA...... .................................................. ........... 14
Operação no Modo Contador Assíncrono........ ......... 51 Operação TRISB ........................................ ......................................... 15 Registro
no Modo de Contador Sincronizado ........ 50 Operação no Modo TRISB... .................................................. ........ 14, 15
de Temporizador ............ ......................... 50 TRISC ....................................... ......................................... 15 Registro
Oscilador ............... .................................................. ... 51 Seleção TRISC.... .................................................. .............. 14
do capacitor ............................................. 51 Pré- TRISD ................................... ......................................... 15 Registro
escalonador............................................. ......................... TRISD. .................................................. ................ 14 TR
52 Reinicialização do par de registros do Timer1 (TMR1H, ISE ................................................. ......................... 15 Registro
TMR1L) .................. .............................. 52 Reinicializando o TRISE............... .................................................. .. 14 Bit
Timer1 Usando uma Saída de Gatilho CCP........... 51 IBF ............................................. ......................... 40 IBOV
TMR1H................................................ ......................... 51 Bit .................... .................................................. 40 Bit
TMR1L ......................... .............................................. 51 OBF ............................................. ......................... 40 PSPMODE
Temporizador2. .................................................. .............................. Bit ........................ ................... 38, 39, 40, 42 Registrador
53 Registros Associados .................. ........... ....................... 54 TXREG ..................... ......................................... 13
Saída .............................. ......................................... 54 Pós- TXSTA .... .................................................. ......................... 15 Registro
escalonador . .................................................. ................ 53 Pré- TXSTA ....................... .................................... 14 BRGH
escalonador .............................. ......................... 53 Pré- Bit .. .................................................. ................ 61 Bit
escalonador e Pós-escalonador......... ................................... 54 CSRC .............................. ......................... 61 TRMT
Bit .......... .................................................. ........ 61 TX9
Diagramas de bits. .................................................. ......................... 61 Bit
temporização Conversão A/D................................................ ............. TX9D .............................. ......................................... 61 TXEN
135 Transmissão Mestre Assíncrona .......................... 67 Bit.... .................................................. ............... 61
Transmissão Mestre Assíncrona (Voltar
voltar) ............................................... ..... 67 Recepção
assíncrona com primeiro byte de
endereço ........................................ ........ 71

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 165


Machine Translated by Google

PIC16F870/871
DENTRO Dentro

Transmissor receptor assíncrono síncrono universal. Acordar do SONO............................................. .... 87, 100
Veja USART Interrupções .................................... ......................... 93 Reinicialização
USART................................................. ......................... 61 Habilitar Detecção MCLR ....................... ....................................... 93 Diagrama de
de Endereço (Bit ADDEN) ........... ............... 62 Modo temporização ..... .................................................. 101 Redefinir
Assíncrono .............................. .........66 Recepção WDT ............................................. ................... 93
Assíncrona .................................. ...... 68 Recepção Assíncrona (Modo Resumo do registro
de 9 bits) ....................... ..... 70 Recepção Assíncrona com Detecção de do temporizador do watchdog ............................................. ......... 99
Endereço. Temporizador Watchdog (WDT) .............................. ............ 87, 99 Habilitar
Consulte Recepção assíncrona (modo de 9 bits). (Bit WDTEN) .............................. ......................... 99 Pós-escalador.
Recepção Assíncrona .................................. 69 Transmissor Veja Postscaler, WDT.
Assíncrono . ......................................... 66 Gerador de taxa de Considerações de Programação ....................................... 99 Oscilador
transmissão (BRG).. ......................... 63 Fórmula da Taxa de RC........ .................................................. ..... 99 Período de tempo
Baud ......... ................................... 63 Taxas de transmissão, limite ........................................ .......... 99 Reinicialização WDT,
modo assíncrono (BRGH = 0) ... .............................................. 64 Operação Normal ....................... ... 91, 93 WDT Reinicialização,
Taxas de transmissão, Modo Assíncrono (BRGH = SLEEP................................................ ...... 91, 93 Gravação de
1) ............................................. ......65 Seleção de alta taxa de Verificação de Dados EEPROM e Memória de Programa FLASH ........... 31
transmissão (Bit BRGH)......... 61 WWW, Suporte On-Line ............... ....................................... 4
Amostragem ............ ......................................... 63 Seleção da
fonte do relógio (Bit CSRC)........................ 61 Ativação de
recebimento contínuo (Bit CREN).. ...... 62 Erro de enquadramento (bit
FERR) ........................ ................... 62 Erro de saturação (bit
OERR) ................... ................... 62 Receber Dados, 9º bit (RX9D
Bit) ................... ...........62 Ativação de recebimento, 9 bits (RX9
Bit) ....................... ...... 62 Habilitação de porta serial (bit
SPEN) .............................. 61, 62 Habilitação de recepção única (bit
SREN) . ......................... 62 Modo mestre
síncrono .................. ......................... 72 Recepção Master
Síncrona........................ ........... 74 Transmissão mestre
síncrona .......................... 72 Modo escravo
síncrono .. ......................................... 76 Recepção de escravo
síncrona..... ......................... 77 Transmissão Síncrona do
Escravo ............... ....................... 76 Transmissão de dados, 9º bit
(TX9D).................... ...... 61 Habilitação de Transmissão (Bit
TXEN) ....................... ................ 61 Ativação de transmissão, nove bits
(TX9 bits) ....................... .....61 Transmitir Status do Registro de
Deslocamento (Bit TRMT)........ 61

DS30569C-página 166 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871

O SITE DO MICROCHIP SUPORTE AO CLIENTE


A Microchip fornece suporte online através do nosso site WWW em Os usuários de produtos Microchip podem receber assistência
www.microchip.com. Este site é usado como um meio através de vários canais:
para tornar arquivos e informações facilmente disponíveis para
• Distribuidor ou Representante
clientes. Acessível usando sua Internet favorita
• Escritório de vendas local
navegador, o site contém o seguinte
em formação: • Engenheiro de Aplicação de Campo (FAE)
• Suporte técnico
• Suporte ao Produto - Folhas de dados e erratas,
notas de aplicativos e programas de amostra, recursos de Os clientes devem entrar em contato com seu distribuidor,
design, guias do usuário e documentos de suporte de representante ou engenheiro de aplicação de campo (FAE) para
hardware, versões de software mais recentes e software Apoio, suporte. Os escritórios de vendas locais também estão disponíveis para ajudar
arquivado clientes. Uma lista de escritórios de vendas e locais é
incluído no verso deste documento.
• Suporte Técnico Geral - Perguntas Frequentes
Perguntas (FAQ), solicitações de suporte técnico, grupos O suporte técnico está disponível através do site
de discussão on-line, lista de membros do programa de no: http://microchip.com/support
consultores da Microchip
• Business of Microchip – Seletor de produtos e guias de
pedidos, últimos comunicados de imprensa da Microchip,
lista de seminários e eventos, listas de
Escritórios de vendas de microchip, distribuidores e
representantes de fábrica

NOTIFICAÇÃO DE MUDANÇA DE CLIENTE


SERVIÇO

O serviço de notificação ao cliente da Microchip ajuda a manter


clientes atuais em produtos Microchip. Assinantes
receberá notificação por e-mail sempre que houver
alterações, atualizações, revisões ou erratas relacionadas a um
família de produtos especificada ou ferramenta de desenvolvimento de interesse.

Para se registrar, acesse o site da Microchip em


www.microchip.com. Em “Suporte”, clique em
“Notificação de Alteração do Cliente” e siga as
instruções de registro.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 167


Machine Translated by Google

PIC16F870/871
RESPOSTA DO LEITOR
É nossa intenção fornecer a você a melhor documentação possível para garantir o uso bem-sucedido do seu Microchip
produtos. Se você deseja fornecer seus comentários sobre organização, clareza, assunto e maneiras pelas quais nossos
documentação pode atendê-lo melhor, envie seus comentários por FAX para o Gerente de Publicações Técnicas em
(480) 792-4150.

Liste as informações a seguir e use este esboço para nos fornecer seus comentários sobre este documento.

PARA: Gerente de Publicações Técnicas Total de páginas enviadas ________


RE: Resposta do Leitor

De nome

Companhia
Endereço

Cidade / Estado / CEP / País


- -
Telefone: (_______) _________ _________ FAX: (______) _________ _________

Aplicação (opcional):

Você gostaria de uma resposta? SN

Dispositivo: PIC16F870/871 Número da Literatura: DS30569C

Perguntas:

1. Quais são as melhores características deste documento?

2. Como este documento atende às suas necessidades de desenvolvimento de hardware e software?

3. Você considera a organização deste documento fácil de seguir? Se não, por quê?

4. Que acréscimos ao documento você acha que melhorariam a estrutura e o assunto?

5. Que exclusões do documento podem ser feitas sem afetar a utilidade geral?

6. Existe alguma informação incorreta ou enganosa (o quê e onde)?

7. Como você melhoraria este documento?

DS30569C-página 168 ÿ 2000-2013 Microchip Technology Inc.


Machine Translated by Google

PIC16F870/871
PIC16F870/871 SISTEMA DE IDENTIFICAÇÃO DE PRODUTO

Para encomendar ou obter informações, por exemplo, sobre preços ou entrega, consulte a fábrica ou o escritório de vendas indicado.

PARTE NO. -X /XX XXX


Exemplos:

Dispositivo Padrão do pacote de temperatura a) PIC16F870-I/SP 301 = Temp. Industrial, PDIP


Variar pacote, 20 MHz, limites normais de VDD , QTP
padrão #301.
b) PIC16F871-I/PT = Temp. Industrial, TQFP
pacote, 20 MHz, limites estendidos de VDD .
Dispositivo PIC16F870, PIC16F870T; Faixa VDD 4,0V a 5,5V
c) PIC16F871-I/P = Temp. Industrial, PDIP
PIC16F871, PIC16F871T; Faixa VDD 4,0V a 5,5V
pacote, 20 MHz, limites normais de VDD .
PIC16LF870X, PIC16LF870T; Faixa VDD 2,0V a 5,5V
PIC16LF871X, PIC16LF871T; Faixa VDD 2,0V a 5,5V d) PIC16LF870-I/SS = Temp. Industrial, SSOP
pacote, DC - 20 MHz, limites VDD estendidos .
F = Limites normais de VDD
LP = Limites de VDD estendidos
T = Em Fita e Carretel - SOIC, SSOP, TQFP e
Apenas pacotes PLCC.

Faixa de temperatura em branco(3) = 0°C a +70°C (Comercial)


EU

= -40°C a +85°C (Industrial)

Pacote PQ = MQFP (Métrica PQFP)


PT = TQFP (Thin Quad Flatpack)
SO = SO
SP = Mergulho de Plástico Fino
SS = SSOP
P = PDIP
eu = CLP

Padrão QTP, Código ou Requisitos Especiais (em


branco caso contrário)

Vendas e suporte
Folhas de dados
Os produtos suportados por uma folha de dados preliminar podem ter uma folha de errata descrevendo pequenas diferenças operacionais e soluções
alternativas recomendadas. Para determinar se existe uma folha de errata para um determinado dispositivo, entre em contato com um dos seguintes:

1. Seu escritório de vendas local da Microchip


2. O Site Mundial da Microchip (www.microchip.com)

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 169


Machine Translated by Google

PIC16F870/871
NOTAS:

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 170


Machine Translated by Google

Observe os seguintes detalhes do recurso de proteção de código em dispositivos Microchip:



Os produtos Microchip atendem às especificações contidas em sua Folha de Dados Microchip específica.


A Microchip acredita que sua família de produtos é uma das famílias mais seguras de seu tipo no mercado hoje, quando usado da maneira pretendida e em condições
normais.


Existem métodos desonestos e possivelmente ilegais usados para violar o recurso de proteção do código. Todos esses métodos, até onde sabemos, requerem o
uso dos produtos Microchip de uma maneira fora das especificações operacionais contidas nas Folhas de Dados da Microchip. Muito provavelmente, a pessoa que faz
isso está envolvida em roubo de propriedade intelectual.


A Microchip está disposta a trabalhar com o cliente que está preocupado com a integridade de seu código.


Nem a Microchip nem qualquer outro fabricante de semicondutores podem garantir a segurança de seu código. A proteção do código não significa que estamos
garantindo o produto como “inquebrável”.

A proteção do código está em constante evolução. Nós da Microchip estamos comprometidos em melhorar continuamente os recursos de proteção de código de nossos
produtos. Tentativas de quebrar o recurso de proteção de código da Microchip podem ser uma violação da Lei de Direitos Autorais do Milênio Digital. Se tais atos
permitir o acesso não autorizado ao seu software ou outro trabalho protegido por direitos autorais, você pode ter o direito de processar judicialmente sob essa Lei.

As informações contidas nesta publicação sobre o dispositivo Marcas registradas

aplicativos e similares são fornecidos apenas para sua conveniência


O nome e o logotipo Microchip, o logotipo Microchip, dsPIC, FlashFlex,
e pode ser substituído por atualizações. É sua responsabilidade
KEELOQ, KEELOQ logotipo, MPLAB, PIC, PICmicro, PICSTART, PIC32
certifique-se de que seu aplicativo atende às suas especificações.
logotipo, rfPIC, SST, SST Logo, SuperFlash e UNI/O são marcas registradas
A MICROCHIP NÃO FAZ REPRESENTAÇÕES OU
da Microchip Technology Incorporated in os EUA e outros países.
GARANTIAS DE QUALQUER TIPO, SEJAM EXPRESSAS OU
IMPLÍCITA, ESCRITA OU VERBAL, ESTATUTÁRIA OU
CASO CONTRÁRIO, RELACIONADOS ÀS INFORMAÇÕES, FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MTP, SEEVAL e
INCLUINDO, MAS NÃO SE LIMITANDO À SUA CONDIÇÃO, The Embedded Control Solutions Company são marcas registradas da Microchip

QUALIDADE, DESEMPENHO, COMERCIALIZAÇÃO OU Technology Incorporated nos EUA

ADEQUAÇÃO AO PROPÓSITO. A Microchip se isenta de qualquer responsabilidade


decorrentes dessas informações e de seu uso. Uso de microchip Silicon Storage Technology é uma marca registrada da Microchip
dispositivos em aplicações de suporte de vida e/ou segurança está inteiramente à Technology Inc. em outros países.
risco do comprador, e o comprador concorda em defender, indenizar e
Analog-for-the-Digital Age, Application Maestro, BodyCom, chipKIT, chipKIT
isenta a Microchip de todo e qualquer dano, reclamação,
logo, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks, dsSPEAK, ECAN,
processos ou despesas resultantes de tal uso. Nenhuma licença é
ECONOMONITOR, FanSense, HI-TIDE, In-Circuit Serial Programming, ICSP,
transmitida, implicitamente ou de outra forma, sob qualquer Microchip
Mindi , MiWi, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, mTouch,
direito de propriedade intelectual.
Omniscient Code Generation, PICC, PICC-18, PICDEM, PICDEM.net, PICkit,
PICtail, REAL ICE, rfLAB, Select Mode, SQI, Serial Quad I /O, Total Endurance,
TSHARC, UniWinDriver, WiperLock, ZENA e Z-Scale são marcas comerciais
da Microchip Technology Incorporated nos EUA e em outros países.

SQTP é uma marca de serviço da Microchip Technology Incorporated nos EUA

GestIC e ULPP são marcas registradas da Microchip Technology Germany


II GmbH & Co. & KG, uma subsidiária da Microchip Technology Inc., em
outros países.

Todas as outras marcas registradas aqui mencionadas são propriedade de


suas respectivas empresas.

© 2000-2013, Microchip Technology Incorporated, Impresso nos EUA, Todos os


direitos reservados.

Impresso em papel reciclado.

ISBN: 9781620769379

SISTEMA DE GESTÃO DA QUALIDADE A Microchip recebeu a certificação ISO/ TS-16949:2009 para sua sede mundial,
design e instalações de fabricação de wafer em Chandler e Tempe, Arizona;
CERTIFICADO PELA DNV Gresham, Oregon e centros de design na Califórnia e na Índia. Os processos e
procedimentos do sistema de qualidade da empresa são para seus PIC® MCUs e
dsPIC® DSCs, dispositivos de salto de código KEELOQ® , EEPROMs seriais,

== ISO/TS 16949 == microperiféricos, memória não volátil e produtos analógicos. Além disso, o sistema
de qualidade da Microchip para o projeto e fabricação de sistemas de desenvolvimento
é certificado pela ISO 9001:2000.

ÿ 2000-2013 Microchip Technology Inc. DS30569C-página 171


Machine Translated by Google

Vendas e serviços em todo o mundo

AMÉRICAS ÁSIA-PACÍFICO ÁSIA-PACÍFICO EUROPA


Escritório corporativo Escritório Ásia-Pacífico Índia - Bangalore Áustria - Peixe-gato
2355 West Chandler Blvd. Telefone: 91-80-3090-4444 Telefone: 43-7242-2244-39
Suítes 3707-14, 37º andar
Chandler, AZ 85224-6199 Fax: 91-80-3090-4123 Fax: 43-7242-2244-393
Torre 6, O Portal
Telefone: 480-792-7200
Harbour City, Kowloon Índia - Nova Deli Dinamarca - Copenhague
Fax: 480-792-7277 Telefone: 45-4450-2828
Hong Kong Telefone: 91-11-4160-8631
Suporte técnico: http:// Telefone: 852-2401-1200 Fax: 45-4485-2829
Fax: 91-11-4160-8632
www.microchip.com/ Fax: 852-2401-3431
Índia - Pune França paris
Apoio, suporte
Austrália - Sidney Telefone: 91-20-2566-1512 Telefone: 33-1-69-53-63-20
Endereço Web:
Telefone: 61-2-9868-6733 Fax: 91-20-2566-1513 Fax: 33-1-69-30-90-79
www.microchip.com
Fax: 61-2-9868-6755
Japão - Osaka Alemanha - Munique
Atlanta
China - Pequim Telefone: 49-89-627-144-0
Duluth, GA Telefone: 81-6-6152-7160
Telefone: 86-10-8569-7000 Fax: 49-89-627-144-44
Telefone: 678-957-9614 Fax: 81-6-6152-9310
Fax: 86-10-8528-2104
Fax: 678-957-1455 Itália - Milão
Japão - Tóquio
China - Chengdu Telefone: 39-0331-742611
Boston Telefone: 81-3-6880-3770
Tel: 86-28-8665-5511 Fax: 39-0331-466781
Westborough, MA Fax: 81-3-6880-3771
Fax: 86-28-8665-7889 Holanda - Drunen
Telefone: 774-760-0087
Coreia - Daegu
Fax: 774-760-0088 China - Chongqing Telefone: 31-416-690399
Telefone: 82-53-744-4301
Telefone: 86-23-8980-9588 Fax: 31-416-690340
Chicago Fax: 82-53-744-4302
Fax: 86-23-8980-9500
Itasca, IL Coreia - Seul Espanha - Madri
Telefone: 630-285-0071 Telefone: 34-91-708-08-90
China - Hangzhou Telefone: 82-2-554-7200
Fax: 630-285-0075 Telefone: 86-571-2819-3187 Fax: 34-91-708-08-91
Fax: 82-2-558-5932 ou
Cleveland Fax: 86-571-2819-3189 82-2-558-5934 Reino Unido - Wokingham
Telefone: 44-118-921-5869
Independência, OH China - RAE de Hong Kong Malásia - Kuala Lumpur
Telefone: 216-447-0464 Telefone: 852-2943-5100 Fax: 44-118-921-5820
Telefone: 60-3-6201-9857
Fax: 216-447-0643 Fax: 852-2401-3431 Fax: 60-3-6201-9859
Dallas
China - Nanquim Malásia - Penang
Addison, Texas Telefone: 86-25-8473-2460 Telefone: 60-4-227-8870
Telefone: 972-818-7423 Fax: 86-25-8473-2470 Fax: 60-4-227-4068
Fax: 972-818-2924
China - Qingdao Filipinas - Manila
Detroit Telefone: 86-532-8502-7355 Telefone: 63-2-634-9065
Farmington Hills, MI Fax: 86-532-8502-7205 Fax: 63-2-634-9069
Telefone: 248-538-2250
Fax: 248-538-2260 China - Xangai Cingapura
Telefone: 86-21-5407-5533 Telefone: 65-6334-8870
Indianápolis Fax: 86-21-5407-5066 Fax: 65-6334-8850
Noblesville, IN
Telefone: 317-773-8323 China - Shenyang Taiwan - Hsin Chu
Fax: 317-773-5453 Telefone: 86-24-2334-2829 Telefone: 886-3-5778-366
Fax: 86-24-2334-2393 Fax: 886-3-5770-955
Os anjos
China - Shenzhen
Missão Velha, CA Taiwan - Kaohsiung
Telefone: 949-462-9523
Telefone: 86-755-8864-2200 Telefone: 886-7-213-7828
Fax: 949-462-9608 Fax: 86-755-8203-1760 Fax: 886-7-330-9305

Santa Clara China - Wuhan Taiwan - Taipé


Telefone: 86-27-5980-5300 Telefone: 886-2-2508-8600
Santa Clara, CA
Telefone: 408-961-6444 Fax: 86-27-5980-5118 Fax: 886-2-2508-0102

Fax: 408-961-6445 China - Xian Tailândia - Banguecoque


Toronto Telefone: 86-29-8833-7252 Telefone: 66-2-694-1351
Fax: 86-29-8833-7256 Fax: 66-2-694-1350
Mississauga, Ontário,
Canadá China - Xiamen
Telefone: 905-673-0699 Telefone: 86-592-2388138
Fax: 905-673-6509 Fax: 86-592-2388130

China - Zhuhai
Telefone: 86-756-3210040
Fax: 86-756-3210049 29/11/12

DS30569C-página 172 ÿ 2000-2013 Microchip Technology Inc.

Você também pode gostar