Menu English Ukrainian Russo Início

Biblioteca técnica gratuita para amadores e profissionais Biblioteca técnica gratuita


ENCICLOPÉDIA DE RÁDIO ELETRÔNICA E ENGENHARIA ELÉTRICA
Biblioteca gratuita / Esquemas de dispositivos radioeletrônicos e elétricos

Microcontrolador PIC16C84. Pequena descrição. Enciclopédia de rádio eletrônica e engenharia elétrica

Biblioteca técnica gratuita

Enciclopédia de eletrônica de rádio e engenharia elétrica / Microcontroladores

Comentários do artigo Comentários do artigo

Esta descrição não pretende ser completa e contém vários erros e erros de digitação. A documentação completa pode ser obtida nos distribuidores Microchip, cujos endereços são indicados no final do arquivo.

Introdução

O PIC16C84 pertence à família de microcontroladores CMOS. Diferencia-se por possuir uma EEPROM interna de 1K x 14 bits para programas, dados de 8 bits e EEPROM de 64 bytes de memória de dados. Ao mesmo tempo, eles são caracterizados por baixo custo e alto desempenho. Os usuários familiarizados com a família PIC16C5X podem ver uma lista detalhada das diferenças entre os controladores novos e os produzidos anteriormente. Todas as instruções têm uma palavra (14 bits de largura) e são executadas em um ciclo (400 ns a 10 MHz), exceto as instruções de salto, que são executadas em dois ciclos (800 ns). O PIC16C84 tem uma interrupção de quatro fontes e uma pilha de hardware de oito níveis.

Os periféricos incluem um temporizador/contador de 8 bits com um pré-escalador programável de 8 bits (na verdade um temporizador de 16 bits) e 13 linhas de E/S bidirecionais. A alta capacidade de carga (dissipador máximo de 25mA, dissipador máximo de 20mA) das linhas de E/S simplifica os drivers externos e, portanto, reduz o custo geral do sistema. O desenvolvimento baseado em controladores PIC16C84 é suportado por montador, simulador de software, emulador de circuito (somente Microchip) e programador.

A série PIC16C84 é adequada para uma ampla gama de aplicações, desde circuitos de controle de motores elétricos e automotivos de alta velocidade até transceptores remotos econômicos, instrumentos de indicação e processadores de comunicação. A presença de ROM permite ajustar os parâmetros nos programas aplicativos (códigos do transmissor, rotações do motor, frequências do receptor, etc.).

Os tamanhos de embalagem pequenos, tanto convencionais quanto de montagem em superfície, tornam esta série de microcontroladores adequada para aplicações portáteis. O baixo preço, economia, velocidade, facilidade de uso e flexibilidade de E/S tornam o PIC16C84 atraente mesmo em áreas onde os microcontroladores não foram usados ​​antes. Por exemplo, temporizadores, substituindo a lógica rígida em grandes sistemas, coprocessadores.

Deve-se acrescentar que o programador EEPROM integrado do PIC16C84 facilita a personalização do programa e dos dados para requisitos específicos, mesmo após a conclusão da montagem e dos testes. Essa possibilidade pode ser usada tanto para replicação quanto para inserir dados de calibração após o teste final.

Visão geral das características

- apenas 35 comandos simples;

- todos os comandos são executados em um ciclo (400ns), exceto os comandos de transição -2 ciclos;

- frequência de operação 0 Hz ... 10 MHz (mínimo 400 ns ciclo de comando)

- comandos de 14 bits;

- dados de 8 bits;

- 1024 x 14 memória de programa eletricamente reprogramável em um chip (EEPROM);

- 36 x 8 registradores de uso geral;

- 15 registradores especiais de hardware SFR;

- Memória EEPROM eletricamente reprogramável 64 x 8 para dados;

- pilha de hardware de oito níveis;

- endereçamento direto, indireto e relativo de dados e comandos;

- quatro fontes de interrupção:

. entrada externa INT

. Estouro do temporizador RTCC

. interrupção na mudança de sinais nas linhas da porta B

. após a conclusão da gravação de dados na memória EEPROM

Periféricos e E/S

- 13 linhas de E/S com configurações individuais;

- Corrente do dissipador / dissipador para acionar os LEDs

. corrente máxima de entrada - 25 mA

. corrente máxima de fluxo - 20 mA

- Temporizador/contador RTCC de 8 bits com prescaler programável de 8 bits;

- reset automático quando ligado;

- o temporizador de inclusão no reset;

- temporizador de partida do gerador;

- Temporizador Watchdog WDT com seu próprio gerador embutido proporcionando maior confiabilidade;

- Bit de segurança EEPROM para proteger o código;

- modo SLEEP econômico;

- bits selecionáveis ​​pelo usuário para definir o modo de acionamento do oscilador embutido:

- Gerador RC: RC

- ressonador de quartzo convencional: XT

- ressonador de quartzo de alta frequência: HS

- cristal econômico de baixa frequência: LP

- programas e dados de memória EEPROM do dispositivo de programação embutido; apenas duas pernas são usadas.

Tecnologia CMOS

- tecnologia CMOS EPROM econômica de alta velocidade;

- princípio estático na arquitetura;

- ampla gama de tensões e temperaturas de alimentação:

. comercial: 2.0 ... 6.0 V, 0...+70C

. industrial: 2.0 ... 6.0 V, -40...+70С

. automotivo: 2.0 ... 6.0 V, -40...+125С

- baixo consumo

. 3 mA típico para 5V, 4MHz

. 50 µA típico para 2V, 32kHz

. 26µA típico para o modo SLEEP a 2V.

Diagrama estrutural PIC16C84

Microcontrolador PIC16C84. Pequena descrição

A arquitetura é baseada no conceito de barramentos e áreas de memória separadas para dados e comandos (arquitetura Harvard). O barramento de dados e a memória de dados (RAM) têm 8 bits de largura, e o barramento de programa e a memória de programa (ROM) têm 14 bits de largura. Esse conceito fornece um conjunto de instruções simples, porém poderoso, projetado para que operações de bits, bytes e registradores operem em alta velocidade e se sobreponham na busca de instruções e nos tempos de ciclo de execução. A largura da memória de programa de 14 bits permite que uma instrução de 14 bits seja buscada em um ciclo. O pipeline de dois estágios fornece busca e execução simultâneas de uma instrução.Todas as instruções são executadas em um ciclo, excluindo as instruções de salto. O PIC16C84 possui memória de programa de 1K x 14 localizada no chip. O programa executável só pode residir na ROM interna.

Diferenças entre PIC16C84 e PIC16C5x

1. O comprimento do comando aumentou para 14 bits. Isso permite que você organize ROM e RAM com um tamanho de página maior: (2K bytes em vez de 512 bytes), (128 bytes em vez de 32 bytes), respectivamente.

2. O Program Counter High Register (PCLATH) controla a mudança de página na memória do programa. Os bits de seleção de página PA2, PA1, PA0, que foram usados ​​para isso no cristal PIC16C5X, são removidos do registrador STATUS.

3. A paginação de memória e o registro de STATUS foram modificados.

4. Adicionados quatro novos comandos: RETURN, RETFIE, ADDLW, SUBLW. Os dois comandos TRIS e OPTION não são mais necessários, mas são mantidos para compatibilidade de software com o PIC16C5X.

5. Os registradores OPTION e TRIS são endereçáveis ​​por número.

6. Adicionada a capacidade de trabalhar em interrupções. Vetor=0004h.

7. O tamanho da pilha aumentou para oito níveis.

8. Endereço de reinicialização de inicialização alterado para 0000h.

9. São reconhecidos cinco tipos diferentes de reinicializações (saídas do modo SLEEP). Inicialização do registro alterada. Eles são definidos de forma diferente, dependendo do tipo de reinicialização.

10. Adicionado saída do modo SLEEP via interrupção.

11. Para uma inicialização mais confiável, os seguintes atrasos de hardware foram adicionados: temporizador de inicialização (OST) e temporizador de inicialização (PWRT). Esses temporizadores podem ser usados ​​seletivamente para evitar atrasos desnecessários, tanto ao ligar quanto ao sair do modo SLEEP.

