Você está na página 1de 180

Machine Translated by Google

PIC16F627A/628A/648A
Ficha de dados

CMOS de 8 bits baseado em flash

Microcontroladores com tecnologia nanoWatt

© 2009 Microchip Technology Inc. DS40044G


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 logotipo Microchip, o logotipo Microchip, dsPIC, KEELOQ, logotipo
e pode ser substituído por atualizações. É sua responsabilidade
KEELOQ , MPLAB, PIC, PICmicro, PICSTART, rfPIC e UNI/O são marcas
certifique-se de que seu aplicativo atende às suas especificações.
registradas da Microchip Technology Incorporated nos EUA e em outros países.
A MICROCHIP NÃO FAZ REPRESENTAÇÕES OU
GARANTIAS DE QUALQUER TIPO, SEJAM EXPRESSAS OU
IMPLÍCITA, ESCRITA OU VERBAL, ESTATUTÁRIA OU FilterLab, Hampshire, HI-TECH C, Linear Active Thermistor, MXDEV, MXLAB,
CASO CONTRÁRIO, RELACIONADOS ÀS INFORMAÇÕES, SEEVAL e The Embedded Control Solutions Company são marcas registradas

INCLUINDO, MAS NÃO SE LIMITANDO À SUA CONDIÇÃO, da Microchip Technology Incorporated nos EUA
QUALIDADE, DESEMPENHO, COMERCIALIZAÇÃO OU
ADEQUAÇÃO AO PROPÓSITO. A Microchip se isenta de qualquer responsabilidade Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM,
decorrentes dessas informações e de seu uso. Uso de microchip dsPICDEM.net, dsPICworks, dsSPEAK, ECAN, ECONOMONITOR, FanSense,
dispositivos em aplicações de suporte de vida e/ou segurança está inteiramente à HI-TIDE, In-Circuit Serial Programming, ICSP, Mindi, MiWi, MPASM, MPLAB
risco do comprador, e o comprador concorda em defender, indenizar e Certified logo, MPLIB, MPLINK, mTouch, Octopus, Onscient Code Generation,
isenta a Microchip de todo e qualquer dano, reclamação, PICC, PICC-18, PICDEM, PICDEM.net, PICkit, PICtail, PIC32 logo, REAL ICE,
processos ou despesas resultantes de tal uso. Nenhuma licença é rfLAB, Select Mode, Total Endurance, TSHARC, UniWinDriver, WiperLock e
transmitida, implicitamente ou de outra forma, sob qualquer Microchip ZENA são marcas comerciais da Microchip Technology Incorporated nos EUA e
direito de propriedade intelectual. em outros países.

SQTP é uma marca de serviço da Microchip Technology Incorporated nos EUA

Todas as outras marcas registradas aqui mencionadas são propriedade de


suas respectivas empresas.

© 2009, Microchip Technology Incorporated, Impresso nos EUA, Todos os


direitos reservados.

Impresso em papel reciclado.

A Microchip recebeu a certificação ISO/ TS-16949:2002 para sua sede mundial,


design e instalações de fabricação de wafer em Chandler e Tempe, Arizona;
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,
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.

DS40044G-página 2 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
Microcontroladores CMOS de 8 bits baseados em flash de 18 pinos
com tecnologia nanoWatt

CPU RISC de alto desempenho: Recursos de baixa potência:

• Velocidades de operação de DC - 20 MHz • Corrente em espera:

• Capacidade de interrupção - 100 nA @ 2,0 V, típico

• Pilha de hardware profunda de 8 níveis • Corrente de Operação:

• Modos de endereçamento direto, indireto e relativo - 12 ÿA @ 32 kHz, 2,0 V, típico


• 35 instruções de uma única palavra: - 120 ÿA @ 1 MHz, 2,0 V, típico

- Todas as instruções de ciclo único, exceto ramos • Corrente do temporizador do watchdog:

- 1 ÿA @ 2,0 V, típico
Características especiais do microcontrolador: • Corrente do oscilador do Timer1:

• Opções de oscilador interno e externo: - 1,2 ÿA @ 32 kHz, 2,0 V, típico

- Oscilador interno de precisão de 4 MHz calibrado de fábrica • Oscilador Interno de dupla velocidade:
para ±1% - Tempo de execução selecionável entre 4 MHz e
48 kHz
- Oscilador interno de 48 kHz de baixa potência

- Suporte de oscilador externo para cristais e ressonadores - 4 ÿs de despertar do sono, 3,0 V, típico

• Modo de suspensão com economia de energia Características periféricas:


• Pull-ups fracos programáveis em PORTB • 16 pinos de E/S com controle de direção individual
• Pino de entrada/limpeza mestre multiplexado • Dissipador/fonte de alta corrente para acionamento direto de LED
• Watchdog Timer com oscilador independente para operação • Módulo comparador analógico com:
confiável
- Dois comparadores analógicos
• Programação de baixa tensão
- Referência de tensão programável no chip
• In-Circuit Serial Programming™ (através de dois pinos) (VREF) módulo
• Proteção de código programável - Referência interna ou externa selecionável
• Reinicialização de Brown-out
- As saídas do comparador são acessíveis externamente
• Reinicialização ao ligar • Timer0: temporizador/contador de 8 bits com 8 bits
• Temporizador de inicialização e temporizador de inicialização prescaler programável

do oscilador • Ampla faixa de tensão de operação (2,0-5,5 V) • Timer1: temporizador/contador de 16 bits com cristal externo/

• Faixa de temperatura industrial e estendida capacidade de relógio

• Célula Flash/EEPROM de alta resistência: • Timer2: temporizador/contador de 8 bits com registrador de


período de 8 bits, prescaler e postscaler
- Resistência Flash de 100.000 gravações
• Módulo de captura, comparação, PWM:
- Resistência de EEPROM de 1.000.000 de gravação
- Captura/comparação de 16 bits
- 40 anos de retenção de dados
- PWM de 10 bits

• Síncrono/Assíncrono Universal Endereçável


Receptor/Transmissor USART/SCI

Programa
Memória de dados
Memória PCC Temporizadores
Dispositivo E/S Comparadores USART
Flash SRAM EEPROM (PWM) 8/16 bits

(palavras) (bytes) (bytes)

PIC16F627A 1024 224 128 16 1 S 2 01/02

PIC16F628A 2048 224 128 16 1 S 2 01/02

PIC16F648A 4096 256 256 16 1 S 2 01/02

© 2009 Microchip Technology Inc. DS40044G-página 3


Machine Translated by Google

PIC16F627A/628A/648A
Diagramas de pinos

PDIP, SOIC

628A/
648A
27A/ RA2/AN2/VREF

RA3/AN3/CMP1

RA4/T0CKI/CMP2
2

3
1 18

17

16
RA1/AN1

RA0/YAN0

RA7/OSC1/CLKIN

RA5/MCLR/VPP 4 15 RA6/OSC2/CLKOUT

VSS 5 14 VDD

RB0/INT 6 13 RB7/T1OSI/PGD
PIC16F627A/
628A/
648A

RB1/RX/DT 7 12 RB6/T1OSO/T1CKI/PGC

RB2/TX/CK 8 11 RB5

RB3/CCP1 9 10 RB4/PGM

SSOP QFN de 28 pinos

CLKOUT
OSC2/
RA6/ OSC1/
RA7/ YAN0 RA1/
CLKIN RA0/ AN1 VDD RB5 RB6/
T1OSO/
T1CKI/PGD VDD
T1OSI/
PGC RB7/ PGM
RB4/

AN3/
RA3/ T0CKI/
CMP2
CMP1 RA4/ VREF
AN2/
RA2/ RA1/
AN1 YAN0
RA0/

2019 11
12
13
14
15
16
17
18 NC NC

28 26
27 24 25 22
23

RA5/MCLR/VPP 1 21 RA7/OSC1/CLKIN
PIC16F627A/628A/648A NC 2 20 RA6/OSC2/CLKOUT
4
6
5
3
12 10
9
8
7 VSS 3 19 VDD
PIC16F627A/628A 18
NC 4 17 NC
VSS PIC16F648A
5 VDD
NC 6 9
8 16 RB7/T1OSI/PGD
11
10 13
12 14
RB0/INT 7 15 RB6/T1OSO/T1CKI/PGC
VSS VSS
NC NC

RB0/
INT

CCP1
RB3/ RB5
RB1/
RX/
DT RB2/
TX/
CK

VREF
AN2/
RA2/
CMP1
AN3/
RA3/ MCLR/
RA5/
VPP
PGM
RB4/
T0CKI/
CMP2
RA4/ CCP1
RB3/
RB1/
RX/
DT RB2/
TX/
CK

DS40044G-página 4 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
Índice
1.0 Descrição Geral ............................................. .................................................. .................................................. ......................... 7 2.0 PIC16F627A/628A/648A
Variedades de Dispositivos......... .................................................. .................................................. .............. 9 3.0 Visão geral da
arquitetura ................................... .................................................. .................................................. .............................. 11 4.0 Organização da
Memória ............... .................................................. .................................................. ......................................... 17 5.0 Portas de E/
S ............................................. .................................................. .................................................. ......................................... 33 6.0 Módulo
Temporizador0 ........ ............... .................................................. .................................................. .................................................. 47 7.0 Módulo
Timer1 ............................................. .................................................. .................................................. .................................. 50 8.0 Módulo
Temporizador2 ................. .................................................. .................................................. .................................................. ....... 54 9.0 Módulo de Captura/
Comparação/PWM (CCP) ....................... .................................................. .................................................. .... 57 10.0 Módulo
Comparador ............................................. .................................................. .................................................. ......................... 63 11.0 Módulo de Referência de
Tensão ....................... .................................. .................................................. .............................................. 69 12,0 Universais Módulo Transmissor Receptor
Assíncrono Síncrono (USART) ............................................. ......................... 73 13.0 Memória EEPROM de
Dados .............. .................................................. .................................................. ......................................... 91 14.0 Recursos especiais do
CPU ................................................. .................................................. .................................................. 97 15.0 Resumo do Conjunto de
Instruções................................................ .................................................. .................................................. ........... 117 16.0 Suporte ao
Desenvolvimento .............................. .................................................. .................................................. ....................... 1 31 17.0 Especificações
Elétricas ............................................. .................................................. .................................................. .......... 135 18.0 Gráficos e Tabelas de Características DC e
AC .............................. .................................................. ....................................... 151 19.0 Informações de
Embalagem ........ .................................................. .................................................. .................................................. 163 Apêndice A: Histórico de Revisão da Folha de
Dados ............................................. .................................................. ............................................. 171 Apêndice B: Dispositivo
Diferenças .................................................... .................................................. .................................................. .. 171 Apêndice C: Migrações de
dispositivos............................................. ... .................................................. .................................................. ........ 172 Apêndice D: Migrando de outros dispositivos
PIC® ........................ .................................................. ......................................... 172 O site da
Microchip . .................................................. .................................................. .................................................. .......... 173 Serviço de Notificação de Mudança do
Cliente .............................. .................................................. .................................................. ......... 173 Suporte ao
Cliente ........................................ .................................................. .................................................. ................................... 173 Resposta do
Leitor .................... .................................................. .................................................. .............. ......................................... 174 Produto Sistema de
identificação ........................................ .................................................. .................................................. ......... 179

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@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 (consulte a última página)

Ao entrar em contato com um escritório de vendas, especifique qual dispositivo, revisão de silício e folha de dados (inclua o número da literatura) que você está
usando.

Sistema de Notificação do Cliente


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

© 2009 Microchip Technology Inc. DS40044G-página 5


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 6 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
1.0 DESCRIÇÃO GERAL O modo HS é para cristais de alta velocidade. O modo EC
é para uma fonte de relógio externa.
Os PIC16F627A/628A/648A são baseados em Flash de 18 pinos
membros do versátil PIC16F627A/628A/648A O modo Sleep (Power-down) oferece economia de energia.
Os usuários podem acordar o chip do Sleep através de vários
família de microcontroladores CMOS de baixo custo e alto desempenho,
interrupções externas, interrupções internas e Resets.
totalmente estáticos, de 8 bits.
Um Watchdog Timer altamente confiável com seu próprio chip
Todos os microcontroladores PIC® empregam um avançado RISC
arquitetura. O PIC16F627A/628A/648A tem Oscilador RC fornece proteção contra bloqueio de software
acima.
recursos principais aprimorados, uma pilha profunda de oito níveis e
múltiplas fontes de interrupção internas e externas. o A Tabela 1-1 mostra os recursos do PIC16F627A/628A/

barramentos separados de instrução e dados da Harvard Família de microcontroladores de médio porte 648A.
arquitetura permitem uma palavra de instrução de 14 bits com
Um diagrama de blocos simplificado do PIC16F627A/628A/
os dados separados de 8 bits. A instrução em dois estágios 648A é mostrado na Figura 3-1.
pipeline permite que todas as instruções sejam executadas em um único
A série PIC16F627A/628A/648A se encaixa em aplicações
ciclo, exceto as ramificações do programa (que requerem dois
variando de carregadores de bateria a controle remoto de baixa potência
ciclos). Um total de 35 instruções (instrução reduzida
sensores. A tecnologia Flash torna a personalização
set) estão disponíveis, complementados por um grande registro
definir. programas de aplicação (níveis de detecção, geração de pulso,
temporizadores, etc.) extremamente rápidos e convenientes. o
Microcontroladores PIC16F627A/628A/648A normalmente pacotes compactos tornam este microcontrolador
alcançar uma compressão de código de 2:1 e uma velocidade de 4:1 série ideal para todas as aplicações com limitações de espaço.
melhoria em relação a outros microcontroladores de 8 bits em sua Baixo custo, baixo consumo de energia, alto desempenho, facilidade de uso
classe.
e flexibilidade de E/S tornam o PIC16F627A/628A/648A
Os dispositivos PIC16F627A/628A/648A têm muito versátil.
recursos para reduzir componentes externos, reduzindo assim
custo do sistema, aumentando a confiabilidade do sistema e reduzindo
1.1 Suporte ao Desenvolvimento
consumo de energia. A família PIC16F627A/628A/648A é suportada por um

O PIC16F627A/628A/648A tem 8 osciladores montador de macros completo, um simulador de software, um


emulador de circuito, um depurador de circuito de baixo custo, um
configurações. O oscilador RC de pino único fornece uma
programador de desenvolvimento de custos e um completo
solução de baixo custo. O oscilador LP minimiza a potência
programador. Uma ferramenta de suporte ao compilador “C” de terceiros é
consumo, XT é um cristal padrão e INTOSC é
também disponível.
um oscilador interno de duas velocidades de precisão independente.

TABELA 1-1: FAMÍLIA DE DISPOSITIVOS PIC16F627A/628A/648A


PIC16F627A PIC16F628A PIC16F648A PIC16LF627A PIC16LF628A PIC16LF648A

Relógio Frequência Máxima de 20 20 20 20 20 20


Operação (MHz)

Programa Flash 1024 2048 4096 1024 2048 4096


Memória (palavras)

Memória RAM Memória de dados 224 224 256 224 224 256
(bytes)
Dados EEPROM 128 128 256 128 128 256
Memória (bytes)

Módulo(s) de temporizador TMR0, TMR1, TMR0, TMR1, TMR0, TMR1, TMR0, TMR1, TMR0, TMR1, TMR0, TMR1,
TMR2 TMR2 TMR2 TMR2 TMR2 TMR2

Comparador(es) 2 2 2 2 2 2

Capturar Periféricos /Comparar/ 111111


Módulos PWM

Comunicações seriais USAR USAR USAR USAR USAR USAR

Tensão Interna Sim Sim Sim Sim Sim Sim


Referência

Fontes de interrupção 10 10 10 10 10 10

Pinos de E/S 16 16 16 16 16 16

Características Faixa de tensão (Volts) 3,0-5,5 3,0-5,5 3,0-5,5 2,0-5,5 2,0-5,5 2,0-5,5

Reinicialização de Brown-out Sim Sim Sim Sim Sim Sim

Pacotes DIP de 18 pinos, DIP de 18 pinos, DIP de 18 DIP


pinos,
de SOIC, SOIC de 20 pinos, SSOP de
18 pinos, DIP de 18 pinos, DIP de 18 pinos,
SOC, 20 pinos 20 pinos, SOC, 20 pinos SOC, 20 pinos SOC, 20 pinos
SSOP, SSOP, SSOP, SSOP, SSOP,
QFN de 28 pinos QFN de 28 pinos QFN de 28 pinos QFN de 28 pinos QFN de 28 pinos QFN de 28 pinos

Todos os dispositivos da família PIC® possuem Power-on Reset, Watchdog Timer selecionável, proteção de código selecionável e alta capacidade de corrente de E/S.
Todos os dispositivos da família PIC16F627A/628A/648A usam programação serial com pino de clock RB6 e pino de dados RB7.

© 2009 Microchip Technology Inc. DS40044G-página 7


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 8 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
2.0 PIC16F627A/628A/648A
VARIEDADES DE DISPOSITIVOS

Uma variedade de faixas de frequência e opções de embalagem


estão disponíveis. Dependendo da aplicação e dos requisitos
de produção, a opção de dispositivo adequada pode ser
selecionada usando as informações no Sistema de Identificação
de Produto PIC16F627A/628A/648A, no final desta folha de
dados. Ao fazer pedidos, use esta página da folha de dados
para especificar o número de peça correto.

2.1 Dispositivos Flash

Os dispositivos flash podem ser apagados e reprogramados


eletricamente. Isso permite que o mesmo dispositivo seja usado
para desenvolvimento de protótipos, programas piloto e produção.
Uma vantagem adicional do Flash apagável eletricamente é que
ele pode ser apagado e reprogramado no circuito, ou por
programadores de dispositivos, como o PICSTART® da Microchip
Programadores Plus ou PRO MATE® II.

2.2 Dispositivos de Produção de Retorno


Rápido (QTP)
A Microchip oferece um Serviço de Programação QTP para
pedidos de produção em fábrica. Este serviço é disponibilizado
para usuários que optaram por não programar uma quantidade
média a alta de unidades e cujos padrões de código se
estabilizaram. Os dispositivos são dispositivos Flash padrão,
mas com todas as localizações de programas e opções de
configuração já programadas de fábrica. Certos procedimentos
de verificação de código e protótipo se aplicam antes que as
remessas de produção estejam disponíveis. Entre em contato
com o escritório de vendas da Microchip Technology para obter
mais detalhes.

2.3 Quick-Turnaround serializado


Dispositivos de Produção (SQTPSM)
A Microchip oferece um serviço de programação exclusivo onde
alguns locais definidos pelo usuário em cada dispositivo são
programados com diferentes números de série. Os números de
série podem ser aleatórios, pseudo-aleatórios ou sequenciais.

A programação serial permite que cada dispositivo tenha um


número único, que pode servir como código de entrada, senha
ou número de identificação.

© 2009 Microchip Technology Inc. DS40044G-página 9


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 10 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
3.0 VISÃO GERAL DA ARQUITETURA O PIC16F627A/628A/648A pode endereçar direta ou indiretamente
seus arquivos de registro ou memória de dados. Todos os registradores
O alto desempenho da família PIC16F627A/628A/648A pode ser de função especial (SFR), incluindo o contador de programa, são
atribuído a vários recursos arquitetônicos comumente encontrados em mapeados na memória de dados. Os PIC16F627A/628A/648A possuem
microprocessadores RISC. Para começar, o PIC16F627A/628A/648A um conjunto de instruções ortogonal (simétrico) que possibilita a
usa uma arquitetura Harvard na qual programa e dados são acessados realização de qualquer operação, em qualquer registro, utilizando
de memórias separadas usando barramentos separados. Isso melhora qualquer modo de endereçamento. Esta natureza simétrica e a falta de
a largura de banda em relação à arquitetura tradicional de Von 'situações ótimas especiais' tornam a programação com o PIC16F627A/
Neumann, onde o programa e os dados são buscados na mesma 628A/648A simples e eficiente. Além disso, a curva de aprendizado é
memória. Separar o programa e a memória de dados permite ainda que reduzida significativamente.
as instruções sejam dimensionadas de forma diferente da palavra de
dados de 8 bits. Os opcodes de instrução são de 14 bits, tornando
Os dispositivos PIC16F627A/628A/648A contêm uma ALU de 8 bits e
possível ter todas as instruções de uma única palavra. Um barramento
um registro de trabalho. A ULA é uma unidade aritmética de uso geral.
de acesso à memória de programa de 14 bits busca uma instrução de
Ele executa funções aritméticas e booleanas entre os dados no registro
14 bits em um único ciclo. Um pipeline de dois estágios sobrepõe a
de trabalho e qualquer arquivo de registro.
busca e a execução de instruções. Conseqüentemente, todas as
instruções (35) são executadas em um único ciclo (200 ns @ 20 MHz),
exceto para desvios de programa. A ULA tem 8 bits de largura e é capaz de operações de adição,
subtração, deslocamento e lógicas. Salvo menção em contrário, as
operações aritméticas são complemento de dois por natureza. Em
instruções de dois operandos, normalmente um operando é o registrador
A Tabela 3-1 lista os tamanhos de memória do dispositivo (Flash, Dados
de trabalho (registrador W). O outro operando é um registrador de
e EEPROM).
arquivo ou uma constante imediata. Em instruções de operando único,
o operando é o registrador W ou um registrador de arquivo.
TABELA 3-1: LISTA DE MEMÓRIA DO DISPOSITIVO

Memória O registrador W é um registrador de trabalho de 8 bits usado para


Dispositivo operações de ULA. Não é um registrador endereçável.
Instantâneo BATER EEPROM
Programa Dados Dados Dependendo da instrução executada, a ALU pode afetar os valores dos
bits Carry (C), Digit Carry (DC) e Zero (Z) no Status Register. Os bits C
PIC16F627A 1024 x 14 224 x 8 128 x 8
e DC operam como bits de Empréstimo e de Saída de Dígitos,
PIC16F628A 2048 x 14 224 x 8 128 x 8
respectivamente, na subtração. Consulte as instruções SUBLW e
PIC16F648A 4096 x 14 256 x 8 256 x 8 SUBWF para obter exemplos.
PIC16LF627A 1024 x 14 224 x 8 128 x 8
PIC16LF628A 2048 x 14 224 x 8 128 x 8 Um diagrama de blocos simplificado é mostrado na Figura 3-1 e uma
PIC16LF648A 4096 x 14 256 x 8 256 x 8 descrição dos pinos do dispositivo na Tabela 3-2.

Dois tipos de memória de dados são fornecidos no PIC16F627A/628A/


648A A memória de dados EEPROM não volátil é fornecida
dispositivos. armazenamento
para
de dados a longo prazo, como valores de calibração, dados de tabela
de consulta e quaisquer outros dados que possam exigir atualização
periódica no campo . Esses tipos de dados não são perdidos quando a
energia é removida. A outra memória de dados fornecida é a memória
de dados RAM regular. A memória de dados RAM regular é fornecida
para armazenamento temporário de dados durante a operação normal.
Os dados são perdidos quando a energia é removida.

© 2009 Microchip Technology Inc. DS40044G-página 11


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 3-1: DIAGRAMA DE BLOCO

13 8
Barramento de dados

Contador de programas
Instantâneo

Programa
Memória BATER
Pilha de 8 níveis
Arquivo

(13 bits) Registros

Programa 14
9 TRAZ
Ônibus Endereço RAM (1)

Endereço MUX RA0/YAN0


Registro de Instrução
RA1/AN1
Endereço Direto 7 Indireto
RA2/AN2/VREF
8 Endereço
RA3/AN3/CMP1
RA4/T0CK1/CMP2
FSR Reg
RA5/MCLR/VPP
RA6/OSC2/CLKOUT
Registro de status
8 RA7/OSC1/CLKIN

3 MUX PORTB
Energizar
Cronômetro RB0/INT
RB1/RX/DT
Instrução Oscilador
RB2/TX/CK
Decodificar & Temporizador de inicialização
VAI RB3/CCP1
Ao controle
Ligar RB4/PGM
Redefinir 8
RB5
Cronometragem cão de guarda RB6/T1OSO/T1CKI/PGC
Geração Cronômetro W Reg
RB7/T1OSI/PGD
OSC1/CLKIN Apagão
OSC2/CLKOUT Redefinir

Baixa voltagem
Programação

MCLR VDD, VSS

Temporizador0 Temporizador1 Temporizador2


Comparador

VREF PCC1 USAR Dados EEPROM

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

DS40044G-página 12 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

TABELA 3-2: DESCRIÇÃO DA PINAGEM PIC16F627A/628A/648A

Nome Tipo de entrada de função Tipo de saída Descrição

RA0/YAN0 RA0 ST Porta de E/S bidirecional CMOS


AN0 UM — Entrada do comparador analógico
RA1/AN1 RA1 ST Porta de E/S bidirecional CMOS
AN1 UM — Entrada do comparador analógico
RA2/AN2/VREF RA2 ST Porta de E/S bidirecional CMOS
AN2 UM — Entrada do comparador analógico
VREF — UM Saída VREF
RA3/AN3/CMP1 RA3 ST Porta de E/S bidirecional CMOS
AN3 UM — Entrada do comparador analógico
CMP1 —
Saída do Comparador CMOS 1
RA4/T0CKI/CMP2 RA4 ST Porta de E/S bidirecional OD
T0CKI ST — Entrada de relógio Timer0
CMP2 —
Saída do Comparador de OD 2
RA5/MCLR/VPP RA5 ST - Porta de entrada
MCLR ST — Mestre claro. Quando configurado como MCLR, este
o pino é um ativo baixo Reinicialize o dispositivo.
A tensão em MCLR/VPP não deve exceder VDD
durante a operação normal do dispositivo.
VPP —
— Programação de entrada de tensão
RA6/OSC2/CLKOUT RA6 ST Porta de E/S bidirecional CMOS
OSC2 — XTAL Saída de cristal do oscilador. Conecta-se ao cristal ou
ressonador no modo Crystal Oscillator.
CLKOUT — CMOS No modo RC/INTOSC, o pino OSC2 pode emitir CLKOUT,
que tem 1/4 da frequência de OSC1.

RA7/OSC1/CLKIN RA7 ST Porta de E/S bidirecional CMOS


OSC1 XTAL — Entrada de cristal oscilador
CLKIN ST — Entrada de fonte de relógio externa. pino de polarização RC.
RB0/INT RB0 TTL Porta de E/S bidirecional CMOS. Pode ser programado por
software para pull-up fraco interno.
INT ST - Interrupção externa
RB1/RX/DT RB1 TTL Porta de E/S bidirecional CMOS. Pode ser programado por
software para pull-up fraco interno.
RX ST — PIN de recepção USART
TD ST E/S de dados síncronos CMOS
RB2/TX/CK RB2 TTL Porta de E/S bidirecional CMOS. Pode ser programado por
software para pull-up fraco interno.
TX —
Pino de transmissão CMOS USART
CK ST E/S de relógio síncrono CMOS
RB3/CCP1 RB3 TTL Porta de E/S bidirecional CMOS. Pode ser programado por
software para pull-up fraco interno.
PCC1 ST Capturar CMOS/Comparar/E/S PWM
Legenda: O = Saída CMOS = Saída CMOS P = Potência
— = Não usado EU

= Entrada ST = Entrada de Gatilho Schmitt


TTL = Entrada TTL OD = Saída de Dreno Aberto AN = Analógico

© 2009 Microchip Technology Inc. DS40044G-página 13


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 3-2: DESCRIÇÃO DA PINAGEM PIC16F627A/628A/648A (CONTINUAÇÃO)
Nome Tipo de entrada de função Tipo de saída Descrição

RB4/PGM RB4 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino.
Pode ser programado por software para pull-up
fraco interno.
PGM ST — Pino de entrada de programação de baixa tensão. Quando a
programação de baixa tensão está habilitada, a
mudança de interrupção no pino e o resistor de pull-
up fraco são desabilitados.
RB5 RB5 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino.
Pode ser programado por software para pull-up
fraco interno.

RB6/T1OSO/T1CKI/PGC RB6 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino.
Pode ser programado por software para pull-up
fraco interno.
T1OSO — Saída do oscilador XTAL Timer1
T1CKI ST — Entrada de relógio Timer1
PGC ST — Relógio de programação ICSP™
RB7/T1OSI/PGD RB7 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino.
Pode ser programado por software para pull-up
fraco interno.
T1OSI XTAL — Entrada do oscilador Timer1
PGD ST E/S de dados CMOS ICSP

VSS VSS Poder — Referência de aterramento para pinos lógicos e de E/S


VDD VDD Poder — Alimentação positiva para pinos lógicos e de E/S
Legenda: O = Saída CMOS = Saída CMOS P = Potência
— = Não usado EU

= Entrada ST = Entrada de Gatilho Schmitt


TTL = Entrada TTL OD = Saída de Dreno Aberto AN = Analógico

DS40044G-página 14 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
3.1 Esquema/instrução de cronometragem 3.2 Fluxo de Instrução/Pipeline
Ciclo Um ciclo de instrução consiste em quatro ciclos Q (Q1, Q2,
A entrada de clock (pino RA7/OSC1/CLKIN) é Q3 e Q4). A busca e a execução da instrução são
dividido por quatro para gerar quatro pipeline de tal forma que a busca leva um ciclo de instrução
enquanto decodificar e executar recebe outra instrução
relógios de quadratura ou seja, Q1, Q2, Q3 e Q4.
Internamente, o Program Counter (PC) é incrementado ciclo. No entanto, devido ao pipeline, cada instrução
a cada Q1, a instrução é buscada no programa executa efetivamente em um ciclo. Se uma instrução
memória e travado no registrador de instruções em Q4. faz com que o contador do programa mude (por exemplo, GOTO)
A instrução é decodificada e executada durante o então são necessários dois ciclos para completar a instrução
após Q1 a Q4. Os relógios e instruções (Exemplo 3-1).
fluxo de execução é mostrado na Figura 3-2. Um ciclo de busca começa com o contador de programa
incrementando no primeiro trimestre.

No ciclo de execução, a instrução buscada é travada


no Registro de Instruções (IR) no ciclo Q1. este
instrução é então decodificada e executada durante o
Ciclos Q2, Q3 e Q4. A memória de dados é lida durante Q2
(operando lido) e escrito durante Q4 (destino
Escreva).

FIGURA 3-2: CICLO DE RELÓGIO/INSTRUÇÃO

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

OSC1

Q1

Q2 interno
Estágio
Q3 relógio

Q4

computador computador PC + 1 PC + 2

CLK OUT

Buscar INST (PC)


Execute INST (PC - 1) Buscar INST (PC + 1)
Executar INST (PC) Buscar INST (PC + 2)
Execute INST (PC + 1)

EXEMPLO 3-1: FLUXO DE TUBULAÇÃO DE INSTRUÇÕES

1. MOVLW 55h Buscar 1 Executar 1

2. PORTA MOVWF Buscar 2 Executar 2

3. LIGUE PARA SUB_1 Buscar 3 Executar 3

4. BSF PORTA, 3 Buscar 4 Rubor

Buscar SUB_1 Executar SUB_1

Nota: Todas as instruções são de ciclo único, exceto para quaisquer ramificações do programa. Estes levam dois ciclos desde a busca
instrução é “liberada” do pipeline enquanto a nova instrução está sendo buscada e executada.

© 2009 Microchip Technology Inc. DS40044G-página 15


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 16 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
4.0 ORGANIZAÇÃO DA MEMÓRIA 4.2 Organização da Memória de Dados
A memória de dados (Figura 4-2 e Figura 4-3) é
4.1 Organização da Memória do Programa dividido em quatro bancos, que contêm o General
Registros de Propósito (GPRs) e a Função Especial
O PIC16F627A/628A/648A tem um programa de 13 bits
Registros (SFR). Os SFRs estão localizados nos primeiros 32
contador capaz de endereçar um programa de 8K x 14
locais de cada banco. Existem propósitos gerais
espaço de memória. Apenas o primeiro 1K x 14 (0000h-03FFh)
Registradores implementados como RAM estática em cada banco.
para o PIC16F627A, 2K x 14 (0000h-07FFh) para o
A Tabela 4-1 lista o Registro de Uso Geral disponível
PIC16F628A e 4K x 14 (0000h-0FFFh) para o
em cada um dos quatro bancos.
PIC16F648A são implementados fisicamente. Acessando um
localização acima desses limites causará uma quebra no primeiro
TABELA 4-1: FIM GERAL ESTÁTICO
espaço de 1K x 14 (PIC16F627A),
Espaço 2K x 14 (PIC16F628A) ou espaço 4K x 14 REGISTROS DE RAM
(PIC16F648A). O vetor Reset está em 0000h e o PIC16F627A/628A PIC16F648A
o vetor de interrupção está em 0004h (Figura 4-1).
Banco0 20-7Fh 20-7Fh

FIGURA 4-1: MAPA DE MEMÓRIA DO PROGRAMA Banco1 A0h-FF A0h-FF


E EMPILHAMENTO Banco2 120h-14Fh, 170h-17Fh 120h-17Fh

PC<12:0> Banco3 1F0h-1FFh 1F0h-1FFh

LIGUE, DEVOLVA 13 Os endereços F0h-FFh, 170h-17Fh e 1F0h-1FFh são


RETFIE, RETLW implementado como RAM comum e mapeado de volta para
endereços 70h-7Fh.
Nível de pilha 1
Nível de pilha 2 A Tabela 4-2 lista como acessar os quatro bancos de registradores
através dos bits do registrador de status RP1 e RP0.

Nível de pilha 8 TABELA 4-2: ACESSO A BANCOS DE


REGISTRO
Redefinir vetor 000h
Banco RP1 RP0

0 0 0
1 0 1
Vetor de interrupção 0004 2 1 0
0005
Programa no chip 3 1 1
Memória
PIC16F627A, 4.2.1 REGISTRO DE PROPÓSITO GERAL
PIC16F628A e ARQUIVO

PIC16F648A
O arquivo de registro é organizado como 224 x 8 no
03FFh
PIC16F627A/628A e 256 x 8 no PIC16F648A.
Cada um é acessado direta ou indiretamente por meio de
Programa no chip
Memória o Registro de Seleção de Arquivo (FSR), Consulte a Seção 4.4
“Endereçamento Indireto, Registros INDF e FSR”.
PIC16F628A e
PIC16F648A
07FFh

Programa no chip
Memória

Apenas PIC16F648A

0FFFh

1FFFh

© 2009 Microchip Technology Inc. DS40044G-página 17


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 4-2: MAPA DE MEMÓRIA DE DADOS DO PIC16F627A E PIC16F628A
Arquivo

Endereço

Endereço indireto(1) 00h Endereço indireto(1) 80h Endereço indireto(1) 100h Endereço indireto(1) 180h
TMR0 01h OPÇÃO 81h TMR0 101h OPÇÃO 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
07h 87h 107h 187h
08h 88h 108h 188h
09h 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 10 canais 18 canais

0Dh 8º 10º 18º


TMR1L 0Eh PCON 8Eh 10 Eh 18h
TMR1H 0 Fh 8Fh 10Fh 18Fh
T1CON 10h 90h
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 A DAMA 9Ah


1 Sra EEADR 9Bh
1 canal EECON1 9 canais

1º EECON2(1) 9 Dh
1Eh 9Eh

CMCON 1Fh VRCON 9Fh 11Fh


20h Em geral 120h
Ahh
Propósito
Em geral Em geral
Registro
Propósito Propósito 48 Bytes 14h
Registro Registro 150h
80 Bytes
80 Bytes

6Fh EFh 16Fh 1EFh

70h F0h 170h 1F0h


acessos acessos acessos
16 Bytes
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'.


Nota 1: Não é um registro físico.

DS40044G-página 18 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 4-3: MAPA DE MEMÓRIA DE DADOS DO PIC16F648A
Arquivo

Endereço

Endereço indireto(1) 00h Endereço indireto(1) 80h Endereço indireto(1) 100h Endereço indireto(1) 180h
TMR0 01h OPÇÃO 81h TMR0 101h OPÇÃO 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
07h 87h 107h 187h
08h 88h 108h 188h
09h 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 10 canais 18 canais

0Dh 8º 10º 18º


TMR1L 0Eh PCON 8Eh 10 Eh 18h
TMR1H 0 Fh 8Fh 10Fh 18Fh
T1CON 10h 90h
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 A DAMA 9Ah


1 Sra EEADR 9Bh
1 canal EECON1 9 canais

1º EECON2(1) 9 Dh
1Eh 9Eh

CMCON 1Fh VRCON 9Fh 11Fh


20h 120h
Ahh
Em geral Em geral Em geral
Propósito Propósito Propósito
Registro Registro Registro
80 Bytes 80 Bytes
80 Bytes

6Fh EFh 16Fh 1EFh

70h F0h 170h 1F0h


acessos acessos acessos
16 Bytes
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'.


Nota 1: Não é um registro físico.

© 2009 Microchip Technology Inc. DS40044G-página 19


Machine Translated by Google

PIC16F627A/628A/648A
4.2.2 REGISTROS DE FUNÇÕES ESPECIAIS

Os SFRs são registradores usados pela CPU e funções periféricas


para controlar a operação desejada de
o dispositivo (Tabela 4-3). Esses registradores são RAM estática.

Os registradores especiais podem ser classificados em dois conjuntos


(núcleo e periférico). Os SFRs associados ao
As funções “principais” são descritas nesta seção. Aqueles
relacionadas à operação dos recursos periféricos são
descrito na seção desse recurso periférico.

TABELA 4-3: SUMÁRIO DE REGISTOS ESPECIAIS BANCO0


Valor ativado
Detalhes
Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR
Redefinir(1)
na página

Banco 0

00h 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) xxxx xxxx 30

01h TMR0 Registro do Módulo Timer0 xxxx xxxx 47

02h PCL Byte menos significativo do contador de programa (PC) 0000 0000 30

03h STATUS IRP RP1 RP0 PARA PD A PARTIR DE DC C 0001 1xxx 24

04h FSR Ponteiro de endereço de memória de dados indireto xxxx xxxx 30

05h TRAZ RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 xxxx 0000 33

06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 38

07h — —
— Não implementado
08h — —
— Não implementado
09h — —
— Não implementado
0Ah PCLATH — — ---0 0000 30
— Buffer de gravação para os 5 bits superiores do contador de programa
0Bh INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 26

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 28

0Dh — —
— Não implementado
0Eh TMR1L Registro de retenção para o byte menos significativo do registro TMR1 de 16 bits xxxx xxxx 50

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

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

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

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

13h — —
— Não implementado
14h — —
— Não implementado
15h CCPR1L Captura/Comparação/Registro PWM (LSB) xxxx xxxx 57

16h CCPR1H Captura/Comparação/Registro PWM (MSB) xxxx xxxx 57

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

18h RCSTA ESPANHA RX9 SREN ELES ACREDITAM ADEN FERR OERR RX9D 0000 000x 74

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

1Ah Registro de Dados de Recebimento RCREG USART 0000 0000 82

1 Sra — —
— Não implementado
— —
1 canal — Não implementado
1º — —
— Não implementado
1Eh — —
— Não implementado
1Fh CMCON C2OUT C1OUT C2INV C1INV CEI CM2 CM1 CM0 0000 0000 63

Legenda: - = Locais não implementados lidos como '0', u = inalterado, x = desconhecido, q = valor depende da condição, sombreado = não implementado
Nota 1: Para a condição de inicialização das tabelas de registros, consulte a Tabela 14-6 e a Tabela 14-7.

DS40044G-página 20 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 4-4: SUMÁRIO DOS REGISTOS DE FUNÇÕES ESPECIAIS BANCO1

Valor ativado
Detalhes
Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR
Redefinir(1)
na página

Banco 1

80h INC O endereçamento deste local usa o conteúdo do FSR para endereçar a memória de dados (não um xxxx xxxx 30
registrador físico)

81h OPÇÃO RBPU INTEG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 25

82h PCL Byte menos significativo do contador de programa (PC) 0000 0000 30

83h STATUS IRP RP1 RP0 PARA PD A PARTIR DE DC C 0001 1xxx 24

84h FSR Ponteiro de endereço de memória de dados indireto xxxx xxxx 30

85h TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 33

86h TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 38

87h — —
— Não implementado
88h — —
— Não implementado
89h — —
— Não implementado
8Ah PCLATH — — ---0 0000 30
— Buffer de gravação para os 5 bits superiores do contador de programa
8Bh INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 26

8 canais TORTA1 ISTO CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 27

8º — —
— Não implementado

8Eh PCON — — — — OSCF — POR TEM ---- 1-0x 29

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

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 73

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

9Ah Registro de dados EEDATA EEPROM xxxx xxxx 91

9Bh EEADR Registro de Endereço EEPROM xxxx xxxx 92

9 canais EECON1 — — — — WRERR WREN WR RD ---- x000 92

9 Dh EECON2 EEPROM Control Register 2 (não é um registro físico)


---- ----
92

9Eh — —
— Não implementado
9Fh VRCON VREN CEDO VRR — VR3 VR2 VR1 VR0 000- 0000 69

Legenda: - = Locais não implementados lidos como '0', u = inalterado, x = desconhecido, q = valor depende da condição, sombreado = não implementado
Nota 1: Para a condição de inicialização das tabelas de registros, consulte a Tabela 14-6 e a Tabela 14-7.

© 2009 Microchip Technology Inc. DS40044G-página 21


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 4-5: SUMÁRIO DOS REGISTOS DE FUNÇÕES ESPECIAIS BANCO2

Valor ativado
Detalhes
Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR
Redefinir(1)
na página

Banco 2

100h 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) xxxx xxxx 30

101h TMR0 Registro do Módulo Timer0 xxxx xxxx 47

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

103h STATUS IRP RP1 RP0 PARA PD A PARTIR DE DC C 0001 1xxx 24

104h FSR Ponteiro de endereço de memória de dados indireto xxxx xxxx 30

105h — —
— Não implementado
106h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 38

107h — —
— Não implementado
108h — —
— Não implementado
109h — —
— Não implementado
10Ah PCLATH — — — ---0 0000 30
Buffer de gravação para os 5 bits superiores do contador de programa

10Bh INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 26
— —
10 canais — Não implementado
10º — —
— Não implementado
10 Eh — —
— Não implementado
10Fh — —
— Não implementado
110h — —
— Não implementado
111h — —
— Não implementado
112h — —
— Não implementado
113h — —
— Não implementado
114h — —
— Não implementado
115h — —
— Não implementado
— —
116 horas — Não implementado
117h — —
— Não implementado
118h — —
— Não implementado
119h — —
— Não implementado
11Ah — —
— Não implementado
11Bh — —
— Não implementado
— —
11 canais — Não implementado
11 Dh — —
— Não implementado
11Eh — —
— Não implementado
11Fh — —
— Não implementado

Legenda: - = Locais não implementados lidos como '0', u = inalterado, x = desconhecido, q = valor depende da condição, sombreado = não implementado.
Nota 1: Para a condição de inicialização das tabelas de registros, consulte a Tabela 14-6 e a Tabela 14-7.

DS40044G-página 22 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 4-6: BANCO DE RESUMO DOS REGISTOS DE FUNÇÕES ESPECIAIS 3

Valor ativado
Detalhes
Endereço Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 POR
Redefinir(1)
na página

Banco 3

180h 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) xxxx xxxx 30

181h OPÇÃO RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 25

182h PCL Byte menos significativo do contador de programa (PC) 0000 0000 30

183h STATUS IRP RP1 RP0 PARA PD A PARTIR DE DC C 0001 1xxx 24

184h FSR Ponteiro de endereço de memória de dados indireto xxxx xxxx 30

185h — —
— Não implementado
186h TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 38

187h — —
— Não implementado
188h — —
— Não implementado
189h — —
— Não implementado
18Ah PCLATH — — ---0 0000 30
— Buffer de gravação para os 5 bits superiores do contador de programa
18 Ms INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 26
— —
18 canais — Não implementado
18º — —
— Não implementado
18h — —
— Não implementado
18Fh — —
— Não implementado
190h — —
— Não implementado
191h — —
— Não implementado
192h — —
— Não implementado
193h — —
— Não implementado
194h — —
— Não implementado
195h — —
— Não implementado
— —
196 horas — Não implementado
197h — —
— Não implementado
198h — —
— Não implementado
199h — —
— Não implementado
19Ah — —
— Não implementado
19 Sra — —
— Não implementado
— —
19 canais — Não implementado
19 Dh — —
— Não implementado
19Eh — —
— Não implementado
19Fh — —
— Não implementado

Legenda: - = Locais não implementados lidos como '0', u = inalterado, x = desconhecido, q = valor depende da condição, sombreado = não implementado
Nota 1: Para a condição de inicialização das tabelas de registros, consulte a Tabela 14-6 e a Tabela 14-7.

© 2009 Microchip Technology Inc. DS40044G-página 23


Machine Translated by Google

PIC16F627A/628A/648A
4.2.2.1 Registro de Status Por exemplo, CLRF STATUS limpará os três
bits e defina o bit Z. Isso deixa o registro de status
O registro de Status, mostrado no Registro 4-1, contém o
como “000uu1uu” (onde u = inalterado).
estado aritmético da ULA; o status Redefinir e o
bits de seleção de banco para memória de dados (SRAM). Recomenda-se, portanto, que apenas BCF, BSF,
As instruções SWAPF e MOVWF são usadas para alterar o
O registrador de Status pode ser o destino de qualquer
Registro de status porque essas instruções não afetam
instrução, como qualquer outro registro. Se o registro de status
qualquer bit de status. Para outras instruções, não afetando
é o destino de uma instrução que afeta o Z,
Bits de status, consulte o “Resumo do Conjunto de Instruções”.
bits DC ou C, então a gravação nesses três bits é
Desativado. Esses bits são definidos ou apagados de acordo com o Nota: Os bits C e DC operam como um Borrow
lógica do dispositivo. Além disso, os bits TO e PD não são graváveis. e bit de empréstimo de dígitos, respectivamente, em
Portanto, o resultado de uma instrução com o subtração. Veja o SUBLW e o SUBWF
O registro de status como destino pode ser diferente de instruções para exemplos.
pretendido.

CADASTRO 4-1: STATUS – REGISTRO DE STATUS (ENDEREÇO: 03h, 83h, 103h, 183h)
R/W-0 R/W-0 R/W-0 R-1 R-1 L/Lx R/Lx R/Lx

IRP RP1 RP0 PARA PD A PARTIR DE DC C

pedaço 7 bit 0

pedaço 7 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 RP<1:0>: Bits de seleção do banco de registradores (usados para endereçamento direto)

00 = Banco 0 (00h-7Fh)
01 = banco 1 (80h-FFh)
10 = Banco 2 (100h-17Fh)
11 = Banco 3 (180h-1FFh)
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: Digit Carry/Borrow bit (instruções ADDWF, ADDLW, SUBLW, SUBWF) (para Borrow 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

DS40044G-página 24 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
4.2.2.2 OPÇÃO Cadastro
Nota: Para obter uma atribuição de pré-escalonador 1:1 para
O registrador Option é um registrador legível e gravável,
TMR0, atribua o prescaler ao WDT
que contém vários bits de controle para configurar o
(PSA = 1). Consulte a Seção 6.3.1 “Mudança
Prescaler TMR0/WDT, a interrupção externa RB0/INT,
Atribuição do Pré-escalador”.
TMR0 e os pull-ups fracos em PORTB.

CADASTRO 4-2: OPTION_REG – OPÇÃO 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/CMP2


0 = Relógio do ciclo de instrução interno (CLKOUT)
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/CMP2
0 = Incremento na transição de baixo para alto no pino RA4/T0CKI/CMP2
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 PS<2:0>: 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

© 2009 Microchip Technology Inc. DS40044G-página 25


Machine Translated by Google

PIC16F627A/628A/648A
4.2.2.3 Registro INTCON
Nota: Os bits de flag de interrupção são definidos quando uma interrupção
O registrador INTCON é um registro legível e gravável
condição ocorre independentemente do estado de
registrador, que contém os vários bits de habilitação e sinalização
seu bit de habilitação correspondente ou o global
para todas as fontes de interrupção, exceto o módulo comparador.
bit de habilitação, GIE (INTCON<7>).
Consulte a Seção 4.2.2.4 “Registro PIE1” e
Seção 4.2.2.5 “Registro PIR1” para uma descrição de
os bits de habilitação e flag do comparador.

REGISTRO 4-3: INTCON – REGISTRO DE CONTROLE DE INTERRUPÇÃO (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 periféricas não mascaradas


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 = Quando pelo menos um dos pinos RB<7:4> muda de estado (deve ser apagado no software)
0 = Nenhum dos pinos RB<7:4> 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

DS40044G-página 26 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
4.2.2.4 Registro PIE1

Este registrador contém bits de habilitação de interrupção.

REGISTRO 4-4: PIE1 – INTERRUPÇÃO PERIFÉRICA HABILITAR REGISTRO 1 (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

ISTO CMIE RCIE ESSA — CCP1IE TMR2IE TMR1IE

pedaço 7 bit 0

pedaço 7 EEIE: Bit de habilitação de interrupção completa de gravação EE

1 = Habilita a interrupção completa de escrita EE


0 = Desabilita a interrupção completa de gravação do EE
bocado 6 CMIE: bit de habilitação de interrupção do comparador

1 = Habilita a interrupção do comparador


0 = Desabilita a interrupção do comparador

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

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

© 2009 Microchip Technology Inc. DS40044G-página 27


Machine Translated by Google

PIC16F627A/628A/648A
4.2.2.5 Registro PIR1
Nota: Os bits de flag de interrupção são definidos quando uma interrupção
Este registrador contém bits de sinalização de 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>). Do utilizador
software deve garantir a
bits de sinalização de interrupção são limpos antes de
habilitando uma interrupção.

REGISTRO 4-5: PIR1 - INTERRUPÇÃO PERIFÉRICA REGISTRO 1 (ENDEREÇO: 0Ch)


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

EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF

pedaço 7 bit 0

pedaço 7 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 foi concluída ou não foi iniciada

bocado 6 CMIF: Bit de sinalização de interrupção do comparador

1 = A saída do comparador foi alterada


0 = A saída do comparador não mudou
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 usado 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

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

DS40044G-página 28 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
4.2.2.6 Registro PCON
O registrador PCON contém bits de flag para diferenciar Nota: BOR é desconhecido no Power-on Reset. Isto
entre um Power-on Reset, um MCLR Reset externo, deve então ser definido pelo usuário e verificado
Reinicialização WDT ou Reinicialização Brown-out. em Reinicializações subsequentes para ver se BOR está
apagado, indicando que um brown-out
ocorreu. O bit de status BOR é um “não
cuidado” e não é necessariamente previsível se
o circuito de brown-out é desabilitado (por
limpando o bit BOREN no
Palavra de configuração).

REGISTRO 4-6: PCON – REGISTRO DE CONTROLE DE POTÊNCIA (ENDEREÇO: 8Eh)


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

pedaço 7 bit 0

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


parte 3 OSCF: Bit de frequência do oscilador INTOSC
1 = 4 MHz típico
0 = 48 kHz típico
parte 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

© 2009 Microchip Technology Inc. DS40044G-página 29


Machine Translated by Google

PIC16F627A/628A/648A
4.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 do
byte vem do registrador PCL, que é um primeiro PUSH. O décimo PUSH sobrescreve o segundo
e registro gravável. O byte alto (PC<12:8>) não é PUSH (e assim por diante).
diretamente legível ou gravável e vem do PCLATH.
Nota 1: Não há bits de status para indicar pilha
Em qualquer Reinicialização, o PC é limpo. A Figura 4-4 mostra o
condições de estouro ou estouro de pilha.
duas situações para carregar o PC. O exemplo superior
na Figura 4-4 mostra como o PC é carregado em um 2: Não há instruções/mnemônicos
PCL (PCLATH<4:0> ÿ PCH). O exemplo inferior em chamado PUSH ou POP. Estas são ações
A Figura 4-4 mostra como o PC é carregado durante uma CHAMADA que ocorrem a partir da execução do
ou instrução GOTO (PCLATH<4:3> ÿ PCH). LIGUE, DEVOLVA, RETLW e RETFIE
instruções, ou a vetorização para um
FIGURA 4-4: CARREGAMENTO DO PC EM endereço de interrupção.
SITUAÇÕES DIFERENTES

4.4 Endereçamento Indireto, INDF e


PCH PCL
Registros FSR
12 87 0
Instrução com
O registro INDF não é um registro físico. Endereçamento
computador
PCL como
Destino o registrador INDF causará endereçamento indireto.
PCLATH<4:0> 8
5 resultado ULA O endereçamento indireto é possível usando o INDF
registro. Qualquer instrução usando o registrador INDF

PCLATH
realmente acessa os dados apontados pelo File Select
Registo (FSR). Ler o próprio INDF indiretamente
PCH PCL produzir 00h. Escrevendo no registro INDF indiretamente
12 11 10 87 0 resulta em uma não operação (embora os bits de status possam ser
computador VAI, LIGUE
afetado). Um endereço efetivo de 9 bits é obtido por
concatenar o registrador FSR de 8 bits e o bit IRP
PCLATH<4:3> 11
2 (STATUS<7>), conforme mostrado na Figura 4-5.
Código de operação <10:0>

Um programa simples para limpar a localização da RAM 20h-2Fh usando


PCLATH o endereçamento indireto é mostrado no Exemplo 4-1.

EXEMPLO 4-1: ENDEREÇO INDIRETO


4.3.1 GOTO COMPUTADO MOVLW 0x20 ;inicializar ponteiro
MOVWF FSR ;para RAM
Um GOTO calculado é realizado adicionando um deslocamento
PRÓXIMO CLRF IDF ;limpar registro INDF
ao contador de programa (ADDWF PCL). Ao fazer um
INCF FSR BTFSS ;inc ponteiro
tabela lida usando um método GOTO computado, cuidado FSR,4 ;tudo feito?
deve ser exercido se a localização da mesa cruzar um PCL IR PRÓXIMO ;não está claro próximo
limite de memória (cada bloco de 256 bytes). Consulte o ;sim continua
Nota de aplicação AN556 “Implementando uma leitura de tabela”
(DS00556).

4.3.2 PILHA

A família PIC16F627A/628A/648A tem um nível de 8


deep x pilha de hardware de 13 bits de largura (Figura 4-1). o
o espaço de pilha não faz parte do programa ou do espaço de dados
e o Stack Pointer não é legível ou gravável. o
PC é empurrado para a pilha quando uma instrução CALL
é executado ou uma interrupção causa um desvio. A pilha
é POPed no caso de um RETURN, RETLW ou um
Execução da instrução RETFIE. PCLATH não é afetado
por uma operação PUSH ou POP.

DS40044G-página 30 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 4-5: ENDEREÇO DIRETO/INDIRETO PIC16F627A/628A/648A

Status Status
Registro Endereçamento direto Endereçamento indireto
Registro
RP1 RP0 6 do código de operação 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 180h

BATER
Arquivo

Registros

7Fh 1FFh
Banco 0 Banco 1 Banco 2 Banco 3

Observação: Para detalhes do mapa de memória, consulte a Figura 4-3, Figura 4-2 e Figura 4-1.

© 2009 Microchip Technology Inc. DS40044G-página 31


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 32 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
5.0 PORTAS DE E/S Em um dos modos de comparador definidos pelo registrador
CMCON, os pinos RA3 e RA4 tornam-se saídas dos comparadores.
O PIC16F627A/628A/648A tem duas portas, PORTA e PORTB. Os bits TRISA<4:3> devem ser limpos para permitir que as saídas
Alguns pinos para essas portas de E/S são multiplexados com usem esta função.
funções alternativas para os recursos periféricos do dispositivo. Em
geral, quando um periférico está habilitado, esse pino não pode ser EXEMPLO 5-1: INICIALIZANDO PORTA
usado como um pino de E/S de uso geral.
PORTA CLRF ;Inicializa o
PORTA ;configurando ;latches de
dados de saída
5.1 Registos PORTA e TRISA MOVLW 0x07 ;Desligue comparadores e ;habilite pinos
MOVWF CMCON para I/O ;funções
PORTA é uma trava larga de 8 bits. RA4 é uma entrada Schmitt
Trigger e uma saída de dreno aberto. A porta RA4 é multiplexada BCF STATUS, RP1
com a entrada de clock T0CKI. RA5(1) é apenas uma entrada BSF STATUS, RP0 ;Selecionar Banco1 ;Valor
Schmitt Trigger e não possui drivers de saída. Todos os outros MOVLW 0x1F usado para inicializar ;direção de

pinos da porta RA possuem níveis de entrada Schmitt Trigger e dados ;Definir RA<4:0> como
MOVWF TRISA entradas ;TRISA<5> sempre ;ler como '1'.
drivers de saída CMOS completos. Todos os pinos possuem bits de
direção de dados (registros TRIS) que podem configurar esses
pinos como entrada ou saída.

Um '1' no registrador TRISA coloca o driver de saída correspondente ;TRISA<7:6> ;depende do


em um modo de alta impedância. Um '0' no registrador TRISA oscilador ;modo

coloca o conteúdo da trava de saída no(s) pino(s) selecionado(s).

FIGURA 5-1: DIAGRAMA DE BLOCOS DE


Ler o registrador PORTA lê o status dos pinos, enquanto escrever PINOS RA0/AN0:RA1/AN1
nele gravará na trava da porta. Todas as operações de gravação
são operações de leitura-modificação-gravação. Portanto, uma Dados
gravação em uma porta implica que os pinos da porta sejam lidos Ônibus
D Q
primeiro, então esse valor é modificado e gravado na trava de VDD
dados da porta. WR
TRAZ
CKQ
Os pinos PORTA são multiplexados com funções de comparador e
Trava de dados
referência de tensão. A operação desses pinos é selecionada por
bits de controle no registro CMCON (registrador de controle D Q
Pino de E/S
comparador) e no registro VRCON (registro de controle de referência WR
de tensão). Quando selecionado como uma entrada do comparador, TRISA
CKQ
esses pinos serão lidos como '0's.
Trinco TRIS Modo de
VSS
entrada
analógica (CMCON Reg.)
Nota 1: RA5 compartilha função com VPP. Quando os níveis
de tensão do VPP são aplicados ao RA5, o
dispositivo entrará no modo de programação. RD Gatilho Schmitt
TRISA Buffer de entrada
2: No Reset, o registrador TRISA é configurado para
todas as entradas. As entradas digitais (RA<3:0>)
são desabilitadas e as entradas do comparador Q D
são forçadas ao terra para reduzir o consumo de
corrente.
DENTRO

3: TRISA<6:7> é substituído pela configuração do


oscilador. Quando PORTA<6:7> é substituído, os RD PORTA
dados lêem '0' e os bits TRISA<6:7> são ignorados.

Para Comparador
O TRISA controla a direção dos pinos RA, mesmo quando estão
sendo usados como entradas do comparador. O usuário deve
certificar-se de manter os pinos configurados como entradas ao usá-
los como entradas do comparador.

O pino RA2 também funcionará como saída para a referência de


tensão. Quando neste modo, o pino VREF é uma saída de alta
impedância. O usuário deve configurar o bit TRISA<2> como
entrada e usar cargas de alta impedância.

© 2009 Microchip Technology Inc. DS40044G-página 33


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-2: DIAGRAMA DE BLOCOS DE
PIN RA2/AN2/VREF
Dados
Ônibus
D Q
VDD
WR
TRAZ
CKQ
Trava de dados

D Q
Pino RA2
WR
TRISA
CKQ Modo de
VSS
entrada
Trinco TRIS
analógica (CMCON Reg.)

RD
TRISA Gatilho Schmitt
Buffer de entrada

Q D

DENTRO

RD PORTA

Para Comparador
CEDO

VREF

FIGURA 5-3: DIAGRAMA DE BLOCO DO PIN RA3/AN3/CMP1

Dados
Modo Comparador = 110 (Reg. CMCON)
Ônibus
D Q VDD

Saída do Comparador
WR 1
TRAZ
CKQ
Trava de dados 0

D Q
Pino RA3
WR
TRISA Modo de
CKQ
entrada VSS
Trinco TRIS analógica (CMCON Reg.)

RD
TRISA Gatilho Schmitt
Buffer de entrada

Q D

DENTRO

RD PORTA

Para Comparador

DS40044G-página 34 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-4: DIAGRAMA DE BLOCO DO PIN RA4/T0CKI/CMP2
Dados Modo Comparador = 110 (Reg. CMCON)
Ônibus
D Q

WR Saída do Comparador
1
TRAZ
CKQ
Trava de dados 0

D Q
Pino RA4
WR N
TRISA
CKQ

Trinco TRIS Vss Vss

Gatilho Schmitt
Buffer de entrada
RD TRISA

Q D

DENTRO

RD PORTA

Entrada de relógio TMR0

FIGURA 5-5: DIAGRAMA DE BLOCOS DO FIGURA 5-6: DIAGRAMA DE BLOCOS DE


PIN RA5/MCLR/VPP PIN RA6/OSC2/CLKOUT

De OSC1 OSC
O circuito
VDD
MCLRE (Bit de configuração) CLKOUT(ESCURO/4)
circuito 1
MCLR

Filtro MCLR D Q 0
WR
Modo de Gatilho Schmitt TRAZ
programa CK Q
Buffer de entrada
Detecção de alta tensão ESCURO =
Trava de
VSS
Dados 101, 111 (2)
RA5/MCLR/VPP

D Q
Dados WR
Ônibus
TRISA
VSS CK Q
Trinco TRIS
RD
TRISA Schmitt
Acionar
RD
Buffer de entrada
TRISA VSS ESCURO =
011, 100, 110 (1)

QD QD

DENTRO
DENTRO

RD RD PORTA
TRAZ

Nota 1: INTOSC com RA6 = E/S ou RC com RA6 = E/S.


2: INTOSC com RA6 = CLKOUT ou RC com
RA6 = CLKOUT.

© 2009 Microchip Technology Inc. DS40044G-página 35


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-7: DIAGRAMA DE BLOCO DO PINO RA7/OSC1/CLKIN

Circuitos de relógio
VDD

Barramento de dados
D Q

Pino RA7/OSC1/CLKIN
PORTA WR
CKQ
Trava de dados

VSS
D Q

WR TRISA
CKQ
Trinco TRIS

RD TRISA

ESCURO = 100, 101(1)

Q D

Gatilho Schmitt
Buffer de entrada
DENTRO

RD PORTA

Nota 1: INTOSC com CLKOUT e INTOSC com E/S.

DS40044G-página 36 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 5-1: FUNÇÕES DA PORTA

Entrada Resultado
Nome Função Descrição
Modelo Modelo

RA0/YAN0 RA0 Porta de E/S bidirecional ST CMOS


AN0 AN — Entrada do comparador analógico
RA1/AN1 RA1 Porta de E/S bidirecional ST CMOS
AN1 AN — Entrada do comparador analógico
RA2/AN2/VREF RA2 ST Porta de E/S bidirecional CMOS
AN2 AN — Entrada do comparador analógico
VREF — UMA saída VREF
RA3/AN3/CMP1 RA3 ST Porta de E/S bidirecional CMOS
AN3 AN — Entrada do comparador analógico
CMP1 — Saída CMOS Comparador 1
RA4/T0CKI/CMP2 RA4 ST OD Porta de E/S bidirecional. A saída é do tipo dreno aberto.
T0CKI ST — Entrada de clock externo para TMR0 ou saída do comparador
CMP2 — Saída do Comparador 2 de OD
RA5/MCLR/VPP RA5 ST — Porta de entrada
MCLR ST — Mestre claro. Quando configurado como MCLR, este pino é um reset ativo baixo
para o dispositivo. A tensão no MCLR/VPP não deve exceder VDD
durante a operação normal do dispositivo.
VPP HV — Entrada de tensão de programação
RA6/OSC2/CLKOUT RA6 Porta de E/S bidirecional ST CMOS
OSC2 — Saída de cristal do oscilador XTAL. Conecta-se ao ressonador de cristal no modo Crystal
Oscillator.
CLKOUT — CMOS No modo RC ou INTOSC. O pino OSC2 pode emitir CLKOUT,
que tem 1/4 da frequência de OSC1.
RA7/OSC1/CLKIN RA7 Porta de E/S bidirecional ST CMOS
OSC1 XTAL — Entrada de cristal do oscilador. Conecta-se ao ressonador de cristal no modo
Crystal Oscillator.
CLKIN ST — Entrada de fonte de relógio externa. pino de polarização RC.
Legenda: O = Saída CMOS = Saída CMOS P = Potência
— = Não usado EU

= Entrada ST = Entrada de Gatilho Schmitt


TTL = Entrada TTL OD = Saída de Dreno Aberto AN = Analógico

TABELA 5-2: RESUMO DOS REGISTOS ASSOCIADOS A PORTA


Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Todos os outros
POR
Reinicializações

05h PORTA RA7 RA6 RA5(1) RA4 RA3 RA2 RA1 RA0 xxxx 0000 qqqu 0000
85h TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111
1Fh CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0000 0000 0000
9Fh VRCON VREN ANTECIPADO VRR — VR3 VR2 VR1 VR0 000- 0000 000- 0000

Legenda: - = Locais não implementados lidos como '0', u = inalterado, x = desconhecido, q = valor depende da condição. Células sombreadas
não são usados para PORTA.

Nota 1: O bit de configuração MCLRE define a funcionalidade RA5.

© 2009 Microchip Technology Inc. DS40044G-página 37


Machine Translated by Google

PIC16F627A/628A/648A
5.2 Registros PORTB e TRISB O recurso de interrupção na alteração é recomendado para a operação de
ativação ao pressionar a tecla e operações em que PORTB é usado
PORTB é uma porta bidirecional de 8 bits de largura. O registrador de apenas para o recurso de interrupção na alteração. A sondagem de
direção de dados correspondente é TRISB. Um '1' no registrador TRISB PORTB não é recomendada ao usar o recurso de interrupção na alteração.
coloca o driver de saída correspondente em um modo de alta impedância.
Um '0' no registrador TRISB coloca o conteúdo da trava de saída no(s)
pino(s) selecionado(s).
FIGURA 5-8: DIAGRAMA DE BLOCOS DE
PIN RB0/INT
O PORTB é multiplexado com a interrupção externa, USART, módulo VDD
CCP e a entrada/saída do relógio TMR1. RBPU
As funções da porta padrão e as funções da porta alternativa são P Pull-up fraco
mostradas na Tabela 5-3. As funções de porta alternativas podem substituir VDD
a configuração do TRIS quando ativadas.

A leitura do registrador PORTB lê o status dos pinos, enquanto escrever


nele gravará na trava da porta. Todas as operações de gravação são
Barramento de dados
operações de leitura-modificação-gravação. Portanto, uma gravação em D Q
uma porta implica que os pinos da porta sejam lidos primeiro, então esse
RB0/INT
valor é modificado e gravado na trava de dados da porta. PORTA WR B
CK Q
Cada um dos pinos PORTB tem um pull-up interno fraco (ÿ200 ÿA típico).
Trava de dados VSS
Um único bit de controle pode ativar todos os pull-ups. Isso é feito limpando
o bit RBPU (OPTION<7>). O pull-up fraco é desligado automaticamente
quando o pino da porta é configurado como saída. D Q

Os pull-ups são desabilitados no Power-on Reset. WR TRISB


CKQ
Quatro dos pinos do PORTB, RB<7:4>, possuem um recurso de alteração
Trinco TRIS
de interrupção. Somente os pinos configurados como entradas podem
causar esta interrupção (ou seja, qualquer pino RB<7:4> configurado
como uma saída é excluído da comparação de interrupção na mudança). TTL
RD TRISB
Os pinos de entrada (de RB<7:4>) são comparados com o valor antigo Entrada
Amortecedor
travado na última leitura de PORTB. As saídas de “incompatibilidade” de
RB<7:4> são combinadas em OR para gerar a interrupção RBIF (flag Q D
travada em INTCON<0>).
DENTRO
DENTRO

Essa interrupção pode despertar o dispositivo do modo de suspensão. O


usuário, na rotina de serviço de interrupção, pode limpar a interrupção da PORTA RD B
seguinte maneira:

a) Qualquer leitura ou gravação de PORTB. Isso vai acabar com o INT


condição de incompatibilidade. Schmitt
Acionar
b) Apague o bit de flag RBIF.

Uma condição de incompatibilidade continuará a definir o bit de sinalização RBIF.


A leitura de PORTB encerrará a condição de incompatibilidade e permitirá
que o bit de sinalização RBIF seja apagado.

Esse recurso de interrupção na incompatibilidade, juntamente com pull-


ups configuráveis por software nesses quatro pinos, permite uma interface
fácil com um teclado e possibilita a ativação ao pressionar a tecla (consulte
a Nota de aplicação AN552 “Implementando a ativação em pressionamentos
de tecla”
(DS00552).

Nota: Se uma mudança no pino de E/S ocorrer quando uma operação


de leitura estiver sendo executada (início do ciclo Q2), o
sinalizador de interrupção RBIF pode não ser definido.

DS40044G-página 38 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-9: DIAGRAMA DE BLOCOS DE FIGURA 5-10: DIAGRAMA DE BLOCOS DE
PIN RB1/RX/DT PIN RB2/TX/CK
VDD VDD
RBPU Fraco RBPU Fraco
P Puxar para cima P Puxar para cima
ESPANHA ESPANHA
VDD VDD

Saída de dados USART Saída USART TX/CK


1 1

Barramento de dados
0 Barramento de dados
0 RB2/
D Q RB1/ D Q
TX/CK
RX/DT
PORTA WR B PORTA WR B
CKQ CKQ

Trava de dados VSS Trava de dados VSS

DQ DQ

WR TRISB WR TRISB
CKQ CKQ

Trinco TRIS Trinco TRIS


OE periférico (1) OE periférico (1)

TTL TTL

RD TRISB Entrada RD TRISB Entrada


Amortecedor Amortecedor

Q D QD

DENTRO DENTRO

PORTA RD B PORTA RD B

Entrada de recepção USART Entrada de relógio escravo USART

Schmitt Schmitt

Acionar Acionar

Nota 1: OE periférico (habilitação de saída) só está ativo se a seleção de Nota 1: OE periférico (habilitação de saída) só está ativo se a seleção de
periféricos estiver ativa. periféricos estiver ativa.

© 2009 Microchip Technology Inc. DS40044G-página 39


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-11: DIAGRAMA DE BLOCOS DE
PIN RB3/CCP1
VDD
RBPU Fraco
P Puxar para cima
CCP1CON
VDD

Saída do PCC
0

Barramento de dados
1 RB3/
D Q
PCC1

PORTA WR B
CKQ

Trava de dados VSS

DQ

WR TRISB
CKQ

Trinco TRIS
OE periférico (2)

TTL
RD TRISB Entrada
Amortecedor

QD

DENTRO

PORTA RD B

PCC em

Schmitt
Acionar

Nota 1: OE periférico (habilitação de saída) só está ativo se a seleção


de periféricos estiver ativa.

DS40044G-página 40 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-12: DIAGRAMA DE BLOCO DO PIN RB4/PGM
VDD
RBPU

P pull-up fraco

Barramento de dados

DQ VDD

PORTA WR B
CKQ

Trava de dados

RB4/PGM
DQ

WR TRISB
CKQ
VSS
Trinco TRIS

RD TRISB

LVP (Bit de configuração)

PORTA RD B

Entrada PGM

Buffer
Schmitt
de
Acionar entrada TTL

Q D

DENTRO Q1

conjunto RBIF

De outro QD
RB<7:4> pinos
Q3
DENTRO

Nota: A programação de baixa tensão desabilita a interrupção na mudança e os pull-ups fracos no RB4.

© 2009 Microchip Technology Inc. DS40044G-página 41


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-13: DIAGRAMA DE BLOCO DO PINO RB5
VDD
RBPU
pull- VDD
P
up fraco

Barramento de dados

DQ
pino RB5
PORTA WR B
CKQ

Trava de dados

VSS

DQ

WR TRISB
CKQ

Trinco TRIS
Buffer

de
entrada TTL

RD TRISB

Q D

PORTA RD B
DENTRO Q1
conjunto RBIF

De outro Q D
RB<7:4> pinos
Q3
DENTRO

DS40044G-página 42 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-14: DIAGRAMA DE BLOCO DO PIN RB6/T1OSO/T1CKI/PGC

VDD
RBPU

P pull-up fraco

Barramento de dados
DQ
VDD

PORTA WR B
CKQ

Trava de dados

RB6/
DQ T1OSO/
T1CKI/
WR TRISB pino
CKQ PGC
VSS
Trinco TRIS

RD TRISB

T1OSCEN

Buffer

de
entrada TTL
PORTA RD B

Relógio TMR1

Schmitt
De RB7 Acionar

oscilador TMR1
Relógio de programação serial

Q D

DENTRO
Q1

conjunto RBIF

De outro Q D
RB<7:4> pinos
Q3
DENTRO

© 2009 Microchip Technology Inc. DS40044G-página 43


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 5-15: DIAGRAMA DE BLOCO DO PIN RB7/T1OSI/PGD
VDD
RBPU
P pull-up fraco

Para RB6
oscilador TMR1

VDD

Barramento de dados
DQ

PORTA WR B RB7/T1OSI/
CKQ
pino PGD
Trava de dados

D Q VSS

WR TRISB
CKQ

Trinco TRIS

RD TRISB

CENA T10

Buffer
PORTA RD B
de
entrada TTL

Entrada de programação serial

Schmitt
Acionar

Q D

DENTRO Q1

conjunto RBIF

De outro Q D
RB<7:4> pinos
Q3
DENTRO

DS40044G-página 44 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 5-3: FUNÇÕES DA PORTA

Resultado
Nome Tipo de entrada de função Descrição
Modelo

RB0/INT RB0 TTL Porta de E/S bidirecional CMOS. Pode ser programado por software para pull-up
fraco interno.
INT ST - Interrupção externa
RB1/RX/DT RB1 TTL Porta de E/S bidirecional CMOS. Pode ser programado por software para pull-up
fraco interno.
RX ST — PIN de recepção USART

TD ST E/S de dados síncronos CMOS


RB2/TX/CK RB2 TTL Porta de E/S bidirecional CMOS
TX — Pino de Transmissão CMOS USART
CK ST CMOS Synchronous Clock I/O. Pode ser programado por software para pull-up
fraco interno.
RB3/CCP1 RB3 TTL Porta de E/S bidirecional CMOS. Pode ser programado por software para pull-up
fraco interno.
PCC1 ST Capturar CMOS/Comparar/PWM/E/S
RB4/PGM RB4 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino. Pode ser
software programado para pull-up fraco interno.
PGM ST — Pino de entrada de programação de baixa tensão. Quando a programação
de baixa tensão está habilitada, a mudança de interrupção no pino
e o resistor de pull-up fraco são desabilitados.
RB5 RB5 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino. Pode ser
software programado para pull-up fraco interno.
RB6/T1OSO/T1CKI/ RB6 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino. Pode ser
PGC software programado para pull-up fraco interno.
T1OSO — Saída do oscilador XTAL Timer1
T1CKI ST — Entrada do Relógio do Timer1
PGC ST — Relógio de programação ICSP™
RB7/T1OSI/PGD RB7 TTL Porta de E/S bidirecional CMOS. Mudança de interrupção no pino. Pode ser
software programado para pull-up fraco interno.
T1OSI XTAL — Entrada do oscilador Timer1
PGD ST E/S de dados CMOS ICSP

Legenda: O = Saída CMOS = Saída CMOS P = Potência


— = Não usado EU

= Entrada ST = Entrada de Gatilho Schmitt


TTL = Entrada TTL OD = Saída de Dreno Aberto AN = Analógico

TABELA 5-4: RESUMO DOS REGISTOS ASSOCIADOS A PORTB

Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Todos os outros
POR
Reinicializações

06h, 106h PORTO RB7 RB6 RB5 RB4(1) RB3 RB2 RB1 RB0 xxxx xxxx uuuu uuuu

86h, 186h TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111

81h, 181h OPÇÃO RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111

Legenda: u = inalterado, x = desconhecido. As células sombreadas não são usadas para PORTB.
Nota 1: O bit de configuração do LVP define a funcionalidade do RB4.

© 2009 Microchip Technology Inc. DS40044G-página 45


Machine Translated by Google

PIC16F627A/628A/648A
5.3 Considerações de programação de E/S EXEMPLO 5-2: LER-MODIFICAR-GRAVAR
INSTRUÇÕES SOBRE UM
5.3.1 PORTAS DE E/S BIDIRECIONAIS E/S PORTO
Qualquer instrução que escreve opera internamente como uma leitura ;Configurações iniciais de PORT:PORTB<7:4> Entradas
; Saídas PORTB<3:0>
seguido por uma operação de gravação. O BCF e o BSF
;PORTB<7:6> tem pull-up externo e são
instruções, por exemplo, leia o registro no
;não conectado a outros circuitos
CPU, execute a operação de bit e escreva o resultado
;
de volta ao registro. Deve-se ter cuidado quando estes PORT trava PORT Pinos
;
instruções são aplicadas a uma porta com entradas e ---------- ----------

saídas definidas. Por exemplo, uma operação BSF no bit 5 STATUS BCF, RP0 ;
de PORTB fará com que todos os oito bits de PORTB sejam lidos BCF PORTB, 7 ;01pp pppp 11pp pppp
na CPU. Em seguida, a operação BSF ocorre em STATUS BSF, RP0 ;
bit 5 e PORTB são gravados nas travas de saída. Se BCF TRISB, 7 ;10pp pppp 11pp pppp

outro bit de PORTB é usado como um pino de E/S bidirecional BCF TRISB, 6 ;10pp pppp 10pp pppp
;
(por exemplo, bit 0) e é definido como uma entrada neste momento, o
;Observe que o usuário pode ter esperado o
sinal de entrada presente no próprio pino seria lido em
;os valores dos pinos devem ser 00pp pppp. O 2º BCF
a CPU e reescrito na trava de dados deste
;fez que RB7 fosse travado como o valor do pino
pin, substituindo o conteúdo anterior. Enquanto o pino
;(Alto).
permanece no modo de entrada, nenhum problema ocorre. No entanto,
se o bit 0 for alternado para o modo de saída mais tarde, o
5.3.2 OPERAÇÕES SUCESSIVAS EM E/S
o conteúdo da trava de dados pode agora ser desconhecido.
PORTOS
Ler um registrador de porta lê os valores da porta
A gravação real em uma porta de E/S acontece no final de
alfinetes. Gravar no registrador de porta grava o valor no
um ciclo de instrução, enquanto para leitura, os dados
trava da porta. Ao usar instruções de leitura-modificação-gravação
deve ser válido no início do ciclo de instrução
(ex. BCF, BSF, etc.) em uma porta, o valor dos pinos da porta
(Figura 5-16). Portanto, deve-se ter cuidado se um
é lido, a operação desejada é feita para este valor, e
write seguido por uma operação de leitura é realizado no
esse valor é então gravado na trava da porta.
mesma porta de E/S. A sequência de instruções deve ser
O Exemplo 5-2 mostra o efeito de duas instruções sequenciais de para permitir que a tensão do pino se estabilize (carga
leitura, modificação e gravação (ex., BCF, BSF, etc.) em um dependente) antes da próxima instrução, o que causa
porta de entrada/saída.
esse arquivo a ser lido na CPU, é executado. Caso contrário, o estado
Um pino emitindo ativamente um Low ou High não deve ser anterior desse pino pode ser lido
acionado a partir de dispositivos externos ao mesmo tempo para a CPU em vez do novo estado. Na dúvida, é
para alterar o nível neste pino (“wired-OR”, “wired AND”). As altas é melhor separar essas instruções com um NOP ou
correntes de saída resultantes podem danificar outra instrução não acessando esta porta de E/S.
o chip.

FIGURA 5-16: OPERAÇÃO DE E/S SUCESSIVA

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

computador computador PC + 1 PC + 2 PC + 3
Instrução PORTA MOVWF NOP NOP
MOVF PORTB, W
buscado Escreva para PORTB Leia para PORTB

Pino da porta
amostrado aqui

TPD
Executar Executar Executar
MOVWF MOVF NOP
PORTB PORTO, W.

Nota 1: Este exemplo mostra a gravação em PORTB seguida por uma leitura de PORTB.
2: Tempo de setup de dados = (0,25 TCY - TPD) onde TCY = ciclo de instrução e TPD = atraso de propagação do ciclo Q1 para saída válida.
Portanto, em frequências de clock mais altas, uma gravação seguida de uma leitura pode ser problemática.

DS40044G-página 46 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
6.0 MÓDULO DE TEMPORIZADOR0 6.2 Usando Timer0 com Relógio Externo

O temporizador/contador do módulo Timer0 possui os seguintes Quando uma entrada de relógio externa é usada para Timer0, ela
recursos: deve atender a certos requisitos. O requisito de relógio externo é

• temporizador/contador de 8 bits
devido à sincronização do relógio de fase interno (TOSC) . Além
disso, há um atraso no incremento real de Timer0 após a
• Capacidades de leitura/
sincronização.
gravação • Pré-escalador programável por software
de 8 bits • Seleção de relógio interno ou externo 6.2.1 RELÓGIO EXTERNO
• Interrupção no overflow de FFh a 00h • Seleção SINCRONIZAÇÃO

de borda para relógio externo Quando nenhum prescaler é usado, a entrada de clock externa é a
mesma que a saída do prescaler. A sincronização de T0CKI com os
A Figura 6-1 é um diagrama de blocos simplificado do módulo
Timer0. Informações adicionais estão disponíveis no “PIC® relógios de fase internos é realizada pela amostragem da saída do
pré-escalador nos ciclos Q2 e Q4 dos relógios de fase internos
Manual de referência da família MCU de médio porte” (DS33023).
(Figura 6-1). Portanto, é necessário que T0CKI seja alto por pelo
O modo temporizador é selecionado limpando o bit T0CS menos 2TOSC (e um pequeno atraso RC de 20 ns) e baixo por pelo
(OPTION<5>). No modo Timer, o valor do registrador TMR0 será menos 2TOSC (e um pequeno atraso RC de 20 ns). Consulte a
incrementado a cada ciclo de instrução (sem prescaler). Se o especificação elétrica do dispositivo desejado.
registrador TMR0 for escrito, o incremento é inibido pelos dois ciclos
seguintes. O usuário pode contornar isso escrevendo um valor
ajustado no registro TMR0.
Quando um pré-escalador é usado, a entrada de clock externa é
dividida pelo pré-escalador do tipo contador de ondulação assíncrono
O modo contador é selecionado configurando o bit T0CS. Neste para que a saída do pré-escalador seja simétrica.
modo, o valor do registro TMR0 será incrementado em cada borda Para que o relógio externo atenda ao requisito de amostragem, o
ascendente ou descendente do pino RA4/T0CKI/CMP2. contador de ondulação deve ser levado em consideração. Portanto,
A borda de incremento é determinada pelo bit de controle da borda é necessário que T0CKI tenha um período de pelo menos 4TOSC (e
de origem (T0SE) (OPTION<4>). Apagar o bit T0SE seleciona a um pequeno atraso RC de 40 ns) dividido pelo valor do prescaler. O
borda de subida. Restrições na entrada de relógio externo são único requisito no tempo alto e baixo do T0CKI é que eles não violem
discutidas em detalhes na Seção 6.2 “Usando Timer0 com Relógio o requisito mínimo de largura de pulso de 10 ns. Consulte os
Externo”. parâmetros 40, 41 e 42 na especificação elétrica do dispositivo
O prescaler é compartilhado entre o módulo Timer0 e o Watchdog desejado. Consulte a Tabela 17-8.
Timer. A atribuição do prescaler é controlada em software pelo bit
de controle PSA (OPTION<3>). Limpar o bit PSA atribuirá o prescaler
ao Timer0. O prescaler não é legível ou gravável. Quando o prescaler
é atribuído ao módulo Timer0, os valores de prescale de 1:2, 1:4,...,
1:256 são selecionáveis. A seção 6.3 “Timer0 Prescaler” detalha a
operação do prescaler.

6.1 Interrupção do Temporizador0

A interrupção do Timer0 é gerada quando o temporizador/contador


do registrador TMR0 transborda de FFh para 00h. Este estouro
define o bit T0IF. A interrupção pode ser mascarada limpando o bit
T0IE (INTCON<5>). O bit T0IF (INTCON<2>) deve ser apagado em
software pela rotina de serviço de interrupção do módulo Timer0
antes de reativar esta interrupção. A interrupção do Timer0 não pode
acordar o processador da suspensão, pois o temporizador é
desligado durante a suspensão.

© 2009 Microchip Technology Inc. DS40044G-página 47


Machine Translated by Google

PIC16F627A/628A/648A
6.3 Temporizador0 Pré-escalonador Os bits PSA e PS<2:0> (OPTION<3:0>) determinam a
atribuição do prescaler e a proporção do prescale.
Um contador de 8 bits está disponível como prescaler
para o módulo Timer0 ou como postscaler para o Quando atribuída ao módulo Timer0, todas as instruções
Watchdog Timer. Uma atribuição de prescaler para o escritas no registrador TMR0 (por exemplo, CLRF 1,
módulo Timer0 significa que não há postscaler para o MOVWF 1, BSF 1, x....etc.) limparão o prescaler. Quando
Watchdog Timer e vice-versa. atribuída ao WDT, uma instrução CLRWDT limpará o
prescaler junto com o Watchdog Timer. O prescaler não
é legível ou gravável.

FIGURA 6-1: DIAGRAMA DE BLOCOS DO TIMER0/WDT

ESCURO/4 Barramento de dados

8
0

pino 1 SINCRONIZAÇÃO
1
T0CKI 2 TMR0 Reg
0 Ciclos

T0SE
T0CS
Defina o bit de
Fonte de Relógio TMR1 PSA sinalização T0IF no estouro

0
Pós-escalador WDT/

cão de guarda Pré-escalador TMR0


1
Cronômetro

8
PSA

8 para 1 MUX PS<2:0>

Bit de habilitação WDT

1
WDT
Tempo esgotado
0

PSA

Observação: . são bits no registrador de opções.


T0SE, T0CS, PSA, PS<2:0>

DS40044G-página 48 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
6.3.1 COMUTANDO O PRÉ-CALADOR Para alterar o prescaler do WDT para o Timer0
ATRIBUIÇÃO módulo, use a sequência mostrada no Exemplo 6-2. este
precaução deve ser tomada mesmo se o WDT estiver desabilitado.
A atribuição do pré-escalador está totalmente sob software
controle (ou seja, pode ser alterado "on-the-fly" durante
EXEMPLO 6-2: TROCA DO PRÉ-CALLER
execução do programa). Use as sequências de instruções
mostrado no Exemplo 6-1 ao alterar o prescaler (WDT ÿ TEMPORIZADOR0)

atribuição de Timer0 para WDT, para evitar uma CLRWDT ;Limpar WDT e ;prescaler
Reinicialização do dispositivo não intencional.
BSF ESTADO, RP0
MOVLW b'xxxx0xxx' ;Selecione TMR0, novo ;valor
EXEMPLO 6-1: TROCA DO PRÉ-CALLER
de pré-escala e
(TIMER0 ÿ WDT) ;fonte do relógio
BCF ESTADO, RP0 ;Pular se já estiver MOVWF OPTION_REG
;Banco 0 BCF ESTADO, RP0
CLRWDT ;Limpar WDT
CLRF TMR0 ;Limpar TMR0 e
;Pré-escalonador
BSF ESTADO, RP0 ;Banco 1
MOVLW '00101111'b ;Estas 3 linhas ;(5, 6,
7)
MOVWF OPTION_REG ; são necessários apenas
;se desejar PS<2:0>
;são
CLRWDT ;000 ou 001
MOVLW '00101xxx'b ;Defina Postscaler para
MOVWF OPTION_REG ;taxa WDT desejada
BCF ESTADO, RP0 ;Voltar ao Banco 0

TABELA 6-1: REGISTROS ASSOCIADOS A TIMER0

Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Todos os outros
POR
Reinicializações

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

0Bh, 8Bh,
INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh

81h, 181h OPÇÃO(2) RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111

85h TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111

Legenda: - = Locais não implementados, lidos como '0', u = inalterado, x = desconhecido. As células sombreadas não são usadas para Timer0.
Nota 1: A opção é referida por OPTION_REG no software MPLAB® IDE.

© 2009 Microchip Technology Inc. DS40044G-página 49


Machine Translated by Google

PIC16F627A/628A/648A
7.0 MÓDULO DE TEMPORIZADOR1 No modo Timer, o valor do par de registradores TMR1
incrementa a cada ciclo de instrução. No modo Contador,
O módulo Timer1 é um temporizador/contador de 16 bits que consiste incrementos em cada borda de subida do clock externo
de dois registradores de 8 bits (TMR1H e TMR1L) que são entrada.
legível e gravável. O par de registradores TMR1
Timer1 pode ser ativado/desativado configurando/limpando
(TMR1H:TMR1L) aumenta de 0000h a FFFFh
bit de controle TMR1ON (T1CON<0>).
e rola para 0000h. A interrupção do Timer1, se
habilitado, é gerado no estouro do registrador TMR1 O Timer1 também possui uma “entrada de reset” interna. Esta redefinição
par que trava o bit de flag de interrupção TMR1IF pode ser gerado pelo módulo CCP (Seção 9.0
(PIR1<0>). Esta interrupção pode ser habilitada/desabilitada por “Capturar/Comparar/PWM (CCP) Módulo").
configurando/apagando o bit de habilitação de interrupção do Timer1 TMR1IE O registro 7-1 mostra o registro de controle do Timer1.
(PIE1 <0>). Para o PIC16F627A/628A/648A, quando o Timer1
Timer1 pode operar em um dos dois modos: oscilador está habilitado (T1OSCEN está definido), o RB7/
Pinos T1OSI/PGD e RB6/T1OSO/T1CKI/PGC
• Como um temporizador
tornam-se entradas. Ou seja, o valor TRISB<7:6> é
• Como contador
ignorado.
O modo de operação é determinado pela seleção do relógio
bit, TMR1CS (T1CON<1>).

REGISTRO 7-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 T1CKPS<1:0>: Temporizador1 Entrada Relógio Pré-escala Selecione 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 (1)

parte 2 T1SYNC: Bit de controle de sincronização de entrada de relógio externo do Timer1


TMR1CS = 1
1 = Não sincroniza a entrada do relógio externo
0 = Sincroniza a entrada do relógio externo
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 RB6/T1OSO/T1CKI/PGC (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

Nota 1: O inversor oscilador e o resistor de feedback são desligados para eliminar o consumo de energia.

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

DS40044G-página 50 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
7.1 Funcionamento do Timer1 no Modo Timer 7.2.1 TEMPO DE ENTRADA DE RELÓGIO EXTERNO
PARA CONTADOR SINCRONIZADO
O modo temporizador é selecionado limpando o bit TMR1CS
MODO
(T1CON<1>). Neste modo, o relógio de entrada para o
temporizador é FOSC/4. O bit de controle de sincronização Quando uma entrada de relógio externa é usada para Timer1 no
T1SYNC (T1CON<2>) não tem efeito, pois o relógio interno está modo Synchronized Counter, ela deve atender a certos requisitos.
sempre sincronizado. O requisito de relógio externo é devido à sincronização do relógio
de fase interno (TOSC) . Além disso, há um atraso no incremento
real do valor do par de registradores TMR1 após a sincronização.
7.2 Operação do Timer1 no Modo de Contador
Sincronizado
Quando o prescaler é 1:1, a entrada do clock externo é igual à
O modo contador é selecionado configurando o bit TMR1CS. saída do prescaler. A sincronização de T1CKI com os relógios de
Neste modo, o valor do par de registradores TMR1 é incrementado fase internos é realizada por amostragem da saída do pré-
a cada flanco ascendente da entrada de clock no pino RB7/T1OSI/ escalador nos ciclos Q2 e Q4 dos relógios de fase internos.
PGD quando o bit T1OSCEN é ativado ou no pino RB6/T1OSO/ Portanto, é necessário que T1CKI seja alto por pelo menos 2
T1CKI/PGC quando o bit T1OSCEN é apagado.
TOSC (e um pequeno atraso RC de 20 ns) e baixo por pelo menos
Se T1SYNC for desenergizado, a entrada do relógio externo será 2 TOSC (e um pequeno atraso RC de 20 ns). Consulte a Tabela
sincronizada com os relógios de fase internos. A sincronização é 17-8 na Seção de Especificações Elétricas, parâmetros de tempo
feita após a etapa de prescaler. O estágio de prescaler é um 45, 46 e 47.
contador de ondulação assíncrono.

Nesta configuração, durante o modo Sleep, o valor do par de Quando um pré-escalador diferente de 1:1 é usado, a entrada do
registradores TMR1 não será incrementado mesmo que o relógio relógio externo é dividida pelo pré-escalador do tipo contador de
externo esteja presente, pois o circuito de sincronização está ondulação assíncrono para que a saída do pré-escalador seja
desligado. O prescaler, no entanto, continuará a incrementar. simétrica. Para que o relógio externo atenda ao requisito de
amostragem, o contador de ondulação deve ser levado em
consideração. Portanto, é necessário que T1CKI tenha um período
de pelo menos 4 TOSC (e um pequeno atraso RC de 40 ns)
dividido pelo valor do prescaler. O único requisito no tempo alto e
baixo do T1CKI é que eles não violem os requisitos mínimos de
largura de pulso de 10 ns). Consulte as especificações elétricas
apropriadas na Tabela 17-8, parâmetros 45, 46 e 47.

FIGURA 7-1: DIAGRAMA DE BLOCO DO TIMER1

Definir bit de sinalizador

TMR1IF ativado
Transbordar Sincronizado
TMR1 0
Entrada de relógio

TMR1H TMR1L
1
TMR1ON
T1SYNC
T1OSC
RB6/T1OSO/T1CKI/PGC 1
Sincronizar
Pré-
T1OSCEN ESCURO/4
escalador 1, 2, 4, 8 a
Permitir interno 0
RB7/T1OSI/PGD Oscilador(1) Relógio 2
Entrada de sono
T1CKPS<1:0>

TMR1CS

Nota 1: Quando o bit T1OSCEN é apagado, o inversor e o resistor de realimentação são desligados. Isso elimina o dreno de energia.

© 2009 Microchip Technology Inc. DS40044G-página 51


Machine Translated by Google

PIC16F627A/628A/648A
7.3 Operação do Timer1 no EXEMPLO 7-1: LENDO UM 16 BITS GRÁTIS
Modo Contador Assíncrono TEMPORIZADOR EM EXECUÇÃO

; Todas as interrupções estão desabilitadas


Se o bit de controle T1SYNC (T1CON<2>) estiver definido, o MOVF TMR1H, W ;Ler byte alto
a entrada do relógio não está sincronizada. O temporizador continua a MOVWF TMPH ;
incremento assíncrono aos relógios de fase internos. MOVF TMR1L, W ;Ler byte baixo
O cronômetro continuará a funcionar durante a suspensão e pode MOVWF TMPL ;
gerar uma interrupção no estouro, que vai acordar o MOVF TMR1H, W ;Ler byte alto
processador. No entanto, precauções especiais no software são SUBWF TMPH, W ;Sub 1ª leitura com

necessário para ler/escrever o temporizador (Seção 7.3.2 “Leitura ;2ª leitura


BTFSC STATUS,Z ;É resultado = 0
e Gravando Timer1 em Contador Assíncrono
GOTO CONTINUE ;Boa leitura de 16 bits
Modo").
;

Nota: No modo Contador Assíncrono, Timer1 ; TMR1L pode ter rolado entre o ; leitura dos bytes alto e baixo. Leitura

não pode ser usado como base de tempo para captura


; os bytes altos e baixos agora lerão um bom
ou comparar operações.
; valor.
;
7.3.1 TEMPO DE ENTRADA DE RELÓGIO EXTERNO
MOVF TMR1H, W ;Ler byte alto
COM RELÓGIO NÃO SINCRONIZADO MOVWF TMPH ;
Se o bit de controle T1SYNC estiver definido, o temporizador aumentará MOVF TMR1L, W ;Ler byte baixo
MOVWF TMPL ;
totalmente assíncrona. O clock de entrada deve atender
; Reative as interrupções (se necessário)
certos requisitos mínimos de tempo alto e baixo. Referir
PROSSEGUIR ;Continue com o seu
à Tabela 17-8 na Seção de Especificações Elétricas,
;código
parâmetros de temporização 45, 46 e 47.

7.3.2 TEMPORIZADOR DE LEITURA E ESCRITA 1 IN


CONTADOR ASSÍNCRONO
MODO

Lendo o registro TMR1H ou TMR1L, enquanto o temporizador


está sendo executado a partir de um relógio assíncrono externo,
produzir uma leitura válida (cuidada no hardware).
No entanto, o usuário deve ter em mente que a leitura do
O temporizador de 16 bits em dois valores de 8 bits apresenta
problemas, pois o temporizador pode transbordar entre o
lê.

Para gravações, é recomendado que o usuário simplesmente pare


o temporizador e escreva os valores desejados. Uma escrita
contenção pode ocorrer escrevendo para os registradores do temporizador
enquanto o registrador está incrementando. Isso pode produzir um
valor imprevisível no registro do temporizador.

A leitura do valor de 16 bits requer alguns cuidados.


O Exemplo 7-1 é uma rotina de exemplo para ler o arquivo de 16 bits
valor do temporizador. Isto é útil se o temporizador não puder ser
parou.

DS40044G-página 52 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
7.4 Temporizador1 Oscilador 7,5 Redefinindo o temporizador1 usando um CCP

Um circuito oscilador de cristal é construído entre os pinos T1OSI


Saída do gatilho
(entrada) e T1OSO (saída do amplificador). Ele é habilitado por Se o módulo CCP1 estiver configurado no modo Comparar para
configuração do bit de controle T1OSCEN (T1CON<3>). Será gerar um “gatilho de evento especial” (CCP1M<3:0> =
continuar a funcionar durante o sono. Destina-se principalmente a 1011), este sinal irá reiniciar o Timer1.
um cristal de relógio de 32,768 kHz. A Tabela 7-1 mostra o
seleção do capacitor para o oscilador Timer1. Nota: Os acionadores de eventos especiais do CCP1
o módulo não definirá o bit de sinalização de interrupção
O usuário deve fornecer um atraso de tempo de software para garantir
TMR1IF (PIR1<0>).
partida correta do oscilador.
Timer1 deve ser configurado para timer ou
Modo de contador sincronizado para tirar proveito disso
TABELA 7-1: SELEÇÃO DE CAPACITOR PARA
característica. Se o Timer1 estiver sendo executado no contador assíncrono
O OSCILADOR DO TEMPORIZADOR1
modo, esta operação de reinicialização pode não funcionar.

Frequencia C1 C2 No caso de uma gravação no Timer1 coincidir com um


acionador de evento especial do CCP1, a gravação levará
32,768 kHz 15 pF 15 pF
precedência.
Nota: Esses valores são apenas para orientação de projeto.
Neste modo de operação, o CCPRxH:CCPRxL
Consulte a Nota de Aplicação AN826 “Cristal
par de registradores efetivamente se torna o registrador de período para
Noções básicas de oscilador e seleção de cristal para
Temporizador1.
Dispositivos rfPIC® e PIC® ” (DS00826) para
mais informações sobre Cristal/Capacitor
Seleção. 7.6 Redefinindo o par de registros do Timer1
(TMR1H, TMR1L)
Os registros TMR1H e TMR1L não são redefinidos para 00h em
um POR ou qualquer outro Reset exceto pelo CCP1 especial
acionadores de eventos (consulte a Seção 9.2.4 "Evento Especial
Acionar").

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 todas as outras Reinicializações, o registro
não é afetado.

7.7 Temporizador1 Pré-escalonador

O contador do pré-escalador é apagado nas gravações no


registradores TMR1H ou TMR1L.

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

Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR
Reinicializações

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

8 canais TORTA1 OLHO CMIE RCIE ESSA — 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

Lenda: x = desconhecido, u = inalterado, - = não implementado lido como '0'. As células sombreadas não são usadas pelo módulo Timer1.

© 2009 Microchip Technology Inc. DS40044G-página 53


Machine Translated by Google

PIC16F627A/628A/648A
8.0 MÓDULO DO TEMPORIZADOR 2 8.1 Timer2 Prescaler e Postscaler
Timer2 é um temporizador de 8 bits com um prescaler e um Os contadores do pré-escalador e pós-escalador são apagados
postscaler. Pode ser usado como base de tempo PWM para o modo quando ocorre uma das seguintes situações:
PWM do módulo CCP. O registro TMR2 é legível e gravável, e é • uma gravação no registrador TMR2
apagado em qualquer reinicialização do dispositivo.
• uma gravação no registrador T2CON
• qualquer reset de dispositivo (Power-on Reset, MCLR Reset,
O clock de entrada (FOSC/4) possui uma opção de pré-escala de Redefinição do temporizador do watchdog ou redefinição de Brown-out)
1:1, 1:4 ou 1:16, selecionada pelos bits de controle T2CKPS<1:0>
O registrador TMR2 não é apagado quando T2CON é escrito.
(T2CON<1:0>).

O módulo Timer2 possui um registrador de período de 8 bits PR2.


O valor do registro TMR2 é incrementado de 00h até corresponder
ao valor do registro PR2 e, em seguida, reinicia para 00h no próximo 8.2 Saída TMR2
ciclo de incremento. O registrador PR2 é um registrador legível e A saída TMR2 (antes do postscaler) é alimentada ao módulo
gravável. O registrador PR2 é inicializado para FFh após o Reset. Synchronous Serial Port que opcionalmente a utiliza para gerar o
shift clock.
A saída de correspondência do Timer2 passa por um postscaler de
4 bits (que fornece uma escala de 1:1 a 1:16 inclusive) para gerar FIGURA 8-1: DIAGRAMA DE BLOCO DO TEMPORIZADOR 2

uma interrupção do Timer2 (travada no bit de sinalização TMR2IF,


(PIR1<1>)). Define o bit de
Saída
sinalização TMR2IF
TMR2
O Timer2 pode ser desligado limpando o bit de controle TMR2ON
(T2CON<2>) para minimizar o consumo de energia.
Redefinir Pré-escalador
Registro TMR2 ESCURO/4
O registro 8-1 mostra o registro de controle do Timer2. 1:1, 1:4, 1:16

Pós-escalador
2
Comparador
1:1 a 1:16 EQ
T2CKPS<1:0>
4
PR2 Reg

TOUTPS <3:0>

DS40044G-página 54 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
REGISTRO 8-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 TOUTPS<3:0>: Bits de seleção de pós- escala de saída do Timer2
0000 = 1:1 Valor Postscale
0001 = 1:2 Valor Postscale



1111 = 1:16 Postscale

parte 2 TMR2ON: Temporizador2 em bit


1 = Temporizador2 está ligado

0 = Temporizador2 está desligado

pouco 1-0 T2CKPS<1:0>: Timer2 Clock Prescale Select bits


00 = 1:1 Valor do pré-escalador
01 = 1:4 Valor do pré-escalador
1x = 1:16 Valor do pré-escalador

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

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


Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR
Reinicializações

0Bh, 8Bh, INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

8 canais TORTA1 ISTO CMIE RCIE ESSA — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

11h 0000 0000 0000 0000


Registro do Módulo TMR2 Timer2

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

92h PR2 1111 1111 1111 1111


Registro do Período do Timer2

Lenda: x = desconhecido, u = inalterado, - = não implementado lido como '0'. As células sombreadas não são usadas pelo módulo Timer2.

© 2009 Microchip Technology Inc. DS40044G-página 55


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 56 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
9.0 CAPTURA/COMPARAÇÃO/PWM TABELA 9-1: MODO CCP - TEMPORIZADOR
RECURSO
(CCP) MÓDULO
Modo PCC Recurso de temporizador
O módulo CCP (Capturar/Comparar/PWM) contém um
Registro de 16 bits que pode operar como um Capture de 16 bits Capturar Temporizador1

registrador, como um registrador de comparação de 16 bits ou como um PWM Comparar Temporizador1

registrador de ciclo de trabalho mestre/escravo. A Tabela 9-1 mostra o


PWM Temporizador2
recursos de temporizador dos modos do módulo CCP.

Módulo CCP1

Capturar/Comparar/Registro PWM1 (CCPR1) é


composto por dois registradores de 8 bits: CCPR1L (byte baixo)
e CCPR1H (byte alto). O registro CCP1CON
controla a operação do CCP1. Todos são legíveis e
gravável.

Informações adicionais sobre o módulo CCP estão disponíveis

no “Manual de referência da família MCU de médio porte PIC®” (DS33023).

CADASTRO 9-1: CCP1CON – REGISTRO DE OPERAÇÃO CCP (ENDEREÇO: 17h)


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 no CCPRxL.
pouco 3-0 CCP1M<3:0>: bits de seleção do modo CCPx

0000 = Capturar/Comparar/PWM desligado (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 é definido; CCP1 redefine TMR1
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

© 2009 Microchip Technology Inc. DS40044G-página 57


Machine Translated by Google

PIC16F627A/628A/648A
9.1 Modo de captura 9.1.4 PRÉ-CALALADOR CCP

No modo Capture, CCPR1H:CCPR1L captura o valor de 16 bits Existem quatro configurações de prescaler, especificadas pelos
bits CCP1M<3:0>. Sempre que o módulo CCP é desligado ou o
do registrador TMR1 quando ocorre um evento no pino RB3/
CCP1. Um evento é definido como: módulo CCP não está no modo Capture, o contador do prescaler
é apagado. Isso significa que qualquer Reinicialização limpará o
• Cada borda de descida
contador do prescaler.
• Cada borda de subida
Alternar de um prescaler de captura para outro pode gerar uma
• Cada 4ª borda de subida
interrupção. Além disso, o contador do prescaler não será
• Cada 16ª borda de subida apagado, portanto, a primeira captura pode ser de um prescaler
Um evento é selecionado pelos bits de controle CCP1M<3:0> diferente de zero. O Exemplo 9-1 mostra o método recomendado
(CCP1CON<3:0>). Quando uma captura é feita, o bit de flag de para alternar entre prescalers de captura. Este exemplo também
solicitação de interrupção CCP1IF (PIR1<2>) é definido. Deve limpa o contador do prescaler e não irá gerar a interrupção
ser limpo no software. Caso ocorra outra captura antes da leitura “falsa”.
do valor no registro CCPR1, o antigo valor capturado será
perdido. EXEMPLO 9-1: MUDANÇA ENTRE
CAPTURA DE PRÉ-ESCALADORES
9.1.1 CONFIGURAÇÃO DO PIN CCP
CLRF CCP1CON ;Desliga o módulo CCP
No modo de Captura, o pino RB3/CCP1 deve ser configurado MOVLW NEW_CAPT_PS ;Carrega o W reg com ; o novo pré-
como entrada configurando o bit TRISB<3>. escalador; valor de modo e CCP
LIGADO
Nota: Se o RB3/CCP1 estiver configurado como uma saída, MOVWF CCP1CON ;Carrega CCP1CON com isso ; valor
uma gravação na porta pode causar uma condição
de captura.

9.2 Modo Comparar


FIGURA 9-1: MODO DE CAPTURA
BLOCO DE OPERAÇÃO No modo Comparar, o valor do registro CCPR1 de 16 bits é
DIAGRAMA constantemente comparado com o valor do par de registros
TMR1. Quando ocorre uma correspondência, o pino RB3/CCP1 é:
Definir bit de sinalização CCP1IF
Pré-escalador (PIR1<2>) • Dirigido alto •
³ Dirigido baixo
1, 4, 16

pino RB3/ CCPR1H CCPR1L • Permanece inalterado A


CCP1
ação no pino é baseada no valor dos bits de controle
e Capturar
Permitir CCP1M<3:0> (CCP1CON<3:0>). Ao mesmo tempo, o bit de flag
detecção de borda
de interrupção CCP1IF é definido.
TMR1H TMR1L

CCP1CON<3:0>
Perguntas
FIGURA 9-2: MODO COMPARAR
BLOCO DE OPERAÇÃO
DIAGRAMA
9.1.2 SELEÇÃO DO MODO TIMER1

O Timer1 deve estar funcionando no modo Timer ou no modo Definir bit de sinalização CCP1IF

Synchronized Counter para que o módulo CCP use o (PIR1<2>)


CCPR1H CCPR1L
recurso de captura. No modo Contador Assíncrono, a operação
de captura pode não funcionar. QS
Resultado
Comparador
pino RB3/ Lógica Combine
R
9.1.3 INTERRUPÇÃO DO SOFTWARE CCP1
TRISB<3> TMR1H TMR1L
Ativar saída CCP1CON<3:0>
Quando o modo de captura é alterado, uma interrupção de
Seleção de modo
captura falsa pode ser gerada. O usuário deve manter o bit
CCP1IE (PIE1<2>) limpo para evitar falsas interrupções e deve Observação: O acionador de evento especial reinicializará o Timer1, mas não
limpar o bit de sinalização CCP1IF após qualquer alteração no definirá o bit de sinalização de interrupção TMR1IF (PIR1<0>).

modo de operação.

DS40044G-página 58 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
9.2.1 CONFIGURAÇÃO DO PIN CCP 9.2.4 GATILHO DE EVENTO ESPECIAL
O usuário deve configurar o pino RB3/CCP1 como Neste modo (CCP1M<3:0>=1011), é gerado um trigger de hardware
saída limpando o bit TRISB<3>. interno, que pode ser usado para iniciar
uma ação. Consulte o Registro 9-1.
Nota: A limpeza do registro CCP1CON forçará
o RB3/CCP1 compara a trava de saída com A saída de disparo de evento especial do CCP ocorre
o nível baixo padrão. Estes não são os dados imediatamente após uma partida entre o TMR1H,
robusto. Par de registradores TMR1L e registrador CCPR1H, CCPR1L
par. O par de registradores TMR1H, TMR1L não é resetado até
9.2.2 SELEÇÃO DO MODO TIMER1 a próxima borda de subida do relógio TMR1. Isso permite que o
par de registradores CCPR1 para ser efetivamente um registrador
O Timer1 deve estar funcionando no modo Timer ou no modo
de período programável de 16 bits para Timer1. O evento especial
Synchronized Counter se o módulo CCP estiver usando o
a saída do acionador também inicia uma conversão A/D fornecida
recurso de comparação. No modo Contador Assíncrono, o
que o módulo A/D está habilitado.
a operação de comparação pode não funcionar.
Nota: Removendo a condição de correspondência alterando o
9.2.3 MODO DE INTERRUPÇÃO DO SOFTWARE conteúdo do CCPR1H, CCPR1L
Quando a geração de interrupção de software é escolhida, o CCP1 par de registradores entre a borda do clock que
pino não é afetado. Somente uma interrupção CCP é gerada (se gera o acionador de evento especial e
ativado). a borda do clock que gera o TMR1
A reinicialização impedirá a reinicialização de
ocorrendo.

TABELA 9-2: REGISTROS ASSOCIADOS À CAPTURA, COMPARAÇÃO E TEMPORIZADOR1


Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR
Reinicializações

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

8 canais TORTA1
EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

86h, 186h TRISB PORTB Registro de Direção de Dados 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

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

© 2009 Microchip Technology Inc. DS40044G-página 59


Machine Translated by Google

PIC16F627A/628A/648A
9.3 Modo PWM Uma saída PWM (Figura 9-4) tem uma base de tempo (período)
e um tempo que a saída permanece alta (ciclo de trabalho). o
No modo Pulse Width Modulation (PWM), o pino CCP1 frequência do PWM é o inverso do período
produz uma saída PWM de resolução de até 10 bits. Desde (frequência = 1/período).
o pino CCP1 é multiplexado com a trava de dados PORTB,
o bit TRISB<3> deve ser limpo para fazer o CCP1
FIGURA 9-4: SAÍDA PWM
pin uma saída.

Nota: A limpeza do registro CCP1CON forçará Período


a trava de saída CCP1 PWM para o padrão
nível baixo. Estes não são os dados de E/S PORTB
robusto.

Ciclo de trabalho
A Figura 9-3 mostra um diagrama de blocos simplificado do
Módulo CCP em modo PWM.
TMR2 = PR2

Para obter um procedimento passo a passo sobre como configurar o CCP


TMR2 = Ciclo de Trabalho
módulo para operação PWM, consulte a Seção 9.3.3 “Configuração
para operação PWM”. TMR2 = PR2

FIGURA 9-3: BLOCO PWM SIMPLIFICADO


9.3.1 PERÍODO PWM
DIAGRAMA
O período PWM é especificado escrevendo para o PR2
CCP1CON<5:4>
Registros de ciclo de trabalho registro. O período PWM pode ser calculado usando o

CCPR1L
seguinte fórmula:

Período PWM PR = [(] ) 2 4+ Tosc


1 ÿ ÿ TMR2 valor de pré-escala
ÿ

CCPR1H (Escravo) A frequência PWM é definida como 1/[período PWM].

Quando TMR2 é igual a PR2, os três eventos seguintes


Comparador RQ
ocorrer no próximo ciclo de incremento:
RB3/CCP1 • TMR2 é limpo
TMR2 (1)
S • O pino CCP1 está definido (exceção: se o ciclo de trabalho
PWM = 0%, o pino CCP1 não será definido)
TRISB<3> • O ciclo de trabalho PWM é travado de CCPR1L em
Comparador
Limpar temporizador, CCPR1H
Pino CCP1 e
trava DC
PR2
Nota: O postscaler Timer2 (consulte a Seção 8.0
Nota 1: O temporizador de 8 bits é concatenado com o relógio Q “Módulo Timer2”) não é usado no
interno de 2 bits ou 2 bits do prescaler para criar uma base de determinação da frequência PWM. o
tempo de 10 bits.
postscaler poderia ser usado para ter um servo
taxa de atualização em uma frequência diferente do que
a saída PWM.

DS40044G-página 60 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
9.3.2 CICLO DE SERVIÇO PWM Resolução máxima de PWM (bits) para um determinado PWM
frequência:
O ciclo de trabalho PWM é especificado escrevendo para o
registrador CCPR1L e aos bits CCP1CON<5:4>. Acima Sombrio
ÿÿ
para resolução de 10 bits está disponível: o CCPR1L contém PWM × Pré-escalador------------
registro -------------------------------------------------
FPWM TMR2
ÿ ÿ
Resolução =
os oito MSbs e o CCP1CON<5:4> contém o -------------------------------------------------- -------------------------- pedaços
log(2)
dois LSb. Este valor de 10 bits é representado por
CCPR1L:CCP1CON<5:4>. A equação a seguir é
usado para calcular o ciclo de trabalho PWM no tempo:
Nota: Se o valor do ciclo de trabalho PWM for maior que
Ciclo de trabalho PWM = o período PWM, o pino CCP1 não será
limpo.

(CCPR1L:CCP1CON<5:4>) Tosc TMR2 pré-escala


ÿ ÿ

valor Para um exemplo de período PWM e ciclo de trabalho


cálculo, consulte o PIC® Mid-Range Reference Manual (DS33023).

CCPR1L e CCP1CON<5:4> podem ser gravados em qualquer


tempo, mas o valor do ciclo de trabalho não está preso 9.3.3 CONFIGURAÇÃO PARA OPERAÇÃO PWM
CCPR1H até depois de uma partida entre PR2 e TMR2
As etapas a seguir devem ser seguidas ao configurar
ocorre (ou seja, o período está completo). No modo PWM,
o módulo CCP para operação PWM:
CCPR1H é um registrador somente leitura.
1. Defina o período PWM escrevendo para o PR2
O registrador CCPR1H e um latch interno de 2 bits são
registro.
usado para dobrar o buffer do ciclo de trabalho PWM. Este duplo
o buffer é essencial para a operação PWM sem falhas. 2. Defina o ciclo de trabalho PWM gravando no
Registro CCPR1L e bits CCP1CON<5:4>.
Quando o CCPR1H e a trava de 2 bits correspondem ao TMR2
concatenado com um relógio Q interno de 2 bits ou 2 bits de 3. Torne o pino CCP1 uma saída limpando o
TRISB<3> bits.
o pré-scaler TMR2, o pino CCP1 é limpo.
4. Defina o valor de pré-escala TMR2 e ative o Timer2
escrevendo para T2CON.

TABELA 9-3: 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 0xFF 0xFF 0xFF 0x3F 0x1F 0x17

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

TABELA 9-4: REGISTROS ASSOCIADOS A PWM E TIMER2

Valor em
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR
Reinicializações

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

8 canais TORTA1 ISTO CMIE RCIE ESSA — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

86h, 186h TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0 1111 1111 1111 1111

11h TMR2 Registro do Módulo 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 uuuu uuuu

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

16h CCPR1H Capture/Compare/PWM Register 1 (MSB) xxxx xxxx uuuu uuuu

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

Lenda: x = desconhecido, u = inalterado, - = não implementado lido como '0'. As células sombreadas não são usadas por PWM e Timer2.

© 2009 Microchip Technology Inc. DS40044G-página 61


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 62 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
10.0 MÓDULO COMPARADOR O registro CMCON, mostrado no Registro 10-1, controla
os multiplexadores de entrada e saída do comparador. Um bloco
O módulo comparador contém dois diagrama do comparador é mostrado na Figura 10-1.
comparadores. As entradas para os comparadores são
multiplexado com os pinos RA0 a RA3. O chip
Referência de Tensão (Seção 11.0 “Referência de Tensão
Module”) também pode ser uma entrada para os comparadores.

CADASTRO 10-1: CMCON – REGISTRO DE CONFIGURAÇÃO DO COMPARADOR (ENDEREÇO: 01Fh)


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

C2OUT C1OUT C2INV C1INV CEI CM2 CM1 CM0

pedaço 7 bit 0

pedaço 7 C2OUT: Bit de saída do comparador 2


Quando C2INV = 0:
1 = C2 VIN+ > C2 VIN
0 = C2 VIN+ < C2 VIN

Quando C2INV = 1:
1 = C2 VIN+ < C2 VIN
0 = C2 VIN+ > C2 VIN

bocado 6 C1OUT: Bit de saída do comparador 1


Quando C1INV = 0:
1 = C1 VIN+ > C1 VIN
0 = C1 VIN+ < C1 VIN

Quando C1INV = 1:
1 = C1 VIN+ < C1 VIN
0 = C1 VIN+ > C1 VIN

pedaço 5 C2INV: Bit de inversão de saída do comparador 2


1 = C2 Saída invertida
0 = C2 Saída não invertida
bocado 4 C1INV: Bit de inversão de saída do comparador 1
1 = C1 Saída invertida
0 = C1 Saída não invertida
parte 3 CIS: Bit de chave de entrada do comparador
Quando CM<2:0>: = 001
Então:
1 = C1 VIN - conecta ao RA3
0 = C1 VIN- conecta a RA0

Quando CM<2:0> = 010


Então:
1 = C1 VIN - conecta ao RA3
C2 VIN- conecta ao RA2
0 = C1 VIN- conecta a RA0
C2 VIN- conecta a RA1

pouco 2-0 CM<2:0>: Bits do modo comparador


A Figura 10-1 mostra os modos do comparador e as configurações de bit CM<2: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

© 2009 Microchip Technology Inc. DS40044G-página 63


Machine Translated by Google

PIC16F627A/628A/648A
10.1 Configuração do Comparador Se o modo Comparador for alterado, o comparador
o nível de saída pode não ser válido para o modo especificado
Existem oito modos de operação para o atraso de mudança mostrado na Tabela 17-2.
comparadores. O registrador CMCON é usado para selecionar
o modo. A Figura 10-1 mostra os oito possíveis Nota 1: as interrupções do comparador devem ser desabilitadas

modos. O registrador TRISA controla a direção dos dados durante uma mudança no modo Comparador,
dos pinos comparadores para cada modo. caso contrário, uma falsa interrupção pode ocorrer.

2: Comparadores podem ter um invertido


resultado. Consulte a Figura 10-1.

FIGURA 10-1: MODOS DE OPERAÇÃO DE E/S DO COMPARADOR

Comparadores desativados
Reinicialização de Comparadores (Valor Padrão POR)
CM<2:0> = 111
CM<2:0> = 000
D VENHA
RA0/YAN0
UMA VENHA
RA0/YAN0
D VIN+ C1 Desligado (ler como '0')
C1 Desligado (ler como '0') RA3/AN3/CMP1
RA3/AN3/CMP1 UMA VIN+

D VENHA
UMA VENHA RA1/AN1
RA1/AN1
D VIN+ C2 Desligado (ler como '0')
VIN+ C2 Desligado (ler como '0') RA2/AN2/VREF
RA2/AN2/VREF UMA

VSS

Quatro entradas multiplexadas para dois comparadores


Dois Comparadores Independentes CM<2:0> = 010
CM<2:0> = 100
UMA
RA0/YAN0
UMA VENHA CEI = 0 VENHA
RA0/YAN0
RA3/AN3/CMP1
UMA CEI = 1
C1VOUT C1 C1VOUT
UMA VIN+ C1 VIN+
RA3/AN3/CMP1

UMA
RA1/AN1
CEI = 0 VENHA

RA1/AN1 UMA VENHA RA2/AN2/VREF UMA


CEI = 1 C2VOUT
VIN+ C2
C2 C2VOUT
RA2/AN2/VREF UMA VIN+

De VREF
Módulo

Dois Comparadores de Referência Comuns Dois Comparadores de Referência Comum com Saídas
CM<2:0> = 011 CM<2:0> = 110

UMA VENHA
UMA VENHA RA0/YAN0
RA0/YAN0
C1 C1VOUT
D VIN+
VIN+ C1 C1VOUT RA3/AN3/CMP1
D
RA3/AN3/CMP1

UMA VENHA
UMA
RA1/AN1
VENHA
RA1/AN1
VIN+ C2 C2VOUT
C2VOUT RA2/AN2/VREF
UMA

VIN+ C2
RA2/AN2/VREF UMA

RA4/T0CKI/CMP2 Dreno aberto

Um Comparador Independente Três entradas multiplexadas para dois comparadores


CM<2:0> = 101 CM<2:0> = 001

D VENHA
RA0/YAN0 RA0/YAN0
UMA

CEI = 0 VENHA
D VIN+ C1 Desligado (ler como '0')
RA3/AN3/CMP1 RA3/AN3/CMP1
UMA CEI = 1
C1 C1VOUT
VIN+
VSS

UMA VENHA UMA VENHA


RA1/AN1 RA1/AN1
C2 C2VOUT C2 C2VOUT
RA2/AN2/VREF UMA VIN+ UMA VIN+
RA2/AN2/VREF

A = Entrada Analógica, a porta lê zeros sempre. D = Entrada Digital. CIS (CMCON<3>) é a chave de entrada do comparador.

DS40044G-página 64 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
O exemplo de código no Exemplo 10-1 descreve as etapas FIGURA 10-2: COMPARADOR ÚNICO
necessário para configurar o módulo Comparador. RA3 e
RA4 são configurados como saída digital. RA0 e RA1 são VIN+ +
configurado como entradas V- e RA2 como entrada V+ para Resultado

ambos comparadores. VENHA

EXEMPLO 10-1: INICIALIZANDO


MÓDULO COMPARADOR
FLAG_REG EQU 0X20
CLRF FLAG_REG ;Iniciar registro de flag
VENHA

CLRF TRAZ ;Iniciar PORTA


MOVF CMCON, W ;Carregar bits do comparador
ANDLW 0xC0 ;Bits de comparação de máscara VIN+
IORWF FLAG_REG,F ;Armazena bits no registrador de flag
MOVLW 0x03 ;Iniciar modo comparador
MOVWF CMCON ;CM<2:0> = 011
BSF STATUS,RP0 ;Selecione Banco1
MOVLW 0x07 ;Iniciar direção de dados
MOVWF TRISA ;Definir RA<2:0> como entradas Resultado
;RA<4:3> como saídas
;TRISA<7:5> sempre lê '0'
BCF STATUS,RP0 ;Selecione Banco 0
LIGAR ATRASO 10 ;10ÿs de atraso 10.3.1 SINAL DE REFERÊNCIA EXTERNA
MOVF CMCON, F ;Leia o CMCON para finalizar a alteração
;doença Quando referências de tensão externas são usadas, o
BCF PIR1,CMIF ;Limpar interrupções pendentes O módulo comparador pode ser configurado para ter o
BSF STATUS,RP0 ;Selecione o Banco 1
BSF
comparadores operam a partir do mesmo ou de diferentes
PIE1,CMIE ;Ativar interrupções do comparador
BCF STATUS,RP0 ;Selecione Banco 0 fontes de referência. No entanto, o detector de limiar
BSF INTCON,PEIE ;Habilita interrupções periféricas aplicativos podem exigir a mesma referência. o
BSF INTCON,GIE ;Habilita interrupção global
sinal de referência deve estar entre VSS e VDD, e
pode ser aplicado a qualquer pino do(s) comparador(es).
10.2 Operação do Comparador
10.3.2 SINAL DE REFERÊNCIA INTERNO
Um único comparador é mostrado na Figura 10-2 junto com
a relação entre os níveis de entrada analógica e O módulo Comparador também permite a seleção de um

a saída digital. Quando a entrada analógica em VIN+ é menor referência de tensão gerada internamente para o

do que a entrada analógica VIN-, a saída do comparador comparadores. Seção 11.0 “Referência de tensão

é um nível baixo digital. Quando a entrada analógica em VIN+ é Módulo”, contém uma descrição detalhada da tensão

maior que a entrada analógica VIN-, a saída do Módulo de referência que fornece este sinal. o

comparador é um alto nível digital. As áreas sombreadas de sinal de referência interno é usado quando os comparadores

a saída do comparador na Figura 10-2 representa estão no modo CM<2:0> = 010 (Figura 10-1). Nisso

a incerteza devido a deslocamentos de entrada e tempo de resposta. modo, a referência de tensão interna é aplicada ao

Consulte a Tabela 17-2 para obter a tensão do modo comum.


pino VIN+ de ambos os comparadores.

10.3 Referência do Comparador 10.4 Tempo de Resposta do Comparador

Um sinal de referência externo ou interno pode ser usado O tempo de resposta é o tempo mínimo, após selecionar um

dependendo do modo de operação do comparador. o nova tensão de referência ou fonte de entrada, antes do

sinal analógico que está presente no VIN- é comparado ao saída do comparador deve ter um nível válido. Se o interno

sinal em VIN+, e a saída digital do comparador referência é alterada, o atraso máximo do

é ajustado de acordo (Figura 10-2). referência de tensão deve ser considerada ao usar o
saídas do comparador. Caso contrário, o atraso máximo de
os comparadores devem ser usados (Tabela 17-2, página 142).

© 2009 Microchip Technology Inc. DS40044G-página 65


Machine Translated by Google

PIC16F627A/628A/648A
10.5 Saídas do Comparador
As saídas do comparador são lidas através do registrador
CMCON. Esses bits são somente leitura. As saídas do comparador
também podem ser enviadas diretamente para os pinos de E/S
RA3 e RA4. Quando CM<2:0> = 110 ou 001, os multiplexadores
no caminho de saída dos pinos RA3 e RA4/T0CK1/CMP2 serão
alternados e a saída de cada pino será a saída não sincronizada
do comparador. A incerteza de cada um dos comparadores está
relacionada à tensão de compensação de entrada e ao tempo de
resposta fornecido nas especificações. A Figura 10-3 mostra o
diagrama de blocos de saída do comparador.

Os bits TRISA ainda funcionarão como uma habilitação/


desabilitação de saída para os pinos RA3/AN3/CMP1 e RA4/
T0CK1/CMP2 enquanto estiver neste modo.

Nota 1: Ao ler o registro PORT, todos os pinos configurados


como entradas analógicas serão lidos como '0'.
Os pinos configurados como entradas digitais
converterão uma entrada analógica, de acordo
com a especificação de entrada Schmitt Trigger.

2: Níveis analógicos em qualquer pino definido como


entrada digital podem fazer com que o buffer de
entrada consuma mais corrente do que o
especificado.

FIGURA 10-3: DIAGRAMA DE BLOCO DE SAÍDA DO COMPARADOR MODIFICADO

CnINV

Para RA3/AN3/CMP1 ou

pino RA4/T0CK1/CMP2 CnVOUT


Para Barramento de Dados Q D
CMCON<7:6>

Q3
DENTRO

RD CMCON

Definir bit CMIF QD

DENTRO Q1
CL

De outro comparador
Redefinir

DS40044G-página 66 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
10.6 Interrupções do Comparador 10.7 Operação do Comparador Durante o Sono
O sinalizador de interrupção do comparador é definido sempre que houver
uma alteração no valor de saída de qualquer comparador. Quando um comparador está ativo e o dispositivo é colocado no modo
O software precisará manter informações sobre o status dos bits de saída,
Sleep, o comparador permanece ativo e a interrupção é funcional se
conforme lido do CMCON<7:6>, para determinar a mudança real que habilitada. Esta interrupção acordará o dispositivo do modo de suspensão
ocorreu. O bit CMIF, PIR1<6>, é o sinalizador de interrupção do comparador. quando ativado.
Enquanto o comparador estiver ligado, ocorrerão correntes Sleep mais altas
O bit CMIF deve ser redefinido limpando '0'. Como também é possível do que as mostradas na especificação de corrente de desligamento. Cada
escrever um '1' neste registrador, uma interrupção simulada pode ser iniciada. comparador que estiver operacional consumirá corrente adicional conforme
mostrado nas especificações do comparador. Para minimizar o consumo de

O bit CMIE (PIE1<6>) e o bit PEIE (INTCON<6>) devem ser definidos para energia no modo Sleep, desligue os comparadores, CM<2:0> = 111, antes

habilitar a interrupção. Além disso, o bit GIE também deve ser definido. Se de entrar em Sleep. Se o dispositivo acordar da suspensão, o conteúdo do

algum desses bits estiver limpo, a interrupção não está habilitada, embora o registro CMCON não será afetado.

bit CMIF ainda seja definido se ocorrer uma condição de interrupção.

Nota: Se uma mudança no registro CMCON (C1OUT ou C2OUT) ocorrer


10.8 Efeitos de uma Redefinição
quando uma operação de leitura estiver sendo executada
(início do ciclo Q2), o sinalizador de interrupção CMIF Um Reset do dispositivo força o registro CMCON ao seu estado Reset. Isso
(PIR1<6>) pode não ser definido. força o módulo Comparador a estar no modo Reset do comparador, CM<2:0>
= 000. Isso garante que todas as entradas potenciais sejam entradas

O usuário, na rotina de serviço de interrupção, pode limpar a interrupção da analógicas. A corrente do dispositivo é minimizada quando as entradas

seguinte maneira: analógicas estão presentes no tempo de Reset. Os comparadores serão


desligados durante o intervalo de Reinicialização.
a) Qualquer gravação ou leitura de CMCON. Isso vai acabar com o
condição de incompatibilidade.

b) Apague o bit sinalizador CMIF.


10.9 Considerações de Conexão de
Uma condição de incompatibilidade continuará a definir o bit de sinalização CMIF. Entrada Analógica
A leitura de CMCON encerrará a condição de incompatibilidade e permitirá
que o bit de sinalização CMIF seja apagado. Um circuito simplificado para uma entrada analógica é mostrado na Figura
10-4. Como os pinos analógicos estão conectados a uma saída digital, eles
possuem diodos com polarização reversa para VDD e VSS. A entrada
analógica, portanto, deve estar entre VSS e VDD. Se a tensão de entrada
se desviar dessa faixa em mais de 0,6 V em qualquer direção, um dos diodos
é polarizado diretamente e pode ocorrer um travamento. Uma impedância
de fonte máxima de 10 kÿ é recomendada para as fontes analógicas.
Qualquer componente externo conectado a um pino de entrada analógica,
como um capacitor ou um diodo Zener, deve ter muito pouca corrente de
fuga.

© 2009 Microchip Technology Inc. DS40044G-página 67


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 10-4: MODO DE ENTRADA ANALÓGICA
VDD

VT = 0,6 V RIC
RS < 10 K

AIN
CIN VAZAMENTO
E VT = 0,6 V ±500 nA
5 pF

VSS
Legenda: CPI = Capacitância de entrada
VT = Tensão Limiar
ILEAKAGE = Corrente de fuga no pino
RIC = Resistência de interconexão
RS = Impedância da fonte
E = Tensão Analógica

TABELA 10-1: REGISTROS ASSOCIADOS AO MÓDULO COMPARADOR


Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Todos os outros
POR
Reinicializações

1Fh CMCON C2OUT C1OUT C2INV C1NV CIS CM2 CM1 CM0 0000 0000 0000 0000
0Bh, 8Bh,
INTCON GIE ASSIM T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh
0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
8 canais TORTA1 EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000
85h TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111
Legenda: x = Desconhecido, u = Inalterado, - = Não implementado, lido como '0'

DS40044G-página 68 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
11,0 MÓDULO DE REFERÊNCIA DE TENSÃO As equações usadas para calcular a saída do
O módulo de referência de tensão são os seguintes:
se VRR = 1:
O módulo Voltage Reference consiste em um conector de 16 taps
RV<3:0>
rede de resistores em escada que fornece uma referência de tensão VREF = × DD
---------------------- DENTRO
24
selecionável. A escada do resistor é segmentada para fornecer duas
faixas de valores de VREF e tem um desligamento se VRR = 0:
função para conservar energia quando a referência não é
1
sendo usado. O registrador VRCON controla a operação da referência = ÿ
VREF VDD × --ÿ RV<3:0>
+ DENTRO ----------------------
× DD
conforme mostrado na Figura 11-1. o ÿ 4ÿ 32

diagrama de blocos é dado na Figura 11-1.


O tempo de ajuste do módulo Voltage Reference deve
ser considerado ao alterar a saída VREF (Tabela 17-3). O
11.1 Configuração de Referência de Tensão
Exemplo 11-1 demonstra como a tensão

O módulo Voltage Reference pode produzir 16 referência está configurada para uma tensão de saída de 1,25V
com VDD = 5,0V.
níveis de tensão para cada faixa.

REGISTRO 11-1: VRCON – REGISTRO DE CONTROLE DE REFERÊNCIA DE TENSÃO (ENDEREÇO: 9Fh)


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

VREN ANTECIPADO VRR — VR3 VR2 VR1 VR0

pedaço 7 bit 0

pedaço 7 VREN : bit de habilitação de VREF

1 = circuito VREF ligado


0 = circuito VREF desligado, sem dreno IDD
bocado 6 VROE : bit de habilitação de saída VREF
1 = VREF é emitido no pino RA2
0 = VREF está desconectado do pino RA2
pedaço 5 VRR: bit de seleção de intervalo VREF
1 = Faixa baixa
0 = Alcance alto
bocado 4 Não implementado: Leia como '0'
pouco 3-0 VR<3:0>: bits de seleção de valor VREF 0 ÿ VR <3:0> ÿ 15

Quando VRR = 1: VREF = (VR<3:0>/ 24) * VDD


Quando VRR = 0: VREF = 1/4 * VDD + (VR<3:0>/32) * VDD

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

© 2009 Microchip Technology Inc. DS40044G-página 69


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 11-1: DIAGRAMA DE BLOCOS DE REFERÊNCIA DE TENSÃO

VDD 16 Estágios

VREN
8R R R R R

8R VRR

VSS VSS

VR3
VREF 16-1 Mux Analógico (De VRCON<3:0>)
VR0

Nota: R é definido na Tabela 17-3.

EXEMPLO 11-1: REFERÊNCIA DE TENSÃO 11.5 Considerações de Conexão


CONFIGURAÇÃO
O módulo Voltage Reference opera independentemente
MOVLW 0x02 ;4 Entradas Muxadas
do módulo Comparador. A saída da referência
MOVWF CMCON ;para 2 comp.
BSF gerador pode ser conectado ao pino RA2 se o
STATUS,RP0 ;vai para o Banco 1
MOVLW 0x07 ;RA3-RA0 são
O bit TRISA<2> é definido e o bit VROE, VRCON<6>, é
MOVWF TRISA ;saídas definir. Habilitando a saída do módulo Voltage Reference para
MOVLW 0xA6 ;habilita VREF o pino RA2 com um sinal de entrada presente aumentará
MOVWF VRCON ;valor baixo definido VR<3:0>=6 Consumo atual. Conectando RA2 como saída digital
BCF STATUS,RP0 ;vai para o banco 0 com VREF ativado também aumentará o consumo de corrente.
ATRASO DE CHAMADA 10 ;10ÿs de atraso

O pino RA2 pode ser usado como uma saída D/A simples com
11.2 Precisão/Erro de Referência de Tensão capacidade de acionamento limitada. Devido à movimentação limitada
capacidade, um buffer deve ser usado em conjunto com o
A gama completa de VSS a VDD não pode ser realizada devido a
Saída do módulo de referência de tensão para conexões externas
a construção do módulo. Os transistores do
ao VREF. A Figura 11-2 mostra um exemplo de buffer
superior e inferior da rede escada do resistor
técnica.
(Figura 11-1) evite que VREF se aproxime de VSS ou VDD.
O módulo Voltage Reference é derivado de VDD e
portanto, a saída VREF muda com flutuações na
VDD. A precisão absoluta testada do módulo Voltage Reference
pode ser encontrada na Tabela 17-3.

11.3 Operação Durante o Sono

Quando o dispositivo desperta da suspensão por meio de um


interrupção ou um tempo limite do Watchdog Timer, o conteúdo do
o registrador VRCON não são afetados. Para minimizar
consumo de corrente no modo Sleep, a tensão
O módulo de referência deve ser desabilitado.

11.4 Efeitos de uma Redefinição

Um Reset do dispositivo desabilita o módulo Voltage Reference


limpando o bit VREN (VRCON<7>). Este reset também
desconecta a referência do pino RA2 limpando
bit VROE (VRCON<6>) e seleciona a alta tensão
alcance limpando o bit VRR (VRCON<5>). O VREF
bits de seleção de valor, VRCON<3:0>, também são limpos.

DS40044G-página 70 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 11-2: EXEMPLO DE BUFFER DE SAÍDA DE REFERÊNCIA DE TENSÃO

R(1) RA2 No amplificador

VREF +
Módulo Saída VREF

Tensão
Referência
Resultado
Impedância

Nota 1: R depende da configuração de referência de tensão VRCON<3:0> e VRCON<5>.

TABELA 11-1: REGISTROS ASSOCIADOS À REFERÊNCIA DE TENSÃO


Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Todos os outros
POR
Reinicializações

9Fh VRCON VREN ANTECIPADO VRR — VR3 VR2 VR1 VR0 000- 0000 000- 0000
1Fh CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0000 0000 0000
85h TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA0 1111 1111 1111 1111

Lenda: - = Não implementado, lido como '0'.

© 2009 Microchip Technology Inc. DS40044G-página 71


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 72 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
12.0 TRANSMISSOR RECEPTOR SÍNCRONO A USART pode ser configurada nos seguintes modos:

UNIVERSAL SÍNCRONO (USART) • Assíncrono (full-duplex)


• Síncrono – Mestre (half-duplex)
• Síncrono – Escravo (half-duplex)
MÓDULO
O bit SPEN (RCSTA<7>) e os bits TRISB<2:1> devem ser
O Receptor Assíncrono Síncrono Universal
configurado para configurar os pinos RB2/TX/CK e RB1/RX/DT
Transmissor (USART) também é conhecido como Serial
como o receptor assíncrono síncrono universal
Interface de Comunicações (SCI). A USART pode ser Transmissor.
configurado como um sistema assíncrono full-duplex que
pode se comunicar com dispositivos periféricos, como CRT O registro 12-1 mostra o Status de Transmissão e Controle
terminais e computadores pessoais, ou pode ser Registrador (TXSTA) e Registrador 12-2 mostra o
configurado como um sistema síncrono half-duplex que Receber Status e Registro de Controle (RCSTA).
pode se comunicar com dispositivos periféricos como A/D
ou circuitos integrados D/A, EEPROMs seriais, etc.

REGISTRO 12-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 do 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)

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

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 transmissão de dados. Pode ser bit de paridade.


Nota 1: SREN/CREN substitui TXEN no modo SYNC.

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

© 2009 Microchip Technology Inc. DS40044G-página 73


Machine Translated by Google

PIC16F627A/628A/648A
CADASTRO 12-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 ADEN FERR OERR RX9D

pedaço 7 bit 0

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

(Configura os pinos RB1/RX/DT e RB2/TX/CK como pinos de porta serial quando os bits TRISB<2:1> são definidos)
1 = porta serial habilitada
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 usado neste modo

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 ADEN: Bit de habilitação de detecção de endereço

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


1 = Habilita detecção de endereço, habilita interrupção e carga 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
Modo assíncrono de 8 bits (RX9 = 0):
Não usado neste modo
Modo síncrono
Não usado neste modo

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)

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

DS40044G-página 74 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
12.1 Gerador de taxa de transmissão EQUAÇÃO 12-1: CÁLCULO DE BAUD

USART (BRG) ERRO DE TAXA

O BRG suporta tanto o Assíncrono quanto o Sombrio


Taxa de transmissão desejada = -----------------------
Modos síncronos do USART. É um dedicado 64 x 1 ( ) +
Gerador de taxa de transmissão de 8 bits. O registro SPBR
controla o período de um temporizador de 8 bits de execução livre. Dentro
= 16000000
9600 -----------------------
Modo assíncrono, bit BRGH (TXSTA<2>) também
( 64x1 ) +
controla a taxa de transmissão. No modo síncrono, bit
BRGH é ignorado. A Tabela 12-1 mostra a fórmula para
cálculo da taxa de transmissão para diferentes USART x 25,042 =
modos, que só se aplicam no modo Master (interno
relógio). 16000000
Taxa de transmissão calculada = = 9615
--------------------------
Dada a taxa de transmissão desejada e FOSC, o mais próximo ( 64 25 1 ) +
valor inteiro para o registrador SPBRG pode ser calculado
usando a fórmula da Tabela 12-1. A partir disso, o erro de
taxa de transmissão pode ser determinada.
= (Taxa de transmissão calculada - Taxa de transmissão desejada)
Erro -------------------------------------------------- -------------------------------------------------- -------

Taxa de transmissão desejada


O Exemplo 12-1 mostra o cálculo da taxa de transmissão
erro para as seguintes condições:
9615 9600 –
= -----------------------------
ESCURO = 16 MHz 0,16% =
9600
Taxa de transmissão desejada = 9600

BRGH = 0
Pode ser vantajoso usar a alta taxa de transmissão
SINC = 0 (BRGH = 1) mesmo para clocks de transmissão mais lentos. Isto é
porque a equação FOSC/(16(X + 1)) pode reduzir o
erro de taxa de transmissão em alguns casos.

Escrever um novo valor no registrador SPBRG faz com que o


temporizador BRG a ser reiniciado (ou apagado) e garante a
BRG não espera por um estouro do temporizador antes
emitindo a nova taxa de transmissão.

Os dados no pino RB1/RX/DT são amostrados três vezes


por um circuito de detecção de maioria para determinar se um alto ou um
nível baixo está presente no pino RX.

TABELA 12-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)) ESTE

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

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

Valor ativado Valor em todos


Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
POR outras redefinições

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010
18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

Registro do Gerador de Taxa de Baud 99h SPBRG 0000 0000 0000 0000

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

© 2009 Microchip Technology Inc. DS40044G-página 75


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 12-3: TAXAS DE BAUD PARA MODO SÍNCRONO

ESCURO = 20 MHz SPBRG 16MHz SPBRG 10MHz SPBRG


BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

0,3 ESTE — — ESTE — — ESTE — —

1.2 ESTE — — ESTE — — ESTE — —

2.4 ESTE — — ESTE — — ESTE — —

9.6 ESTE — — ESTE — — 9.766 +1,73% 255

19.2 19,53 +1,73% 255 19.23 +0,16% 207 19.23 +0,16% 129

76,8 76,92 +0,16% 64 76,92 +0,16% 51 75,76 -1,36% 32

96 96,15 +0,16% 51 95,24 -0,79% 41 96,15 +0,16% 25

300 294,1 -1,96 16 307,69 +2,56% 12 312,5 +4,17% 7

500 500 0 9 500 0 7 500 0 4

ALTO 5000 — 0 4000 — 0 2500 — 0

BAIXO 19,53 — 255 15.625 — 255 9.766 — 255

ESCURO = 7,15909 MHz SPBRG 5,0688MHz SPBRG 4MHz SPBRG


BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

0,3 ESTE — — ESTE — — ESTE — —

1.2 ESTE — — ESTE — — ESTE — —

2.4 ESTE — — ESTE — — ESTE — —

9.6 9.622 +0,23% 185 9.6 0 131 9.615 +0,16% 103

19.2 19.24 +0,23% 92 19.2 0 65 19.231 +0,16% 51

76,8 77,82 +1,32 22 79,2 +3,13% 15 75.923 +0,16% 12

96 94,20 -1,88 18 97,48 +1,54% 12 1000 +4,17% 9

300 298,3 -0,57 5 316,8 5,60% 3 ESTE — —

500 ESTE — — ESTE — — ESTE — —

ALTO 1789,8 — 0 1267 — 0 100 — 0

BAIXO 6.991 — 255 4.950 — 255 3.906 — 255

ESCURO = 3,579545 MHz SPBRG 1 MHz SPBRG 32,768 kHz SPBRG


BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

0,3 ESTE — — ESTE — — 0,303 +1,14% 26

1.2 ESTE — — 1.202 +0,16% 207 1.170 -2,48% 6

2.4 ESTE — — 2.404 +0,16% 103 ESTE — —

9.6 9.622 +0,23% 92 9.615 +0,16% 25 ESTE — —

19.2 19.04 -0,83% 46 19.24 +0,16% 12 ESTE — —

76,8 74,57 -2,90% 11 83,34 +8,51% 2 ESTE — —

96 99,43 +3,57% 8 ESTE — — ESTE — —

300 298,3 0,57% 2 ESTE — — ESTE — —

500 ESTE — — ESTE — — ESTE — —

ALTO 894,9 — 0 250 — 0 8.192 — 0

BAIXO 3.496 — 255 0,9766 — 255 0,032 — 255

DS40044G-página 76 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 12-4: TAXAS DE BAUD PARA MODO ASSÍNCRONO (BRGH = 0)
ESCURO = 20 MHz SPBRG 16MHz SPBRG 10MHz SPBRG
BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

0,3 ESTE — — ESTE — — ESTE — —

1.2 1.221 +1,73% 255 1.202 +0,16% 207 1.202 +0,16% 129

2.4 2.404 +0,16% 129 2.404 +0,16% 103 2.404 +0,16% 64

9.6 9.469 -1,36% 32 9.615 +0,16% 25 9.766 +1,73% 15

19.2 19,53 +1,73% 15 19.23 +0,16% 12 19,53 +1,73V 7

76,8 78,13 +1,73% 3 83,33 +8,51% 2 78,13 +1,73% 1

96 104,2 +8,51% 2 ESTE — — ESTE — —

300 312,5 +4,17% 0 ESTE — — ESTE — —

500 ESTE — — ESTE — — ESTE — —

ALTO 312,5 — 0 250 — 0 156,3 — 0

BAIXO 1.221 — 255 0,977 — 255 0,6104 — 255

ESCURO = 7,15909 MHz SPBRG 5,0688MHz SPBRG 4MHz SPBRG


BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

0,3 ESTE — — 0,31 +3,13% 255 0,3005 -0,17% 207

1.2 1.203 +0,23% 92 1.2 0 65 1.202 +1,67% 51

2.4 2.380 -0,83% 46 2.4 0 32 2.404 +1,67% 25

9.6 9.322 -2,90% 11 9,9 +3,13% 7 ESTE — —

19.2 18,64 -2,90% 5 19,8 +3,13% 3 ESTE — —

76,8 ESTE — — 79,2 +3,13% 0 ESTE — —

96 ESTE — — ESTE — — ESTE — —

300 ESTE — — ESTE — — ESTE — —

500 ESTE — — ESTE — — ESTE — —

ALTO 111,9 — 0 79,2 — 0 62.500 — 0

BAIXO 0,437 — 255 0,3094 — 255 3.906 — 255

ESCURO = 3,579545 MHz SPBRG 1 MHz SPBRG 32,768 kHz SPBRG


BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

0,3 0,301 +0,23% 185 0,300 +0,16% 51 0,256 -14,67% 1

1.2 1.190 -0,83% 46 1.202 +0,16% 12 ESTE — —

2.4 2.432 +1,32% 22 2.232 -6,99% 6 ESTE — —

9.6 9.322 -2,90% 5 ESTE — — ESTE — —

19.2 18,64 -2,90% 2 ESTE — — ESTE — —

76,8 ESTE — — ESTE — — ESTE — —

96 ESTE — — ESTE — — ESTE — —

300 ESTE — — ESTE — — ESTE — —

500 ESTE — — ESTE — — ESTE — —

ALTO 55,93 — 0 15,63 — 0 0,512 — 0

BAIXO 0,2185 — 255 0,0610 — 255 0,0020 — 255

© 2009 Microchip Technology Inc. DS40044G-página 77


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 12-5: TAXAS DE BAUD PARA MODO ASSÍNCRONO (BRGH = 1)
ESCURO = 20 MHz SPBRG 16MHz SPBRG 10MHz SPBRG
BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

9600 9.615 +0,16% 129 9.615 +0,16% 103 9.615 +0,16% 64

19200 19.230 +0,16% 64 19.230 +0,16% 51 18.939 -1,36% 32

38400 37.878 -1,36% 32 38.461 +0,16% 25 39.062 +1,7% 15

57600 56.818 -1,36% 21 58.823 +2,12% 16 56.818 -1,36% 10

115200 113.636 -1,36% 10 111.111 -3,55% 8 125 +8,51% 4

250.000 250 0 4 250 0 3 ESTE — —

625000 625 0 1 ESTE — — 625 0 0

1250000 1250 0 0 ESTE — — ESTE — —

ESCURO = 7,16 MHz SPBRG 5,068 MHz SPBRG 4MHz SPBRG


BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

9600 9.520 -0,83% 46 9598.485 0,016% 32 9615,385 0,160% 25

19200 19.454 +1,32% 22 18632,35 -2,956% 16 19230,77 0,160% 12

38400 37.286 -2,90% 11 39593,75 3,109% 7 35714,29 -6,994% 6

57600 55.930 -2,90% 7 52791,67 -8,348% 5 62500 8,507% 3

115200 111.860 -2,90% 3 105583,3 -8,348% 2 125000 8,507% 1

250.000 ESTE — — 316750 26,700% 0 250.000 0,000% 0

625000 ESTE — — ESTE — — ESTE — —

1250000 ESTE — — ESTE — — ESTE — —

ESCURO = 3,579 MHz SPBRG 1 MHz SPBRG 32,768 kHz SPBRG


BAUD
valor valor valor
TAXA (K) ERRO KBAUD ERRO KBAUD
(decimal) (decimal) ERRO KBAUD (decimal)

9600 9725.543 1,308% 22 8.928 -6,994% 6 ESTE ESTE ESTE

19200 18640,63 -2,913% 11 20833.3 8,507% 2 ESTE ESTE ESTE

38400 37281,25 -2,913% 5 31250 -18,620% 1 ESTE ESTE ESTE

57600 55921,88 -2,913% 3 62500 +8,507 0 ESTE ESTE ESTE

115200 111243.8 -2,913% 1 ESTE — — ESTE ESTE ESTE

250.000 223687,5 -10,525% 0 ESTE — — ESTE ESTE ESTE

625000 ESTE — — ESTE — — ESTE ESTE ESTE

1250000 ESTE — — ESTE — — ESTE ESTE ESTE

DS40044G-página 78 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
12.2 Modo Assíncrono USART 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
Neste modo, o USART usa o formato padrão sem retorno a zero (NRZ)
tenha sido carregado com dados e o Gerador de Taxa de Transmissão
(um bit de início, oito ou nove bits de dados e um bit de parada). O formato (BRG) tenha produzido um relógio de deslocamento (Figura 12-1). A
de dados mais comum é de 8 bits. Um gerador de taxa de transmissão de 8 transmissão também pode ser iniciada carregando primeiro o registrador
bits dedicado é usado para derivar frequências de taxa de transmissão do TXREG e depois configurando o bit de habilitação TXEN. Normalmente,
oscilador. A USART transmite e recebe primeiro o LSb. O transmissor e o quando a transmissão é iniciada, o registrador TSR está vazio, portanto, uma
receptor da USART são funcionalmente independentes, mas usam o mesmo
transferência para o registrador TXREG resultará em uma transferência
formato de dados e taxa de transmissão. O gerador de taxa de transmissão imediata para o TSR, resultando em um TXREG vazio. Uma transferência
produz um clock x16 ou x64 da taxa de deslocamento de bits, dependendo consecutiva é assim possível (Figura 12-3). Apagar o bit de habilitação TXEN
do bit BRGH (TXSTA<2>). A paridade não é suportada pelo hardware, mas durante uma transmissão fará com que a transmissão seja abortada e
pode ser implementada em software (e armazenada como o nono bit de reinicializará o transmissor. Como resultado, o pino RB2/TX/CK reverterá
dados). O modo assíncrono é interrompido durante a suspensão. para alta impedância.

Para selecionar a transmissão de 9 bits, o bit de transmissão TX9


O modo assíncrono é selecionado limpando o bit SYNC (TXSTA<4>). (TXSTA<6>) deve ser definido e o nono bit deve ser escrito em TX9D
(TXSTA<0>). O nono bit deve ser escrito antes de escrever os dados de 8
O módulo USART Assíncrono consiste nos seguintes elementos importantes: bits no registrador TXREG. Isso ocorre porque uma gravação de dados no
registrador TXREG pode resultar em uma transferência imediata dos dados

• Gerador de taxa de transmissão para o registrador TSR (se o TSR estiver vazio). Nesse caso, um nono bit
de dados incorreto pode ser carregado no registrador TSR.
• Circuito de Amostragem

• Transmissor Assíncrono • Receptor

Assíncrono

12.2.1 TRANSMISSOR ASSÍNCRONO USART

O diagrama de blocos do transmissor USART é mostrado na Figura 12-1. O


coração do transmissor é o Transmit (serial) Shift Register (TSR). O
registrador de deslocamento obtém seus dados do buffer de transmissão de
leitura/gravação, TXREG. O registrador TXREG é carregado com dados no
software. O registrador TSR não é carregado até que o bit Stop tenha sido
transmitido do carregamento anterior. Assim que o bit de parada é transmitido,
o TSR é carregado com novos dados do registrador TXREG (se disponível).
Uma vez que o registrador TXREG transfere os dados para o registrador
TSR (ocorre em um TCY), o registrador TXREG fica vazio e o bit sinalizador
TXIF (PIR1<4>) é definido. Esta interrupção pode ser habilitada/desabilitada
configurando/apagando o bit de habilitação TXIE (PIE1<4>). O bit de
sinalização TXIF será definido independentemente do estado do bit de
habilitação TXIE e não pode ser apagado no software. Ele será redefinido
somente quando novos dados forem carregados no registro TXREG.
Enquanto o bit de flag TXIF indicava o status do registrador TXREG, outro

bit TRMT (TXSTA<1>) mostra o status do registrador TSR.

O bit de status TRMT é um bit somente leitura que é definido quando o


registrador TSR está vazio. Nenhuma lógica de interrupção está vinculada a
esse bit, portanto, o usuário deve pesquisar esse bit para determinar se o
registrador TSR está vazio.

Nota 1: O registrador TSR não é mapeado na memória de dados,


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


está definido.

© 2009 Microchip Technology Inc. DS40044G-página 79


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 12-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 RB2/TX/CK
Interromper

Taxa de transmissão TXEN CLK

TRMT ESPANHA

SPBRG

TX9
Gerador de taxa de transmissão

TX9D

Siga estas etapas ao configurar um Assíncrono


Transmissão:

1. TRISB<1> e TRISB<2> devem ser configurados para '1' para


configurar os pinos RB1/RX/DT e RB2/TX/CK como entradas.
O acionamento de saída, quando necessário, é controlado
pelo circuito periférico.
2. Inicialize o registrador SPBRG para a taxa de transmissão
apropriada. Se desejar uma taxa de transmissão de alta
velocidade, defina o bit BRGH. (Seção 12.1 “Gerador de
taxa de transmissão USART (BRG)”).
3. Habilite a porta serial assíncrona limpando o bit SYNC e
configurando o bit SPEN.
4. Se as interrupções forem desejadas, defina o bit de habilitação
ESSA.

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


transmissão TX9.

6. Habilite a transmissão configurando o bit TXEN,


que também definirá o bit TXIF.

7. Se a transmissão de 9 bits for selecionada, o nono bit deve ser


carregado no bit TX9D.

8. Carregar dados para o registrador TXREG (inicia


transmissão).

FIGURA 12-2: TRANSMISSÃO ASSÍNCRONA

Escreva para TXREG


Palavra 1
Saída BRG
(relógio de mudança)

RB2/TX/CK (pino)
Bit de início bit 0 pedaço 1 pouco 7/8
Parar bit
Palavra 1
Bit TXIF
(sinalizador vazio reg.
buffer de transmissão)

Palavra 1
Bit TRMT
Transmissão Reg.
(Transmit shift reg.
flag vazio)

DS40044G-página 80 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 12-3: TRANSMISSÃO ASSÍNCRONA (COSTAS COM COSTAS)

Escreva para TXREG


Palavra 1 Palavra 2
Saída BRG
(relógio de mudança)

RB2/TX/CK (pino)
Bit de início bit 0 pedaço 1 pouco 7/8 Bit de início bit 0
bit TXIF Parar bit
Palavra 1 Palavra 2
(interromper a bandeira reg.)

bit TRMT Palavra 1


Palavra 2
(Transmitir mudança Transmissão Reg.
registro bandeira vazia) Transmissão Reg.

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

TABELA 12-6: REGISTROS ASSOCIADOS À TRANSMISSÃO ASSÍNCRONA

Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR
Reinicializações

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

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

8 canais TORTA1 EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

Registro do Gerador de Taxa de Baud 99h 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.

© 2009 Microchip Technology Inc. DS40044G-página 81


Machine Translated by Google

PIC16F627A/628A/648A
12.2.2 RECEPTOR ASSÍNCRONO USART registrador de buffer duplo (ou seja, é um FIFO de duas
profundidades). É possível que dois bytes de dados sejam
recebidos e transferidos para o RCREG FIFO e um terceiro byte
O diagrama de blocos do receptor é mostrado na Figura 12-4.
comece a se deslocar para o registrador RSR. Na detecção do bit
Os dados são recebidos no pino RB1/RX/DT e acionam o bloco
Stop do terceiro byte, se o registrador RCREG ainda estiver cheio,
de recuperação de dados. O bloco de recuperação de dados é na
então o bit de erro de overrun OERR (RCSTA<1>) será definido.
verdade um shifter de alta velocidade operando a x16 vezes a A palavra no RSR será perdida. O registrador RCREG pode ser
taxa de transmissão, enquanto o shifter serial de recepção principal
lido duas vezes para recuperar os dois bytes no FIFO. O bit de
opera na taxa de bits ou em FOSC. overrun OERR deve ser apagado no software. Isso é feito
Quando o modo Assíncrono é selecionado, a recepção é habilitada redefinindo a lógica de recepção (o CREN é limpo e, em seguida,
configurando o bit CREN (RCSTA<4>). definido). Se o bit OERR estiver definido, as transferências do
O coração do receptor é o Receiver (serial) Shift Register (RSR). registrador RSR para o registrador RCREG são inibidas, portanto,
Após a amostragem do bit de parada, os dados recebidos no RSR é essencial limpar o bit de erro OERR, se estiver ativado.
são transferidos para o registrador RCREG (se estiver vazio). Se O bit de erro de enquadramento FERR (RCSTA<2>) é definido se
um bit de parada for detectado como limpo. O bit FERR e o 9º bit
a transferência estiver completa, o bit de flag RCIF (PIR1<5>) é
definido. A interrupção real pode ser habilitada/desabilitada de recepção são armazenados em buffer da mesma forma que os
configurando/apagando o bit de habilitação RCIE (PIE1<5>). O bit dados de recepção. A leitura do RCREG carregará os bits RX9D
de sinalização RCIF é um bit somente leitura, que é limpo pelo e FERR com novos valores, portanto é essencial que o usuário

hardware. Ele é apagado quando o registrador RCREG foi lido e leia o registro RCSTA antes de ler o registro RCREG para não
perder as informações antigas de FERR e RX9D.
está vazio. O RCREG é um

FIGURA 12-4: USART RECEBER DIAGRAMA DE BLOCO

x64 Baud Rate CLK


OERR FERR
ELES ACREDITAM

SPBRG
÷ 64
MSb registro RSR LSb
ou
÷ 16
Gerador de taxa de transmissão Parar (8) 7 ••• 1 0 Iniciar

RB1/RX/DT

Buffer de Dados
pinos e controle RX9
Recuperação

ESPANHA

RX9 Permitir
ADEN Carga de

Receber
RX9
Amortecedor
ADEN
RSR<8> 8

Registro RX9D RCREG


FIFO
Registro RX9D RCREG

RCIF
Interromper Barramento de dados

RCIE

DS40044G-página 82 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 12-5: RECEPÇÃO ASSÍNCRONA COM DETECÇÃO DE ENDEREÇO

Começar Começar
RB1/RX/DT (Pino)
pedaço bit 0 bit 1 bocado 8 Pare pedaço bit 0 bit 8 Parar
pedaço pedaço

Registro de Turno RCV

Registro de buffer RCV


Palavra 1
bit 8 = 0, byte de dados bit 8 = 1, byte de endereço
RCREG
Leia o RCV

Registro de buffer
RCREG

RCIF

(interromper bandeira)

'1' '1'
ADEN = 1

(Correspondência de endereços

Permitir)

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
(Receive Buffer) porque ADEN = 1 e bit 8 = 0.

FIGURA 12-6: RECEPÇÃO ASSÍNCRONA COM BYTE DE ENDEREÇO PRIMEIRO

Começar Começar
RB1/RX/DT (pino)
pedaço bit 0 bit 1 bocado 8 Pare pedaço bit 0 bit 8 Parar
pedaço pedaço

Registro de Turno RCV

Registro de buffer RCV


Palavra 1
bit 8 = 1, byte de endereço bit 8 = 0, byte de dados
RCREG
Leia o RCV

Registro de buffer
RCREG

RCIF

(Bandeira de interrupção)

'1' '1'
ADEN = 1

(Correspondência de endereços

Permitir)

Observação: Este diagrama de tempo mostra um byte de endereço seguido por um byte de dados. O byte de dados não é lido no RCREG
(buffer de recepção) porque ADEN não foi atualizado (ainda = 1) e bit 8 = 0.

FIGURA 12-7: RECEPÇÃO ASSÍNCRONA COM BYTE DE ENDEREÇO PRIMEIRO SEGUIDO POR
BYTE DE DADOS VÁLIDOS
Começar Começar
RB1/RX/DT (pino)
pedaço bit 0 bit 1 bocado 8 Pare pedaço bit 0 bit 8 Parar
pedaço pedaço

Mudança de RCV

Registro

Registro de buffer RCV


Palavra 1 Palavra 2
bit 8 = 1, byte de endereço bit 8 = 0, byte de dados
RCREG RCREG
Leia o RCV

Registro de buffer
RCREG

RCIF

(Bandeira de interrupção)

ADEN

(Correspondência de endereços

Permitir)

Observação: Este diagrama de tempo mostra um byte de endereço seguido por um byte de dados. O byte de dados é lido no RCREG
(Receive Buffer) porque o ADEN foi atualizado após uma correspondência de endereço e foi limpo para '0', então o conteúdo
do Receive Shift Register (RSR) são lidos no Receive Buffer, independentemente do valor do bit 8.

© 2009 Microchip Technology Inc. DS40044G-página 83


Machine Translated by Google

PIC16F627A/628A/648A
Siga estas etapas ao configurar um Assíncrono
Recepção:
1. TRISB<1> e TRISB<2> devem ser definidos para
'1' para configurar o RB1/RX/DT e RB2/TX/CK
pinos como entradas. Acionamento de saída, quando necessário, é
controlados pelos circuitos periféricos.
2. Inicialize o registro SPBRG para o
taxa de transmissão. Se uma taxa de transmissão de alta velocidade for desejada,

Conjunto de bits BRGH. (Seção 12.1 “USART Baud


Gerador de Taxa (BRG)”).
3. Habilite a porta serial assíncrona limpando
bit SYNC e bit de configuração SPEN.
4. Se as interrupções forem desejadas, defina o bit de habilitação
RCIE.

5. Se a recepção de 9 bits for desejada, defina o bit RX9.


6. Habilite a recepção configurando o bit CREN.
7. O bit de sinalização RCIF será definido quando a recepção for
completo e uma interrupção será gerada se
habilitar bit RCIE foi definido.

8. Leia o registro RCSTA para obter o nono bit (se


habilitado) e determine se ocorreu algum erro
durante a recepção.
9. Leia os dados recebidos de 8 bits lendo o
registro RCREG.
10. Se ocorreu um erro OERR, limpe o erro
apagando o bit de habilitação CREN.

TABELA 12-7: REGISTOS ASSOCIADOS À RECEPÇÃO ASSÍNCRONA

Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR
Reinicializações

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

1Ah Registro de Dados de Recebimento RCREG USART 0000 0000 0000 0000

8 canais TORTA1 EEIE CMIE 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.

DS40044G-página 84 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
12.3 Função de Detecção de Endereço USART O bit ADEN só terá efeito quando o receptor estiver configurado no modo
9 bits (RX9 = 1). Quando ADEN está desabilitado (= 0), todos os bytes de
12.3.1 USART RECEPTOR DE 9 BITS COM DETECÇÃO DE dados são recebidos e o 9º bit pode ser usado como bit de paridade.
ENDEREÇO

Quando o bit RX9 é definido no registrador RCSTA, 9 bits são recebidos e O diagrama de blocos de recepção é mostrado na Figura 12-4.
o nono bit é colocado no bit RX9D do registrador RCSTA. O módulo USART A recepção é habilitada configurando o bit CREN (RCSTA<4>).
possui uma provisão especial para comunicação multiprocessador.

A comunicação multiprocessador é habilitada configurando o bit ADEN 12.3.1.1 Configurando o modo de 9 bits com endereço
(RCSTA<3>) junto com o bit RX9. A porta está agora programada de tal Detectar
forma que quando o último bit é recebido, o conteúdo do Receive Shift
Siga estas etapas ao configurar o Assíncrono
Register (RSR) é transferido para o buffer de recepção, o nono bit do RSR
Recepção com Detecção de Endereço Habilitada:
(RSR<8>) é transferido para RX9D, e o interrupção de recepção é definida
se e somente se RSR<8> = 1. Esse recurso pode ser usado em um sistema 1. TRISB<1> e TRISB<2> devem ser configurados para '1' para

multiprocessador da seguinte forma: configurar os pinos RB1/RX/DT e RB2/TX/CK como entradas. O


acionamento de saída, quando necessário, é controlado pelo
circuito periférico.

Um processador mestre pretende transmitir um bloco de dados para um 2. Inicialize o registrador SPBRG para a taxa de transmissão apropriada.

dos muitos escravos. Ele deve primeiro enviar um byte de endereço que Se desejar uma taxa de transmissão de alta velocidade, defina o
bit BRGH.
identifica o escravo de destino. Um byte de endereço é identificado
definindo o nono bit (RSR<8>) como '1' (em vez de '0' para um byte de 3. Habilite a comunicação assíncrona configurando ou apagando o bit
dados). Se os bits ADEN e RX9 estiverem configurados no registrador SYNC e configurando o bit SPEN.
RCSTA do escravo, habilitando a comunicação multiprocessador, todos os 4. Se as interrupções forem desejadas, defina o bit de habilitação
bytes de dados serão ignorados. Entretanto, se o nono bit recebido for RCIE.
igual a '1', indicando que o byte recebido é um endereço, o escravo será 5. Configure o bit RX9 para habilitar a recepção de 9 bits.
interrompido e o conteúdo do registrador RSR será transferido para o
6. Configure ADEN para habilitar a detecção de endereço.
buffer de recepção. Isso permite que o escravo seja interrompido apenas
7. Habilite a recepção configurando o bit de habilitação CREN ou SREN.
por endereços, para que o escravo possa examinar o byte recebido para
ver se está sendo endereçado. O escravo endereçado então limpará seu
bit ADEN e se preparará para receber bytes de dados do mestre. 8. O bit de sinalização RCIF será definido quando a recepção for
concluída e uma interrupção será gerada se o bit de habilitação
RCIE for definido.

9. Leia os dados recebidos de 8 bits lendo o registrador RCREG para


determinar se o dispositivo está sendo endereçado.
Quando ADEN está habilitado (= 1), todos os bytes de dados são ignorados.
Após o bit de parada, os dados não serão carregados no buffer de
recebimento e nenhuma interrupção ocorrerá. Se outro byte for deslocado 10. Se ocorrer um erro OERR, limpe o erro limpando o bit de habilitação

para o registrador RSR, o byte de dados anterior será perdido. CREN se já estiver definido.

11. Se o dispositivo foi endereçado (RSR<8> = 1 com correspondência


de endereço habilitada), limpe os bits ADEN e RCIF para permitir
que bytes de dados e bytes de endereço sejam lidos no buffer de
recebimento e interrompa a CPU.

TABELA 12-8: REGISTROS ASSOCIADOS A RECEPÇÃO ASSÍNCRONA

Valor ativado
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR
Reinicializações

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

1Ah RCREG USART Receber Registro de Dados 0000 0000 0000 0000

8 canais PIE1 EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

Registro do Gerador de Taxa de Baud 99h 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 assíncronas
recepção.

© 2009 Microchip Technology Inc. DS40044G-página 85


Machine Translated by Google

PIC16F627A/628A/648A
12.4 Modo Mestre Síncrono Apagar o bit de habilitação TXEN durante uma transmissão fará com
USART que a transmissão seja abortada e reinicializará o transmissor. Os
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 é
half-duplex (ou seja, transmissão e recepção não ocorrem ao mesmo abortada e o pino DT reverte 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 é redefinida,
configurar os pinos de E/S RB2/TX/CK e RB1/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
12.4.1 TRANSMISSÃO MESTRA SÍNCRONA USART impedância para transmitir e começar a dirigir. 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
12-1. O coração do transmissor é o Transmit (serial) Shift Register ser definido e o nono bit deve ser escrito no bit TX9D (TXSTA<0>).
(TSR). O registrador de deslocamento obtém seus dados do O nono bit deve ser escrito antes de escrever os dados de 8 bits no
registrador de buffer de transmissão de leitura/gravação, TXREG. O registrador TXREG. Isso ocorre porque uma gravação de dados no
registrador TXREG é carregado com dados no software. O registrador TXREG pode resultar em uma transferência imediata dos dados para
TSR não é 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,
Siga estas etapas ao configurar um Synchronous
TXIF (PIR1<4>) é definido. A interrupção pode ser habilitada/ Transmissão principal:
desabilitada configurando/apagando o bit de habilitação TXIE
1. TRISB<1> e TRISB<2> devem ser configurados para '1' para
(PIE1<4>). O bit de sinalização TXIF será definido independentemente
do estado do bit de habilitação TXIE e não pode ser apagado no configurar os pinos RB1/RX/DT e RB2/TX/CK como
software. Ele será redefinido somente quando novos dados forem entradas. O acionamento de saída, quando necessário, é
carregados no registro TXREG. Enquanto o bit de flag TXIF indica o controlado pelo circuito periférico.
status do registrador TXREG, outro bit TRMT (TXSTA<1>) mostra o 2. Inicialize o registro SPBRG para a taxa de transmissão
status do registrador TSR. apropriada (Seção 12.1 “Gerador de taxa de transmissão
USART (BRG)”).
TRMT é um bit somente leitura que é definido quando o TSR está 3. Habilite a porta serial mestre síncrona configurando os bits
vazio. Nenhuma lógica de interrupção está vinculada a esse bit, SYNC, SPEN e CSRC.
portanto, o usuário deve pesquisar esse bit para determinar se o
4. Se as interrupções forem desejadas, defina o bit de habilitação
registrador TSR está vazio. O TSR não é mapeado na memória de ESSA.
dados, portanto, não está disponível para o usuário.
5. Se a transmissão de 9 bits for desejada, defina o bit TX9.
A transmissão é habilitada configurando o bit de habilitação TXEN
6. Habilite a transmissão configurando o bit TXEN.
(TXSTA<5>). A transmissão real não ocorrerá até que o registro
7. Se a transmissão de 9 bits for selecionada, o nono bit deve ser
TXREG tenha sido carregado com dados.
carregado no bit TX9D.
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 8. Inicie cada transmissão carregando dados no registrador
torno da borda descendente do clock síncrono (Figura 12-8). A TXREG.
transmissão também pode ser iniciada carregando primeiro o
registrador TXREG e depois definindo o bit TXEN (Figura 12-9). Isto
é vantajoso quando taxas de transmissão lentas 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.

DS40044G-página 86 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 12-9: REGISTROS ASSOCIADOS À TRANSMISSÃO MESTRA SÍNCRONA

Valor ativado Valor em todos


Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
POR outras redefinições

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

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

8 canais TORTA1 EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

Registro do Gerador de Taxa de Baud 99h 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.

FIGURA 12-8: TRANSMISSÃO SÍNCRONA

Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4 Q3Q4 Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4

pino RB1/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 RB2/TX/CK

Escrever para

TXREG Reg

Escrever palavra 1 Escrever palavra 2


bit TXIF
(Bandeira de interrupção)

TRMT
bit TRMT

'1' '1'

bit TXEN

Observação: Modo mestre de sincronização; SPBRG = 0. Transmissão contínua de duas palavras de 8 bits.

FIGURA 12-9: TRANSMISSÃO SÍNCRONA (ATRAVÉS DE TXEN)

pino RB1/RX/DT bit 0 pedaço 1 parte 2 bocado 6 pedaço 7

pino RB2/TX/CK

Escrever para

TXREG Reg

bit TXIF

bit TRMT

bit TXEN

© 2009 Microchip Technology Inc. DS40044G-página 87


Machine Translated by Google

PIC16F627A/628A/648A
12.4.2 RECEPÇÃO MASTER SÍNCRONA USART Siga estas etapas ao configurar um Synchronous
Recepção Mestre:
1. TRISB<1> e TRISB<2> devem ser definidos para
Uma vez selecionado o modo Síncrono, a recepção é
habilitado configurando o bit de habilitação SREN '1' para configurar o RB1/RX/DT e RB2/TX/CK
(RCSTA<5>) ou habilita o bit CREN (RCSTA<4>). Os dados são pinos como entradas. Acionamento de saída, quando necessário, é

amostrado no pino RB1/RX/DT na borda descendente do controlados pelos circuitos periféricos.


o relógio. Se o bit de habilitação SREN estiver definido, apenas um único 2. Inicialize o registro SPBRG para o
palavra é recebida. Se o bit de habilitação CREN estiver definido, a taxa de transmissão. (Seção 12.1 "Taxa de transmissão USART
recepção é contínua até que CREN seja apagado. Se ambos os bits Gerador (BRG)”).
definido, então o CREN tem precedência. Depois de cronometrar o 3. Habilite a porta serial mestre síncrona
último bit, os dados recebidos no Receive Shift Register configuração dos bits SYNC, SPEN e CSRC.
(RSR) é transferido para o registrador RCREG (se for 4. Certifique-se de que os bits CREN e SREN estejam limpos.
vazio). Quando a transferência estiver completa, o bit de flag de interrupção
5. Se as interrupções forem desejadas, defina o bit de habilitação
RCIF (PIR1<5>) está definido. A interrupção real pode ser
RCIE.
habilitado/desabilitado configurando/apagando o bit de habilitação RCIE
(TORTA1<5>). O bit de sinalização RCIF é um bit somente leitura que é 6. Se a recepção de 9 bits for desejada, defina o bit RX9.

redefinido pelo hardware. Neste caso, é reiniciado quando o 7. Se for necessária uma única recepção, defina o bit SREN.
O registrador RCREG foi lido e está vazio. o Para recepção contínua, defina o bit CREN.
RCREG é um registrador de buffer duplo (ou seja, é um FIFO de duas 8. O bit sinalizador de interrupção RCIF será definido quando a recepção
profundidades). É possível que dois bytes de dados sejam está completo e uma interrupção será gerada se
recebido e transferido para o RCREG FIFO e um habilitar bit RCIE foi definido.
terceiro byte para começar a mudar para o registrador RSR. No 9. Leia o registro RCSTA para obter o nono bit (se
clock do último bit do terceiro byte, se o RCREG habilitado) e determine se ocorreu algum erro
o registrador ainda está cheio, então estouro o bit de erro OERR durante a recepção.
(RCSTA<1>) está definido. A palavra no RSR será perdida.
10. Leia os dados recebidos de 8 bits lendo o
O registrador RCREG pode ser lido duas vezes para recuperar o
registro RCREG.
dois bytes no FIFO. O bit OERR deve ser limpo em
11. Se ocorrer um erro OERR, limpe o erro
software (limpando o bit CREN). Se o bit OERR estiver definido,
bit de limpeza CREN.
transferências do RSR para o RCREG são inibidas, então
é essencial limpar o bit OERR se estiver definido. O 9º
o bit de recebimento é armazenado em buffer da mesma forma que o bit de recebimento

dados. Lendo o 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 em
para não perder as informações antigas do RX9D.

TABELA 12-10: REGISTROS ASSOCIADOS À RECEPÇÃO MASTER SÍNCRONA

Valor em: Valor em todos


Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
POR outras redefinições

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

1Ah RCREG USART Receber Registro de Dados 0000 0000 0000 0000

8 canais TORTA1 EPIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE -000 0000 -000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

Registro do Gerador de Taxa de Baud 99h 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.

DS40044G-página 88 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 12-10: RECEPÇÃO SÍNCRONA (MODO MASTER, SREN)

Q2 Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4 Q1Q2Q3Q4Q1Q2Q3Q4 Q1Q2Q3Q4Q1Q2Q3 Q4Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4 Q1Q2Q3Q4

pino RB1/RX/DT bit 0 pedaço 1 parte 2 parte 3 bocado 4 pedaço 5 bocado 6 pedaço 7

pino RB2/TX/CK

Escrever para
Bit SREN

bit SREN

'0' '0'
bit CREN

bit RCIF

(Interromper)

Ler
RXREG

Observação: O diagrama de temporização demonstra o modo Sync Master com bit SREN = 1 e bit BRG = 0.

12.5 Modo escravo síncrono USART Siga estas etapas ao configurar um Synchronous
Transmissão Escrava:
O modo escravo síncrono difere do modo mestre
1. TRISB<1> e TRISB<2> devem ser definidos para
no fato de que o relógio de mudança é fornecido externamente em
'1' para configurar o RB1/RX/DT e RB2/TX/CK
o pino RB2/TX/CK (em vez de ser fornecido internamente
pinos como entradas. Acionamento de saída, quando necessário, é
no modo Mestre). Isso permite que o dispositivo transfira ou
controlados pelos circuitos periféricos.
receber dados enquanto estiver no modo Sleep. O modo escravo é
inserido limpando o bit CSRC (TXSTA<7>). 2. Habilite a porta serial escrava síncrona
bits de configuração SYNC e SPEN e bit de limpeza
12.5.1 TRANSMISSÃO DE ESCRAVO SÍNCRONO CSRC.

USART 3. Apague os bits CREN e SREN.

A operação do mestre e escravo síncrono 4. Se as interrupções forem desejadas, defina o bit de habilitação
ESSA.
modos são idênticos, exceto no caso do Sleep
modo. 5. Se a transmissão de 9 bits for desejada, defina o bit TX9.
Se duas palavras forem gravadas no TXREG e, em seguida, o 6. Habilite a transmissão definindo o bit de habilitação
CHEN.
instrução SLEEP for executada, ocorrerá o seguinte:
7. Se a transmissão de 9 bits for selecionada, o nono bit
a) A primeira palavra será imediatamente transferida para o
deve ser carregado no bit TX9D.
TSR registrar e transmitir.
8. Inicie a transmissão carregando dados no TXREG
b) A segunda palavra permanecerá no registrador TXREG. c) O
registro.
bit de sinalização TXIF não será definido. d) Quando a primeira
palavra for deslocada do TSR,
o registrador TXREG irá transferir o segundo
palavra para o TSR e o bit de flag TXIF agora será
definir.

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 for
habilitado, o programa irá ramificar para a interrupção
vetor (0004h).

© 2009 Microchip Technology Inc. DS40044G-página 89


Machine Translated by Google

PIC16F627A/628A/648A
12.5.2 RECEPÇÃO SÍNCRONA DE ESCRAVO USART Siga estas etapas ao configurar um Synchronous
Recepção de Escravos:

1. TRISB<1> e TRISB<2> devem ser definidos para


A operação do mestre e escravo síncrono
modos é idêntico, exceto no caso do Sleep '1' para configurar o RB1/RX/DT e RB2/TX/CK
modo. Além disso, o bit SREN é um “não me importo” no modo Escravo. pinos como entradas. Acionamento de saída, quando necessário, é
controlados pelos circuitos periféricos.
Se o recebimento estiver habilitado configurando o bit CREN antes do
2. Habilite a porta serial mestre síncrona
instrução SLEEP, então uma palavra pode ser recebida durante
bits de configuração SYNC e SPEN e bit de limpeza
Dorme. Ao receber completamente a palavra, o RSR
CSRC.
registrar transferirá os dados para o registro RCREG
e se o bit RCIE do bit de habilitação estiver definido, a interrupção gerada 3. Se as interrupções forem desejadas, defina o bit de habilitação
RCIE.
vai acordar o chip do Sleep. Se a interrupção global for
habilitado, o programa irá desviar para o vetor de interrupção 4. Se a recepção de 9 bits for desejada, defina o bit RX9.
(0004h). 5. Para habilitar a recepção, defina o bit de habilitação CREN.
6. O bit de sinalização RCIF será definido quando a recepção for
completo e uma interrupção será gerada, se
habilitar bit RCIE foi definido.

7. Leia o registro RCSTA para obter o nono bit (se


habilitado) e determine se ocorreu algum erro
durante a recepção.
8. Leia os dados recebidos de 8 bits lendo o
registro RCREG.
9. Se ocorreu um erro OERR, limpe o erro
bit de limpeza CREN.

TABELA 12-11: REGISTROS ASSOCIADOS À TRANSMISSÃO SÍNCRONA DE ESCRAVO

Valor ativado Valor em todos


Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
POR outras redefinições

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

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

8 canais TORTA1 EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

Registro do Gerador de Taxa de Baud 99h 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.

TABELA 12-12: REGISTROS ASSOCIADOS A RECEPÇÃO SÍNCRONA DE ESCRAVOS

Valor ativado Valor em todas as


Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
POR outras reinicializações

0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000

18h RCSTA SPEN RX9 SREN CREN ADEN FERR OERR RX9D 0000 000x 0000 000x

1Ah RCREG USART Receber Registro de Dados 0000 0000 0000 0000

8 canais TORTA1 EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

98h TXSTA CSRC TX9 TXEN SYNC — BRGH TRMT TX9D 0000 -010 0000 -010

Registro do Gerador de Taxa de Baud 99h 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.

DS40044G-página 90 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
13.0 MEMÓRIA EEPROM DE DADOS A memória de dados EEPROM permite leitura e escrita de bytes.
Uma escrita de byte apaga automaticamente a localização e
A memória de dados EEPROM é legível e gravável grava os novos dados (apagar antes de gravar). A EEPROM
durante a operação normal ( faixa VDD completa ). Esta memória a memória de dados é classificada para altos ciclos de apagamento/gravação. o
não é mapeado diretamente no espaço do arquivo de registro. Em vez de o tempo de gravação é controlado por um temporizador no chip. A escrita
é endereçada indiretamente através da Função Especial tempo irá variar com a tensão e temperatura, bem como
Registros (SFR). Existem quatro SFRs usados para ler de chip para chip. Consulte as especificações AC para
e escrever esta memória. Esses registros são: limites exatos.
• EECON1
Quando o dispositivo está protegido por código, a CPU pode
• EECON2 (Não é um registro implementado fisicamente) continue a ler e escrever na memória EEPROM de dados. UMA
• EDATA programador do dispositivo não pode mais acessar esta memória.
• EEADR Informações adicionais sobre os dados EEPROM são

EEDATA contém os dados de 8 bits para leitura/gravação e EEADR disponível no PIC® Mid-Range Reference Manual
(DS33023).
contém o endereço da localização da EEPROM que está sendo
acessado. Os dispositivos PIC16F627A/628A têm 128 bytes
de dados EEPROM com uma faixa de endereços de 0h a
7Fh. O dispositivo PIC16F648A possui 256 bytes de dados
EEPROM com faixa de endereços de 0h a FFh.

REGISTRO 13-1: EEDATA – REGISTRO DE DADOS EEPROM (ENDEREÇO: 9Ah)


R/Lx R/Lx R/Lx R/Lx R/Lx L/Lx R/Lx R/Lx

EEDAT7 EEDAT6 EEDAT5 EEDAT4 EEDAT3 EEDAT2 EEDAT1 EEDAT0

pedaço 7 bit 0

pouco 7-0 EEDATn: Valor do byte para escrever ou ler da localização da memória EEPROM de dados.

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

REGISTRO 13-2: EEADR – REGISTRO DE ENDEREÇO EEPROM (ENDEREÇO: 9Bh)


R/Lx R/Lx R/Lx R/Lx R/Lx L/Lx R/Lx R/Lx

EADR7 EADR6 EADR5 EADR4 EADR3 EADR2 EADR1 EADR0

pedaço 7 bit 0

pedaço 7 PIC16F627A/628A
Endereço não implementado: deve ser definido como '0'

PIC16F648A

EEADR: definido como '1' especifica os 128 principais locais (128-255) da operação de leitura/gravação de EEPROM
pouco 6-0 EEADR: Especifica um dos 128 locais de operação de leitura/gravação 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

© 2009 Microchip Technology Inc. DS40044G-página 91


Machine Translated by Google

PIC16F627A/628A/648A
13.1 EEADR 13.2 Registros EECON1 e EECON2
O registrador PIC16F648A EEADR endereça 256 EECON1 é o registrador de controle com quatro bits de baixa ordem
bytes de dados EEPROM. Todos os oito bits do registrador implementado fisicamente. Os quatro bits superiores não existem e são
(EEADR<7:0>) são obrigatórios. lidos como '0's.

Os endereços de registro PIC16F627A/628A EEADR Os bits de controle RD e WR iniciam leitura e escrita,


apenas os primeiros 128 bytes de dados EEPROM, então apenas sete respectivamente. Esses bits não podem ser apagados, apenas definidos, em
dos oito bits no registrador (EEADR<6:0>) são Programas. Eles são liberados no hardware na conclusão
requeridos. O bit superior é o endereço decodificado. este da operação de leitura ou escrita. A incapacidade de limpar o
significa que este bit deve ser sempre '0' para garantir que O bit WR no software evita o acidente, prematuro
o endereço está no espaço de memória de 128 bytes. término de uma operação de gravação.

O bit WREN, quando definido, permitirá uma operação de escrita.


Ao ligar, o bit WREN está limpo. O bit WRERR é
definido quando uma operação de gravação é interrompida por um MCLR
Reinicialização ou uma reinicialização de tempo limite WDT durante
Operação. Nestas situações, após o Reset, o usuário
pode verificar o bit WRERR e reescrever a localização. o
dados e endereço permanecerão inalterados no EEDATA
e registros EEADR.

O bit sinalizador de interrupção EEIF no registrador PIR1 é definido quando


a escrita está completa. Este bit deve ser apagado no software.

EECON2 não é um registro físico. Lendo EECON2


lerá todos os '0's. O registrador EECON2 é usado
exclusivamente na sequência de gravação de dados EEPROM.

REGISTRO 13-3: EECON1 – REGISTRO DE CONTROLE EEPROM 1 (ENDEREÇO: 9Ch)


U-0 U-0 U-0 U-0 R/Lx R/W-0 R/S-0 R/S-0
— — — — WRERR WREN WR RD

pedaço 7 bit 0

bocado 7-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, qualquer reinicialização de WDT durante
operação normal ou BOR Reset)
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 de dados

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 = Ciclo de gravação nos dados EEPROM está completo
bit 0 RD: bit de controle de leitura

1 = Inicia uma leitura de EEPROM (a leitura leva um ciclo. RD é apagado em hardware. O bit RD só pode ser definido (não
apagado) em 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

DS40044G-página 92 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
13.3 Lendo a Memória de Dados Na conclusão do ciclo de escrita, o bit WR é
desmarcado no hardware e o EE Write Complete
EEPROM
O bit de sinalização de interrupção (EEIF) é definido. O usuário pode tanto
Para ler um local de memória de dados, o usuário deve escrever o habilite esta interrupção ou pesquise este bit. O bit EEIF no
endereço para o registrador EEADR e, em seguida, defina o bit de controle Os registros PIR1 devem ser apagados por software.
RD (EECON1<0>). Os dados estão disponíveis, no próprio
próximo ciclo, no registrador EEDATA; portanto pode ser
13.5 Verificação de Gravação
leia na próxima instrução. EEDATA manterá esse valor
até outra leitura ou até que seja escrito pelo usuário Dependendo da aplicação, uma boa programação
(durante uma operação de gravação). prática pode ditar que o valor gravado nos Dados
A EEPROM deve ser verificada (Exemplo 13-3) para o
EXEMPLO 13-1: LEITURA DE EEPROM DE DADOS valor desejado a ser escrito. Isso deve ser usado em

BSF ESTADO, RP0 ;Banco 1


aplicações onde um bit EEPROM será forçado

MOVLW CONFIG_ADDR ; perto do limite de especificação.


MOVWF EEADR ;Endereço para ler
BSF EECON1, RD ;EE Ler EXEMPLO 13-3: ESCREVER VERIFICAR
MOVF EEDATA, W ; W = EEDATA BSF STATUS, RP0 ;Banco 1
BCF ESTADO, RP0 ;Banco 0
MOVF EEDATA, W
BSF EECON1, RD ;Lê o ;valor escrito

13.4 Gravando na Memória de Dados ;


EEPROM ;O valor escrito (em W reg) e ;lido (em EEDATA) é o mesmo?

Para escrever uma localização de dados EEPROM, o usuário deve primeiro


;
escreva o endereço no registrador EEADR e os dados
SUBWF EEDATA, W;
para o registro EEDATA. Em seguida, o usuário deve seguir um BTFSS STATUS, Z ;A diferença é 0?
seqüência específica para iniciar a gravação para cada byte. GOTO WRITE_ERR ;NO, Erro de escrita ;YES, Boa escrita
:
EXEMPLO 13-2: GRAVAÇÃO DE EEPROM DE DADOS : ;Continuar programa

BSF ESTADO, RP0 ;Banco 1


BSF EECON1, WREN ;Ativar gravação
BCF INTCON, GIE ;Desabilita INTs. 13.6 Proteção contra gravação espúria
BTFSC INTCON,GIE ;Veja AN576
Existem condições em que o dispositivo pode não querer
IR PARA $-2
MOVLW 55h ;
gravar na memória EEPROM de dados. Para proteger contra
MOVWF EECON2 ;Escrever 55h escritas espúrias na EEPROM, vários mecanismos têm
Requeridos
Seqüência
MOVLW AAh ; foi embutido. Ao ligar, WREN é apagado. Também
MOVWF EECON2 ;Escrever AAh quando ativado, o temporizador de inicialização (duração de 72 ms)
BSF EECON1, WR ;Definir bit WR impede a escrita de EEPROM.
;começa a escrever
A sequência de início de gravação e o bit WREN juntos
BSF INTCON, GIE ;Habilita INTs.
ajudar a evitar uma gravação acidental durante o blecaute,
falha de energia ou mau funcionamento do software.
A gravação não será iniciada se a sequência acima não for
seguido exatamente (escreva 55h para EECON2, escreva AAh para
EECON2, então defina o bit WR) para cada byte. Nós fortemente
recomendamos que as interrupções sejam desabilitadas durante este
segmento de código. Uma contagem cíclica é executada durante o
sequência necessária. Qualquer número que não seja igual ao
ciclos necessários para executar a sequência necessária
fazer com que os dados não sejam gravados na EEPROM.

Além disso, o bit WREN em EECON1 deve ser definido como


habilitar gravação. Este mecanismo evita acidentes
grava em dados EEPROM devido a erros (inesperados)
execução de código (ou seja, programas perdidos). O usuário deve
mantenha o bit WREN sempre limpo, exceto quando
atualização da EEPROM. O bit WREN não é apagado
por hardware.

Após uma sequência de gravação ter sido iniciada, limpar o


O bit WREN não afetará este ciclo de gravação. O bit WR
ser inibido de ser definido, a menos que o bit WREN seja definido.

© 2009 Microchip Technology Inc. DS40044G-página 93


Machine Translated by Google

PIC16F627A/628A/648A
13.7 Usando a EEPROM de Dados Uma rotina simples de atualização de EEPROM de dados é mostrada em
Exemplo 13-4.
A EEPROM de dados é uma alta resistência, byte
array endereçável que foi otimizado para o armazenamento Nota: Se a EEPROM de dados for usada apenas para armazenar
de informações que mudam frequentemente (por exemplo, constantes e/ou dados que raramente mudam,
variáveis ou outros dados que são atualizados com frequência). Quando uma atualização de matriz provavelmente não é necessária. Ver

variáveis em uma seção mudam com frequência, enquanto especificação D124.


variáveis em outra seção não mudam, é possível
exceder o número total de ciclos de gravação na EEPROM
(especificação D124) sem exceder o número total
de ciclos de gravação para um único byte (especificações D120 e
D120A). Se este for o caso, uma atualização de array deve ser
realizado. Por isso, as variáveis que mudam
raramente (como constantes, IDs, calibração, etc.)
devem ser armazenados na memória de programa Flash.

EXEMPLO 13-4: ROTINA DE ATUALIZAÇÃO DE EEPROM DE DADOS

BANCO 0X80 ;selecione Banco1


CLRF EEADR ;começa no endereço 0
BCF INTCON, GIE ;desabilita interrupções
BTFSC INTCON, GIE $ - 2 ;veja AN576
VÁ PARA

BSF EECON1, WREN ;habilita gravações de EE


Ciclo
BSF EECON1, RD ;recuperar dados em EEDATA
MOVLW 0x55 ;primeiro passo de... ;...
MOVWF EECON2 sequência necessária
MOVLW 0xAA ;segunda etapa de ... ;...
MOVWF EECON2 sequência necessária
BSF EECON1, WR ;inicia a sequência de escrita
BTFSC EECON1, WR $ ;aguarda a escrita completa
VÁ PARA -1

#IFDEF __16F648A ;256 bytes em 16F648A

INCFSZ EEADR, f ;teste de fim de memoria


#SENÃO ;128 bytes em 16F627A/628A
INCF EEADR, f ;próximo endereço
BTFSS EEADR, 7 ;teste de fim de memoria
#FIM SE ;fim da montagem condicional

VÁ PARA Ciclo ;repete para todos os locais

BCF EECON1, WREN ;desabilita gravações de EE


BSF INTCON, GIE ;habilita interrupções (opcional)

DS40044G-página 94 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
13.8 Operação de EEPROM de Dados
Durante o Code-Protect

Quando o dispositivo está protegido por código, a CPU é capaz de


ler e gravar dados na EEPROM de dados.

TABELA 13-1: REGISTROS/BITS ASSOCIADOS A EEPROM DE DADOS


Valor ativado Valor em todos
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Ligar os outros
Redefinir Reinicializações

9Ah Registro de dados EEDATA EEPROM xxxx xxxx uuuu uuuu


9Bh Registro de Endereço EEADR EEPROM xxxx xxxx uuuu uuuu
9 canais EECON1 — — — — WRERR WREN WR RD ---- x000 ---- q000
9 Dh EECON2(1) Registro de Controle EEPROM 2
---- ---- ---- ----

Legenda: x = desconhecido, u = inalterado, - = não implementado lido como '0', q = valor depende da condição.
As células sombreadas não são usadas pela EEPROM de dados.
Nota 1: EECON2 não é um registrador físico.

© 2009 Microchip Technology Inc. DS40044G-página 95


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 96 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
14.0 CARACTERÍSTICAS ESPECIAIS DA CPU 14.1 Bits de Configuração
Os bits de configuração podem ser programados (lidos como '0') ou deixados
não programados (lidos como '1') para selecionar várias configurações do
Circuitos especiais para lidar com as necessidades de aplicações em tempo
dispositivo. Esses bits são mapeados no local de memória do programa 2007h.
real são o que diferencia um microcontrolador de outros processadores. A
família PIC16F627A/628A/648A possui uma série de recursos destinados a
maximizar a confiabilidade do sistema, minimizar o custo através da eliminação O usuário notará que o endereço 2007h está além do espaço de memória do
de componentes externos, fornecer modos de operação de economia de programa do usuário. Na verdade, ele pertence ao espaço de memória de
energia e oferecer proteção de código. configuração especial (2000h-3FFFh), que pode ser acessado apenas durante
a programação. Consulte “Especificação de programação de memória

Estes são: EEPROM PIC16F627A/ 628A/ 648A” (DS41196) para obter informações
adicionais.
1. Seleção OSC
2. Redefinir

3. Reinicialização ao ligar (POR)

4. Temporizador de inicialização (PWRT)

5. Temporizador de inicialização do oscilador (OST)

6. Reinicialização de Brown-out (BOR)

7. Interrupções 8.

Cronômetro Watchdog (WDT)

9. Dormir 10.

Proteção de código 11.


Localizações de identificação

12. Programação Serial In-Circuit™ (ICSP™)

O PIC16F627A/628A/648A possui um Watchdog Timer que é controlado por


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 energização, projetado para manter a peça em Reset
enquanto a fonte de alimentação se estabiliza. Há também um circuito para
redefinir o dispositivo se ocorrer um blecaute. Com essas três funções no
chip, a maioria dos aplicativos não precisa de circuitos de reinicialização

externos.

O modo Sleep foi projetado para oferecer um modo Power-down de corrente


muito baixa. O usuário pode acordar do Sleep por meio de Reset externo,
despertar do Watchdog Timer ou por meio de uma interrupção. Várias opções
de osciladores também são disponibilizadas para permitir que a peça se ajuste
à aplicação.
A opção de oscilador RC economiza o custo do sistema, enquanto a opção
de cristal LP economiza energia. Um conjunto de bits de configuração é usado
para selecionar várias opções.

© 2009 Microchip Technology Inc. DS40044G-página 97


Machine Translated by Google

PIC16F627A/628A/648A
REGISTRO 14-1: CONFIG – REGISTRO DE PALAVRAS DE CONFIGURAÇÃO

PC — — — — PCD LVP BOREN MCLRE FOSC2 PWRTE WDTE F0SC1 F0SC0

pedaço 13 bit 0

parte 13: CP: Bit de proteção de código de memória de programa flash (2)
(PIC16F648A)
1 = Proteção de código desligada
0 = 0000h a 0FFFh protegido por código
(PIC16F628A)
1 = Proteção de código desligada
0 = 0000h a 07FFh protegido por código
(PIC16F627A)
1 = Proteção de código desligada
0 = 0000h a 03FFh protegido por código

bit 12-9: Não implementado: Leia como '0'

pedaço 8: CPD: Bit de proteção de código de dados (3)

1 = Proteção de código de memória de dados desligada


0 = Memória de dados protegida por código

pedaço 7: LVP: bit de habilitação de programação de baixa tensão


1 = pino RB4/PGM tem função PGM, programação de baixa tensão habilitada
0 = RB4/PGM é E/S digital, HV em MCLR deve ser usado para programação

pedaço 6: BOREN: Bit de habilitação de reinicialização de brown-out (1)


1 = Reinicialização BOR habilitada
0 = Reinicialização BOR desabilitada

parte 5: MCLRE: RA5/MCLR/VPP Pin Function Select bit

1 = A função do pino RA5/MCLR/VPP é MCLR


0 = A função do pino RA5/MCLR/VPP é entrada digital, MCLR ligado internamente ao VDD

parte 3: PWRTE: bit de habilitação do temporizador de inicialização (1)


1 = PWRT desativado
0 = PWRT ativado

parte 2: WDTE: bit de ativação do temporizador de watchdog


1 = WDT ativado
0 = WDT desabilitado

bit 4, 1-0: FOSC<2:0>: bits de seleção do oscilador (4)

111 = oscilador RC: função CLKOUT no pino RA6/OSC2/CLKOUT, resistor e capacitor em RA7/OSC1/CLKIN
110 = oscilador RC: função I/O no pino RA6/OSC2/CLKOUT, resistor e capacitor em RA7/OSC1/CLKIN
101 = oscilador INTOSC: função CLKOUT no pino RA6/OSC2/CLKOUT, função I/O em RA7/OSC1/CLKIN
100 = oscilador INTOSC: função I/O no pino RA6/OSC2/CLKOUT, função I/O no pino RA7/OSC1/CLKIN
011 = EC: função I/O no pino RA6/OSC2/CLKOUT, CLKIN em RA7/OSC1/CLKIN
010 = oscilador HS: cristal/ressonador de alta velocidade em RA6/OSC2/CLKOUT e RA7/OSC1/CLKIN
001 = oscilador XT: Cristal/ressonador em RA6/OSC2/CLKOUT e RA7/OSC1/CLKIN
000 = oscilador LP: Cristal de baixa potência em RA6/OSC2/CLKOUT e RA7/OSC1/CLKIN

Nota 1: Habilitar Brown-out Reset não habilita automaticamente o Power-up Timer (PWRT) da mesma forma que nos dispositivos PIC16F627/628.

2: O esquema de proteção de código mudou do esquema de proteção de código usado nos dispositivos PIC16F627/628. o
toda a memória do programa Flash precisa ser apagada em massa para definir o bit CP, desativando a proteção do código. Consulte “Especificação
de programação de memória EEPROM PIC16F627A/ 628A/ 648A” (DS41196) para obter detalhes.
3: Toda a EEPROM de dados precisa ser apagada em massa para definir o bit CPD, desativando a proteção do código. Consulte “PIC16F627A/
Especificação de programação de memória EEPROM 628A/ 648A” (DS41196) para obter detalhes.
4: Quando o MCLR é ativado no modo INTOSC, o oscilador de clock interno é desabilitado.

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 é limpo x = bit é desconhecido

DS40044G-página 98 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
14.2 Configurações do oscilador TABELA 14-1: SELEÇÃO DE CAPACITOR PARA
RESSONADORES CERÂMICOS
14.2.1 TIPOS DE OSCILADOR
Modo Frequencia OSC1(C1) OSC2(C2)
O PIC16F627A/628A/648A pode ser operado em oito
XT 455 kHz 22-100 pF 22-100 pF
diferentes opções de oscilador. O usuário pode programar três
2,0 MHz 15-68 pF 15-68 pF
bits de configuração (FOSC2 a FOSC0) para selecionar
4,0 MHz 15-68 pF 15-68 pF
um destes oito modos:
HS 8,0 MHz 10-68 pF 10-68 pF
• LP Cristal de baixa potência
16,0 MHz 10-22 pF 10-22 pF
• XT Cristal/Ressonador
Nota: A capacitância mais alta aumenta a estabilidade
• Cristal/Ressonador de Alta Velocidade HS
do oscilador, mas também aumenta a
• Resistor/Capacitor Externo RC (2 modos) tempo de inicialização. Esses valores são para o projeto
• Oscilador de precisão interna INTOSC (2 modos) apenas orientação. Como cada ressonador tem
• Entrada de Relógio Externo EC suas próprias características, o usuário deve
consulte o fabricante do ressonador para
14.2.2 OSCILADOR DE CRISTAL / CERÂMICA valores apropriados de componentes externos.
RESSONADORES

Nos modos XT, LP ou HS, um ressonador de cristal ou cerâmica


TABELA 14-2: SELEÇÃO DE CAPACITOR PARA
está conectado aos pinos OSC1 e OSC2 para estabelecer
oscilação (Figura 14-1). O PIC16F627A/628A/648A OSCILADOR DE CRISTAL
projeto do oscilador requer o uso de um corte paralelo Modo Frequencia OSC1(C1) OSC2(C2)
cristal. O uso de um cristal de corte em série pode fornecer uma frequência
LP 32 kHz 15-30 pF 15-30 pF
fora das especificações dos fabricantes de cristal. Quando em
modos XT, LP ou HS, o dispositivo pode ter um 200 kHz 0-15 pF 0-15 pF
fonte de clock para acionar o pino OSC1 (Figura 14-4). XT 100 kHz 68-150 pF 150-200 pF
2MHz 15-30 pF 15-30 pF
FIGURA 14-1: OPERAÇÃO DE CRISTAL 4MHz 15-30 pF 15-30 pF
(OU RESSONADOR CERÂMICO) HS 8MHz 15-30 pF 15-30 pF
(HS, XT OU LP OSC 10MHz 15-30 pF 15-30 pF
CONFIGURAÇÃO) 20MHz 15-30 pF 15-30 pF
Nota: A capacitância mais alta aumenta a estabilidade
OSC1
do oscilador, mas também aumenta a
C1(2) tempo de inicialização. Esses valores são para o projeto
apenas orientação. Um resistor em série (RS) pode
XTAL Dorme
RF ser necessário no modo HS, bem como XT
OSC2 modo, para evitar cristais overdriving com
RS(1) SOMBRIO
especificação de baixo nível de acionamento. Uma vez que cada
C2(2)
cristal tem características próprias, o
PIC16F627A/628A/648A
usuário deve consultar o fabricante do cristal para
Nota 1: Um resistor em série pode ser necessário para cristais de corte valores apropriados de
em tira AT.
2: Consulte a Tabela 14-1 e a Tabela 14-2 para recomendações
componentes.
valores de C1 e C2.

© 2009 Microchip Technology Inc. DS40044G-página 99


Machine Translated by Google

PIC16F627A/628A/648A
14.2.3 OSCILADOR DE CRISTAL EXTERNO FIGURA 14-3: SÉRIE EXTERNA
O CIRCUITO CRISTAL RESSONANTE
CIRCUITO OSCILADOR
Pode ser usado um oscilador pré-empacotado ou um simples
circuito oscilador com portas TTL pode ser construído.
Os osciladores pré-embalados fornecem uma ampla O outro
alcance e melhor estabilidade. Um cristal bem projetado 330 Kÿ 330 Kÿ Dispositivos

oscilador irá fornecer um bom desempenho com TTL


74AS04 74AS04 74AS04
portões. Dois tipos de circuitos osciladores de cristal podem ser
CLKIN
usado; um com ressonância em série, ou um com paralelo
0,1 pF
ressonância.
PIC16F627A/
628A/648A
A Figura 14-2 mostra a implementação de um paralelo
circuito oscilador ressonante. O circuito é projetado para
XTAL
use a frequência fundamental do cristal. o
O inversor 74AS04 realiza o deslocamento de fase de 180° que um
oscilador paralelo requer. O resistor de 4,7 kÿ 14.2.4 PRECISÃO INTERNA 4 MHz
fornece o feedback negativo para a estabilidade. o
OSCILADOR
Potenciômetros de 10 kÿ polarizam o 74AS04 no linear
região. Isso pode ser usado para oscilador externo O oscilador de precisão interno fornece um sinal fixo de 4 MHz
desenhos. relógio do sistema (nominal) em VDD = 5V e 25°C. Ver
Seção 17.0 “Especificações Elétricas”, para informações sobre
FIGURA 14-2: PARALELO EXTERNO variação de tensão e temperatura.

CRISTAL RESSONANTE
14.2.5 RELÓGIO EXTERNO
CIRCUITO OSCILADOR
Para aplicações onde um relógio já está disponível
+5V em outros lugares, os usuários podem dirigir diretamente o PIC16F627A/
O outro
Dispositivos 628A/648A desde que esta fonte de clock externa atenda
10K os requisitos de temporização AC/DC listados na Seção 17.6
4,7 mil 74AS04 PIC16F627A/628A/648A
“Diagramas de temporização e especificações”. Figura 14-4
74AS04 CLKIN abaixo mostra como um circuito de clock externo deve ser
configurado.

10K FIGURA 14-4: ENTRADA DE RELÓGIO EXTERNO


XTAL
OPERAÇÃO (EC, HS, XT
OU LP OSC
10K
CONFIGURAÇÃO)

C1 C2 Relógio de RA7/OSC1/CLKIN
ramal sistema
PIC16F627A/628A/648A
A Figura 14-3 mostra um circuito oscilador ressonante em série.
Este circuito também é projetado para usar os fundamentos RA6 RA6/OSC2/CLKOUT
frequência do cristal. O inversor realiza uma rotação de 180°
deslocamento de fase em um circuito oscilador ressonante em série. o
Resistores de 330 kÿ fornecem o feedback negativo para polarizar
os inversores em sua região linear.

DS40044G-página 100 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
14.2.6 OSCILADOR RC 14.2.8 RECURSO ESPECIAL: DUPLA VELOCIDADE
Para aplicações em que a sincronização precisa não é um requisito, a
MODOS DE OSCILADOR
opção de oscilador RC está disponível. A operação e a funcionalidade do Um modo de oscilador de velocidade dupla programável por software é
oscilador RC dependem de várias variáveis. A frequência do oscilador RC fornecido quando o PIC16F627A/628A/648A é configurado no modo de
é uma função de: oscilador INTOSC. Este recurso permite que os usuários alternem
dinamicamente a velocidade do oscilador entre 4 MHz e 48 kHz nominal
no modo INTOSC. Os aplicativos que exigem economia de energia de
• Tensão de alimentação
baixa corrente, mas não toleram colocar a peça em suspensão, podem
• Valores de resistor (REXT) e capacitor (CEXT) • Temperatura
usar esse modo.
de operação

A frequência do oscilador variará de unidade para unidade devido à


Há um atraso de tempo associado à transição entre as velocidades rápida
variação normal dos parâmetros do processo. A diferença na capacitância
e lenta do oscilador. Este atraso de transição de velocidade do oscilador
do quadro de chumbo entre os tipos de pacote também afetará a
consiste em dois pulsos de clock existentes e oito novos pulsos de clock
frequência de oscilação, especialmente para valores baixos de CEXT . O
de velocidade. Durante esse atraso de transição de velocidade de clock,
usuário também precisa levar em conta a tolerância dos componentes
o clock do sistema é interrompido, fazendo com que o processador seja
externos R e C.
congelado no tempo. Durante este atraso, o contador de programa e o
A Figura 14-5 mostra como a combinação R/C está conectada.
CLKOUT param.

O bit OSCF no registrador PCON é usado para controlar o modo Dual


Speed. Consulte a Seção 4.2.2.6 “Registro PCON”, Registro 4-6.
FIGURA 14-5: MODO DE OSCILADOR RC

VDD
PIC16F627A/628A/648A
14.3 Redefinir
O PIC16F627A/628A/648A diferencia entre vários tipos de Reset:
CERTO
RA7/OSC1/ interno
CLKIN
Relógio
a) Power-on Reset (POR) b) MCLR
CEXT Reset durante operação normal c) MCLR Reset durante
VSS Sleep d) WDT Reset (operação normal) e) WDT wake-
up (Sleep) f) Brown-out Reset (BOR)
ESCURO/4
RA6/OSC2/CLKOUT

Valores recomendados: 3 kÿ ÿ REXT ÿ 100 kÿ (VDD ÿ 3,0V) 10


Alguns registradores não são afetados em nenhuma condição de Reset;
kÿ ÿ REXT ÿ 100 kÿ (VDD < 3,0V) seu status é desconhecido no POR e inalterado em qualquer outro Reset.
CEXT > 20 pF A maioria dos outros registradores é redefinida para um “estado de
reinicialização” na reinicialização ao ligar, reinicialização de brown-out,
O modo RC Oscillator tem duas opções que controlam o pino OSC2 não reinicialização MCLR, reinicialização WDT e reinicialização MCLR durante o sono.
utilizado. A primeira permite que ela seja usada como uma porta de E/S Eles não são afetados por uma ativação do WDT, pois isso é visto como
de uso geral. O outro configura o pino como saída fornecendo o sinal a retomada da operação normal. Os bits TO e PD são definidos ou
FOSC (relógio interno dividido por 4) para fins de teste ou sincronização apagados de forma diferente em diferentes situações de Reset, conforme
externa. indicado na Tabela 14-4. Esses bits são usados em software para
determinar a natureza do Reset.
Consulte a Tabela 14-7 para obter uma descrição completa dos estados de reinicialização de
14.2.7 CLKOUT todos os registradores.

O PIC16F627A/628A/648A pode ser configurado para fornecer um sinal Um diagrama de blocos simplificado do circuito Reset no chip é mostrado
de clock out programando a Palavra de Configuração. A frequência do na Figura 14-6.
oscilador, dividida por 4, pode ser usada para fins de teste ou para
O caminho MCLR Reset possui um filtro de ruído para detectar e ignorar
sincronizar outras lógicas.
pequenos pulsos. Consulte a Tabela 17-7 para especificação de largura
de pulso.

© 2009 Microchip Technology Inc. DS40044G-página 101


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 14-6: DIAGRAMA DE BLOCOS SIMPLIFICADO DO CIRCUITO DE REINICIALIZAÇÃO NO CHIP

Externo
Redefinir

Entrada de gatilho Schmitt


MCLR/
PIN VPP Dorme

WDT WDT
Módulo Tempo esgotado

Redefinir

Aumento de VDD

Detectar
Reinicialização ao ligar

VDD

Apagão
S Q
Redefinir
BOREN

OST/PWRT

OST

Chip_Reset
Contador de ondulação de 10 bits
R Q
OSC1 /
CLKIN
Alfinete

PWRT
No chip(1)
OSC Contador de ondulação de 10 bits

Ativar PWRT Consulte a Tabela 14-3 para situações de tempo limite.

Ativar OST

Nota 1: Este é um oscilador separado do oscilador INTOSC/RC.

DS40044G-página 102 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
14.4 Power-on Reset (POR), Power-up 14.4.3 TEMPORIZADOR DE INICIALIZAÇÃO DO OSCILADOR

Timer (PWRT), Oscillator Start-up (OST)

Timer (OST) e Brown-out Reset O OST fornece um atraso de 1024 ciclos do oscilador (da entrada
(BOR) OSC1) após o término do atraso PWRT. A execução do programa
não será iniciada até que o tempo limite do OST seja concluído. Isso
14.4.1 REINICIALIZAÇÃO DE LIGAÇÃO (POR) garante que o oscilador ou ressonador de cristal tenha iniciado e
estabilizado.
O POR on-chip mantém a peça em Reset até que um aumento de
VDD seja detectado (na faixa de 1,2-1,7V). É necessário um tempo O tempo limite OST é invocado apenas para os modos XT, LP e HS
máximo de subida para VDD . Consulte a Seção 17.0 e apenas na reinicialização ao ligar ou no despertar da suspensão.
“Especificações Elétricas” para obter detalhes. Consulte a Tabela 17-7.

O circuito POR não produz um Reset interno quando o VDD diminui.


14.4.4 REINICIALIZAÇÃO DO BROWN-OUT (BOR)

O PIC16F627A/628A/648A possui circuito BOR no chip. Um bit de


Quando o dispositivo inicia a operação normal (sai da condição
configuração, BOREN, pode desabilitar (se limpo/programado) ou
Reset), os parâmetros de operação do dispositivo (tensão,
habilitar (se definido) o circuito BOR.
frequência, temperatura, etc.) devem ser atendidos para garantir a
Se o VDD ficar abaixo do VBOR por mais tempo do que o TBOR, a
operação adequada. Se essas condições não forem atendidas, o
situação de brown-out redefinirá o chip. Um Reset não é garantido
dispositivo deve ser mantido em Reset via MCLR, BOR ou PWRT
se o VDD ficar abaixo do VBOR para um valor menor que o TBOR.
até que as condições de operação sejam atendidas. VBOR e TBOR são definidos na Tabela 17-2 e na Tabela 17-7,
Para obter informações adicionais, consulte a Nota de Aplicação respectivamente.
AN607 “Solução de Problemas de Inicialização” (DS00607).
Em qualquer Reset (Power-on, Brown-out, Watchdog, etc.), o chip
permanecerá em Reset até que o VDD fique acima do VBOR (veja
14.4.2 TEMPORIZADOR DE LIGAÇÃO (PWRT)
a Figura 14-7). O Power-up Timer agora será invocado, se habilitado,
O PWRT fornece um tempo limite fixo de 72 ms (nominal) na e manterá o chip em Reset por mais 72 ms.
energização (POR) ou se habilitado a partir de um Brown-out Reset.
O PWRT opera em um oscilador RC interno. O chip é mantido em
Se o VDD cair abaixo do VBOR enquanto o temporizador de
Reset enquanto o PWRT estiver ativo.
inicialização estiver em execução, o chip voltará a um reset de
O atraso PWRT permite que o VDD suba para um nível aceitável.
Brown-out e o temporizador de inicialização será reinicializado.
Um bit de configuração, PWRTE, pode desabilitar (se definido) ou
Quando o VDD estiver acima do VBOR, o temporizador de
habilitar (se desenergizado ou programado) o PWRT. Recomenda-
se que o PWRT seja habilitado quando o Brown-out Reset estiver inicialização executará uma reinicialização de 72 ms. A Figura 14-7
mostra situações típicas de brown-out.
habilitado.

O atraso de tempo de inicialização varia de chip para chip e devido


ao VDD, temperatura e variação do processo. Consulte a Tabela
17-7 dos parâmetros CC para obter detalhes.

FIGURA 14-7: SITUAÇÕES BROWN-OUT COM PWRT ATIVADO

VDD
VBOR

ÿ TBOR
interno
72ms
Redefinir

VDD
VBOR

interno <72 ms
72ms
Redefinir

VDD
VBOR

interno
72ms
Redefinir

Observação: 72 ms de atraso somente se o bit PWRTE estiver programado para '0'.

© 2009 Microchip Technology Inc. DS40044G-página 103


Machine Translated by Google

PIC16F627A/628A/648A
14.4.5 SEQUÊNCIA DE TEMPO LIMITE 14.4.6 STATUS DE CONTROLE DE POTÊNCIA (PCON)
REGISTRO
Ao ligar, a sequência de tempo limite é a seguinte: Primeiro
O tempo limite do PWRT é invocado depois que o POR expira. Então O registrador PCON/Status, PCON (endereço 8Eh), tem
OST está ativado. O tempo total de espera varia de acordo com dois bits.
configuração do oscilador e status do bit PWRTE. Por
Bit 0 é BOR (Reinicialização de Brown-out). BOR é desconhecido em
exemplo, no modo RC com o bit PWRTE definido (PWRT
Reinicialização de inicialização. Em seguida, deve ser definido pelo usuário e
desativado), não haverá tempo limite. Figura 14-8,
verificado nas redefinições subsequentes para ver se BOR = 0
A Figura 14-11 e a Figura 14-12 representam o tempo limite
indicando que ocorreu um blecaute. O BOR
sequências.
O bit de status é um “não me importo” e não é necessariamente
Como os tempos de espera ocorrem a partir do pulso POR, se MCLR previsível se o circuito de brown-out estiver desabilitado (por
for mantido baixo por tempo suficiente, o tempo limite expirará. Então configurando o bit BOREN = 0 na palavra de configuração).
trazer MCLR alto começará a execução imediatamente
Bit 1 é POR (Power-on Reset). É um '0' ao ligar
(veja a Figura 14-11). Isso é útil para fins de teste Redefinido e não afetado de outra forma. O usuário deve escrever um
ou para sincronizar mais de um PIC16F627A/628A/
'1' para este bit após um Power-on Reset. Com um
Dispositivo 648A operando em paralelo.
subsequente Reset se POR for '0', indicará que um
A Tabela 14-6 mostra as condições de reinicialização para alguns Power-on Reset deve ter ocorrido (VDD pode ter
registradores especiais, enquanto a Tabela 14-7 mostra o Reset foi muito baixo).
condições para todos os registros.

TABELA 14-3: TEMPO LIMITADO EM VÁRIAS SITUAÇÕES

Temporizador de inicialização Reinicialização de Brown-out


Despertar de
Configuração do oscilador
PWRTE = 0 PWRTE = 1 PWRTE = 0 PWRTE = 1 Dorme

XT, HS, LP 72 ms + 1024•TOSC 72 ms + 1024•TOSC 1024•TOSC


1024•TOSC 1024•TOSC

RC, CE 72ms — 72ms — —

INTOSC 72ms — 72ms —


6 µs

TABELA 14-4: BITS DE STATUS/PCON E SEU SIGNIFICADO

POR BOR PARA PD Doença

0X11 Reinicialização de inicialização

0X0X Ilegal, TO está definido em POR

0XX0 Ilegal, PD está definido em POR


Reinicialização de Brown-out 10XX

Reinicialização WDT 110u

1100 WDT Despertar

11uu MCLR Reinicialização durante a operação normal

1110 MCLR Reinicialização durante o sono

Legenda: u = inalterado, x = desconhecido

DS40044G-página 104 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 14-5: RESUMO DOS REGISTROS ASSOCIADOS A REINICIALIZAÇÃO DE BROWN-OUT

Valor em todos
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 os outros
POR Reset
Reinicializações(1)

03h, 83h, ESTADO IRP RP1 RPO PARA PD A PARTIR DE DC C 0001 1xxx 000q quuu
103h, 183h
8Eh PCON — — — — OSCF — BOR BOR ---- 1-0x ---- u-uq
Lenda: x = desconhecido, u = inalterado, - = não implementado lido como '0', q = valor depende da condição.
As células sombreadas não são usadas pelo Brown-out Reset.
Nota 1: Outras reinicializações (sem inicialização) incluem reinicialização de MCLR, reinicialização de brown-out e reinicialização do temporizador de watchdog durante a operação normal.

TABELA 14-6: CONDIÇÃO DE INICIALIZAÇÃO PARA REGISTROS ESPECIAIS

Programa Status PCON


Doença
Contador Registro Registro

Reinicialização ao ligar 000h 0001 1xxx ---- 1-0x

Reinicialização MCLR durante a operação normal 000h 000 uuuu ---- 1

Redefinição de MCLR durante o sono 000h 0001 0uuuu ---- 1

Redefinir WDT 000h 0000 uuuu ---- 1

Despertar WDT PC + 1 uuu0 0uuu ---- uh-uh

Reinicialização de Brown-out 000h 000x xuuu ---- 1-u0

Interromper o despertar do sono PC + 1(1) uuu1 0uuu ---- uh-uh

Legenda: u = inalterado, x = desconhecido, - = bit não implementado, é lido como '0'.


Nota 1: Quando o despertar é devido a um bit de interrupção e habilitação global, GIE é definido, o PC é carregado com o vetor de interrupção
(0004h) após execução de PC + 1.

© 2009 Microchip Technology Inc. DS40044G-página 105


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 14-7: CONDIÇÃO DE INICIALIZAÇÃO PARA REGISTRO

• Reinicialização MCLR durante a • Despertar do Sono(7) por meio de


operação normal interrupção
Registro Endereço Reinicialização ao ligar • Redefinição de MCLR durante o sono • Despertar do Sono(7) até
• Redefinição de WDT Tempo limite WDT
• Reinicialização de Brown-out (1)

Dentro
— xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

INC 00h, 80h, —— —

100h, 180h
TMR0 01h, 101h xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

PCL 02h, 82h, 0000 0000 0000 0000 PC + 1(3)


102h, 182h
STATUS 03h, 83h, 0001 1xxx 000q quuu(4) eca 0uuu(4)
103h, 183h
FSR 04h, 84h, xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

104h, 184h
TRAZ 05h xxxx 0000 xxxx 0000 uuuuuuuuuuuuuuuuuuuuuu

PORTB 06h, 106h xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

PCLATH 0Ah, 8Ah, ---0 0000 ---0 0000 ---uuuu


10Ah, 18Ah
INTCON 0Bh, 8Bh, 0000 000x 0000 000u uuuu uqqq(2)
10Bh,18Bh
PIR1 0Ch 0000 -000 0000 -000 qqqq -qqq(2)
TMR1L 0Eh xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

TMR1H 0 Fh xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

T1CON 10h --00 0000 --uuuuuuu(6) --uuuuuuuuuuuuuuuuuuuuuuuuuuuu

TMR2 11h 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

T2CON 12h -000 0000 -000 0000 -uuuuuuuuuuuuuuuuuuuuuuuuu

CCPR1L 15h xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

CCPR1H 16h xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

CCP1CON 17h --00 0000 --00 0000 --uuuuuuuuuuuuuuuuuuuuuuuuuuuu

RCSTA 18h 0000 000x 0000 000x uuuuuuuuuuuuuuuuuuuuuu

TXREG 19h 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

RCREG 1Ah 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

CMCON 1Fh 0000 0000 0000 0000 ugh-- ugh

OPÇÃO 81h, 181h 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TRISA 85h 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TRISB 86h, 186h 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TORTA1 8 canais 0000 -000 0000 -000 uuuuuuuuuuuuuuuuuuuuuu

PCON 8Eh ---- 1-0x ---- 1-uq(1,5) ---- uh-uh

PR2 92h 1111 1111 1111 1111 uuuuuuuuuuuuuuuuuuuuuu

TXT 98h 0000 -010 0000 -010 uuuuuuuuuuuuuuuuuuuuuu

SPBRG 99h 0000 0000 0000 0000 uuuuuuuuuuuuuuuuuuuuuu

A DAMA 9Ah xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

EEADR 9Bh xxxx xxxx uuuuuuuuuuuuuuuuuuuuuu uuuuuuuuuuuuuuuuuuuuuu

EECON1 9 canais ---- x000 ---- q000 ---- uuuu


EECON2 9 Dh — — —

VRCON 9Fh 000-0000 000-0000 ugh- ugh

Legenda: u = inalterado, x = desconhecido, - = bit não implementado, lido como '0', q = valor depende da condição.
Nota 1: Se o VDD ficar muito baixo, o Power-on Reset será ativado e os registros serão afetados de forma diferente.
2: Um ou mais bits em INTCON e PIR1 serão afetados (para despertar).
3: Quando o despertar é devido a uma interrupção e o bit GIE está definido, o PC é carregado com o vetor de interrupção (0004h).
4: Consulte a Tabela 14-6 para Redefinir o valor para condição específica.
5: Se Reset foi devido a brown-out, então bit 0 = 0. Todos os outros Resets causarão bit 0 = u.
6: Redefinir para '--00 0000' em um Brown-out Reset (BOR).
7: Periféricos gerando interrupções para despertar do Sleep irão alterar os bits resultantes nos registradores associados.

DS40044G-página 106 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 14-8: SEQUÊNCIA DE TEMPO LIMITE NA LIGAÇÃO (MCLR NÃO LIGADO A VDD): CASE

VDD

MCLR

POR interno

TPWRT

Tempo limite PWRT TOST

Tempo limite OST

Redefinição interna

FIGURA 14-9: SEQUÊNCIA DE TEMPO LIMITE NA LIGAÇÃO (MCLR NÃO LIGADO A VDD): CASO 2

VDD

MCLR

POR interno

TPWRT

Tempo limite PWRT


TOST

Tempo limite OST

Redefinição interna

FIGURA 14-10: SEQUÊNCIA DE TEMPO LIMITE NA LIGAÇÃO (MCLR LIGADO A VDD)

VDD

MCLR

POR interno

TPWRT

Tempo limite PWRT


TOST

Tempo limite OST

Redefinição interna

© 2009 Microchip Technology Inc. DS40044G-página 107


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 14-11: LIGAÇÃO EXTERNA FIGURA 14-13: ESCURECIMENTO EXTERNO

CIRCUITO DE REINICIALIZAÇÃO (PARA CIRCUITO DE PROTEÇÃO 2

LIGAÇÃO LENTA DO VDD )


VDD
VDD
VDD VDD R1

Q1
D R MCLR
PIC16F627A/628A/648A
R1 R2
40k
PIC16F627A/628A/648A
MCLR

Nota 1: Este circuito brown-out é mais barato,


embora menos preciso. O transistor Q1 desliga quando
Nota 1: O circuito de reinicialização de inicialização externa é necessário
o VDD está abaixo de um determinado nível, de modo que:
apenas se a inclinação de inicialização do VDD for
muito lenta. O diodo D ajuda a descarregar o capacitor R1
VDD x = 0,7 V
rapidamente quando o VDD é desligado. R1 + R2
R1
2: R < 40 kÿ é recomendado para garantir = 0,7 V ser
x
2: Reinicialização de Brown-out Interno deve
que a queda de tensão em R não viola a R1 + R2
desabilitado ao usar este circuito.
especificação elétrica do dispositivo. 3: Os resistores devem ser ajustados para as
3: R1 = 100ÿ a 1 kÿ limitará qualquer corrente características do transistor.
fluindo para o MCLR do capacitor externo C no
caso de falha do pino MCLR/VPP devido a
descarga eletrostática (ESD) ou sobrecarga
elétrica (EOS).

FIGURA 14-12: ESCURECIMENTO EXTERNO


CIRCUITO DE PROTEÇÃO 1

VDD VDD
33k

10k MCLR

40k PIC16F627A/628A/648A

Nota 1: Este circuito ativará o Reset quando o VDD


vai abaixo (Vz + 0,7V) onde Vz = tensão Zener.

2: O circuito interno de Brown-out Reset deve ser


desabilitado ao usar este circuito.

DS40044G-página 108 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
14.5 Interrupções Quando uma interrupção é respondida, o GIE é limpo para desabilitar
qualquer outra interrupção, o endereço de retorno é inserido na pilha e o
O PIC16F627A/628A/648A possui 10 fontes de interrupção:
PC é carregado com 0004h.
Uma vez na rotina de serviço de interrupção, a(s) fonte(s) da interrupção
• Interrupção externa RB0/INT • pode(m) ser determinada pelo polling dos bits de sinalização de interrupção.

Interrupção de estouro de TMR0 • O(s) bit(s) do sinalizador de interrupção deve(m) ser apagado(s) no
software antes de reativar as interrupções para evitar interrupções
Interrupções de alteração de PORTB (pinos RB<7:4>) •
recursivas RB0/INT.
Interrupção do comparador • Interrupção de USART TX •
Para eventos de interrupção externos, como o pino INT ou interrupção de
Interrupção de USART RX • Interrupção de CCP • Interrupção
alteração PORTB, a latência da interrupção será de três ou quatro ciclos
de estouro de TMR1 • Interrupção de correspondência TMR2
de instrução. A latência exata depende de quando o evento de interrupção
• Interrupção de EEPROM de dados ocorre (Figura 14-15).
A latência é a mesma para instruções de um ou dois ciclos.
Uma vez na rotina de serviço de interrupção, a(s) fonte(s) da interrupção
pode(m) ser determinada pelo polling dos bits de sinalização de
interrupção. O(s) bit(s) de sinalização de interrupção deve(m) ser
O registrador de controle de interrupção (INTCON) registra solicitações de apagado(s) no software antes de reativar as interrupções para evitar
interrupção individuais em bits de sinalização. Ele também possui bits de múltiplas solicitações de interrupção.
habilitação de interrupção individual e global.
Nota 1: Os bits de flag de interrupção individuais são definidos
Um bit de habilitação de interrupção global, GIE (INTCON<7>) habilita (se
independentemente do status do bit de máscara
definido) todas as interrupções não mascaradas ou desabilita (se
correspondente ou do bit GIE.
desmarcado) todas as interrupções. Interrupções individuais podem ser
2: Quando uma instrução que limpa o bit GIE é executada,
desabilitadas através de seus bits de habilitação correspondentes no
registrador INTCON. GIE é apagado em Reset. quaisquer interrupções que estavam pendentes para
execução no próximo ciclo são ignoradas. A CPU
A instrução “return-from-interrupt”, RETFIE, sai da rotina de interrupção e
executará um NOP no ciclo imediatamente após a
energiza o bit GIE, que reativa as interrupções RB0/INT.
instrução que limpa o bit GIE. As interrupções que foram
ignoradas ainda estão pendentes para serem atendidas
A interrupção do pino INT, a interrupção de mudança de porta RB e os quando o bit GIE é definido novamente.
sinalizadores de interrupção de estouro TMR0 estão contidos no registro
INTCON.

O sinalizador de interrupção periférica está contido no registrador especial


PIR1. O bit de habilitação de interrupção correspondente está contido nos
registradores especiais PIE1.

FIGURA 14-14: LÓGICA DE INTERRUPÇÃO

TMR1IF T0IF
Despertar (se estiver no modo de suspensão)(1)
TMR1IE T0IE
TMR2IF INTF
TMR2IE NÃO
CCP1IF RBIF
CCP1IE RBIE Interrupção para CPU
CMIF
CMIE
ASSIM
TXIF
ESSA
RCIF
RCIE
GIE
EEIF
ISTO
Nota 1: Alguns periféricos dependem do relógio do sistema para operação. Como o relógio do sistema está suspenso durante a
suspensão, apenas os periféricos que não dependem do relógio do sistema despertarão a parte da suspensão. Consulte
a Seção 14.8.1 “Despertar do sono”.

© 2009 Microchip Technology Inc. DS40044G-página 109


Machine Translated by Google

PIC16F627A/628A/648A
14.5.1 INTERRUPÇÃO RB0/INT 14.5.3 INTERRUPÇÃO DA PORTA

A interrupção externa no pino RB0/INT é acionada por borda; Uma alteração de entrada em PORTB <7:4> define o RBIF
aumentando se o bit INTEDG (OPTION<6>) estiver definido, ou (INTCON<0>) bit. A interrupção pode ser habilitada/desabilitada
caindo, se o bit INTEDG estiver limpo. Quando uma aresta válida definindo/limpando o bit RBIE (INTCON<3>). Por
aparece no pino RB0/INT, o bit INTF operação de PORTB (Seção 5.2 “PORTB e TRISB
(INTCON<1>) está definido. Esta interrupção pode ser desabilitada por Registros”).
limpando o bit de controle INTE (INTCON<4>). O INTF
Nota: Se ocorrer uma mudança no pino de E/S
bit deve ser apagado em software no serviço de interrupção
quando a operação de leitura está sendo executada
rotina antes de reativar esta interrupção. O RB0/INT
(começa durante o ciclo Q2 e termina antes
interrupção pode acordar o processador da suspensão, se o
o início do ciclo Q3), então o RBIF
O bit INTE foi definido antes de entrar em suspensão. O Estado de
sinalizador de interrupção pode não ser definido.
o bit GIE decide se o processador
ramifica para o vetor de interrupção após o despertar. Ver
14.5.4 INTERRUPÇÃO DO COMPARADOR
Seção 14.8 “Modo de desligamento (suspensão)” para detalhes
em Sleep, e a Figura 14-17 para o tempo de despertar do Consulte a Seção 10.6 "Interrupções do Comparador" para
Dormir através da interrupção RB0/INT. descrição completa das interrupções do comparador.

14.5.2 INTERRUPÇÃO TMR0

Um overflow (FFh ÿ 00h) no registrador TMR0


Bit T0IF (INTCON<2>). A interrupção pode ser habilitada/
desabilitado configurando/apagando o bit T0IE (INTCON<5>). Por
operação do módulo Timer0, consulte a Seção 6.0
“Módulo Timer0”.

FIGURA 14-15: TEMPO DE INTERRUPÇÃO DO PIN INT

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

OSC1

(3)
CLK OUT
(4)

pino INT
(1)
(1) (5)
Sinalizador INTF Interromper latência (2)
(INTCON<1>)

bit GIE
(INTCON<7>)

Fluxo de instruções

computador computador PC + 1 PC + 1 0004h 0005h

Instrução

Buscado Inst (PC) Inst (PC + 1) Inst (0004h) Inst (0005h)

Instrução
Inst (PC - 1) Inst (PC) Ciclo fictício Ciclo fictício Inst (0004h)
Executado

Nota 1: O sinalizador INTF é amostrado aqui (todo Q1).


2: Latência de interrupção assíncrona = 3-4 TCY. Latência síncrona = 3 TCY, onde TCY = tempo de ciclo da instrução.
A latência é a mesma se Inst (PC) for uma instrução de ciclo único ou de dois ciclos.
3: CLKOUT está disponível no modo oscilador RC e INTOSC.
4: Para a largura mínima do pulso INT, consulte as especificações AC.
5: INTF está habilitado para ser definido a qualquer momento durante os ciclos Q4-Q1.

DS40044G-página 110 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 14-8: RESUMO DOS REGISTROS DE INTERRUPÇÃO

Valor em todos
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 os outros
POR Reset
Reinicializações(1)

0Bh, 8Bh, INTCON GIE COMO T0IE NÃO RBIE T0IF INTF RBIF 0000 000x 0000 000u
10Bh, 18Bh
0Ch PIR1 EEIF CMIF RCIF TXIF — CCP1IF TMR2IF TMR1IF 0000 -000 0000 -000
8 canais TORTA1 EEIE CMIE RCIE TXIE — CCP1IE TMR2IE TMR1IE 0000 -000 0000 -000

Nota 1: Outros Resets (sem Power-up) incluem Reset MCLR, Reset Brown-out e Reset do Temporizador Watchdog durante
Operação.

14.6 Salvamento de contexto durante interrupções 14.7 Temporizador Watchdog (WDT)


Durante uma interrupção, apenas o valor de retorno do PC é salvo O Watchdog Timer é um RC on-chip de execução gratuita
na pilha. Normalmente, os usuários podem querer salvar a chave oscilador que não requer nenhum
registradores durante uma interrupção (por exemplo, registrador W e componentes. Este oscilador RC é separado do
registro de estado). Isso deve ser implementado em software. Oscilador RC do pino CLKIN. Isso significa que o
O WDT será executado, mesmo que o relógio no OSC1 e OSC2
O Exemplo 14-1 armazena e restaura o Status e W
pinos do dispositivo foi parado, por exemplo, por
registros. O cadastro do usuário, W_TEMP, deve ser definido
execução de uma instrução SLEEP. Durante o normal
em um local de memória comum (ou seja, W_TEMP é
operação, um tempo limite WDT gera uma reinicialização do dispositivo. Se
definido em 0x70 no Banco 0 e, portanto, acessível
o dispositivo está no modo de suspensão, um tempo limite WDT causa
em 0xF0, 0x170 e 0x1F0). O Exemplo 14-1:
o dispositivo para acordar e continuar com
• Armazena o registrador W Operação. O WDT pode ser desativado permanentemente
• Armazena o registro de Status programando o bit de configuração WDTE como claro
• Executa o código ISR (Seção 14.1 “Bits de Configuração”).

• Restaura o Status (e registro de bit de seleção de banco)


14.7.1 PERÍODO WDT
• Restaura o registro W
O WDT tem um período de tempo limite nominal de 18 ms (com

EXEMPLO 14-1: SALVAR O STATUS sem pré-escalador). Os intervalos de tempo variam com
temperatura, VDD e variações de processo de peça para
E W REGISTRA-SE EM
(consulte Especificações DC, Tabela 17-7). Se forem desejados
BATER
períodos de tempo mais longos, um postscaler com uma proporção de divisão
MOVWF W_TEMP ;copia W para registro temporário, ;pode
de até 1:128 pode ser atribuído ao WDT sob
estar em qualquer banco
controle de software escrevendo no registrador OPTION. Desta forma,
SWAPF STATUS,W ;swap status a ser salvo ;no W
períodos de tempo limite de até 2,3 segundos podem ser realizados.

BCF STATUS,RP0 ;muda para banco 0 ;independente As instruções CLRWDT e SLEEP limpam o WDT
da corrente e o postscaler, se atribuído ao WDT, e evitar
;banco que ele atinja o tempo limite e gere uma reinicialização do dispositivo.
MOVWF STATUS_TEMP ;salva status no banco 0
;registro O bit TO no registrador de status será apagado após um
: Tempo limite do Watchdog Timer.
:(ISR)
: 14.7.2 CONSIDERAÇÕES DE PROGRAMAÇÃO
DO WDT
SWAPF STATUS_TEMP,W;trocar registro STATUS_TEMP
Também deve ser levado em conta que, no pior caso,

;para W, define o banco para condições (VDD = Min., Temperatura = Max., max.
original prescaler WDT) pode demorar vários segundos até que um
;Estado O tempo limite do WDT ocorre.
ESTADO DO MOVWF ;mover W para STATUS ;registrar

SWAPF W_TEMP,F ;trocar W_TEMP


SWAPF W_TEMP,W ;troca W_TEMP em W

© 2009 Microchip Technology Inc. DS40044G-página 111


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 14-16: DIAGRAMA DE BLOCO DE TEMPORIZADOR DE WATCHDOG

Da fonte de relógio TMR0


(Figura 6-1)

0
M
Pós-escalador WDT/
DENTRO

Pré-escalador TMR0
cão de guarda X
Cronômetro
1
8

8 a 1 MUX PS<2:0>
PSA 3

WDT
Ativar bit

O TMR0
(Figura 6-1)

0 1
MUX PSA

WDT
Tempo esgotado

Observação: T0SE, T0CS, PSA, PS0-PS2 são bits no registrador OPTION.

TABELA 14-9: RESUMO DOS REGISTROS DO TEMPORIZADOR WATCHDOG

Valor em
Valor ativado
Nome do endereço Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 todos os outros
POR Reset
Reinicializações

2007h CONFIG LVP BOREN MCLRE FOSC2 PWRTE WDTE FOSC1 FOSC0 uuuu uuuu uuuu uuuu

81h, 181h OPÇÃO RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111 1111 1111

Legenda: x = desconhecido, u = inalterado, - = não implementado lido como '0', q = valor depende da condição.
Nota: As células sombreadas não são usadas pelo Watchdog Timer.

14.8 Modo de Desligamento (Repouso) Para o menor consumo de corrente neste modo, todas as E/S
os pinos devem estar em VDD ou VSS sem
O modo Power-down é inserido executando um circuito puxando corrente do pino de E/S e do
Instrução de SONO.
comparadores, e VREF deve ser desabilitado. Pinos de E/S
Se habilitado, o Watchdog Timer será apagado, mas que são entradas de alta impedância devem ser puxadas para alto
continua funcionando, o bit PD no registrador de Status é ou baixa externamente para evitar correntes de comutação causadas por
apagado, o bit TO é definido e o driver do oscilador é entradas flutuantes. A entrada T0CKI também deve estar em VDD
desligado. As portas de E/S mantêm o status que tinham, ou VSS para menor consumo de corrente. o
antes de SLEEP ser executado (condução alta, baixa ou alta contribuição de on chip pull-ups no PORTB deve ser
impedância). considerado.

O pino MCLR deve estar em um nível lógico alto (VIHMC).

Nota: Deve-se notar que um Reset gerado


por um tempo limite WDT não conduz MCLR
pino baixo.

DS40044G-página 112 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
14.8.1 DESPERTAR DO SONO 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 evento de
O dispositivo pode acordar da suspensão por meio de um dos seguintes
interrupção, o bit de habilitação de interrupção correspondente deve ser
eventos:
definido (habilitado). O despertar é independente do estado do bit GIE. Se o
1. Entrada de reinicialização externa no pino MCLR 2. bit GIE estiver limpo (desabilitado), o dispositivo continua a execução na
Ativação do temporizador Watchdog (se o WDT estiver ativado) instrução após a instrução SLEEP. Se o bit GIE estiver setado (habilitado), o
dispositivo executa a instrução após a instrução SLEEP e então desvia para o
3. Interrupção do pino RB0/INT, mudança de porta RB ou qualquer
interrupção periférica que esteja ativa em Sleep. endereço de interrupção (0004h). Nos 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
O primeiro evento causará um reset do dispositivo. Os dois últimos eventos
SLEEP.
são considerados uma continuação da execução do programa. Os bits TO e
PD no registrador de Status podem ser usados para determinar a causa do
Reset do dispositivo.

O bit PD, que é definido na inicialização, é apagado quando a suspensão é


Observação: Se as interrupções globais estiverem desabilitadas (o GIE
invocada. O bit TO é apagado se a ativação do WDT ocorreu.
está desenergizado), mas qualquer fonte de interrupção tiver
seu bit de habilitação de interrupção e os bits de sinalização
de interrupção correspondentes definidos, o dispositivo não
entrará em suspensão. A instrução SLEEP é executada
como uma instrução NOP.

O WDT é apagado quando o dispositivo desperta da suspensão,


independentemente da fonte de ativação.

FIGURA 14-17: 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

CLKOUT(4) TOST(1,2)

pino INT

Sinalizador INTF

(INTCON<1>) Interromper latência

(Nota 2)
bit GIE
Processador em
(INTCON<7>)
Dorme

Fluxo de instruções

computador computador PC + 1 PC + 2 PC + 2 PC + 2 0004h(3) 0005h

Instrução
Buscado Inst(PC) = Dormir 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). Haverá aproximadamente 1 ÿs de atraso para o modo RC Oscillator.
3: GIE = 1 assumido. Neste caso, após a ativação, o processador salta para a rotina de interrupção. Se GIE = 0, a execução continuará
em linha.

4: CLKOUT não está disponível nestes modos de oscilador, mas é mostrado aqui para referência de tempo.

14.9 Proteção do Código 14.10 Locais de ID de usuário

Com o bit Code-Protect apagado (Code-Protect ativado), o conteúdo dos locais Quatro locais de memória (2000h-2003h) são designados como locais de ID
de memória do programa é lido como '0'. Consulte “Especificação de do usuário onde o usuário pode armazenar a soma de verificação ou outros
programação de memória EEPROM PIC16F627A/ 628A/ 648A” números de identificação de código. Esses locais não são acessíveis durante

a execução normal, mas são legíveis e graváveis durante a Programação/


(DS41196) para obter detalhes. Verificação.
Apenas os 4 bits menos significativos dos locais de ID do usuário são usados
Nota: Apenas uma função Bulk Erase pode definir os bits CP e CPD
para cálculos de soma de verificação, embora cada local tenha 14 bits.
desativando a proteção de código. Todos os dados EEPROM
e memória do programa Flash serão apagados para desligar
a proteção do código.

© 2009 Microchip Technology Inc. DS40044G-página 113


Machine Translated by Google

PIC16F627A/628A/648A
14.11 In-Circuit Serial Programming™ 14.12 Programação de Baixa Tensão
(ICSP™) O bit LVP da Palavra de Configuração, habilita a programação de
Os microcontroladores PIC16F627A/628A/648A podem ser baixa tensão. Este modo permite que o microcontrolador seja
programados em série enquanto estiverem no circuito de aplicação final. programado via ICSP utilizando apenas uma fonte de 5V. Este
Isso é feito simplesmente com duas linhas para clock e dados, e modo elimina a necessidade de colocar VIHH no pino MCLR. O
três outras linhas para alimentação, terra e tensão de programação. bit LVP é normalmente apagado para '1', o que permite a
Isso permite que os clientes fabriquem placas com dispositivos programação de baixa tensão. Neste modo, o pino RB4/PGM é
não programados e depois programem o microcontrolador antes dedicado à função de programação e deixa de ser um pino de E/S
de enviar o produto. Isso também permite que o firmware mais de uso geral. O dispositivo entrará no modo de programação
recente ou o firmware personalizado seja programado. quando um '1' for colocado no pino RB4/PGM. O modo de
programação de alta tensão ainda está disponível colocando VIHH
no pino MCLR.
O dispositivo é colocado no modo Program/Verify mantendo os
pinos RB6 e RB7 baixos enquanto eleva o pino MCLR (VPP) de
VIL para VIHH. Consulte “Especificação de programação de Nota 1: Enquanto estiver neste modo, o pino RB4 não pode
memória EEPROM PIC16F627A/ 628A/ 648A” (DS41196) para mais ser usado como um pino de E/S de uso geral.
obter detalhes. RB6 torna-se o relógio de programação e RB7
torna-se os dados de programação. Ambos RB6 e RB7 são
2: VDD deve ser 5,0V +10% durante as operações de
entradas Schmitt Trigger neste modo.
apagamento.

Se o modo de programação de baixa tensão não for usado, o bit


Após o Reset, para colocar o dispositivo no modo de Programação/
LVP deve ser programado para '0' para que RB4/PGM se torne
Verificação, o Contador de Programas (PC) fica no local 00h. Um
um pino de E/S digital. Para programar o dispositivo, VIHH deve
comando de 6 bits é então fornecido ao dispositivo. Dependendo
ser colocado no MCLR durante a programação.
do comando, 14 bits de dados do programa são então fornecidos
O bit LVP só pode ser programado quando a programação é
para ou do dispositivo, dependendo se o comando foi uma carga
inserida com VIHH no MCLR. O bit LVP não pode ser programado
ou uma leitura. Para detalhes completos da programação serial,
quando a programação é inserida com RB4/PGM.
consulte “Especificação de programação de memória EEPROM
PIC16F627A/ 628A/ 648A”
(DS41196). Deve-se notar que, uma vez que o bit LVP é programado para '0',
somente o modo de programação de alta tensão pode ser usado
Uma conexão típica de programação serial em circuito é mostrada
para programar o dispositivo.
na Figura 14-18.

FIGURA 14-18: IN-CIRCUITO TÍPICO


PROGRAMAÇÃO SÉRIE
CONEXÃO

Ao normal
Conexões
Externo
Conector PIC16F627A/628A/648A
Sinais

+5V VDD

0V VSS

VPP RA5/MCLR/VPP

CLK RB6/PGC

E/S de dados RB7/PGD

VDD

Ao normal
Conexões

DS40044G-página 114 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
14.13 Depurador em Circuito
Como a depuração no circuito requer a perda de clock, dados e
pinos MCLR, o desenvolvimento MPLAB® ICD 2 com um dispositivo
de 18 pinos não é prático. Um dispositivo PIC16F648A-ICD especial
de 28 pinos é usado com o MPLAB ICD 2 para fornecer pinos de
clock, dados e MCLR separados e libera todos os pinos normalmente
disponíveis para o usuário. A depuração de todas as três versões do
PIC16F627A/628A/648A é suportada pelo PIC16F648A-ICD.

Este dispositivo ICD especial é montado na parte superior de um


cabeçalho e seus sinais são roteados para o conector MPLAB ICD
2. Na parte inferior do cabeçalho há um soquete de 18 pinos que se
conecta ao destino do usuário por meio de um conector stand-off de
18 pinos.

Quando o pino ICD no dispositivo PIC16F648A-ICD é mantido baixo,


a funcionalidade In-Circuit Debugger é habilitada. Esta função
permite funções de depuração simples quando usada com MPLAB
ICD 2. Quando o microcontrolador tem esta função habilitada, alguns
dos recursos não estão disponíveis para uso geral. A Tabela 14-19
mostra quais recursos são consumidos pelo depurador em segundo
plano.

TABELA 14-19: RECURSOS DO DEBUGGER

Pinos de E/S ICDCLK, ICDDATA

Pilha 1 nível

Memória do programa O endereço 0h deve ser NOP


300h-3FEh

O dispositivo PIC16F648A-ICD com cabeçalho é fornecido como um


conjunto. Consulte o número de peça do microchip AC162053.

© 2009 Microchip Technology Inc. DS40044G-página 115


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 116 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
15.0 RESUMO DO CONJUNTO DE INSTRUÇÕES O conjunto de instruções é altamente ortogonal e agrupado
em três categorias básicas:
Cada instrução PIC16F627A/628A/648A é uma instrução de 14 bits
• Operações orientadas a bytes
palavra dividida em um OPCODE que especifica o
tipo de instrução e um ou mais operandos que • Operações orientadas a bits

especificar ainda mais a operação da instrução. o • Operações literais e de controle


Resumo do conjunto de instruções PIC16F627A/628A/648A em Todas as instruções são executadas em um único
A Tabela 15-2 lista orientado a byte, orientado a bit e ciclo de instrução, a menos que um teste condicional seja verdadeiro ou o
operações literais e de controle . A Tabela 15-1 mostra o contador de programa é alterado como resultado de uma
descrições de campo opcode. instrução. Neste caso, a execução leva dois
Para instruções orientadas a byte , 'f' representa um arquivo ciclos de instrução com o segundo ciclo executado como
registrador designador e 'd' representa um destino NOP. Um ciclo de instrução consiste em quatro osciladores
designador. O designador de registro de arquivo especifica quais períodos. Assim, para uma frequência de oscilador de 4 MHz, o
registrador de arquivo deve ser usado pela instrução. o tempo normal de execução da instrução é de 1 ÿs. Se um
teste condicional é verdadeiro ou o contador de programa é
O designador de destino especifica onde o resultado da
alterada como resultado de uma instrução, a instrução
a operação deve ser colocada. Se 'd' for zero, o resultado é
o tempo de execução é de 2 µs.
colocado no registrador W. Se 'd' for um, o resultado é colocado
no registrador de arquivo especificado na instrução. A Tabela 15-2 lista as instruções reconhecidas pelo
Montagem MPASM™.
Para instruções orientadas a bits , 'b' representa um campo de bits
designador que seleciona o número do bit afetado A Figura 15-1 mostra os três formatos gerais que o
pela operação, enquanto 'f' representa o número do instruções podem ter.
arquivo no qual o bit está localizado.
Nota 1: Qualquer opcode não utilizado é reservado. Uso de
Para operações literais e de controle , 'k' representa um qualquer opcode reservado pode causar operação
constante de oito ou onze bits ou valor literal. inesperada.

2: Para manter a compatibilidade ascendente com


15.1 Operações de leitura-modificação-gravação
futuros produtos PIC MCU, não use o
Instruções OPTION e TRIS.
Qualquer instrução que especifique um registro de arquivo como parte de
a instrução executa um Read-Modify-Write (RMW) Todos os exemplos usam o seguinte formato para representar um
Operação. O registro é lido, os dados são modificados, número hexadecimal:
e o resultado é armazenado de acordo com a instrução ou com o 0xhh
designador de destino 'd'. Uma operação de leitura
é executado em um registrador mesmo se a instrução escreve onde 'h' significa um dígito hexadecimal.

a esse registro.
FIGURA 15-1: FORMATO GERAL PARA
Por exemplo, uma instrução “clrf PORTB” lerá INSTRUÇÕES
PORTB, limpe todos os bits de dados e escreva o resultado
de volta para PORTB. Este exemplo teria o resultado não intencional Operações de registro de arquivo orientadas a byte
13 8 76 0
de que a condição que define o sinalizador RBIF
CÓDIGO DE OPERAÇÃO d f (arquivo #)
seria limpo para pinos configurados como entradas e
usando o recurso de interrupção na mudança do PORTB. d = 0 para destino W
d = 1 para destino f
TABELA 15-1: CAMPO OPCODE f = endereço de registro de arquivo de 7 bits

DESCRIÇÕES
Operações de registro de arquivo orientadas a bits
13 10 9 76 0
Campo Descrição
CÓDIGO DE OPERAÇÃO
b (BIT #) f (arquivo #)
f Endereço do arquivo de registro (0x00 a 0x7F)
Dentro
Registro de trabalho (acumulador) b = endereço de bits de 3 bits

b Endereço de bit dentro de um registro de arquivo de 8 bits f = endereço de registro de arquivo de 7 bits

k Campo literal, dados constantes ou rótulo


Operações literais e de controle
x Não importa a localização (= 0 ou 1) Em geral
O montador irá gerar código com x = 0. É a forma de uso recomendada 13 87 0
para compatibilidade com todas as ferramentas de software Microchip.
CÓDIGO DE OPERAÇÃO
k (literal)

d k = valor imediato de 8 bits


Seleção de destino; d = 0: armazena o resultado em W,
d = 1: armazena o resultado no registro do arquivo f.
Apenas instruções CALL e GOTO
O padrão é d = 1
13 11 10 0

PARA Bit de tempo limite CÓDIGO DE OPERAÇÃO


k (literal)
PD Bit de desligamento k = valor imediato de 11 bits

© 2009 Microchip Technology Inc. DS40044G-página 117


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 15-2: CONJUNTO DE INSTRUÇÕES PIC16F627A/628A/648A

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 00 0111 dfff ffff C,DC,Z 1, 2


EWF df, E W com f 00 0101 dfff ffff ffffffff A PARTIR DE
1, 2
CLRF df Limpar f 00 0001 A PARTIR DE 2
CLRW — Limpar W 00 0001 0xxx xxxx A PARTIR DE

COMF f, Complemento f 00 1001 dff ffff A PARTIR DE


1, 2
DECF df, Diminuir f 00 0011 dfff dff ffff A PARTIR DE
1, 2
DECFSZ df, Decrementa f, Pule se 0 111 00 1011 ffff 1, 2, 3
INCF df, Incrementar f 11 00 1010 dfff dff ffffffff A PARTIR DE
1, 2
INCFSZ df, Incrementar f, pular se 0 1 1(2) 00 1111 1, 2, 3
IORWF df, Inclusivo OR W com f 1 00 0100 dfff dff ffffffff A PARTIR DE
1, 2
MOVF df, Mover f 1(2) 00 1000 A PARTIR DE
1, 2
MOVWF df Mover W para f 111 00 0000 ffff ffff
NOP — 00 0000 0xx0 0000
Nenhuma operação 1

RLF f, Girar para a esquerda f através de Carregar 1 00 1101 dfff dff ffffffff C 1, 2
RRF df, Girar para a direita f através do transporte 1 00 1100 C 1, 2
SUBWF df, Subtraia W de f 1 00 0010 dfff dff ffffffff C,DC,Z 1, 2
SWAPF df, Trocar petiscos em f 1 00 1110 1, 2
XORWF df, d Exclusivo OU W com f 1 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 bffffffff ffffffff 1, 2


BSF bf, Conjunto de bits f 11 01 01bb 1, 2
BTFSC bf, Teste de Bit f, Ignorar se Limpar
1(2) 01 10bb bffffffff ffffffff 33
BTFSS bf, b Teste de Bit f, Ignorar se Definido
1(2) 01 11bb

OPERAÇÕES LITERAIS E DE CONTROLE

ADDW Adicione literal e W 11 111x kkkk kkkk C,DC,Z


ANDLW E literal com W 11 1001 kkkk kkkk A PARTIR DE

LIGAR kkk Chamar sub-rotina 1 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 1kkk kkkk kkkk
IORLW kk Literal OR inclusivo com W 121 11 1000 kkkk kkkk A PARTIR DE

MOVLW k Mover literal para W 11 00xx kkkk kkkk


RETFIE — 00 0000 0000 1001
Retorno da interrupção 1

RETIRAR k Retorno com literal em W 2 11 01xx kkkk kkkk


RETORNA — Retorno da Sub-rotina 2 00 0000 0000 1000
DORME — 2 00 0000 0110 0011
Entre no modo de espera PARA, PD
SUBLW k Subtrair W do literal 11 11 110x kkkk kkkk C,DC,Z
XORLW k 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 dele 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 NOP.

DS40044G-página 118 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
15.2 Descrições das Instruções
ADDW Adicione Literal e W ANDLW E Literal com W

Sintaxe: [ etiqueta ] ADDLW k Sintaxe: [ label ] ANDLW k


Operandos: 0 ÿ k ÿ 255 0 ÿ k ÿ 255
Operandos:
Operação: (W) + k ÿ (W) Operação: (VARINHA. (k) ÿ (W)
Status Afetado: C, DC, Z Status Afetado: Z
Codificação: 11 111x kkkk kkkk
Codificação: 11 1001 kkkk kkkk
Descrição: O conteúdo do registrador W é
Descrição: O conteúdo do registrador W é
adicionado ao literal de oito bits 'k'
AND'ed com o literal de oito bits
e o resultado é colocado no
'k'. O resultado é colocado no
registrador W.
registrador W.
Palavras: 1
Palavras: 1
Ciclos: 1
Ciclos: 1
Exemplo ADDLW 0x15
Antes da Instrução Exemplo ANDLW 0x5F

W = 0x10 Antes da Instrução


Após a Instrução W = 0xA3
W = 0x25 Após a Instrução
W = 0x03

JURAMENTO Adicione W e f EWF E W com f

Sintaxe: [ label ] ADDWF f,d Sintaxe: [ label ] ANDWF f,d

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


d ÿ [0,1] d ÿ [0,1]

Operação: (W) + (f) ÿ (destino) Operação: (VARINHA. (f) ÿ (destino)


Status Afetado: C, DC, Z Status Afetado: Z

Codificação: 00 0111 dff ffff Codificação: 00 0101 dff ffff

Descrição: Adicione o conteúdo do Descrição: E o registrador W com registrador 'f'. Se


registrador W com o registrador 'f'. Se 'd' for '0', o resultado é armazenado no
'd' for '0', o resultado é armazenado no registrador W. Se 'd' for '1', o resultado
registrador W. Se 'd' for '1', o resultado é armazenado de volta no registrador 'f'.
é armazenado de volta no registrador 'f'.
Palavras: 1 Palavras: 1

Ciclos: 1 Ciclos: 1

Exemplo ADDWF REG1, 0 Exemplo ANDWFREG1, 1

Antes da Instrução Antes da Instrução


W = 0x17 W = 0x17
REG1 = 0xC2 REG1 = 0xC2
Após a Instrução Após a Instrução
W = 0xD9 W = 0x17
REG1 = 0xC2 REG1 = 0x02
Z=0
C=0
DC = 0

© 2009 Microchip Technology Inc. DS40044G-página 119


Machine Translated by Google

PIC16F627A/628A/648A

BCF Bit Limpar f BTFSC Teste de Bit f, Ignorar se Limpar

Sintaxe: [ etiqueta ] BCF f,b Sintaxe: [ etiqueta ] BTFSC f,b

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


0ÿbÿ7 0ÿbÿ7

Operação: 0 ÿ (f<b>) Operação: pule se (f<b>) = 0


Status Afetado: Nenhum Status Afetado: Nenhum

Codificação: 01 00bb melhor amigo ffff Codificação: 01 10bb bffffffff

Descrição: O bit 'b' no registrador 'f' é apagado. Descrição: Se o bit 'b' no registrador 'f' for '0', a próxima
Palavras: 1 instrução será ignorada.
Se o bit 'b' for '0', então a próxima
Ciclos: 1
instrução buscada durante a execução
Exemplo BCF REG1, 7 da instrução atual é descartada e um
NOP é executado, tornando-a uma instrução
Antes da Instrução
REG1 = 0xC7 de dois ciclos.

Após a Instrução
REG1 = 0x47 Palavras: 1

Ciclos: 1(2)

Exemplo AQUI BTFSC REG1


BSF Conjunto de bits f
FALSO VÁ PARA PROCESS_CODE
VERDADE •
Sintaxe: [ etiqueta ] BSF f,b •

Operandos: 0 ÿ f ÿ 127 •
0ÿbÿ7
Antes da Instrução
Operação: 1 ÿ (f<b>) PC = endereço AQUI
Após a Instrução
Status Afetado: Nenhum
se REG<1> = 0,
Codificação: 01 01bb melhor amiga ffff
PC = endereço VERDADEIRO

Descrição: Bit 'b' no registrador 'f' é definido. se REG<1> =1,


PC = endereço FALSO
Palavras: 1

Ciclos: 1

Exemplo BSF REG1, 7

Antes da Instrução
REG1 = 0x0A
Após a Instrução
REG1 = 0x8A

DS40044G-página 120 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

BTFSS Teste de Bit f, Ignorar se Definido LIGAR Chamar sub-rotina

Sintaxe: [ label ] BTFSS f,b Sintaxe: [ etiqueta ] LIGUE k

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ k ÿ 2047


0ÿb<7
Operação: (PC)+ 1ÿ TOS,
Operação: pule se (f<b>) = 1 k ÿ PC<10:0>,
Status Afetado: Nenhum (PCLATH<4:3>) ÿ PC<12:11>
Status Afetado: Nenhum
Codificação: 01 11bb bffff ffff

Codificação: 10 0kkkkkkkkkkkk
Descrição: Se o bit 'b' no registrador 'f' for '1', a
próxima instrução será ignorada. Descrição: Chamar sub-rotina. Primeiro, o
Se o bit 'b' for '1', então a próxima endereço de retorno (PC + 1) é colocado
instrução buscada durante a execução na pilha. O endereço imediato de onze
da instrução atual é descartada e um bits é carregado nos bits do PC <10:0>.
NOP é executado, tornando-a uma Os bits superiores do PC são carregados
instrução de dois ciclos. do PCLATH. CALL é uma instrução de
dois ciclos.
Palavras: 1
Palavras: 1
Ciclos: 1(2)
Ciclos: 2
Exemplo AQUI BTFSS REG1
FALSO VÁ PARA PROCESS_CODE Exemplo AQUI LIGUE PARA LÁ
VERDADE •
Antes da Instrução

• PC = Endereço AQUI
Após a Instrução
Antes da Instrução
PC = Endereço LÁ
PC = endereço AQUI
TOS = Endereço AQUI+1
Após a Instrução
se BANDEIRA<1> = 0,
PC = endereço FALSO
CLRF Limpar f
se BANDEIRA<1> = 1,
PC = endereço VERDADEIRO
Sintaxe: [ label ] CLRF f

Operandos: 0 ÿ f ÿ 127

Operação: 00h ÿ (f)


1ÿZ

Status Afetado: Z

Codificação: 00 0001 1ff ffff

Descrição: O conteúdo do registrador 'f' é apagado


e o bit Z é definido.

Palavras: 1

Ciclos: 1

Exemplo CLRF REG1

Antes da Instrução
REG1 = 0x5A
Após a Instrução
REG1 = 0x00
A PARTIR DE =1

© 2009 Microchip Technology Inc. DS40044G-página 121


Machine Translated by Google

PIC16F627A/628A/648A

CLRW Limpar W COMF Complemento f

Sintaxe: [ rótulo ] CLRW Sintaxe: [ etiqueta ] COMF f,d

Operandos: Nenhum Operandos: 0 ÿ f ÿ 127


d ÿ [0,1]
Operação: 00h ÿ (W)
1ÿZ Operação: (f) ÿ (destino)
Status Afetado: Z Status Afetado: Z

Codificação: 00 0001 0000 0011 Codificação: 00 1001 dff ffff

Descrição: O registrador W é apagado. O bit zero (Z) está Descrição: O conteúdo do registrador 'f' é
definido. complementado. Se 'd' for '0', o
Palavras: 1 resultado será armazenado em W. Se
'd' for '1', o resultado será armazenado
Ciclos: 1
de volta no registrador 'f'.
Exemplo CLRW
Palavras: 1
Antes da Instrução 1
Ciclos:
W = 0x5A
Exemplo COMF REG1, 0
Após a Instrução
W = 0x00 Antes da Instrução
Z=1 REG1 = 0x13
Após a Instrução
REG1 = 0x13
W = 0xEC

CLRWDT Limpar temporizador do watchdog DECF Diminuir f

Sintaxe: [ rótulo ] CLRWDT Sintaxe: [ etiqueta ] DECF f,d


Operandos: Nenhum
Operandos: 0 ÿ f ÿ 127
Operação: 00h ÿ WDT d ÿ [0,1]
0 ÿ pré-escalador WDT, Operação: (f) - 1 ÿ (destino)
1 ÿ PARA
Status Afetado: Z
1 ÿ DP
Codificação: 00 0011 dff ffff
Status Afetado: TO, PD
00 0000 0110 0100 Descrição: Decrementar o registro 'f'. Se 'd' for
Codificação:
'0'. o resultado é armazenado no
Descrição: A instrução CLRWDT reinicializa o
registrador W. Se 'd' for '1', o resultado
Watchdog Timer. Ele também redefine é armazenado de volta no registrador 'f'.
o prescaler do WDT. Os bits de status
Palavras: 1
TO e PD são definidos.
Ciclos: 1
Palavras: 1
Exemplo DECF CNT, 1
Ciclos: 1

CLRWDT
Antes da Instrução
Exemplo
CNT = 0x01
Antes da Instrução Z=0
contador WDT = ? Após a Instrução
Após a Instrução CNT = 0x00
contador WDT = 0x00 Z=1
Pré-escalador WDT = 0
PARA = 1
PD =1

DS40044G-página 122 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

DECFSZ Decrementa f, Pule se 0 VÁ PARA Ramificação Incondicional

Sintaxe: [ label ] DECFSZ f,d


Sintaxe: [ label ] GOTO k
Operandos: 0 ÿ f ÿ 127
Operandos: 0 ÿ k ÿ 2047
d ÿ [0,1]
Operação: k ÿ PC<10:0>
Operação: (f) - 1 ÿ (destino); pule se resultado = 0 PCLATH<4:3> ÿ PC<12:11>

Status Afetado: Nenhum


Status Afetado: Nenhum
Codificação: 10 1 kkkkkkkkkkkk
Codificação: 00 1011 dff ffff
Descrição: GOTO é uma ramificação
Descrição: O conteúdo do registrador 'f' é incondicional. O valor imediato de onze
decrementado. Se 'd' for '0', o resultado bits é carregado em bits de PC <10:0>.
é colocado no registrador W.
Os bits superiores do PC são carregados
Se 'd' for '1', o resultado é colocado de PCLATH<4:3>.
de volta no registrador 'f'.
GOTO é uma instrução de dois ciclos.
Se o resultado for '0', a próxima
Palavras: 1
instrução, que já foi buscada, é
descartada. Um NOP é executado em Ciclos: 2
vez disso, tornando-o uma instrução de
Exemplo VÁ LÁ
dois ciclos.
Após a Instrução
Palavras: 1
PC = Endereço LÁ

Ciclos: 1(2)

Exemplo AQUI DECFSZ REG1, 1


VÁ PARA CICLO
PROSSEGUIR •

Antes da Instrução
computador = endereço AQUI
Após a Instrução
REG1 = REG1 - 1
se REG1 = 0,
PC = endereço CONTINUAR
se REG1 ÿ 0,
PC = endereço AQUI+1

© 2009 Microchip Technology Inc. DS40044G-página 123


Machine Translated by Google

PIC16F627A/628A/648A

INCF Incrementar f INCFSZ Incrementar f, pular se 0

Sintaxe: [ etiqueta ] INCF 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) Operação: (f) + 1 ÿ (destino), pule se resultado = 0


Status Afetado: Z Status Afetado: Nenhum

Codificação: 00 1010 dff ffff Codificação: 00 1111 dff ffff

Descrição: O conteúdo do registrador 'f' é Descrição: O conteúdo do registrador 'f' é


incrementado. Se 'd' for '0', o resultado incrementado. Se 'd' for '0', o resultado
é colocado no registrador W. é colocado no registrador W.
Se 'd' for '1', o resultado é colocado Se 'd' for '1', o resultado é colocado
de volta no registrador 'f'. de volta no registrador 'f'.
Palavras: 1 Se o resultado for '0', a próxima
instrução, que já foi buscada, é
Ciclos: 1
descartada. Um NOP é executado em
Exemplo INCF REG1, 1 vez disso, tornando-o uma instrução

Antes da Instrução de dois ciclos.

REG1 = 0xFF Palavras: 1


Z=0
Ciclos: 1(2)
Após a Instrução
Exemplo AQUI INCFSZ REG1, 1
REG1 = 0x00
VÁ PARA CICLO
A PARTIR DE =1
PROSSEGUIR •

Antes da Instrução
PC = endereço AQUI
Após a Instrução
REG1 = REG1 + 1
se CNT = 0,
PC = endereço CONTINUAR
se REG1ÿ 0,
PC = endereço AQUI +1

DS40044G-página 124 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

IORLW Inclusivo OU Literal com W MOVLW Mover Literal para W

Sintaxe: [ label ] IORLW k Sintaxe: [ etiqueta ] MOVLW k

Operandos: 0 ÿ k ÿ 255 Operandos: 0 ÿ k ÿ 255

Operação: (W) .OR. k ÿ (W) Operação: k ÿ (W)


Status Afetado: Z Status Afetado: Nenhum

Codificação: 11 1000 kkkk kkkk Codificação: 11 00xx kkkk kkkk

Descrição: O conteúdo do registrador W é OR'ed Descrição: O literal de oito bits 'k' é carregado no
com o literal de oito bits 'k'. O resultado registrador W. O “não se importa” será
é colocado no registrador W. montado como '0's.

Palavras: 1
Palavras: 1
Ciclos: 1
Ciclos: 1
Exemplo MOVLW 0x5A
Exemplo IORLW 0x35
Após a Instrução
Antes da Instrução W = 0x5A
W = 0x9A
Após a Instrução
W = 0xBF
Z=0

IORWF Inclusivo OR W com f MOVF Mover f

Sintaxe: [ label ] IORWF f,d Sintaxe: [ rótulo ] MOVF f,d


Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127
d ÿ [0,1] d ÿ [0,1]
Operação: (W) .OR. (f) ÿ (destino) Operação: (f) ÿ (destino)
Status Afetado: Z Status Afetado: Z

Codificação: 00 0100 dff ffff Codificação: 00 1000 dff ffff

Descrição: Inclusivo OR o registrador W com Descrição: O conteúdo do registrador 'f' é


registrador 'f'. Se 'd' for '0', o resultado movido para um destino dependente
é colocado no registrador W. Se 'd' for do status de 'd'. Se d = 0, o destino
'1', o resultado é colocado de volta no é o registrador W. Se d = 1, o destino
registrador 'f'. é o próprio registro de arquivo f. d = 1 é
Palavras: 1 útil para testar um registro de arquivo,
pois o sinalizador de status Z é afetado.
Ciclos: 1

Exemplo IORWF REG1, 0 Palavras: 1


Antes da Instrução
Ciclos: 1
REG1 = 0x13
W = 0x91 Exemplo MOVF REG1, 0
Após a Instrução Após a Instrução
REG1 = 0x13 W= valor no registrador REG1
W = 0x93 Z=1
A PARTIR DE =1

© 2009 Microchip Technology Inc. DS40044G-página 125


Machine Translated by Google

PIC16F627A/628A/648A

MOVWF Mover W para f OPÇÃO Registro de Opção de Carregamento

Sintaxe: [ label ] MOVWF f Sintaxe: [ etiqueta ] OPÇÃO


0 ÿ f ÿ 127 Operandos: Nenhum
Operandos:

Operação: (W) ÿ (f) Operação: (W) ÿ OPÇÃO


Status Afetado: Nenhum
Status Afetado: Nenhum
Codificação: 00 0000 0110 0010
Codificação: 00 0000 1ff ffff
Descrição: O conteúdo do registrador W é carregado
Descrição: Mova os dados do registrador W para
no registrador OPTION.
o registrador 'f'.
Esta instrução é suportada para
Palavras: 1 compatibilidade de código com produtos
Ciclos: 1 PIC16C5X. Como OPTION é um
registrador legível/gravável, o usuário
Exemplo MOVWF REG1
pode endereçá-lo diretamente. Usando
Antes da Instrução apenas instruções de registro, como
REG1 = 0xFF MOVWF.
W = 0x4F Palavras: 1
Após a Instrução
Ciclos: 1
REG1 = 0x4F
W = 0x4F Exemplo
Para manter a compatibilidade
ascendente com futuros produtos
PIC® MCU, não use esta instrução.

NOP RETFIE Retorno da interrupção


Nenhuma operação

Sintaxe: [ etiqueta ] NOP Sintaxe: [ etiqueta ] RETFIE

Operandos: Nenhum
Operandos: Nenhum

Operação: Nenhuma operação


Operação: TOS ÿ PC,
1 ÿ GIE
Status Afetado: Nenhum
Status Afetado: Nenhum
Codificação: 00 0000 0xx0 0000
Codificação: 00 0000 0000 1001
Descrição: Nenhuma operação.
Descrição: Retorno da interrupção. A pilha é
Palavras: 1
POPed e o Top-of-Stack (TOS) é
Ciclos: 1 carregado no PC. As interrupções são
NOP
habilitadas definindo o bit de habilitação
Exemplo
de interrupção global, GIE (INTCON<7>).
Esta é uma instrução de dois ciclos.

Palavras: 1

Ciclos: 2

Exemplo RETFIE

Após interrupção
PC = TOS
GI = 1

DS40044G-página 126 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

RETIRAR Retorno com Literal em W RLF Girar para a esquerda f através de Carregar

Sintaxe: [ etiqueta ] RETLW k Sintaxe: [ etiqueta ] RLF f,d

Operandos: 0 ÿ k ÿ 255 Operandos: 0 ÿ f ÿ 127


d ÿ [0,1]
Operação: k ÿ (W);
TOS ÿ PC Operação: Veja a descrição abaixo
Status Afetado: Nenhum Status Afetado: C

Codificação: 11 01xx kkkk kkkk Codificação: 00 1101 dffffffff

Descrição: O registrador W é carregado com o Descrição: O conteúdo do registrador 'f' é girado


literal de oito bits 'k'. O contador de um bit para a esquerda através do Carry
programa é carregado do topo da pilha Flag. Se 'd' for '0', o resultado é colocado
(o endereço de retorno). Esta é uma no registrador W.
instrução de dois ciclos. Se 'd' for '1', o resultado é armazenado
de volta no registrador 'f'.

Palavras: 1 C REGISTRO F

Ciclos: 2
Palavras: 1
Exemplo CALL TABLE;W contém a tabela
;valor de compensação Ciclos: 1
• ;W agora tem valor de tabela
Exemplo RLF REG1, 0

• Antes da Instrução
TABELA
ADDWF PC;W = deslocamento REG1=1110 0110
RETLW k1;Iniciar tabela C=0
RETLW k2; Após a Instrução
• REG1=1110 0110
• W = 1100 1100
• C=1
RETLW kn; Fim da mesa

Antes da Instrução
W = 0x07
Após a Instrução
W = valor de k8

RETORNA Retorno da Sub-rotina

Sintaxe: [ etiqueta ] VOLTAR

Operandos: Nenhum

Operação: TOS ÿ PC

Status Afetado: Nenhum

Codificação: 00 0000 0000 1000

Descrição: Retorno da sub-rotina. A pilha é


POPed e o topo da pilha (TOS) é
carregado no contador de programa.
Esta é uma instrução de dois ciclos.

Palavras: 1

Ciclos: 2

Exemplo RETORNA

Após interrupção
PC = TOS

© 2009 Microchip Technology Inc. DS40044G-página 127


Machine Translated by Google

PIC16F627A/628A/648A

RRF Girar para a direita f através do transporte SUBLW Subtraia W de Literal

Sintaxe: [ etiqueta ] RRF f,d Sintaxe: [ etiqueta ] SUBLW k

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ k ÿ 255


d ÿ [0,1]
Operação: k - (W) ÿ (W)
Operação: Veja a descrição abaixo Status C, DC, Z
Status Afetado: C Afetado:

Codificação: 00 1100 dff ffff Codificação: 11 110x kkkk kkkk

Descrição: O conteúdo do registrador 'f' é girado Descrição: O registrador W é subtraído (método do


um bit para a direita através do Carry complemento de 2) do literal de oito bits 'k'.
Flag. Se 'd' for '0', o resultado é O resultado é colocado no registrador W.
colocado no registrador W. Se 'd' for '1',
o resultado é colocado de volta no Palavras: 1
registrador 'f'.
Ciclos: 1
C REGISTRO F
Exemplo 1: SUBLW 0x02

Palavras: 1 Antes da Instrução

Ciclos: 1 W=1
C =?
Exemplo RRF REG1, 0
Após a Instrução
Antes da Instrução
REG1 = 1110 0110 W=1
C=0 C = 1; resultado é positivo
Após a Instrução Antes da Instrução
Exemplo 2:
REG1 = 1110 0110
W=2
W = 0111 0011
C=?
C=0
Após a Instrução

W=0
DORME C = 1; resultado é zero

Sintaxe: [ etiqueta ] DORMIR Exemplo 3: Antes da Instrução

Operandos: Nenhum W=3


C=?
Operação: 00h ÿ WDT,
0 ÿ pré-escalador WDT, Após a Instrução
1 ÿ PARA, W = 0xFF
0 ÿ DP
C = 0; resultado é negativo
Status Afetado: PARA, PD

Codificação: 00 0000 0110 0011

Descrição: O bit de status de desligamento, PD


é limpo. Bit de status de tempo
limite, TO é definido. Watchdog
Timer e seu prescaler são apagados.
O processador é colocado no modo
Sleep com o oscilador
parou. Consulte a Seção 14.8
“Modo de desligamento (suspensão)”
para mais detalhes.

Palavras: 1

Ciclos: 1

Exemplo: DORME

DS40044G-página 128 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

SUBWF Subtraia W de f SWAPF Trocar Nibbles em f

Sintaxe: [ label ] SUBWF f,d Sintaxe: [ etiqueta ] SWAPF f,d

Operandos: 0 ÿ f ÿ 127 Operandos: 0 ÿ f ÿ 127


d ÿ [0,1] d ÿ [0,1]

Operação: (f) - (W) ÿ (destino) Operação: (f<3:0>) ÿ (destino<7:4>),


Status C, DC, Z (f<7:4>) ÿ (destino<3:0>)
Afetado: Status Afetado: Nenhum
00 0010 dfff ffff 00 1110 dffffffff
Codificação: Codificação:

Descrição: Subtrair (método do complemento de 2) Descrição: Os nibbles superior e inferior do


Registro W do registro '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.
W. Se 'd' for '1', o resultado é armazenado Se 'd' for '1', o resultado é colocado no
de volta no registrador 'f'. registrador 'f'.
Palavras: 1 Palavras: 1

Ciclos: 1 Ciclos: 1
SUBWF REG1, 1 SWAPF REG1, 0
Exemplo 1: Exemplo
Antes da Instrução Antes da Instrução

REG1 = 3 REG1 = 0xA5


W=2
Após a Instrução
C =?
REG1 = 0xA5
Após a Instrução
W = 0x5A
REG1 = 1
W=2
C = 1; resultado é positivo TRIS Carregar registro TRIS
DC = 1
Sintaxe: [ etiqueta ] TRIS f
=0
A PARTIR DE

Operandos: 5ÿfÿ7
Exemplo 2: Antes da Instrução
Operação: (W) ÿ registro TRIS f;
REG1 = 2
Status Afetado: Nenhum
W=2
00 0000 0110 0ff
C =? Codificação:

Após a Instrução Descrição: A instrução é suportada para


compatibilidade de código com os
REG1 = 0
produtos PIC16C5X. Como os
W=2
registradores TRIS são legíveis e
C = 1; resultado é zero graváveis, o usuário pode endereçá-los
= DC = 1
A PARTIR DE

diretamente.
Exemplo 3: Antes da Instrução Palavras: 1
REG1 = 1 Ciclos: 1
W=2
Exemplo
C =?
Para manter a compatibilidade
Após a Instrução
ascendente com futuros produtos
REG1 = 0xFF PIC® MCU, não use esta instrução.
W=2
C = 0; resultado é negativo
= DC = 0
A PARTIR DE

© 2009 Microchip Technology Inc. DS40044G-página 129


Machine Translated by Google

PIC16F627A/628A/648A

XORLW Exclusivo OU Literal com W XORWF Exclusivo OU W com f

Sintaxe: [ label ] XORLW k Sintaxe: [ label ] XORWF f,d

Operandos: 0 ÿ k ÿ 255 Operandos: 0 ÿ f ÿ 127


d ÿ [0,1]
Operação: (W) .XOR. k ÿ (W)
Status Afetado: Z Operação: (W) .XOR. (f) ÿ (destino)

11 1010 kkkk kkkk


Status Afetado: Z
Codificação:
Codificação: 00 0110 dff ffff
Descrição: O conteúdo do registrador W é
submetido a um XOR com o literal de Descrição: OR exclusivo o conteúdo do registrador
oito bits 'k'. O resultado é colocado no W com o registrador 'f'. Se 'd' for '0', o
registrador W. resultado é armazenado no registrador
Palavras: 1 W. Se 'd' for '1', o resultado é
armazenado de volta no registrador 'f'.
Ciclos: 1
Palavras: 1
Exemplo: XORLW 0xAF
Ciclos: 1
Antes da Instrução
Exemplo XORWF REG1, 1
W = 0xB5
Antes da Instrução
Após a Instrução
REG1 = 0xAF
W = 0x1A W = 0xB5

Após a Instrução

REG1 = 0x1A
W = 0xB5

DS40044G-página 130 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
16.0 SUPORTE AO DESENVOLVIMENTO 16.1 Software do Ambiente de
Desenvolvimento Integrado MPLAB
Os microcontroladores PIC® e os controladores de sinal digital dsPIC®
são suportados com uma gama completa de ferramentas de O software MPLAB IDE traz uma facilidade de desenvolvimento de
desenvolvimento de software e hardware: software nunca vista no mercado de microcontroladores de 8/16/32 bits.
O MPLAB IDE é um aplicativo baseado no sistema operacional Windows®
• Ambiente de desenvolvimento integrado
- Software MPLAB® IDE • que contém:

Compiladores/Assemblers/Linkers • Uma única interface gráfica para todas as ferramentas de depuração


- Simulador
- Compilador MPLAB C para vários dispositivos
Famílias - Programador (vendido separadamente)
- HI-TECH C para várias famílias de dispositivos - Emulador In-Circuit (vendido separadamente)
- Montador MPASMTM - In-Circuit Debugger (vendido separadamente) • Um

- Ligador de Objetos MPLINKTM/ editor completo com contexto codificado por cores

Bibliotecário de Objetos MPLIBTM • Um gerente de projeto múltiplo •


- Montador/Linker/Bibliotecário MPLAB para Janelas de dados personalizáveis com edição direta de
Várias famílias de dispositivos conteúdo
• Simuladores • Depuração de código-fonte de alto nível •
- Simulador de software MPLAB SIM Inspeção do mouse sobre variáveis • Arraste e
• Emuladores solte variáveis da fonte para as janelas de observação
- Emulador em circuito MPLAB REAL ICE™

• Depuradores em circuito • Ampla ajuda on-line • Integração


- CDI MPLAB 3 de ferramentas selecionadas de terceiros, como

- PICkit™ 3 Debug Express • Compiladores IAR C

Programadores de dispositivos O MPLAB IDE permite:

- Programador PICkit™ 2 • Edite seus arquivos de origem (seja C ou assembly) • Compile


- Programador de dispositivos MPLAB PM3 ou monte com um toque e baixe para ferramentas de emulador e
• Placas de Demonstração/Desenvolvimento de Baixo Custo, simulador (atualiza automaticamente todas as informações do
Kits de avaliação e kits iniciais projeto)
• Depure usando:
- Arquivos de origem (C ou assembly)
- Mixed C e montagem
- Código da máquina

O MPLAB IDE suporta várias ferramentas de depuração em um único


paradigma de desenvolvimento, desde simuladores econômicos, passando
por depuradores in-circuit de baixo custo, até emuladores completos. Isso
elimina a curva de aprendizado ao atualizar para ferramentas com maior
flexibilidade e potência.

© 2009 Microchip Technology Inc. DS40044G-página 131


Machine Translated by Google

PIC16F627A/628A/648A
16.2 Compiladores MPLAB C para várias famílias 16.5 Vinculador de Objetos MPLINK/
de dispositivos Bibliotecário de Objetos MPLIB
Os sistemas de desenvolvimento de código MPLAB C Compiler são O MPLINK Object Linker combina objetos relocáveis criados pelo MPASM
compiladores ANSI C completos para as famílias de microcontroladores Assembler e pelo MPLAB C18 C Compiler. Ele pode vincular objetos
PIC18, PIC24 e PIC32 da Microchip e as famílias dsPIC30 e dsPIC33 de relocáveis de bibliotecas pré-compiladas, usando diretivas de um script
controladores de sinal digital. Esses compiladores fornecem recursos de vinculador.
integração poderosos, otimização de código superior e facilidade de

O MPLIB Object Librarian gerencia a criação e modificação de arquivos de


usar.
biblioteca de código pré-compilado. Quando uma rotina de uma biblioteca
Para facilitar a depuração no nível da fonte, os compiladores fornecem é chamada de um arquivo de origem, apenas os módulos que contêm essa
informações de símbolo que são otimizadas para o depurador MPLAB IDE. rotina serão vinculados ao aplicativo. Isso permite que grandes bibliotecas
sejam usadas com eficiência em muitos aplicativos diferentes.

16.3 HI-TECH C para várias famílias de Os recursos do vinculador/biblioteca de objetos incluem:


dispositivos
• Vinculação eficiente de bibliotecas únicas em vez de muitas
arquivos menores
Os sistemas de desenvolvimento de código HI-TECH C Compiler são
compiladores ANSI C completos para a família de microcontroladores PIC • Manutenibilidade de código aprimorada por agrupamento
da Microchip e a família dsPIC de controladores de sinal digital. Esses módulos relacionados juntos
compiladores fornecem recursos de integração poderosos, geração de • Criação flexível de bibliotecas com fácil listagem, substituição,
código onisciente e facilidade de uso. exclusão e extração de módulos

Para facilitar a depuração no nível da fonte, os compiladores fornecem 16.6 Montador, Linker e Bibliotecário MPLAB
informações de símbolo que são otimizadas para o depurador MPLAB IDE. para Várias Famílias de Dispositivos

Os compiladores incluem um montador de macro, vinculador, pré-


O MPLAB Assembler produz código de máquina relocável a partir da
processador e driver de uma etapa e podem ser executados em várias
linguagem assembly simbólica para dispositivos PIC24, PIC32 e dsPIC. O
plataformas.
compilador MPLAB C usa o montador para produzir seu arquivo objeto. O
montador gera arquivos de objetos relocáveis que podem ser arquivados
16.4 Montagem MPASM
ou vinculados a outros arquivos de objetos relocáveis e arquivamentos para

O MPASM Assembler é um montador de macro universal completo para criar um arquivo executável. As características notáveis do montador
MCUs PIC10/12/16/18. incluem:

O MPASM Assembler gera arquivos de objetos relocáveis para o MPLINK


Object Linker, arquivos HEX padrão Intel®, arquivos MAP para detalhar o • Suporte para todo o conjunto de instruções do dispositivo •

uso de memória e referência de símbolos, arquivos LST absolutos que Suporte para dados de ponto fixo e ponto flutuante • Interface de
contêm linhas de origem e código de máquina gerado e arquivos COFF linha de comando
para depuração. • Conjunto de diretivas ricas

• Linguagem de macro flexível •


Os recursos do MPASM Assembler incluem:
Compatibilidade com MPLAB IDE
• Integração em projetos MPLAB IDE • Macros
definidas pelo usuário para simplificar o código
assembly • Montagem condicional para arquivos

de origem multiuso

• Diretrizes que permitem controle total sobre o processo de


montagem

DS40044G-página 132 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
16.7 Simulador de Software MPLAB SIM 16.9 Sistema de depuração em circuito
O Simulador de Software MPLAB SIM permite MPLAB ICD 3
desenvolvimento em um ambiente hospedado por PC, simulando os MPLAB ICD 3 In-Circuit Debugger System é o hardware de alta
PIC MCUs e dsPIC® DSCs em uma instrução velocidade mais econômico da Micro chip
nível. Em qualquer instrução, as áreas de dados podem ser depurador/programador para Microchip Flash Digital Signal Controller
examinados ou modificados e os estímulos podem ser aplicados a partir (DSC) e microcontrolador (MCU)
um controlador de estímulo abrangente. Os registros podem ser dispositivos. Ele depura e programa microcontroladores PIC® Flash e
registrados em arquivos para análise posterior em tempo de execução. O traço dsPIC® DSCs com a interface gráfica de usuário poderosa e fácil de
buffer e display do analisador lógico estendem o poder de usar do MPLAB Integrated
o simulador para registrar e rastrear a execução do programa, Ambiente de Desenvolvimento (IDE).
ações em E/S, na maioria dos periféricos e registradores internos.
A sonda MPLAB ICD 3 In-Circuit Debugger é conectada ao PC do
O Simulador de Software MPLAB SIM suporta totalmente engenheiro de projeto usando um
depuração simbólica usando os compiladores MPLAB C, interface USB 2.0 e está conectado ao destino com um
e as Montadoras MPASM e MPLAB. O simulador de software oferece
conector compatível com o MPLAB ICD 2 ou MPLAB
a flexibilidade de desenvolver e Sistemas REAL ICE (RJ-11). O MPLAB ICD 3 suporta todos os
código de depuração fora do ambiente do laboratório de hardware, Cabeçalhos MPLAB ICD 2.
tornando-o um software excelente e econômico
ferramenta de desenvolvimento.
16.10 PICkit 3 In-Circuit Debugger/
16.8 MPLAB REAL ICE In-Circuit Programador e
PICkit 3 Debug Express
Sistema emulador
O MPLAB PICkit 3 permite depuração e programação de
O sistema emulador em circuito MPLAB REAL ICE é
microcontroladores PIC® e dsPIC® Flash em um
O emulador de alta velocidade da próxima geração da Microchip para
ponto de preço mais acessível usando o poderoso gráfico
Dispositivos Microchip Flash DSC e MCU. Ele depura e
interface de usuário do Desenvolvimento Integrado MPLAB
programa PIC® Flash MCUs e dsPIC® Flash DSCs
Ambiente (IDE). O MPLAB PICkit 3 está conectado
com a interface gráfica de usuário poderosa e fácil de usar do
para o PC do engenheiro de design usando um USB de velocidade total
o Ambiente de Desenvolvimento Integrado MPLAB (IDE),
interface e pode ser conectado ao destino através de um
incluído em cada kit.
Conector de depuração de microchip (RJ-11) (compatível com
O emulador está conectado ao PC do engenheiro de design MPLAB ICD 3 e MPLAB REAL ICE). O conector
usando uma interface USB 2.0 de alta velocidade e está conectado usa dois pinos de E/S do dispositivo e a linha de reinicialização para
ao destino com um conector compatível com sistemas de depuração implementar a depuração no circuito e o In-Circuit Serial Pro gramming™.
de circuito (RJ11) ou com o novo sinal diferencial de baixa tensão de
alta velocidade e tolerante a ruído
O PICkit 3 Debug Express inclui o PICkit 3, demo
(LVDS) interligação (CAT5).
placa e microcontrolador, cabos de conexão e CDROM
O emulador pode ser atualizado em campo por meio de firmware futuro com guia do usuário, lições, tutorial, compilador e
downloads no IDE MPLAB. Nos próximos lançamentos de Software MPLAB IDE.
MPLAB IDE, novos dispositivos serão suportados e novos
recursos serão adicionados. MPLAB REAL ICE oferece vantagens
significativas sobre emuladores competitivos, incluindo
baixo custo, emulação de velocidade total, variável de tempo de execução
relógios, análise de traços, pontos de interrupção complexos, uma
interface de sonda robusta e cabos de interconexão longos (até três
metros).

© 2009 Microchip Technology Inc. DS40044G-página 133


Machine Translated by Google

PIC16F627A/628A/648A
16.11 Programador/depurador 16.13 Quadros de Demonstração/
de desenvolvimento PICkit 2 Desenvolvimento, Kits de
e PICkit 2 Debug Express Avaliação e Kits Iniciais
O Programador/Depurador de Desenvolvimento PICkit™ 2 é uma Uma ampla variedade de placas de demonstração,
ferramenta de desenvolvimento de baixo custo com uma interface desenvolvimento e avaliação para vários PIC MCUs e dsPIC
fácil de usar para programação e depuração das famílias de DSCs permite o desenvolvimento rápido de aplicativos em
microcontroladores Flash da Microchip. A interface de sistemas totalmente funcionais. A maioria das placas inclui áreas
programação Windows® com todos os recursos suporta famílias de prototipagem para adicionar circuitos personalizados e fornecer
de linha de base (PIC10F, PIC12F5xx, PIC16F5xx), midrange firmware de aplicativo e código-fonte para exame e modificação.
(PIC12F6xx, PIC16F), PIC18F, PIC24, dsPIC30, dsPIC33 e
As placas suportam uma variedade de recursos, incluindo LEDs,
PIC32 de microcontroladores de 8 bits, 16 bits e 32 bits, e muitos
sensores de temperatura, interruptores, alto-falantes, interfaces
produtos Microchip Serial EEPROM. Com o poderoso Ambiente
RS-232, displays LCD, potenciômetros e memória EEPROM
de Desenvolvimento Integrado (IDE) MPLAB da Microchip, o
adicional.
PICkit™ 2 permite a depuração no circuito na maioria dos
microcontroladores PIC®. In-Circuit-Debugging executa, As placas de demonstração e desenvolvimento podem ser usadas
interrompe e executa etapas únicas do programa enquanto o em ambientes de ensino, para prototipagem de circuitos
microcontrolador PIC está embutido no aplicativo. Quando parado personalizados e para aprender sobre várias aplicações de
em um ponto de interrupção, os registros de arquivo podem ser microcontroladores.
examinados e modificados. Além da série de circuitos da placa de demonstração/

O PICkit 2 Debug Express inclui o PICkit 2, placa de demonstração desenvolvimento PICDEM™ e dsPICDEM™, a Microchip possui
uma linha de kits de avaliação e software de demonstração para
e microcontrolador, cabos de conexão e CDROM com guia do
usuário, lições, tutorial, compilador e software MPLAB IDE. projeto de filtro analógico, ICs de segurança KEELOQ® , CAN,
IrDA®, gerenciamento de bateria PowerSmart, avaliação
SEEVAL® sistema, Sigma-Delta ADC, sensor de vazão e muito
mais.
16.12 Programador de Dispositivo MPLAB PM3
Também estão disponíveis kits iniciais que contêm tudo o que é
O programador de dispositivo MPLAB PM3 é um programador de necessário para experimentar o dispositivo especificado. Isso
dispositivo universal compatível com CE com verificação de geralmente inclui um único aplicativo e capacidade de depuração,
tensão programável em VDDMIN e VDDMAX para máxima tudo em uma placa.
confiabilidade. Possui um grande display LCD (128 x 64) para
Consulte a página web da Microchip (www.microchip.com) para
menus e mensagens de erro e um conjunto de soquete destacável
obter a lista completa de kits de demonstração, desenvolvimento
modular para suportar vários tipos de pacotes. O conjunto de
e avaliação.
cabos ICSP™ está incluído como item padrão. No modo Stand-
Alone, o MPLAB PM3 Device Programmer pode ler, verificar e
programar dispositivos PIC sem uma conexão com o PC. Ele
também pode definir a proteção de código neste modo. O MPLAB
PM3 conecta-se ao PC host através de um cabo RS-232 ou USB.

O MPLAB PM3 possui comunicações de alta velocidade e


algoritmos otimizados para programação rápida de grandes
dispositivos de memória e incorpora um cartão MMC para
armazenamento de arquivos e aplicações de dados.

DS40044G-página 134 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
17.0 ESPECIFICAÇÕES ELÉTRICAS

Classificações Máximas Absolutas (†)


Temperatura ambiente sob polarização ............................................. .................................................. .........-40 a +125°C
Temperatura de armazenamento ................................................ .................................................. ......................... -65°C a +150°C
Tensão no VDD em relação ao VSS ............................................. .................................................. ............... -0,3 a +6,5 V
Tensão em MCLR e RA4 em relação a VSS ........................................ .................................................. .-0,3 a +14V
Tensão em todos os outros pinos em relação ao VSS ........................................ .............................................-0,3V para VDD + 0,3 V
Dissipação de potência total(1) ............................................. .................................................. ....................................... 800 mW
Corrente máxima fora do pino VSS .................................................. .................................................. ......................... 300 mA
Corrente máxima no pino VDD ............................................. .................................................. ..............................250 mA
Corrente do alicate de entrada, IIK (VI < 0 ou VI > VDD).................................... .................................................. .............................. ± 20 mA
Corrente do alicate 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 afundada por PORTA e PORTB (Combinado) ........................................ ....................................... 200 mA
Corrente máxima originada por PORTA e PORTB (Combinado) ........................................ ................................... 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)

† 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.

Observação: 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 puxar esse
pino diretamente para o VSS.

© 2009 Microchip Technology Inc. DS40044G-página 135


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 17-1: PIC16F627A/628A/648A GRÁFICO DE TENSÃO-FREQUÊNCIA, -40°C ÿ TA ÿ +125°C

6,0

5,5

5,0

4,5
VDD
(VOLTS)
4,0

3,5

3,0

2,5

0 4 10 20 25

FREQUÊNCIA (MHz)

Nota: A região sombreada indica as combinações permitidas de tensão e frequência.

FIGURA 17-2: PIC16LF627A/628A/648A GRÁFICO DE TENSÃO-FREQUÊNCIA, -40°C ÿ TA ÿ +85°C


6,0

5,5

5,0

4,5
VDD
(VOLTS)
4,0

3,5

3,0

2,5

2,0

0 4 10 20 25

FREQUÊNCIA (MHz)

Nota: A região sombreada indica as combinações permitidas de tensão e frequência.

DS40044G-página 136 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
17.1 Características DC: PIC16F627A/628A/648A (Industrial, Estendido)
PIC16LF627A/628A/648A (Industrial)
PIC16LF627A/628A/648A Condições Operacionais Padrão (salvo indicação em contrário)
(Industrial) Temperatura de operação -40°C ÿ Ta ÿ +85°C para indústria

Condições Operacionais Padrão (salvo indicação em contrário)


PIC16F627A/628A/648A
Temperatura de operação -40°C ÿ Ta ÿ +85°C para industrial e -40°C ÿ Ta ÿ +125°C
(Industrial, Estendido)
para estendido

Parâmetro
Característica/Dispositivo Sym Mín. Modelo† Unidades máximas Condições
Não.

Tensão de Alimentação VDD


D001 PIC16LF627A/628A/648A 2,0 - 5,5 DENTRO

PIC16F627A/628A/648A 3,0 - 5,5 DENTRO

D002 Retenção de Dados RAM VDR — 1,5* — V Dispositivo em modo de suspensão


Voltagem(1)

D003 VPOR VDD Tensão Inicial — VSS — V Consulte a Seção 14.4 “Energia
para garantir Power-on Reset em Reset (POR), Power-up
Temporizador (PWRT), oscilador
Temporizador de inicialização (OST) e
Reinicialização de Brown-out

(BOR)” na reinicialização ao ligar para


obter detalhes

D004 Taxa de Aumento SVDD VDD 0,05* — — V/ms Consulte a Seção 14.4 “Energia
para garantir Power-on Reset em Reset (POR), Power-up
Temporizador (PWRT), oscilador
Temporizador de inicialização (OST) e
Reinicialização de Brown-out (BOR)”
em Power-on Reset para
detalhes

D005 VBOR Tensão de Reinicialização de Brown-out 3,65 4,0 4,35 DENTRO


O bit de configuração BOREN está
definido
3,65 4,0 4.4 DENTRO
O bit de configuração BOREN está
definido, estendido

Legenda: As linhas apenas com dados do dispositivo de tensão padrão são sombreadas para melhorar a legibilidade.
*
Esses parâmetros são caracterizados mas não testados.

† Os dados na coluna “Typ” estão a 5,0 V, 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 no modo Sleep sem perder dados de RAM.

© 2009 Microchip Technology Inc. DS40044G-página 137


Machine Translated by Google

PIC16F627A/628A/648A
17.2 Características DC: PIC16F627A/628A/648A (Industrial)
PIC16LF627A/628A/648A (Industrial)

CARACTERÍSTICAS DC Condições Operacionais Padrão (salvo indicação em contrário)


Temperatura de operação -40°C ÿ Ta ÿ +85°C para indústria

Condições
Parâmetro Dispositivo LF e F
Unidades Mín.† Tipo Máx.
Não. Características VDD Observação

Tensão de Alimentação (VDD)


LF 2,0 — 5,5 V —
D001
LF/F 3,0 — 5,5 V —

Corrente de base de desligamento (IPD)


LF — 0,01 0,80 ÿA — 0,01 0,85 2.0 WDT, BOR, Comparadores, VREF e T1OSC:
D020 LF/F 3,0 desativado
ÿA — 0,02 2,7 ÿA Corrente do
módulo periférico (ÿIMOD) (1) 5,0

LF —1 2,0 ÿA 3,4 ÿA 2.0 WDT Corrente


D021 LF/F —2 17,0 ÿA ÿA 3,0
—9 ÿA ÿA ÿA ÿA 5,0
LF/F — 29 52 ÿA 4.5 BOR Corrente
D022
- 30 55 ÿA 5,0
LF - 15 22 2.0 Corrente do Comparador
D023 LF/F — 22 37 3,0 (Ambos os comparadores habilitados)

— 44 68 5,0
LF — 34 55 2.0 Corrente VREF
D024 LF/F — 50 75 3,0
— 80 110 ÿA 2,0 5,0
LF - 1,2 ÿA 2,2 ÿA 2,9 2.0 T1OSC Corrente
D025 LF/F - 1,3 ÿA 3,0
- 1,8 5,0

Corrente de Alimentação (IDD)


LF - 10 15 µA 2,0 ESCURO = 32 kHz
D010 LF/F - 15 25 3,0 Modo oscilador LP
µA
— 28 48 µA 5,0
LF — 125 190 µA — 175 340 µA 2,0 ESCURO = 1 MHz
D011 LF/F 3,0 Modo oscilador XT
— 320 520 µA — 250 350 µA
— 450 600 µA — 710 995 µA 5,0
LF — 395 465 µA — 565 785 µA 2,0 ESCURO = 4 MHz
D012 LF/F 3,0 Modo oscilador XT
— 0,895 1.
5,0
LF 2,0 ESCURO = 4 MHz
D012A LF/F 3.0 INTOSC

LF/F — 2,5 2,9 mA 4,5 FOSC = 20 MHz


D013
— 2,75 3,3 mA 5,0 HS Modo Oscilador

Nota 1: A corrente “ÿ” é a corrente adicional consumida quando este periférico é habilitado. Esta corrente deve ser
adicionada à medição de base IDD ou IPD . Os valores máximos devem ser usados ao calcular o consumo
total de corrente.

DS40044G-página 138 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
17.3 Características DC: PIC16F627A/628A/648A (Estendido)

CARACTERÍSTICAS DC
Condições Operacionais Padrão (salvo indicação em contrário)
Temperatura de operação -40°C ÿ Ta ÿ +125°C para prolongado
Condições
Parâmetro
Não.
Características do dispositivo Mín.† Tipo Máx. Unidades
VDD Observação

Tensão de Alimentação (VDD)


D001 — 3,0 — 5,5 V —

Corrente de base de desligamento (IPD)


— - 0,01 4 µA 3.0 WDT, BOR, Comparadores, VREF e T1OSC:
D020E
- 0,02 8 5,0 desativado
µA
Corrente do Módulo Periférico (ÿIMOD) (1)
— —2 9 ÿA 3.0 WDT Corrente
D021E
—9 20 ÿA 5,0
— — 29 52 4.5 BOR Corrente
ÿA
D022E
- 30 55 ÿA 5,0
— — 22 37 ÿA 3.0 Corrente do Comparador
D023E
— 44 68 ÿA 5,0 (Ambos os comparadores habilitados)
— — 50 75 3.0 Corrente VREF
ÿA
D024E
— 83 110 ÿA ÿA 5,0
— - 1,3 4 3.0 Corrente T1OSC
ÿA
D025E
- 1,8 6 5,0

Corrente de Alimentação (IDD)


— - 15 28 3,0 ESCURO = 32 kHz
ÿA
D010E
— 28 54 5,0 Modo oscilador LP
ÿA
— 3,0 ESCURO = 1 MHz
— 175 340 ÿA — 320 520 ÿA
D011E
— 450 650 ÿA 3,0 FOSC = 4 5,0 Modo oscilador XT


MHz
D012E
— 0,710 1,1 mA 5,0 XT Modo Oscilador

— 565 785 ÿA 3,0 FOSC = 4 MHz
D012AE
— 0,895 1,3 mA 5,0 INTOSC
— — 2,5 2,9 mA 4,5 FOSC = 20 MHz
D013E
— 2,75 3,5 mA 5,0 HS Modo oscilador

Nota 1: A corrente “ÿ” é a corrente adicional consumida quando este periférico é habilitado. Esta corrente deve ser
adicionada à medição de base IDD ou IPD . Os valores máximos devem ser usados ao calcular o consumo
total de corrente.

© 2009 Microchip Technology Inc. DS40044G-página 139


Machine Translated by Google

PIC16F627A/628A/648A
17.4 Características DC: PIC16F627A/628A/648A (Industrial, Estendido)
PIC16LF627A/628A/648A (Industrial)

Condições Operacionais Padrão (salvo indicação em contrário)


Temperatura de operação -40°C ÿ TA ÿ +85°C para uso industrial e
CARACTERÍSTICAS DC -40°C ÿ TA ÿ +125°C para prolongado
Faixa de tensão de operação VDD conforme descrito na especificação DC Tabela 17-2 e
Tabela 17-3

Param.
Sim Característica/Dispositivo Mín. Tipo† Unidade máxima Condições
Não.

VAI Baixa Tensão de Entrada

Portas de
D030 E/S com buffer TTL VSS — 0,8 DENTRO VDD = 4,5V a 5,5V caso
VSS — 0,15 VDD DENTRO contrário
D031 VSS — 0,2 VDD
com entrada Schmitt Trigger(4) DENTRO

D032 VSS — 0,2 VDD


MCLR, RA4/T0CKI,OSC1 (no modo DENTRO
(Nota 1)
RC)
D033 VSS — 0,3 VDD
OSC1 (em HS) DENTRO

VSS — 0,6
OSC1 (em LP e XT) DENTRO

HIV Alta Tensão de Entrada

Portas de
D040 E/S com buffer TTL 2,0 V — VDD DENTRO VDD = 4,5V a 5,5V caso
.25 VDD + 0,8 V 0,8 — VDD DENTRO contrário
D041 VDD 0,8 VDD — VDD
com entrada Schmitt Trigger(4) DENTRO

D042 MCLR RA4/T0CKI 1,3 0,9 VDD 0,7 — VDD DENTRO

D043 VDD — VDD


OSC1 (XT e LP) DENTRO

D043A — VDD
OSC1 (no modo RC) DENTRO
(Nota 1)
D043B OSC1 (no modo HS) VDD DENTRO

D070 Corrente de pull-up fraca IPURB PORTB 50 200 400 ÿA VDD = 5,0 V, VPIN = VSS

IIL Corrente de Fuga de Entrada (2), (3)


— — ±1,0
Portas de E/S (exceto PORTA) ÿA VSS ÿ VPIN ÿ VDD, pino em alta impedância
D060 PORTA (4) — — ±0,5 ÿA VSS ÿ VPIN ÿ VDD, pino em alta impedância
D061 RA4/T0CKI — — ±1,0 VSS ÿ VPIN ÿ VDD
ÿA
D063 — — ±5,0
OSC1, MCLR ÿA Configuração do oscilador VSS ÿ VPIN ÿ VDD,
XT, HS e LP

VOL Baixa Tensão de Saída

D080 — — 0,6 DENTRO


IOL = 8,5 mA, VDD = 4,5 V, -40° a +85°C IOL = 7,0 mA,
— — 0,6
Portas de E/S (4) DENTRO
VDD = 4,5 V, +85° a +125°C

Alta Tensão de Saída VOH (3)

D090 — —
Portas de E/S (Exceto RA4(4) )VDD – 0,7 DENTRO
IOH = -3,0 mA, VDD = 4,5 V, -40° a +85°C IOH = -2,5 mA,
VDD - 0,7 — — DENTRO
VDD = 4,5 V, +85° a +125°C

D150 — — 8,5*
Alta Tensão de Dreno Aberto VOD V RA4 pino PIC16F627A/628A/648A,
PIC16LF627A/628A/648A

Especificações de carregamento capacitivo nos pinos de saída

D100* COSC2 — — 15
pino OSC2 pF Nos modos XT, HS e LP, quando o relógio externo é
usado para acionar o OSC1.
D101* CIO — — 50
Todos os pinos de E/S/OSC2 (no modo RC) pF
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna “Typ” estão em 5,0V, 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: Na configuração do oscilador RC, o pino OSC1 é uma entrada Schmitt Trigger. Não é recomendado que o PIC16F627A/628A/648A
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 saindo do pino.
4: Inclui OSC1 e OSC2 quando configurados como pinos de E/S, CLKIN ou CLKOUT.

DS40044G-página 140 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 17-1: Características DC: PIC16F627A/628A/648A (Industrial, Estendido)
PIC16LF627A/628A/648A (Industrial)
Condições Operacionais Padrão (salvo indicação em contrário)
Temperatura de operação -40°C ÿ TA ÿ +85°C para uso industrial e
CARACTERÍSTICAS DC -40°C ÿ TA ÿ +125°C para prolongado

Faixa de tensão de operação VDD conforme descrito na especificação DC


Tabela 17-2 e Tabela 17-3

Nº do parâmetro
Sim Característica Mín. Modelo† Unidades máximas Condições

Memória EEPROM de dados


D120 ED Resistência 100 mil 1 milhão
— AI CREDO -40°C ÿ TA ÿ 85°C 85°C ÿ
D120A ED Resistência 10K 100 mil AI CREDO TA ÿ 125°C
D121 VDRW VDD para leitura/gravação VMIN — 5,5 DENTRO
VMIN = Tensão mínima de operação

D122 TED Tempo de ciclo de apagar/gravar


— 4 8* EM
D123 TRETD Retenção de Característica 40 — — Ano Desde que nenhuma

outra especificação seja violada


D124 ACERTAR Número de Apagamento/Gravação Total 1 milhão 10 milhões
— AI CREDO -40°C a +85°C

Ciclos antes da atualização(1)

Memória Flash do Programa

D130 EP Resistência 10 100 mil — AI CREDO -40°C ÿ TA ÿ 85°C 85°C ÿ


D130A EP Resistência mil 1000 10K — AI CREDO TA ÿ 125°C
D131 VPR VDD para leitura VMIN — 5,5 DENTRO
VMIN = Tensão mínima de operação

D132 VIDA VDD para apagar bloco 4,5 — 5,5 DENTRO

D132A VPEW VDD para gravação VMIN — 5,5 DENTRO


VMIN = Tensão mínima de operação
VDD > 4,5V
D133 GRAVATA
Tempo de ciclo de apagamento de bloco
— 4 8* EM
D133A TPEW Tempo de ciclo de gravação
— 2 4* EM
D134 TRETP Retenção de Característica 40 — — Desde que nenhuma
ano
outra especificação seja violada
*
Esses parâmetros são caracterizados mas não testados.

† Os dados na coluna “Typ” estão em 5,0V, 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: Consulte a Seção 13.7 “Usando a EEPROM de dados” para uma discussão mais detalhada sobre a EEPROM de dados
resistência.

© 2009 Microchip Technology Inc. DS40044G-página 141


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 17-2: ESPECIFICAÇÕES DO COMPARADOR

Condições de operação: 2,0 V < VDD < 5,5 V , -40°C < TA < +125°C, salvo indicação em contrário.

Parâmetro
Características Sym Min Modelo Máx. Unidades Comentários
Não.

D300 Tensão de compensação de entrada VIOFF — ±5,0 ±10 mV


D301 Tensão de Modo Comum de Entrada VICM 0 —VDD – 1,5*V
D302 Taxa de Rejeição do Modo Comum CMRR 55* — — db
D303 Tempo de Resposta(1) TRESP — 300 400* ns VDD = 3,0V a 5,5V
-40° a +85°C
— 400 600* ns VDD = 3,0V a 5,5V
-85° a +125°C
— 400 600* ns VDD = 2,0 V a 3,0 V
-40° a +85°C
D304 Alteração do modo do comparador TMC2OV — 300 10* ÿs
para saída válida
*
Esses parâmetros são caracterizados mas não testados.

Nota 1: Tempo de resposta medido com uma entrada do comparador em (VDD – 1,5)/2, enquanto a outra entrada transita de
VSS para VDD.

TABELA 17-3: ESPECIFICAÇÕES DE REFERÊNCIA DE TENSÃO

Condições de operação: 2,0 V < VDD < 5,5 V , -40°C < TA < +125°C, salvo indicação em contrário.

Especificação
Características Sim Mín. Tipo Máx. de Unidades Comentários
Não.

D310 Resolução VRES — —VDD/24 LSb Faixa baixa (VRR = 1)


VDD/32 LSb Alcance alto (VRR = 0)
D311 VRAA — — 1/4(2)* LSb
Precisão absoluta Faixa baixa (VRR = 1)
— — 1/2(2)* LSb Alcance alto (VRR = 0)
D312 Valor do resistor da unidade (R) VRUR — 2k* — Ah

D313 Tempo de Liquidação(1) TSET — — 10* ÿs


*
Esses parâmetros são caracterizados mas não testados.

Nota 1: Tempo de acomodação medido enquanto VRR = 1 e VR<3:0> transita de '0000' para '1111'.
2: Quando VDD está entre 2,0V e 3,0V, os níveis de tensão de saída VREF em RA2 descritos pelo
equação: [VDD/2 ± (3 – VDD)/2] pode fazer com que a Precisão Absoluta (VRAA) do sinal de saída VREF em RA2 seja maior
do que o valor máx.

DS40044G-página 142 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
17.5 Simbologia do Parâmetro de Temporização

Os símbolos dos parâmetros de tempo foram criados com um dos seguintes formatos:

1. TppS2ppS

2. TppS
T

F Frequência T Tempo

Subscritos minúsculos (pp) e seus significados:

pp
k CLK OUT osc OSC1

isto porta de entrada/saída


t0 T0CKI

mc MCLR

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

FIGURA 17-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

15 pF para saída OSC2

© 2009 Microchip Technology Inc. DS40044G-página 143


Machine Translated by Google

PIC16F627A/628A/648A
17.6 Diagramas e Especificações de Temporização

FIGURA 17-4: CRONOGRAMA DE RELÓGIO EXTERNO

Q4 Q1 Q2 Q3 Q4 Q1

OSC1
1 33
4 4
2

CLK OUT

TABELA 17-4: REQUISITOS DE CRONOGRAMA DE RELÓGIO EXTERNO

Nº do
Sim Característica Tipo mín.† Unidades máximas Condições
parâmetro

Frequência CLKIN Externa FOSC (1) DC — 4 MHz XT e RC Modo Osc,


VDD = 5,0 V

DC — 20 MHz HS, modo EC Osc


DC — modo LP Osc de 200 kHz

Frequência do oscilador(1) — — Modo RC Osc de 4 MHz, VDD = 5,0 V


0,1 — Modo XT Osc de 4 MHz
1 — 20 MHz Modo HS Osc
— — 200 kHz Modo LP Osc

— 4 — Modo MHz INTOSC (rápido)


— 48 — kHz modo INTOSC (lento)
1 Período CLKIN Externo TOSC(1) 250 — — ns Modo XT e RC Osc

50 — — ns HS, modo EC Osc


5 —— ÿs Modo LP Osc
Período do oscilador(1) 250 — — ns Modo RC Osc

250 — 10.000 ns XT Osc mode 50 — 1.000 ns HS


Osc mode
5 —— ÿs Modo LP Osc
— 250 — ns Modo INTOSC (rápido)
— 21 — Modo INTOSC ÿs (lento)
2 Tempo de Ciclo de Instrução TCY 200 TCY DC ns TCY = 4/FOSC
3 TosL, CLKIN Externo (OSC1) Alto 100* — — ns oscilador XT, serviço TOSC L/H
TosH CLKIN externo baixo ciclo
4 RC com Tensão Externa RC 10 kHz* — 4 MHz — VDD = 5,0V
Frequência
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna “Typ” estão em 5,0V, 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 baseado no 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 valores
“Min” com um clock externo aplicado ao pino OSC1. Quando uma entrada de clock externa é usada, o limite de tempo de ciclo
“Max” é “DC” (sem clock) para todos os dispositivos.

DS40044G-página 144 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 17-5: PARÂMETROS DO OSCILADOR INTERNO DE PRECISÃO
Nº do
Sim Característica Mín. Tipo Máx. de Unidades Condições
parâmetro

F10 Frequência central do oscilador FIOSC — 4 — MHz

F13 3,96 4 4,04 MHz VDD = 3,5 V, 25°C


Precisão do oscilador ÿIOSC
3,92 4 4,08 MHz 2,0 V ÿ VDD ÿ 5,5 V
0°C ÿ TA ÿ +85°C

3,80 4 4,20 MHz 2,0 V ÿ VDD ÿ 5,5 V


-40°C ÿ TA ÿ +85°C (IND)
-40°C ÿ TA ÿ +125°C (EXT)
F14* —6 8 ÿs VDD = 2,0V, -40°C a +85°C
TIOSCST Oscillator Wake-up a partir do tempo de
inicialização do Sleep —4 6 ÿs VDD = 3,0V, -40°C a +85°C
—3 5 ÿs VDD = 5,0V, -40°C a +85°C
Legenda: TBD = A ser determinado.
* Caracterizado mas não testado.

FIGURA 17-5: CLKOUT E TEMPO DE E/S

Q4 Q1 Q2 Q3

OSC1
11
10
22
CLK OUT 23

13 12
19 18
14 16

Pino de E/S

(entrada)

17 15

Pino de E/S
Valor antigo Novo valor
(resultado)

20, 21

© 2009 Microchip Technology Inc. DS40044G-página 145


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 17-6: REQUISITOS DE TEMPORIZAÇÃO DE CLKOUT E E/S

Nº do
Característica Sim Mín. Typ† Max Units
parâmetro

10 TOSH2CKL OSC1ÿ para CLKOUTÿ PIC16F62XA — 75 200* ns


10A PIC16LF62XA — — 400* ns
11 TOSH2CKH OSC1ÿ para CLKOUTÿ PIC16F62XA — 75 200* ns
11A PIC16LF62XA — — 400* ns
12 TCKR CLKOUT tempo de subida PIC16F62XA — 35 100* ns
12A PIC16LF62XA — — 200* ns
13 TCKF CLKOUT tempo de queda PIC16F62XA — 35 100* ns
13A PIC16LF62XA — — 200* ns
14 TCKL2IOV CLKOUT ÿ para portar válido — — 20* ns
15 TIOV2CKH Porta válida antes de CLKOUT ÿ PIC16F62XA TOSC+200 ns* — — ns
PIC16LF62XA TOSC+400 ns* — — ns
16 TCKH2IOI Porta em espera após CLKOUT ÿ 0 — — ns
17 TOSH2IOV OSC1ÿ (ciclo Q1) para PIC16F62XA — 50 150* ns
Saída válida PIC16LF62XA — — 300* ns
18 TOSH2IOI OSC1ÿ (ciclo Q2) para entrada de porta inválida 100* — — ns
(E/S em tempo de espera) 200*
*
Esses parâmetros são caracterizados mas não testados.
† Os dados na coluna “Typ” estão em 5,0V, 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.

FIGURA 17-6: REINICIAR, TEMPORIZADOR WATCHDOG, TEMPORIZADOR DE INICIALIZAÇÃO DO OSCILADOR E LIGAÇÃO


TEMPORIZADOR

VDD

MCLR

30
interno
POR

33
PWRT
Tempo esgotado
32

OST
Tempo esgotado

interno
Redefinir

cão de guarda
Cronômetro

Redefinir
31
34 34

Pinos de E/S

DS40044G-página 146 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 17-7: TEMPO DE REINICIALIZAÇÃO DO BROWNOUT

VDD VBOR

35

TABELA 17-7: REINICIALIZAÇÃO, TEMPORIZADOR WATCHDOG, TEMPORIZADOR DE INICIALIZAÇÃO DO OSCILADOR E LIGAÇÃO


REQUISITOS DO TEMPORIZADOR

Parâmetro
Sim Característica Mín. Modelo† Unidades máximas Condições
Não.

30 Largura de pulso TMCL MCLR (baixa) 2000 — — ns 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 Período do temporizador de inicialização de oscilação TOST — 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 I/O de alta impedância de MCLR — — 2,0* ÿs


Reinicialização do temporizador baixo ou watchdog

35 Largura de pulso de reinicialização de Brown-out TBOR 100* — — ÿs VDD ÿ VBOR (D005)

Legenda: TBD = A ser determinado.


*
Esses parâmetros são caracterizados mas não testados.

† Os dados na coluna “Typ” estão em 5,0V, 25°C, salvo indicação em contrário. Esses parâmetros são apenas para orientação do projeto e são
não testado.

FIGURA 17-8: TEMPORIZAÇÕES DE RELÓGIO EXTERNO TIMER0 E TIMER1

RA4/T0CKI/CMP2

40 41

42

RB6/T1OSO/T1CKI/PGC

45 46

47 48

TMR0 OU
TMR1

© 2009 Microchip Technology Inc. DS40044G-página 147


Machine Translated by Google

PIC16F627A/628A/648A
TABELA 17-8: REQUISITOS DE RELÓGIO EXTERNO DE TIMER0 E TIMER1
Param
Sim Característica Mín. Typ† Condições de Unidades Máximas
No.

40 TT0H T0CKI Largura de pulso alta sem pré-escalonador 0,5TCY + 20* — — ns


Com Pré-escalador 10* — — ns
41 TT0L T0CKI Largura de pulso baixa sem pré-escalonador 0,5TCY + 20* — — ns
Com Pré-escalador 10* — — ns
42 Período TT0P T0CKI Maior de: — — ns N = valor de pré-escala (2,
20 ou TCY + 40* 4, ..., 256)
N
45 TT1H T1CKI Alto Síncrono, sem pré-escalador 0,5TCY + 20* — — ns
Tempo PIC16F62XA 15* — — ns
Síncrono, com
Prescaler PIC16LF62XA 25* — — ns

Assíncrono PIC16F62XA 30* — — ns


PIC16LF62XA 50* — — ns
46 TT1L T1CKI Baixo Síncrono, sem pré-escalador 0,5TCY + 20* — — ns
Tempo PIC16F62XA 15* — — ns
Síncrono, com
Prescaler PIC16LF62XA 25* — — ns

Assíncrono PIC16F62XA 30* — — ns


PIC16LF62XA 50* — — ns
47 Entrada TT1P T1CKI Síncrono PIC16F62XA Maior de: — — ns N = valor de pré-escala (1,
período 20 ou TCY + 40* 2, 4, 8)
N
PIC16LF62XA Maior de: ———

20 ou TCY + 40*
N

Assíncrono PIC16F62XA 60* — — ns


PIC16LF62XA 100* — — ns
FT1 — 32,7(1) - kHz
Faixa de frequência de entrada do oscilador
Timer1 (oscilador habilitado pelo ajuste do bit
T1OSCEN)
48 TCKEZTMR1 Atraso da borda do relógio externo para o incremento do 2TOSC — 7TOSC —
temporizador
*
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 oscilador destina-se a funcionar apenas com cristais de relógio de 32,768 kHz e suas tolerâncias fabricadas.
Frequências de cristal de valor mais alto podem não ser compatíveis com este driver de cristal.

DS40044G-página 148 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 17-9: CAPTURAR/COMPARAR/HORÁRIOS PWM

RB3/CCP1

(MODO DE CAPTURA)

50 51

52

RB3/CCP1

(COMPARAR OU MODO PWM)

53 54

TABELA 17-9: REQUISITOS DE CAPTURA/COMPARAÇÃO/PWM

Param
Sim Característica Mín. Typ† Condições de Unidades Máximas
No.

50 TCCL CCP Sem pré-escalador 0,5TCY + — — ns


entrada baixa tempo 20*
PIC16F62XA 10* — — ns
Com Pré-escalador PIC16LF62XA 20* — — ns
51 TCCH PCC Sem pré-escalador 0,5TCY + — — ns
entrada de tempo alto 20*
PIC16F62XA 10* — — ns
Com Pré-escalador PIC16LF62XA 20* — — ns
52 Período de entrada do PCC do TCCP 3TCY + 40* — — ns N = valor pré-
N escala (1,4 ou 16)
53 Tempo de subida de saída TCCR CCP PIC16F62XA 10 25* ns
PIC16LF62XA 25 45* ns
54 Tempo de queda de saída do TCCF CCP PIC16F62XA 10 25* ns
PIC16LF62XA 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 de projeto
e não são testados.

© 2009 Microchip Technology Inc. DS40044G-página 149


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 150 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
18.0 GRÁFICOS E TABELAS DE CARACTERÍSTICAS DC E AC
Os gráficos e tabelas fornecidos nesta seção são para orientação de projeto e não são testados.

Em alguns gráficos ou tabelas, os dados apresentados estão fora da faixa de operação especificada (ou seja, fora do VDD especificado
variar). Isto é apenas para informação e os dispositivos são garantidos para operar corretamente apenas dentro do intervalo especificado.

Os dados apresentados nesta seção são um resumo estatístico dos dados coletados em unidades de diferentes lotes durante um período
de amostras de tempo e matriz. 'Típico' representa a média da distribuição a 25°C. 'Max' ou 'Min' representa
(média + 3ÿ) ou (média - 3ÿ), respectivamente, onde ÿ é o desvio padrão, em toda a faixa de temperatura.

FIGURA 18-1: LINHA DE BASE TÍPICA IPD vs. VDD (-40°C A 25°C)

160

140

120

100

I(nA)
PD
80

60

-40°C 0°C
40

+25°C
20

0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (Volts)

© 2009 Microchip Technology Inc. DS40044G-página 151


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-2: LINHA DE BASE TÍPICA IPD vs. VDD (85°C)

300

280

260

240

220

200
I(nA)
PD

+85°C
180

160

140

120

100
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (Volts)

FIGURA 18-3: CORRENTE DE LINHA DE BASE TÍPICA IPD vs. VDD (125°C)

2.4

2.2

2,0

1,8

( µA)
IPD

+125°C
1,6

1,4

1.2

1,0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (Volts)

DS40044G-página 152 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-4: BOR TÍPICO IPD vs. VDD

40

38

36

34

32 125°C
µA)
85°C
30 25°C
DPI
(
0°C
28 -40°C

26

24

22

20
4,5 4.6 4.7 4,8 4.9 5,0 5.1 5.2 5.3 5.4 5,5

VDD (Volts)

FIGURA 18-5: COMPARADOR ÚNICO TÍPICO IPD vs. VDD

30

25

20

125°C
85°C
15 25°C
( µA)
IPD
0°C
-40°C

10

0
2 2,5 3 3,5 4 4,5 5 5,5

VDD (Volts)

© 2009 Microchip Technology Inc. DS40044G-página 153


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-6: TÍPICO VREF IPD vs. VDD

100

90

80

70
125°C
85°C
60 25°C
( µA)
IPD

0°C
-40°C
50

40

30

20
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (Volts)

FIGURA 18-7: TÍPICO WDT IPD vs. VDD

16

14

12

10
125°C
85°C
( µA)
IPD 8 25°C
0°C
-40°C
6

0
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (Volts)

DS40044G-página 154 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-8: AVERAGE IPD_TIMER1

(uA)
IPD
3 -40C
0C
25C
85C
125

0
2 2,5 3 3,5 4 4,5 5 5,5

VDD (V)

FIGURA 18-9: FREQUÊNCIA TÍPICA DO OSCILADOR INTERNO vs. TEMPERATURA VDD = 5 VOLTS

5,0%

4,0%

3,0%

2,0%

1,0%

0,0%

-1,0%
calibração
Mudança
alvo
(%)
de
do

-2,0%

-3,0%

-4,0%

-5,0%
-40 25 85 125

Temperatura (ºC)

© 2009 Microchip Technology Inc. DS40044G-página 155


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-10: FREQUÊNCIA TÍPICA DO OSCILADOR INTERNO vs. TEMPERATURA VDD = 3 VOLTS

5,0%

4,0%

3,0%

2,0%

1,0%

calibração
Mudança
alvo
(%)
de
do

0,0%

-1,0%

-2,0%

-3,0%

-4,0%

-5,0%
-40 25 85 125

Temperatura (ºC)

FIGURA 18-11: FREQUÊNCIA TÍPICA DO OSCILADOR INTERNO vs. TEMPERATURA VDD = 2 VOLTS

5,0%

4,0%

3,0%

2,0%

1,0%

calibração
Mudança
alvo
(%)
de
do

0,0%

-1,0%

-2,0%

-3,0%

-4,0%

-5,0%
-40 25 85 125

Temperatura (ºC)

DS40044G-página 156 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-12: DESVIO TÍPICO DO OSCILADOR INTERNO vs. VDD A 25°C - MODO DE 4 MHz

5,0%

4,0%

3,0%

2,0%

1,0%

0,0%
calibração
Mudança
alvo
(%)
de
do

-1,0%

-2,0%

-3,0%

-4,0%

-5,0%
2 2,5 3 3,5 4 4,5 5 5,5

VDD (V)

FIGURA 18-13: FREQUÊNCIA TÍPICA DO OSCILADOR INTERNO vs. TEMPERATURA VDD = -40°C A 85°C

5,0%

4,0%

3,0%

2,0%

1,0%

calibração
Mudança
alvo
(%)
de
do

0,0%

-1,0%

-2,0%

-3,0%

-4,0%

-5,0%
2 2,5 3 3,5 4 4,5 5 5,5

VDD (V)

© 2009 Microchip Technology Inc. DS40044G-página 157


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-14: OSCILADOR INTERNO IDD vs. VDD - MODO DE 4 MHz

85 C 25 C Média -40ºC

1,40

1,20

1,00

I(mA)
DD 0,80

0,60

0,40

0,20

0,00
2 2,5 3 3,5 4 4,5 5 5,5

VDD (V)

FIGURA 18-15: FREQUÊNCIA TÍPICA DO OSCILADOR INTERNO vs. VDD A 25°C - MODO LENTO

60

55

50

45
Frequência
oscilador
(kHz)
do

40

35

30
2 2,5 3 3,5 4 4,5 5 5,5

VDD (V)

DS40044G-página 158 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-16: OSCILADOR INTERNO IDD vs. VDD – MODO LENTO
85°C Média de 25 C -40ºC

180

160

140

120

100

( µA)
IPD
80

60

40

20

0
2 2,5 3 3,5 4 4,5 5 5,5

VDD (V)

FIGURA 18-17: CORRENTE DE FORNECIMENTO (IDD vs. VDD, FOSC = 1 MHz (MODO OSCILADOR XT)

500

450

400

350
125°C
µA)
85°C
300
25°C
DPI
(
0°C
250 -40°C

200

150

100
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (Volts)

© 2009 Microchip Technology Inc. DS40044G-página 159


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-18: CORRENTE DE FORNECIMENTO (IDD vs. VDD, FOSC = 4 MHz (MODO OSCILADOR XT)

1000

900

800

700
125°C
µA)
85°C
600 25°C
DPI
(
0°C
-40°C
500

400

300

200
2,0 2,5 3,0 3,5 4,0 4,5 5,0 5,5

VDD (Volts)

FIGURA 18-19: CORRENTE DE SUPRIMENTO (IDD) vs. VDD, FOSC = 20 MHz (MODO OSCILADOR HS)

4,0

3,5

125°C
85°C

I(mA)
DD 3,0 25°C
0°C
-40°C

2,5

2,0
4,5 4.6 4.7 4,8 4.9 5,0 5.1 5.2 5.3 5.4 5,5

VDD (Volts)

DS40044G-página 160 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
FIGURA 18-20: PERÍODO TÍPICO DE WDT vs. VDD (-40°C A +125°C)

Tempo limite WDT

50
45
40
35 -40
30 0
25 25
Tempo
(mS)

20 85
15 125
10
5
0
2 2,5 3 3,5 4 4,5 5 5,5

VDD(V)

© 2009 Microchip Technology Inc. DS40044G-página 161


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 162 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
19.0 INFORMAÇÕES DA EMBALAGEM

19.1 Informações de marcação do pacote


PDIP de 18 derivações Exemplo

XXXXXXXXXXXXXXX PIC16F627A
XXXXXXXXXXXXXXX -I/P e3
YYWNNNN 0410017

SOIC de 18 derivações (0,300") Exemplo

XXXXXXXXXXXX PIC16F628A
XXXXXXXXXXXX -E/SO e3
XXXXXXXXXXXX
0410017
YYWNNNN

SSOP de 20 derivações Exemplo

XXXXXXXXX PIC16F648A
XXXXXXXXX -I/SS e3
YYWNNNN 0410017

QFN de 28 derivações Exemplo

XXXXXXXX 16F628A
XXXXXXXX -I/ML e3
YYWNNNN 0410017

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.

© 2009 Microchip Technology Inc. DS40044G-página 163


Machine Translated by Google

PIC16F627A/628A/648A

3 & ' !& " & 4 #* !( '54 !! & 4 % & &#&


&&255*** '

NOTA 1
E1

1 23

UMA A2

eu c
A1
b1

b e eB

6 e! 7,8.
'! 9'&! 7 7: ;
7"')% ! 7 <
& 1,
= =
& &

## 4 4!! -
1! & &
= =

"#& " # > #& . - - -


## 4 > #& . <
: 9& <<
& & 9 -
9# 4!! <
6 9# > #& ) ?
9 * 9# > #& ) <
: * + 1 = =
-

!" # $ % & "' (


)"& '"!& ) &#*& & & #
% & , & !&
+-'! ! #. # & "# ' # % ! &"! ! #%! &"! ! ! &$ #
/
!#
'! #& .0
1,2 1! '! & $& " ! * * & "& & !

*, 1

DS40044G-página 164 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

!" !" # $ %&' !" (

3 & ' !& "&&255*** & 4#* !( '54 !! & 4 % & &#&
'

E1

NOTA 1

123
e

b
uma

h
h

c
Phi
UMA
A2

b
A1 eu

L1

6 e! 99 . .
'! 9'&! 7 7: ;
7"')% ! 7 <
& 1,
: 8& = =
?
## 4 4!! = =

& # %% + =
-
: > #& . - 1,
## 4 > #& . 1,
: 9& 1,
, '% @ & UMA
=

3e9e 9 =

3& & 9 .3
B
3& =
<B

9# 4!! =
--
9# > #& ) - =

B B
# %& =

B B
# %& 1 && ' =

!" # $ % & "' (


)"& '"!& ) &#*& & & #
% & , & !&
+-'! ! #. # & "# ' # % ! &"! ! #%! &"! ! ! & $#''! #
'! #& .0
1,2 1! '! 0,32% & $& " ! * * & "& & !
'! (
"!" * & "& & (
% %'& "! !

*, 1

© 2009 Microchip Technology Inc. DS40044G-página 165


Machine Translated by Google

PIC16F627A/628A/648A

DS40044G-página 166 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

) !*+ ,! " !! '& !!"

3 & ' !& "& &&255*** ' 4#* !( '54 !!& 4 %& &#&

E1

NOTA 1

12
e

c
UMA
A2

Phi

A1
L1 eu

6 e! 99 . .
'! 9'&! 7 7: ;
7"')% ! 7
& ? 1,
: 8& = =

## 4 4!! ? <
& # %% = =

: > #& . < <


## 4 > #& . - ?
: 9 & ?
3e9e 9
3& & 9 .3
9# 4!! =

B B
3& <B

9# > #& ) =
-<

!" # $ % &"' (
)"& '"!& ) &#*& & &#
'! ! #. # & "# ' # % ! &"! ! #%! &"! ! ! & $#''! #
- '! #& .0
1,2 1! '! 0,32% & $& " ! * * & "& & !
'! (
"!" * & "& & (
% %'& " !!

*, 1

© 2009 Microchip Technology Inc. DS40044G-página 167


Machine Translated by Google

PIC16F627A/628A/648A

) - . 3 *&''( $ , / 0 121 -.
/*
3 & ' !& "& &&255*** ' 4#* !( '54 !!& 4 %& &#&

D D2
EXPOR
ALMOFADA

b
E2

2 2
1
1 K

N N

NOTA 1 eu

VISTA DO TOPO VISTA DE BAIXO

UMA

A3 A1

6 e! 99 . .
'! 9'&! 7 7: ;
7"')% ! 7 <
& ? 1,
: 8& <
& # %%
,& & 4!! - .3
: > #& . ? 1,
.$! # # > #& . -? -
: 9 & ? 1,
.$! # # 9 & -? -
,& & > #& ) - - -
,& &9 & 9
,& & & .$! ## C = =

!" # $ % &"' (
)"& '"!& ) &#*& & &#
4 ! ! *! " & #
- '! #& .0
1,2 1! '! 0,32% & $& " ! * * & "& & !
'! (
"!" * & "& & (
% %'& " !!

*, 1

DS40044G-página 168 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A

) -. $ , / 0 121 -.
3 *&'' ( /*
3 & ' !& "& &&255*** ' 4#* !( '54 !!& 4 %& &#&

© 2009 Microchip Technology Inc. DS40044G-página 169


Machine Translated by Google

PIC16F627A/628A/648A
NOTAS:

DS40044G-página 170 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
APÊNDICE A: FOLHA DE DADOS APÊNDICE B: DISPOSITIVO
HISTÓRICO DE REVISÃO DIFERENÇAS
As diferenças entre os dispositivos PIC16F627A/628A/648A listados
Revisão A
nesta folha de dados são mostradas na Tabela B-1.
Esta é uma nova folha de dados.
TABELA B-1: DIFERENÇAS DO DISPOSITIVO
Revisão B
Memória
Diagrama de pinos QFN de 28 pinos
Dispositivo
revisado Figura 5-4 Diagrama de bloco Instantâneo BATER EEPROM
Revisado Registro 7-1 TMR1ON Revisado Programa Dados Dados
Exemplo 13-4 Dados Atualizar EEPROM Rotina Revisada Conjunto PIC16F627A 1024 x 14 224 x 8 128 x 8
de instruções SUBWF, Exemplo 1 Revisado DC Características 17-2
e 17-3 Tabelas revisadas 17- 4 e 17-6 Tabela corrigida e numeração PIC16F628A 2048 x 14 224 x 8 128 x 8
da Figura na Seção 17.0 PIC16F648A 4096 x 14 256 x 8 256 x 8

Revisão C
Revisões gerais por toda parte. Revisões da Seção 14.0 – Recursos
Especiais da CPU. Seção 18, gráficos modificados.

Revisão D
Revise o Exemplo 13-2, Gravação de Dados na
EEPROM Revise as Seções 17.2, Param No. D020 e 17.3, Param
No. D020E Revise os gráficos da Seção 18.0

Revisão E
Seção 19.0 Informações de embalagem: Desenhos de embalagem
substituídos e nota adicionada.

Revisão F (03/2007)
Desenhos de Pacotes Substituídos (Rev. AM); Substituída a Seção
de Suporte ao Desenvolvimento; Sistema de identificação do produto
revisado.

Revisão G (10/2009)
Pacote QFN de 28 derivações corrigido na Seção 19.1.

© 2009 Microchip Technology Inc. DS40044G-página 171


Machine Translated by Google

PIC16F627A/628A/648A
APÊNDICE C: MIGRAÇÕES DE DISPOSITIVOS APÊNDICE D: MIGRAÇÃO DE
OUTRAS FOTOS®
Esta seção descreve as diferenças de especificações funcionais e
DISPOSITIVOS
elétricas ao migrar entre dispositivos funcionalmente semelhantes.
(como de um PIC16F627 para um PIC16F627A).
Isso discute alguns dos problemas na migração de outros dispositivos
PIC MCU para a família de dispositivos PIC16F627A/628A/648A.

C.1 PIC16F627/628 para um PIC16F627A/628A


D.1 PIC16C62X/CE62X a PIC16F627A/
1. O modo ER agora é o modo RC. Migração 628A/648A
2. A proteção de código para a memória do programa mudou de por
Consulte o site da Microchip disponibilidade
seções de memória com proteção de código para proteção
(www.microchip.com).
de código de toda a memória. Os bits de configuração CP0
e CP1 no PIC16F627/628 não existem no PIC16F627A/ D.2 Migração de PIC16C622A para PIC16F627A/628A/
628A. Eles foram substituídos por um bit de configuração<13>
648A
CP.
Consulte o site da Microchip por disponibilidade
3. A terminologia “Brown-out Detect (BOD)” foi alterada para (www.microchip.com).
“Brown-out Reset (BOR)” para representar melhor a função
do circuito Brown-out.
Nota: Este dispositivo foi projetado para funcionar de acordo com
4. Habilitar Brown-out Reset (BOR) não habilita automaticamente
os parâmetros de sua folha de dados. Foi testado de
o Power-up Timer (PWRT) da mesma forma que no
acordo com uma especificação elétrica projetada para
PIC16F627/628.
determinar sua conformidade com esses parâmetros.
5. INTRC agora é chamado de INTOSC.
Devido a diferenças de processo na fabricação deste
6. O oscilador Timer1 agora foi projetado para operação em 32,768 dispositivo, este dispositivo pode ter características
kHz. No PIC16F627/628, o oscilador Timer1 foi projetado de desempenho diferentes de sua versão anterior.
para operar em até 200 kHz. Essas diferenças podem fazer com que este dispositivo
tenha um desempenho diferente em seu aplicativo em
7. O modo oscilador de velocidade dupla funciona apenas no relação à versão anterior deste dispositivo.
modo oscilador INTOSC. No PIC16F627/ 628, o modo
oscilador de velocidade dupla funcionava nos modos
oscilador INTRC e ER.

DS40044G-página 172 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
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 • Linha de Informação de Sistemas de Desenvolvimento

design, guias do usuário e documentos de suporte de Os clientes devem entrar em contato com seu distribuidor,
hardware, versões de software mais recentes e software representante ou engenheiro de aplicação de campo (FAE) para
arquivado Apoio, suporte. Os escritórios de vendas locais também estão disponíveis para ajudar

• Suporte Técnico Geral - Perguntas Frequentes clientes. Uma lista de escritórios de vendas e locais é
Perguntas (FAQ), solicitações de suporte técnico, grupos incluído no verso deste documento.
de discussão on-line, lista de membros do programa de O suporte técnico está disponível através do site
consultores da Microchip em: http://support.microchip.com
• 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, clique em Alteração do cliente
Notificação e siga as instruções de registro.

© 2009 Microchip Technology Inc. DS40044G-página 173


Machine Translated by Google

PIC16F627A/628A/648A
RESPOSTA DO LEITOR
É nossa intenção fornecer a você a melhor documentação possível para garantir o uso bem-sucedido do seu produto Microchip. Se você
deseja fornecer seus comentários sobre organização, clareza, assunto e maneiras pelas quais nossa 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: PIC16F627A/628A/648A Número da Literatura: DS40044G

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?

DS40044G-página 174 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
ÍNDICE Bits CCP2X:CCP2Y ............................................. ...... 57
Esquema de Cronometragem/Ciclo de Instrução ....................... 15
UMA CLRF Instrução................................................. .............. 121 Instrução
DE ANÚNCIOS
CLRW .................................... .................................. 122 Instrução
Gatilho de Evento Especial (CCP).................................. 59 CLRWDT ....................... ......................................... 122 Registro
Classificações Máximas Absolutas . ............................................. 135 CMCON........ .................................................. ...... 63 Exemplos de
Instrução ADDLW .. .................................................. ....... 119 Instrução Código
ADDWF ........................................ ................... 119 Instrução Rotina de atualização de EEPROM de dados ..............................
ANDLW .................................... .............................. 119 Instrução 94 Proteção de código ........... .................................................. ... 113
ANDWF ................ ......................................... 119 Visão geral da Instrução COMF................................................ .......... 122 Diagramas
arquitetura .... .................................................. .. 11 Montador MPASM de Blocos Comparadores Modos de Operação de E/
Montador ............................................. ....... 132 S ....................... ................... 64 Saída do Comparador
Modificada ................... ... 66 Módulo
Comparador .......................................... ........ 63
B Configuração ....................................... ....................... 64
Erro de taxa de transmissão ............................................. ................... Interrupções .............................. .......................................... 67
75 Fórmula da taxa de transmissão ................................... ......................... Operação...... .................................................. ............ 65
75 Instrução BCF .......... .................................................. .. 120 Referência .................................. ......................... 65 Comparar
Diagramas de Blocos Comparador I/O Modos de (Módulo CCP) ............ ......................................... 58 Diagrama
Operação ........................................ ... 64 Saída do Comparador de Blocos ......... .................................................. ... 58 Configuração
Modificada .............................. 66 Portas de E/S dos pinos do CCP ........................................ ....... 59 Registros
CCPR1H:CCPR1L ........................ 58 Interrupção de
software ........................................................ ......... 59 Acionador
Pino RB0/INT ............................................. .......... 38 pinos de Evento Especial ........................................ .......... 59 Seleção
RB1/RX/DT ....................... ................... 39 Pino RB2/TX/ do Modo Temporizador ................................. ........... 59
CK .................... ......................... 39 Pino RB3/ Registrador CONFIG .................................. ......................... 98
CCP1 ................... ................... 40 pinos RB4/ Bits de Configuração ......................... .................................... 97
PGM ................... ........................................ 41 pinos Operação do Cristal.... .................................................. .......... 99
RB5...... .................................................. ....... 42 RB6/ Serviço de Notificação de Mudança do Cliente .................. 173 Serviço
T1OSO/T1CKI Pino .................................... .. 43 Pino RB7/ de Notificação do Cliente .. ....................................... 173 Suporte ao
T1OSI ............................................. ........ 44 Modo de Cliente......... .................................................. .... 173
oscilador RC ........................................ .......... 101 USART
Receber .................................. ......................... 82 USART
Transmissão ....................... ......................... 80 bits D
BRGH .......... .................................................. .............. 75 Memória EEPROM de dados ............................................. ....... 91
Reinicialização de Brown-Out (BOR) .............. ....................... 103 Registro EECON1 ........................................ .............. 91
Instrução BSF ........................ ......................... ........................ 120 Registro EECON2 ................................... ......................... 91
Instrução BTFSC ........................ ......................... 120 BTFSS Operação durante a proteção do código ........................ ..... 95
Instrução ......... .................................................. . 121 Leitura .............................................. ......................... 93 Proteção
contra gravação espúria......... ......................... 93
C Usando ......................... .................................................. 94
Compiladores Verificação de Gravação ............................................. .......... 93
C MPLAB C18 ............................................. ............... 132 Gravando para .................................. .......................................
Instrução de CHAMADA .............................. ......................... 121 93 Organização da Memória de Dados......... .........................................
Captura (Módulo CCP) ............ ....................................... 58 Diagrama 17 Instrução DECF ..... .................................................. ....... 122
de Blocos.... .................................................. ....... 58 Configuração Instrução DECFSZ ........................................ .......... 123 Suporte ao
do Pino CCP ....................................... ......... 58 Registros Desenvolvimento .................................. .................. ......... 131
CCPR1H:CCPR1L................................. .. 58 Alterando entre os Diferenças do dispositivo ....................................... ......................... 171
pré-escaladores de captura ........ 58 Pré- Migrações de dispositivos ......................... ................................... 172
escaladores ............... .................................................. 58 Modos do oscilador de velocidade dupla ........ .................................... 101
Interrupção de software ............................................. ........ 58
Seleção do Modo Timer1 ........................................ ......... 58 E

Capturar/Comparar/PWM (CCP)........................ ........... 57 Registro EECON1................................................ ............... 92 Registro


Modo de captura. Consulte EECON1 .............................. ......................... 92 registro
Capturar CCP1 ............................................. ......................... 57 EECON2 ............... ......................................... 92
Registro CCPR1H......... ......................... 57 Registro Errata .................................................... ......................... 5 Circuito
CCPR1L ......................... ......................... 57 oscilador de cristal externo .......... .......................... 100
PCC2 ....................... .................................................. ... 57 Modo
F
Comparar. Consulte Comparar modo PWM. Consulte Recursos
do Temporizador PWM............................................. ........... 57 Fusíveis. Ver bits de configuração
Registro CCP1CON .................................. ......................... 57
G
Bits CCP1M ....................... ......................................... 57 Bits
CCP1X:CCP1Y.... ........................................ 57 CCP2CON Arquivo de Registro de Uso Geral .............................. 17 GOTO
Registrar CCP2M<3:2> Bits ............................................. .............. Instrução................................................. .............. 123

57

© 2009 Microchip Technology Inc. DS40044G-página 175


Machine Translated by Google

PIC16F627A/628A/648A
EU
Endereço de internet ................................................ ............... 173 Captura de

Portas de E/S ............................................. .............................. 33 Fontes de Interrupção Concluída (CCP) ....................... ......... 58 Comparação

Bidirecional ............... ......................................... 46 Bloco Diagramas Completa (CCP) ....................... ............... 59 Combinação de TMR2 para
PR2 (PWM) ....................... ............ 60

Pino RB0/INT ............................................. .......... 38 Pino RB1/ Interrupções ......................................... ......................................... 109

RX/DT ........................ .........39 Pino RB2/TX/ Interrupções, Habilitar Bits CCP1 Habilitar (Bit CCP1IE) .......................................

CK ........................ ..............................39 Pino RB3/ 58 Interrupções, Bits de Sinalização Sinalizador CCP1 (Bit

CCP1 ....................... ................... 40 pinos RB4/ CCP1IF )................................................ 58 Instrução

PGM .............. ....................................... 41 pinos IORLW . .................................................. ......... 125 Instrução

RB5..... .................................................. ........ 42 RB6/T1OSO/ IORWF ........................................ ....................... 125

T1CKI Pino ................................... ... 43 Pino RB7/


T1OSI ............................................. .........44
PORTA ....................................... ......................... 33 M
PORTA ............... .................................................. .......38 Considerações
Dados de Organização da
de Programação ....................... 46 Operações
Memória Memória EEPROM.................................. 91, 93, 95 Microchip
Sucessivas ......................................... 46
Internet Web Site.. ......................................... 173 Migrando de outros
TRISA . .................................................. ....................... 33
dispositivos PICmicro .................................. 172 Instrução
TRISB .............................. ......................................... .......... 38
MOVF ....................... ....................................... 125 Instrução
Localizações de ID .................................. ................................... 113 Instrução
MOVLW.... .................................................. ..... 125 Instrução
INCF ........... .................................................. ... 124 Instrução
MOVWF ....................................... ......... 126 MPLAB ASM30 Assembler, Linker,
INCFSZ................................................ ............... 124 Programação Serial In-
Librarian ................... 132 Software de Ambiente de Desenvolvimento Integrado
Circuit™ ........................... ............ 114 Endereçamento Indireto, Registros INDF
MPLAB. 131 Programador de Dispositivo MPLAB PM3 .............................. 134
e FSR .......... 30 Fluxo de Instruções/Pipelining ..... .............................................
Emulador em Circuito MPLAB REAL ICE Sistema ................ 133 Linker de
15 Conjunto de Instruções
Objetos MPLINK/Bibliotecário de Objetos MPLIB ................ 132

ADDLW .................................................... ................... 119


ADDWF .................................... ......................................... 119 N
ANDLW ....... .................................................. ............ 119
Instrução NOP ............................................. ................ 126
ANDWF .................................................. .................................. 119
BCF ............... .................................................. .......... 120 O
BSF ......................................... ......................... 120 OPÇÃO Instrução ................................................. .......... 126 OPÇÃO
BTFSC ........... .................................................. .........120
Cadastro ........................................ ......................... 25 OPTION_REG
BTFSS ........................................ ..............................121
Registrar......... ......................... 25 Configurações do
CHAMADA .................. .................................................. ...... 121
oscilador ............ ....................................... 99 Temporizador de inicialização do
CLRF .......................................................... ......................... 121
oscilador (OST). ....................................... 103
CLRW .................. .................................................. .... 122
CLRWDT................................................. ......................... 122 P
COMF ......................... . ............................................. 122
Informações sobre a marcação da embalagem ......................... 163 Informações
DECF ... .................................................. ................... 122
sobre a embalagem . .................................................. ... 163 PCL e
DECFSZ .................................... ....................................... 123 IR PCLATH.............................. ................... 30
PARA ......... .................................................. ............ 123 Pilha .................................... ............................................. 30 Registro
INCF ........................................ ....................................... 124
PCON .................................................. .................. 29 Cadastro
INCFSZ .......... .................................................. ......... 124
PIE1 .............................. ........................................ 27 Funções dos pinos
IORLW ........................................ ..............................125
IORF ................. .................................................. ...125 RC6/TX/CK.............................................. .............. 73–89 RC7/RX/
MOVF............................................. .........................125 DT.............................. ......................... 73–89 Registro
MOVLW ....................... ......................................... 125
PIR1 .............. .................................................. ..... 28
MOVWF . .................................................. .........126 PORTA .......................................... .................................... 33
NOP .............................. .......................................... 126 PORTA ......... .................................................. ......... 38 Interrupção
OPÇÃO ..... .................................................. ..... ........126
PORTB .............................. ......................... 110 Controle de Energia/Registro
RETFIE ........................................ .................................. 126
de Status (PCON)........ .......... 104 Modo de Desligamento
RETLW ................... .................................................. 127
(Repouso) ....................... ......................... 112 Reinicialização ao ligar
RETORNO ................................................ ................... 127
(POR) ................. ......................... 103 Temporizador de inicialização
RLF .................................... ............................................. 127
(PWRT) ....... ......................................... 103 PR2
RRF.. .................................................. ......................... 128
Registrar .... .................................................. .......... 54, 60 Organização da
SONO .................................. .............................................128
Memória do Programa ....................... ......... 17 PWM (Módulo
SUBLW ... .................................................. ................ 128
CCP) ....................... ......................... 60 Diagrama de
SUBWF .............................. ......................... 129
Blocos ............... ............................................. 60 PWM
SWAPF ........... .................................................. ........ 129
Simplificado .. ......................................... 60 CCPR1H :Registros
TRIS ....................................... .................................. 129
CCPR1L......................... 60 Ciclo de
XORLW .............. .................................................. ..... 130
Trabalho ...... .................................................. .......... 61 Exemplo de
XORWF.............................................. ......................... 130 Soma do
Frequências/Resoluções ......................... 61
Conjunto de Instruções ar................................................. ..117 Interrupção Período .... .................................................. ................... 60 Configuração
INT .................................................. .........................110 Registro para operação PWM ................... .................. 61 Combinação de TMR2
INTCON......................... .......................................... 26 para PR2 .................................. ....................... 60

DS40044G-página 176 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
Q Entrada de relógio externo ............................................. .... 51
Relógio Q ............................................. ......................... 61 Temporização de Entrada de Relógio Externo ........................
52 Oscilador................................................. .........................
Dispositivos de Produção de Retorno Rápido (QTP) ........ .............. 9
53 Pré-escalonador .................................. ......................... 51,
R 53 Reinicializando o Temporizador1 ........... .........................................
Oscilador RC.............................................................. ......................... 53 Reinicializando os Registros do
101 Diagrama de Blocos do Modo Oscilador Timer1 . ....................................... 53 Gatilho de Evento
RC ....................... .................................... 101 Resposta do Especial (CCP) .... ......................... 59 Modo de Contador
Sincronizado ............ ......................... 51 Modo
Leitor ........... .................................................. 174 Registra
Temporizador ......... .......................................... 51
CCP1CON (Operação CCP) ....................................... 57 CMCON
TMR1H ..... .................................................. ................ 52
(Comparador Configuração)....................... 63 CONFIG
TMR1L................................ ......................................... 52 Diagrama
(Palavra de Configuração)................ ................... 98 EECON1
(Registro de Controle EEPROM 1) ................... 92 INTCON de Blocos do Temporizador2 ...... .................................................. ....
54 Pós-escalonador.................................................. .......................
(Controle de interrupção)......................... 26 Mapas
PIC16F627A .. .............................................. 18, 19 54 Registro PR2 ............................................. ......... 54 Pré-
PIC16F628A ............................................. 18, 19 OPTION_REG escalonador .............................. ......................... 54, 61 Módulo
Temporizador2............ ............................................. 54 Saída
(Opção) ................................... ... 25 PCON (Controle de
Potência) ........................................ ...... 29 PIE1 TMR2. .................................................. ............ 54 Interrupção
(Peripheral Interrupt Enable 1) ....................... 27 PIR1 de Partida de TMR2 para PR2 ........................ ..... 60
(Peripheral Interrupt Register 1) . .......... ............. 28 Diagramas de Temporização
Timer0 ........................................ .................................. 147
Situação .................................. ....................................... 24
Temporizador 1 ................................. .................................................. .
Controle do Temporizador T1CON1)...... ......................... 50
Controle T2CON Temporizador2)....... ......................................... 147 Receptor Assíncrono USART .................................. 83

55 Reinicializar......... .................................................. ......................... Transmissão Mestre Assíncrona USART .. ........... 80


101 Instrução RETFIE ....................... ......................... 126 Recepção Assíncrona USART .............................. 83 Recepção
Instrução RETLW ......... .................................................. 127 Síncrona USART . .............................. 89 Transmissão
Instrução de RETORNO ............................................. .......... 127 Síncrona USART ............... ............. 87 Diagramas de
Histórico de revisões ......................................... ......................... 171 temporização e especificações .............................. 144
Instrução RLF .......... ......................................... 127 Instrução Interrupção TMR0................................. ......................... 110 bits
RRF . .................................................. .............. 128 TMR1CS ............... .................................................. ....... 50 bits
TMR1ON ........................................ ......................... 50 bits
TMR2ON ............... .................................................. ....... 55
TOUTPS0 bit ........................................ .............................. 55
S TOUTPS1 bit ................. .................................................. ... 55
Módulo Serial Communication Interface (SCI), Consulte USART TOUTPS2 bits ............................................. ......................... 55
TOUTPS3 bits ....................... ......................................... 55 Instrução
Serialized Quick-Turnaround-Production Devices (SQTP)... 9
Instrução SLEEP........................ ......................... 128 Simulador de TRIS................................................. ................ 129
Software (MPLAB SIM)...... .............................. 133 Acionador de TRISA .............................. ......................................... 33
TRISB .................................................... ......................... 38
evento especial. Consulte Comparar recursos especiais da
CPU ............................................. ... 97 Registros de funções
especiais ............................................. ...... 20 Registro de
DENTRO

Status ......................................... .............................. 24 Instrução


SUBLW ....................... ........................................ 128 Instrução Transmissor Receptor Assíncrono Síncrono Universal
SUBWF ........ .................................................. . 129 Instrução (USART) ............................................. ......................... 73
SWAPF ............................................. .............. 129 Receptor Assíncrono Configurando a
Recepção......... ......................... 85 Detecção de
T Endereço do Modo Receptor
Bit T1CKPS0 ............................................. ......................... 50 bits Assíncrono................... .............................. 85 Diagrama
T1CKPS1 ........................ .............................................. 50 Registro de Blocos ............... ....................................... 85
Modo
T1CON .................................................. ............... 50 bits
T1OSCEN .............................. ......................... 50 T2CKPS0 Assíncrono USART................................................ .... 79
bit ......... .................................................. ............ 55 T2CKPS1 Receptor Assíncrono ............................................. ... 82
bit .............................. ................................... 55 Registro Recepção Assíncrona ............................................. 84
T2CON ........... .................................................. .... 55 Diagramas de Transmissão Assíncrona ....................................... 80
Blocos do Timer0 Transmissor Assíncrono...... ................................... 79 Gerador
de taxa de transmissão (BRG) ....... .............................. 75
Temporizador0/WDT .............................................. ........ Diagramas de Blocos
48 Entrada de Relógio Externo ........................................ .............. Transmite................................................. .......... 80
47 Interromper .................................... ....................................... USART Receber .................................. ............... 82 bits
47 Pré-escalonador........... .................................................. ......... BRGH .............................. .................................... 75
48 Atribuição do Pré-escalador de Comutação .................. 49 Amostragem......... ............................................. 76, 77, 78
Módulo Timer0 .. .................................................. ........ 47 Modo mestre síncrono......................................... 86 Recepção
Modo Contador Assíncrono do Temporizador ................................. mestre síncrona .. .............................. 88 Transmissão Mestre
52 Seleção do capacitor ............................................. ...... 53 Síncrona ............... ............. 86 Modo Escravo
Síncrono .................................. .......... 89 Recepção Síncrona
de Escravo .................................. 90

© 2009 Microchip Technology Inc. DS40044G-página 177


Machine Translated by Google

PIC16F627A/628A/648A
Transmissão Síncrona do Escravo ....................................... 89

DENTRO

Configuração de
referência de tensão ............................................. ................
69 Módulo de Referência de Tensão .............................. ........... 69

Dentro

Watchdog Timer (WDT) ............................................. ....... 111


Endereço WWW ........................................ ......................... 173
WWW, Suporte On-Line............ ....................................... 5

Instrução XORLW .................................................. ........... 130 Instrução


XORWF .................................. ....................... 130

DS40044G-página 178 © 2009 Microchip Technology Inc.


Machine Translated by Google

PIC16F627A/628A/648A
SISTEMA DE IDENTIFICAÇÃO DO 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) PIC16F627A - E/P 301 = Estendido
Variar Temp.,
Pacote PDIP, 20 MHz, limites normais de VDD ,
padrão QTP #301.
Dispositivo: PIC16F627A/628A/648A: Faixa VDD padrão 3,0 V a 5,5 V
b) PIC16LF627A - I/SO = Temp. Industrial,
Pacote SOIC, 20 MHz, VDD estendido
PIC16F627A/628A/648AT:VDD faixa 3,0V a 5,5V (fita e limites.
bobina)
PIC16LF627A/628A/648A: faixa VDD 2,0V a 5,5V
PIC16LF627A/628A/648AT:VDD faixa 2,0V a 5,5V (fita e
bobina)

Temperatura EU = -40°C a +85°C


Variar: E = -40°C a +125°C

Pacote: P = PDIP
SO = SOIC (Asa de Gaivota, corpo de 7,50 mm)
SS = SSOP (5,30 mm
ML = QFN (28 Leads)

© 2009 Microchip Technology Inc. DS40044G-página 179


Machine Translated by Google

VENDAS E SERVIÇOS MUNDIAIS

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-4080 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
support.microchip.com Fax: 852-2401-3431
Índia - Pune França paris
Endereço Web:
Austrália - Sidney Telefone: 91-20-2566-1512 Telefone: 33-1-69-53-63-20
www.microchip.com
Telefone: 61-2-9868-6733 Fax: 91-20-2566-1513 Fax: 33-1-69-30-90-79
Atlanta Fax: 61-2-9868-6755
Japão-Yokohama Alemanha - Munique
Duluth, GA
China - Pequim Telefone: 49-89-627-144-0
Telefone: 678-957-9614 Telefone: 81-45-471-6166
Telefone: 86-10-8528-2100 Fax: 49-89-627-144-44
Fax: 678-957-1455 Fax: 81-45-471-6122
Fax: 86-10-8528-2104
Itália - Milão
Boston Coreia - Daegu
China - Chengdu Telefone: 39-0331-742611
Westborough, MA Telefone: 82-53-744-4301
Tel: 86-28-8665-5511 Fax: 39-0331-466781
Telefone: 774-760-0087 Fax: 82-53-744-4302
Fax: 86-28-8665-7889 Holanda - Drunen
Fax: 774-760-0088 Coreia - Seul
China - RAE de Hong Kong Telefone: 82-2-554-7200 Telefone: 31-416-690399
Chicago
Telefone: 852-2401-1200 Fax: 82-2-558-5932 ou Fax: 31-416-690340
Itasca, IL
Telefone: 630-285-0071
Fax: 852-2401-3431 82-2-558-5934 Espanha - Madri
Fax: 630-285-0075 Telefone: 34-91-708-08-90
China - Nanquim Malásia - Kuala Lumpur
Telefone: 86-25-8473-2460 Fax: 34-91-708-08-91
Cleveland Telefone: 60-3-6201-9857
Fax: 86-25-8473-2470 Fax: 60-3-6201-9859 Reino Unido - Wokingham
Independência, OH
Telefone: 216-447-0464 Telefone: 44-118-921-5869
China - Qingdao Malásia - Penang
Fax: 216-447-0643 Telefone: 86-532-8502-7355 Fax: 44-118-921-5820
Telefone: 60-4-227-8870
Dallas Fax: 86-532-8502-7205 Fax: 60-4-227-4068
Addison, Texas
China - Xangai Filipinas - Manila
Telefone: 972-818-7423 Telefone: 86-21-5407-5533 Telefone: 63-2-634-9065
Fax: 972-818-2924 Fax: 86-21-5407-5066 Fax: 63-2-634-9069
Detroit
China - Shenyang Cingapura
Farmington Hills, MI Telefone: 86-24-2334-2829 Telefone: 65-6334-8870
Telefone: 248-538-2250 Fax: 86-24-2334-2393 Fax: 65-6334-8850
Fax: 248-538-2260
China - Shenzhen Taiwan - Hsin Chu
Kokomo Telefone: 86-755-8203-2660 Telefone: 886-3-6578-300
Kokomo, IN Fax: 86-755-8203-1760 Fax: 886-3-6578-370
Telefone: 765-864-8360
Fax: 765-864-8387 China - Wuhan
Taiwan - Kaohsiung
Telefone: 86-27-5980-5300 Telefone: 886-7-536-4818
Os anjos Fax: 86-27-5980-5118 Fax: 886-7-536-4803
Missão Velha, CA
Telefone: 949-462-9523
China - Xiamen Taiwan - Taipé
Fax: 949-462-9608 Telefone: 86-592-2388138 Telefone: 886-2-2500-6610
Fax: 86-592-2388130 Fax: 886-2-2508-0102
Santa Clara
China - Xian Tailândia - Banguecoque
Santa Clara, CA
Telefone: 408-961-6444 Telefone: 86-29-8833-7252 Telefone: 66-2-694-1351

Fax: 408-961-6445 Fax: 86-29-8833-7256 Fax: 66-2-694-1350

Toronto China - Zhuhai


Telefone: 86-756-3210040
Mississauga, Ontário,
Canadá Fax: 86-756-3210049
Telefone: 905-673-0699
Fax: 905-673-6509

26/03/09

DS40044G-página 180 © 2009 Microchip Technology Inc.

Você também pode gostar