12. A porta B tem cargas ativas e uma interrupção quando os sinais de entrada mudam.

13. A perna RTCC está alinhada com a perna de bombordo (RA4).

14. O endereço de registro 07h (porta C) não existe e não é um registro de uso geral.

15. O registrador FSR (f4), que armazena o ponteiro com endereçamento indireto, passou a ter oito bits de largura.

16. Implementada máquina de programação EEPROM embutida. O usuário pode programar o PIC16C84 usando apenas cinco pinos: Vdd, Vss, /MCLR/Vpp, RB6(clock), RB7(data in/out).

Transição de PIC16C5x para PIC16C84

Para converter o código escrito para PIC16C5X em código para PIC16C84, o usuário deve realizar os seguintes passos:

1. Substitua as operações de seleção de páginas de memória de programa (bits PA2, PA1, PA0) pelos comandos CALL, GOTO.

2. Revise todas as operações de salto computadas (gravar no PC ou adicionar ao PC, etc.) e certifique-se de que os bits de página também estejam configurados corretamente para o novo chip.

3. Elimine a troca de página de memória de dados. Redefina variáveis ​​e realoque memória para elas.

4. Verifique a entrada nos registros STATUS, OPTION, FSR, porque eles são ligeiramente modificados.

5. Altere o vetor de reinicialização ao ligar para 0000h.

6. Observe que o endereço 07h é um endereço de memória de dados inexistente.

Tipos e versões de gabinete

Designações de pacote para cristais PIC16C8x. O tipo de embalagem é indicado na marcação ao solicitar microcircuitos. Os casos vêm com apenas 18 pinos. PDIP - Caixa plástica simples de duas fileiras. Usado para versões OTP EPROM de cristais. SOIC - Pacote de Montagem em Superfície DIP Pequeno

Os designs de chips vêm em três tipos: comercial, industrial e automotivo. Sua principal diferença está na faixa de temperatura e na tensão de operação.

Execução comercial

Temperatura de operação 0 ... +70 C

Tensão de operação 3.0 ... 5.5 V

Versão industrial

Temperatura de operação -40 .... +85 C

Tensão de operação 3.0 ... 5.5 V

Versão do veículo

Temperatura de operação -40 ... +125 C

Tensão de operação 3.0 ... 5.5 V

Marcação ao fazer o pedido

A designação de microcircuitos consiste nos seguintes campos:

<Número da empresa>-<Frequência do gerador><Faixa de temperatura>/<Corpo><Nota>

<número da empresa pode ser>: PIC16C84 - Faixa Vdd 4...6 V

PIC16LC84 Faixa Vdd 2...6 V

<Frequência do originador>: 04 ---> 4 mHz

10 ---> 10mHz

A faixa de temperatura é:

- de 0С a +70С

I de -40С a +85С

E de -40С a +125С

O corpo está marcado:

P - DIP de plástico regular

SO-300 mil SOIC

EXEMPLOS:

PIC16C84-04/Pxxx 4 mHz, versão comercial em pacote PDIP, faixa normal Vdd, máscara ROM com programa xxx

PIC16LC84-04I/SO 4 mHz, versão industrial, faixa de potência estendida, case=SOIC

PIC16C84-10E/P versão do carro, 10 mHz, PDIP, tip. Comida

Layout das pernas

Para a função dos pinos, consulte "Designações dos pinos" ou o diagrama de blocos. Para tipos de gabinetes PDIP, etc., consulte Gabinetes.

Microcontrolador PIC16C84. Pequena descrição

O objetivo das pernas

Designações de pernas e sua finalidade funcional.

Microcontrolador PIC16C84. Pequena descrição

Valores máximos de parâmetros elétricos

Parâmetros fora desses limites podem danificar o chip. Operar o cristal em seus valores limite por um longo tempo afetará sua confiabilidade.

Microcontrolador PIC16C84. Pequena descrição

Observações:

1. A dissipação total de energia não deve exceder 800mW para cada gabinete. A potência dissipada é calculada usando a seguinte fórmula:

Pdis = Vdd(Idd - Soma(Ioh)) + Soma ((Vdd - Voh)Ioh) + Soma (Vol Iol)

2. A queda da tensão no pino /MCLR abaixo de Vss(terra) causa correntes altas, acima de 80mA, e pode danificar esta linha. Portanto, recomendamos que você aplique sinais ao pino /MCLR através de um resistor de terminação de 50-100 ohms.

Visão geral de registradores e RAM

A área de RAM é organizada em 128 x 8. As células de RAM podem ser endereçadas direta ou indiretamente através do registrador de ponteiro FSR (04h). Isso também se aplica à EEPROM da memória de dados constantes.

Microcontrolador PIC16C84. Pequena descrição

O registrador de status (03h) contém bits de seleção de página que permitem o acesso a quatro páginas de futuras revisões deste chip. No entanto, para o PIC16C84, a memória de dados só existe até o endereço 02Fh. Os primeiros 12 endereços são usados ​​para colocar registradores de propósito especial.

Registradores com endereços 0Ch-2Fh podem ser usados ​​como registradores de uso geral, que são RAM estáticas. Alguns registradores de propósito especial estão duplicados em ambas as páginas e alguns estão localizados separadamente na página 1. Quando a página 1 é configurada, o acesso aos endereços 8Ch-AFh efetivamente endereça a página 0. Os registros podem ser endereçados direta ou indiretamente. Em ambos os casos, até 512 registros podem ser endereçados.

Endereçamento direto

Quando o endereçamento direto de 9 bits é executado, os 7 bits inferiores são tomados como o endereço direto do opcode e os dois bits de ponteiro de página (RP1,RP0) do registrador de status (03h).

Microcontrolador PIC16C84. Pequena descrição

endereçamento indireto

f4 - Ponteiro de endereço indireto

Qualquer instrução que utilize f0 (endereço 00) como registrador acessa um ponteiro que está armazenado no FSR (04h). Ler o próprio f0 indiretamente resultará em 00h. Escrever no registrador f0 será implicitamente parecido com Nop, mas os bits de status podem ser alterados. O endereço de 9 bits necessário é formado pela combinação do conteúdo do registrador FSR de 8 bits e o bit IRP do registrador de status.

Microcontrolador PIC16C84. Pequena descrição

Observe que alguns registradores de funções especiais estão localizados na página 1. Para endereçá-los, você deve definir adicionalmente o bit RP0 no registrador de status para um.

Temporizador/contador RTCC

O diagrama de blocos de habilitação de RTCC é mostrado abaixo. Ele contém o elemento "MUX" - este é um interruptor eletrônico.

Microcontrolador PIC16C84. Pequena descrição

O modo temporizador é selecionado redefinindo o bit RTS no registrador OPTION para zero. No modo temporizador, o RTCC será incrementado a partir da fonte de frequência INTERNA - a cada ciclo de comando (sem prescaler).

Depois de escrever as informações no RTCC, ele começará a ser incrementado após dois ciclos de instrução. Isso acontece com todas as instruções que escrevem ou lêem-modificam-escrevem f1 (por exemplo, MOVF f1, CLRF f1). Isso pode ser evitado escrevendo um valor ajustado para RTCC. Se o RTCC precisar ser verificado para zero sem parar a contagem, use a instrução MOVF f1,W.

O modo do contador é selecionado definindo o bit RTS no registrador OPTION para um. Neste modo, o RTCC será incrementado por uma borda ascendente ou descendente no pino RA4/RTCC dos eventos EXT. A direção da borda é determinada pelo bit de controle RTE no registrador OPTION. Com RTE=0, uma borda de subida será selecionada. O limitador pode ser usado com temporizador RTCC ou Watchdog. A opção de conexão do divisor é controlada pelo bit PSA no registrador OPTION. Com PSA=0, o divisor será conectado ao RTCC. O conteúdo do divisor não está disponível para o programa. Fator de divisão - programável. Uma interrupção RTCC é gerada quando o temporizador/contador RTCC estoura na transição de FFH para 00h. O bit de solicitação RTIF no registrador INTCON<2> é então definido. Esta interrupção pode ser mascarada pelo bit RTIE no registrador INTCON<5>. O bit de solicitação RTIF deve ser limpo pelo software ao lidar com a interrupção. Uma interrupção RTCC não pode despertar o processador do SLEEP porque o temporizador não funciona neste modo.

Problemas de temporizador

Podem surgir problemas ao contar sinais externos. Esses sinais são controlados por um sinal de clock interno, veja o diagrama SYNC. Há algum atraso entre a borda de subida do sinal de entrada e o tempo de incremento do RTCC. Gating é feito após o limitador. A saída do limitador é pesquisada duas vezes durante cada ciclo de comando para determinar as bordas de subida e descida do sinal de entrada. Portanto, o sinal Psout deve ser alto e baixo por pelo menos dois períodos de clock.

Quando o limitador não é usado, Psout repete o sinal de entrada, então os requisitos para isso são os seguintes:

Trth= RTCC tempo alto >= 2tosc+20ns

Trtl= tempo baixo RTCC >= 2tosc+20ns.

Quando o limitador é usado, a entrada RTCC é dividida pelo número definido no contador do divisor. O sinal após o limitador é sempre simétrico.

Tempo de Psout alto = Tempo de Psout baixo = NTrt/2,

onde Trt é o período de entrada RTCC,

N é o valor do contador divisor (2,4...256).

Neste caso, os requisitos para o sinal de entrada podem ser expressos da seguinte forma:

NTrt/2 >= 2tosc +20ns ou

Trt >= (4tosc + 40ns)/N.

Quando um limitador é usado, os níveis de sinal baixo e alto em sua entrada devem ser de pelo menos 10 ns. Assim, os requisitos gerais para um sinal externo quando um divisor é conectado são os seguintes:

Trt= período RTCC >= (4tosc + 40ns)/N

Trth = tempo alto RTCC >= 10ns

Trtl = tempo baixo RTCC >= 10ns.

Como a saída do limitador é sincronizada pelo relógio interno, há um pequeno atraso entre a borda de subida do relógio externo e o tempo real de incremento do RTCC. Este atraso está entre 3tosc e 7tosc. Assim, a medição do intervalo entre eventos será realizada com uma precisão de 4tosc (+-400ns em quartzo de 10 MHz).

Registro de status

O registrador (f3) contém os sinalizadores aritméticos da ALU, o estado de reinicialização do controlador e os bits de seleção de página para a memória de dados. (f3) está disponível para qualquer comando como qualquer outro registrador. No entanto, os bits TO e PD são definidos por hardware e não podem ser gravados em um status por software. Isso deve ser lembrado ao executar um comando usando o registrador de status. Por exemplo, o comando CLRF f3 definirá todos os bits para 1, exceto os bits TO e PD, e então definirá o bit Z=3. Após executar este comando, o registrador de estado pode não ter valor zero (devido aos bits TO e PD) f000=100??XNUMX. Portanto, é recomendado usar apenas comandos de configuração de bits BCF, BSF, MOVWF para alterar o registrador de status, que não altera o restante dos bits de status. O efeito de todos os comandos nos bits de status pode ser visto na "Descrição dos comandos".

Sinalizadores de status do software

A localização dos sinalizadores no registrador de status é a seguinte:

Microcontrolador PIC16C84. Pequena descrição

Para comandos ADDWF e SUBWF. Este bit é definido se a operação de bit mais significativa resultar em um transporte. A subtração é realizada adicionando o código adicional do segundo operando. Ao executar instruções de deslocamento, este bit é sempre carregado do LSB ou MSB da fonte que está sendo deslocada.

Microcontrolador PIC16C84. Pequena descrição

Para comandos ADDWF e SUBWF. Este bit é definido se a operação do quarto bit resultar em um transporte. O mecanismo para definir o bit de transporte decimal "DC" é o mesmo, exceto que o transporte do quarto bit é monitorado.

Z - Sinalizador de resultado zero:

Defina se o resultado de uma operação aritmética ou lógica for zero.

PD - Power Down (modo de armazenamento de dados):

Defina como "1" na inicialização ou comando CLRWDT. Redefinido para "0" pelo comando SLEEP.

TO - Tempo limite. Sinalizador de ativação do temporizador do watchdog:

Defina como "1" ao ligar e comandos CLRWDT, SLEEP. Redefine para "0" quando o temporizador WDT expira.

RP1, RP0 - Bits de seleção de página de memória de dados para endereçamento direto:

RP1, RP0:

00= Página 0 (00h-7Fh)

01= Página 1 (80h-FFh)

10= Página 2 (100h-17Fh)

11= Página 3 (180h-1FFh)

Cada página contém 128 bytes. O chip PIC16C84 usa apenas RP0. Neste chip, RP1 pode ser usado simplesmente como um bit de leitura/gravação de uso geral. No entanto, deve ser lembrado que em desenvolvimentos posteriores ele será usado.

IRP - Bit de seleção de página de memória de dados para endereçamento indireto:

IRP0:

0= Páginas 0,1 (00h-FFh)

1= Página 2,3 (100h-1FFh)

Este bit no cristal PIC16C84 não faz sentido usar. Portanto, ele pode ser usado como um bit de leitura/gravação de uso geral. No entanto, devemos lembrar que em desenvolvimentos posteriores ele será usado.

Sinalizadores de status de hardware

Bits de status de hardware TO (Time Out) e PD (Power Down). O estado dos bits do registrador de status "TO" e "PD" pode determinar o que causou o "Reset":

- simplesmente ligando a energia,

- ativação do temporizador watchdog,

- sair do modo de suspensão como resultado do acionamento do temporizador do watchdog,

- por sinal externo /MCLR.

Apenas os seguintes eventos podem afetar o estado desses bits:

Microcontrolador PIC16C84. Pequena descrição

Nota: Os bits TO e PD permanecem atuais até que ocorra um dos eventos listados na tabela. "0" - Um pulso de baixo nível na entrada do cristal /MCLR não altera o estado dos bits TO e PD.

Organização da ROM integrada

O contador de programa no PIC16C84 tem 13 bits de largura e pode endereçar 8Kx14 bits de memória de programa. No entanto, fisicamente há apenas 1Kx14 de memória no chip (endereços 0000h-03FFh). Endereçar endereços acima de 3FFh é, na verdade, endereçar o mesmo primeiro kilobyte. O vetor de reset está localizado no endereço 0000h, o vetor de interrupção está localizado no endereço 0004h.

A EEPROM do PIC16C84 é projetada para um número limitado de ciclos de apagamento/gravação. Para escrever na memória de programa, o cristal deve ser colocado em um modo especial no qual a tensão de programação Vprg é aplicada ao pino /MCLR, e a fonte de alimentação Vdd deve estar na faixa de 4.5V ... 5.5V. O PIC16C84 não é adequado para aplicações onde o programa é modificado com frequência. A escrita na memória do programa é feita pouco a pouco, usando apenas dois pinos sequencialmente.

Endereçamento de PC e ROM

(f2). Contador de programa

A largura do contador de programa é de 13 bits. O Program Counter Low Byte (PCL) é de leitura/gravação e está localizado no registrador 02h. O byte alto do contador de programa (PCH) não pode ser lido ou escrito diretamente. O byte alto do contador de programa pode ser escrito via registrador PCLATH, cujo endereço é 0Ah. Dependendo se um novo valor é carregado no contador de programa durante as instruções CALL, GOTO ou se o byte baixo do contador de programa (PCL) está sendo escrito, os bits altos do contador de programa são carregados de PCLATH de maneiras diferentes, como mostrado na figura.

Caso de comandos GOTO, CALL

Microcontrolador PIC16C84. Pequena descrição

Pilha e Devoluções de Sub-rotinas

O cristal PIC16C84 possui uma pilha de hardware de 13 bits de oito níveis. A área da pilha não pertence à área do programa nem à área de dados, e o ponteiro da pilha não é acessível ao usuário. O valor atual do contador de programa é colocado na pilha quando uma instrução CALL é executada ou uma interrupção é processada. Quando uma instrução RETLW, RETFIE ou RETURN é executada a partir de uma sub-rotina), o conteúdo da pilha é exibido no contador de programa. O registrador PCLATH (0Ah) não é alterado por operações de pilha.

Dados em EEPROM

Memória de dados EEPROM não volátil.

A memória de dados EEPROM permite ler e escrever um byte de informação. Quando um byte é gravado, o valor anterior é apagado automaticamente e os novos dados são gravados (apagar antes de gravar). Todas essas operações são executadas pelo gravador EEPROM integrado. O conteúdo desta memória é retido quando a alimentação é desligada. O cristal PIC16C84 possui uma memória de dados EEPROM de 64x8 bits que permite escrever e ler durante a operação normal (em toda a faixa de tensão de alimentação). Esta memória não pertence à área de registro de RAM. Ele é acessado através de dois registradores: EEDATA <08h>, que contém dados de oito bits para leitura/escrita e EEADR <09h>, que contém o endereço da célula que está sendo acessada. Adicionalmente, existem dois registradores de controle: EECON1 <88h> e EECON2 <89h>.

Ao ler os dados da memória EEPROM, escreva o endereço desejado no registrador EEADR e então defina o bit RD EECON1<0> para um. Os dados aparecerão no próximo ciclo de comando no registro EEDATA e poderão ser lidos. Os dados no registrador EEDATA são travados.

Ao gravar na memória EEPROM, você deve primeiro gravar o endereço necessário no registrador EEADR e os dados no registrador EEDATA. Em seguida, execute uma sequência especial de comandos que produz gravação direta:

movlv 55h

movwf EECON2

movlv AH

movwf EECON2

bsf EECON1,WR ;set WR bit, inicia a gravação

Durante a execução desta seção do programa, todas as interrupções devem ser desabilitadas para que o diagrama de temporização seja executado com precisão. Tempo de gravação -

aproximadamente 10ms. O tempo real de gravação varia dependendo da voltagem, temperatura e propriedades individuais do cristal. No final da gravação, o bit WR é automaticamente definido como zero e o sinalizador de conclusão de gravação EEIF, que também é uma solicitação de interrupção, é definido.

Para evitar gravações acidentais na memória de dados, um bit WREN especial é fornecido no registro EECON1. Recomenda-se manter o bit WREN desligado, exceto quando a memória de dados precisar ser atualizada. Além disso, os segmentos de código que definem o bit WREN e aqueles que executam a gravação devem ser armazenados em endereços diferentes para evitar a execução acidental de ambos quando o programa trava.

Gerenciamento de EEPROM

Registros de controle para EEPROM

Microcontrolador PIC16C84. Pequena descrição

Registros EECON1 e EECON2

O registrador EECON1 (endereço 88h) é um registrador de controle de cinco bits. Os cinco bits inferiores estão fisicamente presentes, enquanto os três bits superiores são sempre lidos como '0'.

Registrar EECON1 Endereço 88h

Redefinir ao ligar - 0000X000

Microcontrolador PIC16C84. Pequena descrição

Os bits de controle RD e WR acionam leituras e gravações, respectivamente. Eles só podem ser definidos programaticamente. Apagado pelo hardware quando as operações de leitura/gravação são concluídas. Desabilitar a reinicialização do software do bit WR evita que a gravação termine prematuramente.

RD - Leia bit.

RD =1 : Inicia a leitura da memória de dados EEPROM. A leitura leva um ciclo. Instalado por software. Reinicialização por hardware.

WR - Escrever bit.

WR =1 : Inicia a escrita na memória de dados EEPROM.

Instalado por software. Reinicialização por hardware.

WREN - Bit de habilitação de escrita na EEPROM.

WREN = 1: Gravação habilitada.

WREN = 0: Gravação desabilitada.

Depois que a energia é ligada, WREN é redefinido para zero.

O sinalizador de erro WRERR é definido quando o processo de gravação é interrompido pelo sinal de reinicialização /MCLR ou pelo sinal de reinicialização do temporizador WDT. Recomendamos que você verifique este sinalizador WRERR e, se necessário, sobrescreva os dados cujos dados e endereço estão armazenados nos registros EEDATA e EEADR.

WRERR - Sinalizador de erro de gravação.

WRERR = 1: O sinalizador é definido quando uma operação de gravação é abortada pelo sinal de reinicialização /MCLR (durante o modo normal ou modo SLEEP) ou pelo sinal de reinicialização WDT durante o modo normal.

O sinalizador EEIF é definido quando o autômato incorporado conclui a gravação na memória de dados. Deve ser redefinido por software.

EEIF - Sinalizador de conclusão de gravação.

EEIF = 1: O sinalizador é definido quando a gravação é concluída. O bit de habilitação de interrupção correspondente é EEIE no registrador INTCON.

Organização de interrupções

As interrupções no PIC16C84 podem vir de quatro fontes:

- interrupção externa do pino RB0/INT,

- Interrupção de estouro do contador/temporizador RTCC,

- interrupção no final da gravação de dados na EEPROM

- interromper a alteração dos sinais nos pinos da porta RB<7:4>.

Todas as interrupções têm o mesmo vetor/endereço - 0004h. No entanto, no registrador de controle de interrupção INTCON está escrito: - de qual fonte o pedido de interrupção foi recebido. Escrito pelo bit-flag correspondente. Tal interrupção pode ser mascarada individualmente ou por um bit comum. A única exceção é a interrupção de final de gravação da EEPROM. Este sinalizador está em outro registrador EECON1.

O bit GIE General Interrupt Enable/Disable (INTCON <7>) habilita (if=1) todas as interrupções individualmente desmascaradas ou as desabilita (if=0). Cada interrupção pode ser adicionalmente habilitada/desabilitada configurando/limpando o bit correspondente no registro INTCON. O bit GIE é definido como zero na reinicialização. Quando uma interrupção é processada, o bit GIE é definido como zero para desabilitar outras interrupções, o endereço de retorno é colocado na pilha e o endereço 0004h é carregado no contador do programa. O tempo de resposta de interrupção para eventos externos, como uma interrupção do pino INT ou da porta B, é de aproximadamente cinco ciclos. Este é um ciclo a menos do que para eventos internos, como uma interrupção de estouro do temporizador RTCC. O tempo de reação é sempre o mesmo. Em um manipulador de interrupção, a origem da interrupção pode ser determinada pelo bit correspondente no registrador de flags. Este bit de flag deve ser resetado por software dentro de uma sub-rotina. Os sinalizadores de solicitação de interrupção são independentes dos bits de máscara correspondentes e do bit de máscara geral GIE.

A instrução de retorno de interrupção RETFIE termina a rotina de interrupção e ativa o bit GIE para habilitar as interrupções novamente.

Cadastro de consultas e máscaras

Registro de controle de interrupção e seus bits

Microcontrolador PIC16C84. Pequena descrição

Endereço: 0h

Valor na reinicialização = 0000 000?

RBIF - Altera flag de interrupção na porta RB.

O sinalizador é definido quando o sinal na entrada RB<7:4> muda.

O sinalizador é redefinido programaticamente.

INTF - sinalizador de interrupção INT.

O sinalizador é definido quando o pino INT recebe um sinal de uma fonte de interrupção externa. Redefinido por software.

RTIF - Sinalizador de interrupção de estouro de RTCC.

O sinalizador é definido quando o RTCC transborda.

O sinalizador é redefinido programaticamente.

RBIE - Bit de habilitação/desabilitação de interrupção RBIF.

RBIE = 0: desabilita a interrupção RBIE

RBIE = 1: habilita interrupção RBIE

INTE - Bit habilita/desabilita interrupção INT.

INTE = 0: desabilita a interrupção INT

INTE = 1: habilita interrupção INT

RTIE Bit de habilitação/desabilitação de interrupção RTIF.

RTIE = 0: desabilita a interrupção RTIE

RTIE = 1: habilita interrupção RTIE

EEIE - Bit de habilitação/desabilitação de interrupção de gravação de EEPROM.

EEIE = 0: desabilita a interrupção EEIF

EEIE = 1: habilita interrupção EEIF

GIE Todos os bits de habilitação/desabilitação de interrupção.

GIE = ​​0: desabilita interrupções

GIE = ​​1: habilita interrupções

Ele é redefinido automaticamente nas seguintes circunstâncias:

- ligar.

- por sinal externo /MCLR durante a operação normal.

- por sinal externo /MCLR em modo SLEEP.

- no final do atraso do temporizador WDT durante a operação normal.

- no final do atraso do temporizador WDT no modo SLEEP.

Interrupção externa

Uma interrupção externa no pino RB0/INT é acionada em uma borda ascendente (se bit6 INTEDG=1 no registrador OPTION) ou em uma borda descendente (se INTEDG=0). Quando uma borda de subida é detectada no pino INT, o bit de solicitação INTF é definido (INTCON <1>). Esta interrupção pode ser mascarada definindo o bit de controle INTE para zero (INTCON <4>). O bit de solicitação INTF deve ser limpo pelo programa de interrupção antes que a interrupção seja habilitada novamente. Uma interrupção INT pode despertar o processador do modo SLEEP se o bit INTE foi definido como um antes de entrar neste modo.

O estado do bit GIE também determina se o processador irá pular para a rotina de interrupção após sair do modo SLEEP.

Interrupção RTCC

Um estouro do contador RTCC (FFh->00h) definirá o bit de solicitação RTIF (INTCON<2>). Esta interrupção pode ser habilitada/desabilitada configurando/limpando o bit de máscara RTIE (INTCON<5>). A redefinição da solicitação RTIF depende do programa de processamento.

Interrupção da porta RB

Qualquer alteração nos sinais nas quatro entradas da porta RB<7:4> definirá o bit RBIF (INTCON<0>). Esta interrupção pode ser habilitada/desabilitada configurando/limpando o bit de máscara RBIE (INTCON<3>). A redefinição da solicitação RBIF depende do programa de processamento.

Interrupção de EEPROM

O sinalizador de solicitação de interrupção de gravação da EEPROM, EEIF (EECON1<4>), é definido quando a gravação automática de dados na EEPROM é concluída. Esta interrupção pode ser mascarada redefinindo o bit EEIE (INTCON<6>). A redefinição da solicitação EEIF depende do manipulador.

Visão geral dos registros/portas

O cristal tem duas portas: uma porta RA de 5 bits e uma porta RB de 8 bits com configuração individual bit a bit para entrada ou saída.

Diagrama de Linha da Porta A

A porta A é uma porta de 5 bits de largura, correspondente aos pinos do chip RA<4:0>. As linhas RA<3:0> são bidirecionais e a linha RA4 é uma saída de dreno aberto. O endereço de registro da porta A é 05h. O registro de controle TRISA da Porta A está localizado na primeira página de registros no endereço 85h. TRISA<4:0> é um registrador de 5 bits. Se um bit no registrador de controle TRISA for definido como um, a linha correspondente será definida como entrada. Zero muda a linha para saída e simultaneamente envia o conteúdo do registrador de latch correspondente para ela. Abaixo está o diagrama de portas RA0..RA3

Microcontrolador PIC16C84. Pequena descrição
Microcontrolador PIC16C84. Pequena descrição

Microcontrolador PIC16C84. Pequena descrição

Diagrama de Linha da Porta B

A porta B é uma porta bidirecional, com oito bits de largura (endereço de registro 06h). Pertencente à porta B, o registrador de controle TRISB está localizado na primeira página dos registradores no endereço 86h. Se o bit de controle TRISB do registrador for definido como um, a linha correspondente será definida como entrada. Zero muda a linha para saída e simultaneamente envia o conteúdo do registrador de latch correspondente para ela. Cada pino da porta B tem uma pequena carga resistiva (cerca de 100µA) na linha de alimentação. É desabilitado automaticamente se este pino for programado como saída. Além disso, o bit de controle RBPU OPTION<7> pode desligar (RBPU=1) todas as cargas. Uma reinicialização na inicialização também desliga todas as cargas.

As quatro linhas da porta B (RB<7:4>) têm a capacidade de causar uma interrupção quando o valor do sinal muda em qualquer uma delas. Se essas linhas estiverem configuradas para entrada, elas serão pesquisadas e travadas no loop de leitura Q1. O novo valor do sinal de entrada é comparado com o valor antigo em cada ciclo de instrução. Se o valor do sinal na perna e na trava não corresponder, é gerado um nível alto. As saídas dos detectores de "incompatibilidade" RB4, RB5, RB6, RB7 são ORed e geram uma interrupção RBIF (armazenada em INTCON<0>). Qualquer linha configurada como saída não participa desta comparação. Uma interrupção pode despertar o cristal do modo SLEEP. No manipulador de interrupção, redefina a solicitação de interrupção de uma das seguintes maneiras:

1) Desabilite as interrupções limpando o bit RBIE INTCON<3>.

2) Leia a porta B. Isso encerrará o estado de comparação.

3) Limpe o bit RBIF INTCON<0>.

Interrupções de incompatibilidade e cargas ativas internas configuráveis ​​por software nessas quatro linhas podem fornecer uma interface simples, como um teclado, com ativação por pressionamento de tecla a partir do modo SLEEP. A perna RB0 é combinada com a entrada de interrupção externa INT.

Nome

Microcontrolador PIC16C84. Pequena descrição

Problemas de porta

Problemas ao organizar portas bidirecionais

-Alguns comandos são executados internamente como leitura+escrita. Por exemplo, as instruções BCF e BSF lêem a porta inteira, modificam um bit e retornam o resultado. É aqui que é preciso cautela. Por exemplo, a instrução BSF para o bit 5 do registrador f6 (porta B) lê primeiro todos os oito bits. O bit 5 é então manipulado e o novo valor do byte é escrito em sua totalidade nas travas de saída. Se outro bit do registrador f6 usa i como E/S bidirecional (digamos, bit 0) e está atualmente definido como entrada, a entrada naquele pino será lida e escrita de volta na trava de saída daquele pino, sobrescrevendo seu estado anterior.

Enquanto este pino permanecer no modo de entrada, não surgem problemas. No entanto, se a linha 0 depois mudar para o modo de saída, seu estado será indefinido.

Fontes de corrente externas ("montagem AND", "montagem OR") não devem "inclinar-se" na perna operando no modo de saída. As grandes correntes resultantes podem danificar o cristal.

Acesso serial às portas de E/S

A gravação na porta de saída ocorre no final do ciclo de comando. Mas ao ler, os dados devem estar estáveis ​​no início do ciclo de instrução. Tenha cuidado com as leituras imediatamente após as gravações na mesma porta. Aqui é necessário levar em conta a inércia de estabelecer a tensão nos terminais. Um atraso de software pode ser necessário para permitir que a tensão no pino (dependendo da carga) se estabilize antes que o próximo comando de leitura seja executado.

Visão geral de comandos e símbolos

Cada comando do PIC16C84 é uma palavra de 14 bits, que é dividida por significado nas seguintes partes: - 1. código de operação, -2. um campo para um ou mais operandos que podem ou não participar desta instrução. O conjunto de instruções PIC16C84 inclui instruções orientadas a byte, instruções orientadas a bits, operações constantes e instruções de transferência de controle.

Para comandos orientados a byte, "f" denota o registrador no qual operar; "d" - bit determina onde colocar o resultado. Se "d"=0 então o resultado será colocado no registrador W, com "d"=1 o resultado será colocado no "f" mencionado no comando. Para instruções orientadas a bits, "b" indica o número do bit envolvido na instrução e "f" é o registrador no qual esse bit está localizado.

Para comandos de transferência e operações constantes, "k" denota uma constante de oito ou onze bits.

Todos os comandos são executados dentro de um ciclo de comando. Em dois casos, a execução da instrução leva dois ciclos de instrução: -1. verificação de condição e salto, -2. alterar o contador do programa como resultado

execução do comando. Um ciclo de comando consiste em quatro períodos do gerador. Assim, para um oscilador de 4 MHz, o tempo de execução do ciclo de comando será de 1 µs.

Comandos orientados a bytes

Microcontrolador PIC16C84. Pequena descrição

Comandos orientados a bits

Microcontrolador PIC16C84. Pequena descrição

Transições

Microcontrolador PIC16C84. Pequena descrição

Notas e explicações

Nota 1: Os comandos TRIS e OPTION foram colocados na lista de comandos para compatibilidade com a família PIC16C5X. Seu uso não é recomendado. No PIC16C84, os registradores TRIS e OPTION são de leitura/gravação como registradores numerados regulares. Esteja avisado que esses comandos podem não ser suportados em desenvolvimentos futuros do PIC16CXX. Nota 2: Quando um registrador de E/S é modificado, como o MOVF 6,1, o valor utilizado para modificação é lido diretamente dos pinos do chip. Se o valor de trava de saída para um pino programado para saída for "1", mas o sinal externo nesse pino for "0" devido a "abaulamento" externo, então "0" será lido. Nota 3: Se o operando desta instrução for o registrador f1 (e d=1 se permitido), então o divisor, se conectado ao RTCC, será zerado.

Redefinir condições

No PIC16C84, existem diferenças entre as opções de reset:

1) Reinicialização ao ligar.

2) Reset externo /MCLR durante a operação normal.

3) Reset externo /MCLR em modo SLEEP.

4) Reinicialize no final do atraso do temporizador WDT durante a operação normal.

5) Reinicialize no final do atraso do temporizador WDT no modo SLEEP.

Alguns dos registradores especiais não são inicializados quando resetados. Eles têm um estado aleatório na inicialização e não mudam com outros tipos de reinicializações. A outra parte dos registradores especiais são inicializados para o "estado de reset" para todos os tipos de resets, exceto para reset no final do atraso do temporizador WDT no modo SLEEP. Só que esse reset é considerado um atraso temporário na operação normal. Existem mais algumas exceções. O contador de programa é sempre zerado (0000h). Os bits de status TO e PD são definidos ou apagados dependendo da opção de reset. Esses bits são usados ​​pelo software para determinar a natureza da reinicialização. Seus valores após o reset são dados na tabela. O estado dos registradores após o reset é apresentado na tabela. As notações são aceitas lá: i-não muda, x - desconhecido, - não executado, lido como `0`. ? - será definido no final da gravação para EEPROM

Microcontrolador PIC16C84. Pequena descrição

Algoritmo de reinicialização ao ligar

O cristal PIC16C84 possui um detector de ativação integrado. O temporizador de partida começa a contar o atraso de tempo após a tensão de alimentação ter cruzado o nível de cerca de 1,2...1,8 Volts. Após um atraso de cerca de 72 ms, considera-se que a tensão atingiu seu valor nominal e outro meio atraso é iniciado para estabilizar o oscilador de quartzo. Um bit de configuração programável permite ativar ou desativar o atraso do temporizador de início integrado. O tempo de inicialização varia com as instâncias do cristal, energia e temperatura. Consulte as especificações DC.

O temporizador de estabilização do gerador conta 1024 pulsos do gerador que começou a funcionar. Acredita-se que o oscilador de quartzo entrou no modo durante este tempo. Ao usar geradores RC, a exposição à estabilização não é realizada.

O temporizador de espera de reinicialização externa /MCLR é então habilitado. Isso é necessário para os casos em que é necessário lançar vários controladores PIC de forma síncrona através do sinal /MCLR comum a todos. Se tal sinal não for recebido, então, após o tempo Tost, um sinal de reset interno é gerado e o controlador começa a executar o programa. O tempo Tost é programado pelos bits de configuração na EEPROM. Há um problema aqui em que o Vdd aumenta muito lentamente e todos os atrasos estão na inicialização e a energia ainda não atingiu seu valor mínimo de integridade Vdd(min). Nesses casos, recomendamos o uso de cadeias RC externas para redefinir para /MCLR. Abaixo está uma corrente

Microcontrolador PIC16C84. Pequena descrição

Aqui você pode usar um diodo para descarregar rapidamente o capacitor quando a energia é desligada. Resistor R < 40 kΩ é recomendado, então não mais que 0,2 V cairá sobre ele. resistor de 100 ohms

Relógio do cão de guarda

O temporizador watchdog é um gerador RC integrado completamente independente que não requer nenhum circuito externo. Ele será executado mesmo se o oscilador principal estiver parado, como é o caso de um comando SLEEP. O temporizador gera um sinal de reset. A geração de tais resets pode ser desabilitada escrevendo um zero em um bit de configuração WDTE especial. Esta operação é realizada na fase de queima de microcircuitos.

Atrasar WDT

O atraso WDT nominal é de 18 ms (sem o uso de um divisor). Depende da temperatura, tensão de alimentação, das características dos tipos de microcircuitos. Se forem necessários grandes atrasos, um divisor interno com uma proporção de divisão de até 1:128 pode ser conectado ao WDT; que é programado escrevendo no registrador OPTION. Exposições de até 2.5 segundos podem ser realizadas aqui.

Os comandos "CLRWDT" e "SLEEP" reinicializam o WDT e o divisor se estiver conectado ao WDT. Isso inicia o atraso desde o início e evita que o sinal de reset seja gerado por um tempo. Se o sinal de reset do WDT ocorrer, então o bit "TO" no registrador de status (f3) é resetado ao mesmo tempo. Em aplicações de alto ruído, o conteúdo do registrador OPTION é propenso a falhas. Portanto, o registro OPTION deve ser atualizado em intervalos regulares.

Deve-se notar que a pior combinação é: Vdd=min, temperatura=max e fator de divisão max - isso leva ao maior atraso de tempo, pode ser de vários segundos.

Tipos de gerador

Os cristais PIC16C84 podem trabalhar com quatro tipos de osciladores embutidos. O usuário pode programar dois bits de configuração (FOSC1 e FOSC0) para selecionar um dos quatro modos: RC, LP, XT, HS.

Os cristais PIC16... também podem ser sincronizados a partir de fontes externas. Um oscilador construído em ressonadores de quartzo ou cerâmica requer um período de estabilização após a energização. Para fazer isso, o temporizador de início do oscilador integrado mantém o dispositivo no estado de reinicialização por aproximadamente 18 ms após o sinal no pino do chip /MCLR atingir o lógico um. Assim, uma cadeia RC externa associada a /MCLR não é necessária em muitos casos.

Os geradores embutidos são operáveis ​​em determinadas classificações da tensão de alimentação:

Microcontrolador PIC16C84. Pequena descrição

ATENÇÃO! Em frequências abaixo de 500 kHz, o oscilador interno pode gerar um pulso harmônico defeituoso quando o bit 0 da porta A é alternado. Isso não acontece quando se usa um oscilador externo ou com o oscilador RC embutido.

Gerador de quartzo

PIC16C84-XT, -HS ou -LP requerem que um ressonador de cristal ou cerâmica seja conectado aos pinos OSC1 e OSC2.

Microcontrolador PIC16C84. Pequena descrição

As marcações são as seguintes: XT - oscilador de cristal padrão, HS - oscilador de cristal de alta frequência, LP - oscilador de baixa frequência para aplicações econômicas. O resistor Rs pode ser necessário para o oscilador "HS", especialmente abaixo de 20 MHz para amortecer os harmônicos. Também pode ser necessário no modo XT com um ressonador AT strip-cut. A escolha de capacitores para um ressonador cerâmico.

Microcontrolador PIC16C84. Pequena descrição

Uma capacitância mais alta aumentará a estabilidade do gerador, mas também aumentará o tempo de inicialização. Os valores são fornecidos apenas para orientação. Nos modos HS e XT, um resistor em série Rs pode ser necessário para evitar harmônicos.

gerador rc.

Quando a precisão de velocidade e tempo não é necessária, um cristal OTP como o PIC16C84-RC economiza dinheiro e implementa um oscilador RC simples.

Microcontrolador PIC16C84. Pequena descrição

A frequência é uma função da tensão de alimentação, resistor Rext, capacitor Cext e temperatura. Além disso, a frequência do oscilador variará ligeiramente de lote para lote. A frequência de geração é afetada pela capacitância intrínseca da caixa de cristal, sua influência é perceptível para pequenos valores de Cext. A deriva dos elementos R e C também deve ser levada em consideração. Para valores de Rext abaixo de 2.2 kΩ, o gerador pode estar instável ou não iniciar. Em valores muito altos de Rext (por exemplo, 1 MΩ) o gerador torna-se sensível a interferências, umidade e fugas de corrente da instalação.

O valor Rext recomendado está entre 5 kΩ e 100 kΩ. Embora o oscilador seja operável sem um capacitor externo (Cext = 0), recomendamos usar uma capacitância superior a 20 pF para aumentar a estabilidade. Com pouco ou nenhum Cext, a frequência do oscilador é altamente dependente das capacitâncias de montagem. A dispersão será tanto maior quanto maior for o valor de R (e quanto menor for o valor de C (já que neste caso o efeito das capacitâncias de montagem é mais pronunciado).

A frequência do oscilador dividida pelo sinal 4 está presente no pino OSC2/CLKOUT e pode ser usada para fins de teste ou temporização para outros circuitos.

excitação externa

Microcontrolador PIC16C84. Pequena descrição

OPÇÃO registrar

O registrador OPTION (endereço 81h) está disponível para leitura e escrita e contém vários bits de controle que determinam a configuração do limitador onde está conectado: para RTCC ou WDT, o sinal da frente da interrupção externa INT e o sinal externo para RTCC, a conexão de uma carga ativa na porta RB.

Cadastro OPÇÃO Endereço 81h

Valor de inicialização = FFH

Microcontrolador PIC16C84. Pequena descrição

PSA - Divisor de conexão de bits para: 0 - RTCC

1-WDT

RTE - Borda do sinal RTCC externo:

0 - incremento de borda ascendente no pino RTCC

1 - incremento de borda negativa no pino RTCC

RTS - Fonte de sinal para RTCC

0 - sinal do gerador interno

1 - Sinal externo na perna RTCC

INTEDG - Borda de sinal INT:

0 - interrupção em uma borda negativa no pino INT

1 - interrupção de borda positiva no pino INT

/RBPU - Bit de conexão de carga ativa invertido para a porta B.

/RBPU = 0: As cargas ativas serão conectadas de acordo com o algoritmo da porta RB

/RBPU = 1: as cargas ativas da porta B estão sempre desabilitadas

Conexões do divisor de frequência

O mesmo contador de oito bits pode ser habilitado antes do RTCC ou após o temporizador Watchdog. Observe que o divisor só funciona com um desses dispositivos. Repetimos, se o divisor funciona com RTCC, significa que no momento não funciona com o temporizador Watchdog e vice-versa. Esquema de habilitação do contador (consulte a seção RTCC:RTCC}. Os bits PSA e PS0-PS2 no registrador OPTION determinam com qual dispositivo o divisor trabalha e a configuração do fator de divisão. Quando o divisor está conectado ao RTCC, todos os comandos que escrevem no RTCC ( por exemplo, CLRF 16 MOVWF 1, BSF 1,x... etc.) irá resetar o divisor. fragmento do programa para mudar de RTCC para WDT

1. MOVLW B`xx0x0xxx` ;selecione o relógio interno e um novo ;valor para o divisor. Se o novo valor de ; divisor for

2. OPÇÃO ;`000` ou `001`, então você deve selecionar temporariamente ;outro valor divisor.

3. CLRF 1: reset RTCC e divisor.

4. MOVLW B`xxxx1xxx` ;selecione WDT sem alterar o valor do divisor.

5. OPÇÃO

6. CLRWDT ; reset WDT e divisor.

7. MOVLW B`xxxx1xxx` ;selecione um novo valor para o divisor.

8. OPÇÃO

Os itens 1 e 2 são necessários apenas quando uma fonte de pulso externa foi conectada ao RTCC. Os itens 7 e 8 são obrigatórios quando o coeficiente

a divisão deve ser definida como `000` ou `001`.

Mudando o divisor de WDT para RTCC

1. CLRWDT ; reset WDT e divisor.

2. MOVLW B`xxxx0xxx` ;selecione RTCC, novo valor para divisor ;fonte de sinal.

3. OPÇÃO Esses programas devem ser usados ​​mesmo que o WDT esteja desabilitado.

Palavra de configuração

O cristal PIC16C84 possui cinco bits de configuração que são armazenados na EEPROM e são configurados durante a fase de programação do chip. Esses bits podem ser programados (lidos como `0`) ou deixados não programados (lidos como `1`) para selecionar a opção de configuração do dispositivo apropriada. Esses bits estão localizados na memória EEPROM no endereço 2007h. O usuário deve lembrar que este endereço está abaixo da área do código e não está disponível para o programa. Configuração da célula EEPROM.

Microcontrolador PIC16C84. Pequena descrição

CP - Bit de proteção de código.

CP = 1: Código de segurança desabilitado

CP = 0: Código de segurança ativado

Os bits restantes na palavra não são usados ​​e são lidos como uns.

rótulo individual

O cristal PIC16C84 possui quatro palavras localizadas em (2000h-2003h) Estas são usadas para armazenar o código de identificação do usuário (ID), checksum ou outras informações. Assim como a palavra de configuração, eles só podem ser lidos ou escritos pelo programador. Não há nenhum programa de acesso a eles. Se o cristal estiver protegido, o usuário é aconselhado a usar apenas os sete bits inferiores de cada ID de palavra para identificação e escrever '0' no bit superior. Então a palavra ID pode ser lida mesmo em uma versão protegida.

Proteção de programas contra leitura

O código de programa que é gravado no chip pode ser protegido contra leitura definindo o bit de proteção (CP) na palavra de configuração para zero. O conteúdo do programa não pode ser lido de forma que possa ser trabalhado. Além disso, quando o bit de proteção é definido, torna-se impossível alterar o programa. O mesmo se aplica ao conteúdo da memória de dados EEPROM.

Se a proteção estiver definida, o bit CP só poderá ser apagado junto com o conteúdo do cristal. A memória de programa EEPROM e a memória de dados serão apagadas primeiro e, por último, o bit de proteção do código CP.

Verificando um cristal com proteção instalada. Ao ler um chip protegido, a leitura de qualquer endereço de memória dará um resultado semelhante a 0000000XXXXXXX (binário), onde X é 0 ou 1. Para verificar a integridade da memória em um chip protegido, siga as regras:

1) programar e verificar o funcionamento de um cristal de trabalho.

2) defina a proteção do código do programa e leia o conteúdo da memória do programa no arquivo de referência.

3) Verifique qualquer chip protegido comparando sua memória de programa com o conteúdo deste benchmark.

A memória de dados EEPROM não pode ser verificada após o bit de segurança ser definido.

Modo de baixo consumo

O modo SLEEP é inserido pelo comando SLEEP. Com este comando, se o WDT estiver habilitado, ele é resetado e inicia a cronometragem, o bit "PD" no registrador de estado (f3) é resetado, o bit "TO" é setado e o oscilador interno é desligado. As portas de E/S mantêm o estado que tinham antes de entrar no modo SLEEP. Para reduzir o consumo de corrente neste modo, os pinos devem ser ajustados de forma que nenhuma corrente flua entre o cristal e os circuitos externos. Os pinos de entrada devem ser conectados com resistores externos altos ou baixos para evitar correntes de comutação causadas por entradas flutuantes de alta resistência. O mesmo vale para o RTCC. A perna /MCLR deve ser energizada por Vihmc.

A saída do modo SLEEP é realizada como resultado dos seguintes eventos:

1. Reset externo - pulso de baixo nível no pino /MCLR.

2. Redefinir quando o WDT for acionado (se ativado)

3. Interrupções. (Interrupção no pino INT, interrupção na alteração da porta B, interrupção na conclusão da gravação dos dados da EEPROM).

O primeiro evento redefine todo o dispositivo. Os outros dois eventos sugerem que o programa continua em execução. O bit "PD" no registrador de status (f3), que é definido na energização, mas reinicializado pelo comando "SLEEP", pode ser usado para determinar o estado do processador antes de "despertar": ou o processador estava em o modo "SLEEP" (partida a quente), ou foi apenas desligado (partida a frio). O bit "TO" permite determinar o que causou a saída do modo SLEEP: um sinal externo no pino /MCLR ou a operação do WDT.

Para que um dispositivo acorde do modo SLEEP por meio de uma interrupção, a interrupção deve ser habilitada configurando a máscara apropriada no registro INTCON. Ao sair do modo SLEEP, o programa em segundo plano será executado se a máscara geral desabilitar todas as interrupções (GIE=0). Se GIE=1, a rotina de interrupção será executada.

Valores máximos de parâmetros elétricos

Parâmetros fora desses limites podem danificar o chip. Operar o cristal em seus valores limite por um longo tempo afetará sua confiabilidade.

Microcontrolador PIC16C84. Pequena descrição

Observações:

1. A dissipação total de energia não deve exceder 800mW para cada gabinete. A potência dissipada é calculada usando a seguinte fórmula:

Pdis = Vdd(Idd - Soma(Ioh)) + Soma ((Vdd - Voh)Ioh) + Soma (Vol Iol)

2. A queda da tensão no pino /MCLR abaixo de Vss(terra) causa correntes altas, acima de 80mA, e pode danificar esta linha. Portanto, recomendamos que você aplique sinais ao pino /MCLR através de um resistor de terminação de 50-100 ohms.

Parâmetros DC

Especificações DC: PIC16C84-04, PIC16C84-10.

(Para desempenho comercial, industrial, automotivo).

MEMEC BALTIC Ltda. é membro do Memec International Components Group e do Raab Karcher Electronics Group. Este grupo de distribuidores de componentes eletrônicos é líder na distribuição da mais recente tecnologia eletrônica e componentes semicondutores.

MEMEC BALTIC Ltda. representa o grupo de empresas MEMEC e é o distribuidor oficial da Microchip e Raychem na Rússia, Ucrânia, Bielorrússia e países bálticos.

MEMEC BALTIC Ltda.

Publicação: N. Bolshakov, rf.atnn.ru

Veja outros artigos seção Microcontroladores.

Leia e escreva útil comentários sobre este artigo.

<< Voltar

Últimas notícias de ciência e tecnologia, nova eletrônica:

Máquina para desbastar flores em jardins 02.05.2024

Na agricultura moderna, o progresso tecnológico está se desenvolvendo com o objetivo de aumentar a eficiência dos processos de cuidado das plantas. A inovadora máquina de desbaste de flores Florix foi apresentada na Itália, projetada para otimizar a etapa de colheita. Esta ferramenta está equipada com braços móveis, permitindo uma fácil adaptação às necessidades do jardim. O operador pode ajustar a velocidade dos fios finos controlando-os a partir da cabine do trator por meio de um joystick. Esta abordagem aumenta significativamente a eficiência do processo de desbaste das flores, proporcionando a possibilidade de adaptação individual às condições específicas do jardim, bem como à variedade e tipo de fruto nele cultivado. Depois de testar a máquina Florix durante dois anos em vários tipos de frutas, os resultados foram muito encorajadores. Agricultores como Filiberto Montanari, que utiliza uma máquina Florix há vários anos, relataram uma redução significativa no tempo e no trabalho necessários para desbastar flores. ... >>

Microscópio infravermelho avançado 02.05.2024

Os microscópios desempenham um papel importante na pesquisa científica, permitindo aos cientistas mergulhar em estruturas e processos invisíveis aos olhos. Porém, vários métodos de microscopia têm suas limitações, e entre elas estava a limitação de resolução ao utilizar a faixa infravermelha. Mas as últimas conquistas dos pesquisadores japoneses da Universidade de Tóquio abrem novas perspectivas para o estudo do micromundo. Cientistas da Universidade de Tóquio revelaram um novo microscópio que irá revolucionar as capacidades da microscopia infravermelha. Este instrumento avançado permite ver as estruturas internas das bactérias vivas com incrível clareza em escala nanométrica. Normalmente, os microscópios de infravermelho médio são limitados pela baixa resolução, mas o desenvolvimento mais recente dos pesquisadores japoneses supera essas limitações. Segundo os cientistas, o microscópio desenvolvido permite criar imagens com resolução de até 120 nanômetros, 30 vezes maior que a resolução dos microscópios tradicionais. ... >>

Armadilha de ar para insetos 01.05.2024

A agricultura é um dos sectores-chave da economia e o controlo de pragas é parte integrante deste processo. Uma equipe de cientistas do Conselho Indiano de Pesquisa Agrícola-Instituto Central de Pesquisa da Batata (ICAR-CPRI), em Shimla, apresentou uma solução inovadora para esse problema: uma armadilha de ar para insetos movida pelo vento. Este dispositivo aborda as deficiências dos métodos tradicionais de controle de pragas, fornecendo dados sobre a população de insetos em tempo real. A armadilha é alimentada inteiramente por energia eólica, o que a torna uma solução ecologicamente correta que não requer energia. Seu design exclusivo permite o monitoramento de insetos nocivos e benéficos, proporcionando uma visão completa da população em qualquer área agrícola. “Ao avaliar as pragas-alvo no momento certo, podemos tomar as medidas necessárias para controlar tanto as pragas como as doenças”, diz Kapil ... >>

Notícias aleatórias do Arquivo

Descoberto o objeto mais distante do sistema solar 22.12.2018

Uma equipe de astrônomos da Carnegie Institution, da Universidade do Havaí e da Universidade do Norte do Arizona (EUA) descobriu o corpo mais distante já observado em nosso sistema solar. O corpo é um planeta anão, mais de 100 vezes a distância entre a Terra e o Sol, de acordo com a Carnegie Institution.

O objeto foi nomeado 2018 VG18 e apelidado de "Farout" ("distante" - do inglês). Sua "casa" está localizada a uma distância do Sol de cerca de 120 unidades astronômicas (AU, AU), onde 1 UA. definida como a distância entre a Terra e o Sol. O segundo objeto observável mais distante no sistema solar é o planeta anão Eris: suas "coordenadas" são 96 UA. Em tamanho, é considerado o segundo depois de Plutão, que, por sinal, está localizado a uma distância de cerca de 34 UA.

Agora, os cientistas não podem dizer exatamente em qual órbita o 2018 VG18 está se movendo. Há apenas um palpite: porque o planeta anão está tão longe, ele gira muito lentamente - e provavelmente leva mais de 1000 anos para completar uma revolução ao redor do Sol.

As primeiras imagens do objeto mais distante do sistema solar foram tiradas em 10 de novembro deste ano pelo telescópio japonês Subaru de 8 metros, localizado no topo de Mauna Kea, no Havaí. Farout foi visto pela segunda vez no início de dezembro com o Telescópio Magalhães no Observatório Las Campanas (Chile).

2018 VG18 foi descoberto durante a busca dos cientistas por objetos extremamente distantes no sistema solar - incluindo o "Planeta X", às vezes também chamado de "Planeta 9". Em outubro, a mesma equipe de pesquisa anunciou que havia encontrado outro objeto distante do sistema solar, 2015 TG387, apelidado de "Goblin". Ele recebeu esse apelido porque foi visto pela primeira vez no Halloween. A distância do Sol a Goblin é de cerca de 80 UA.

Outras notícias interessantes:

▪ Iniciadas entregas de amostras de memória magnetoresistiva ST-MRAM

▪ Sensores de campo magnético digital da Texas Instruments

▪ Vidro durável à base de alumínio

▪ carpas musicais

▪ A nova liga não é pior que o titânio, mas mais barata

Feed de notícias de ciência e tecnologia, nova eletrônica

 

Materiais interessantes da Biblioteca Técnica Gratuita:

▪ seção do site Vídeo Arte. Seleção de artigos

▪ artigo de Antoine de Rivarol. Aforismos famosos

▪ Como o vidro é soprado? Resposta detalhada

▪ artigo Cronometrista. Descrição do trabalho

▪ artigo Soldagem - para escolher. Enciclopédia de rádio eletrônica e engenharia elétrica

▪ artigo Fonte de alimentação avançada no chip UCC28810 para lâmpadas LED. Enciclopédia de rádio eletrônica e engenharia elétrica

Deixe seu comentário neste artigo:

Имя:


E-mail opcional):


Comentário:





Todos os idiomas desta página

Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site

www.diagrama.com.ua

www.diagrama.com.ua
2000-2024