Visão Geral -> Construindo -> Observando o Programa -> Tutorial Iniciante ->
Conjunto de Instruções PIC12C508A ----->> Conjunto de Instruções PIC16F84

 

 

Introdução & VISÃO GERAL

 

Este Curso de Programação foi planejado para introduzir o novatos e principiantes na programação dos micro controladores PIC12C508A e PIC16F84.

O PIC12C508A é o "bebê" da gama de micro controladores com 8 pinos com 5 que podem ser configuradas como entrada ou saída e uma o pino GP3 que só pode ser configurado como pino de entrada o PIC16F84 é  uma versão  com 18 pinos.

Ambos são dispositivos muito pequenos no mundo "micro" mas eles são a escolha mais certa para começar.

O curso contém toda a informação que você precisa para começar o seu projeto.

Para entender como programar um micro controlador, você precisa de contribuição de muitas fontes diferentes. Isso inclui idéias e apresentações de diversos instrutores. Dessa forma veremos cada um oferecendo um ponto de vista diferente para descrever uma característica ou terminologia em algo tão complexo como a programação para utilização de micro controlador. 

Antes de começar este curso nós apresentamos um tutorial, por Jim Brown BSc(Eng), HDipEdAd, GDE (Inteligências), sobre o micro controlador PIC16F84. Leia apenas os primeiros 25% e volte ao nosso curso. 

Depois você poderá ler gradualmente o restante do tutorial.
Nós escolhemos estes dois micro controladores da gama de dispositivos PIC pois eles são baratos e os melhores para novatos.

Talvez você esteja querendo saber por que produzi tantas informações sobre como programar estes chips, uma vez que há uma quantidade enorme já disponível em livros e em web sites.

A razão é que a informação encontrada geralmente é de uma natureza altamente técnica e não preparada para orientar o iniciante a programar. 

Mas o que é necessário é um curso para pessoas absolutamente leigas. Com certeza algo  que introduza a menor quantidade de complicação para conseguir fazer um programa pronto e funcionando.

E isso é o que nós fizemos. Você não tem que saber Álgebra Booleana, matemática complexa ou o efeito de XOR'ing em um arquivo para ser capaz de programar. 

Aqui tudo é de um modo bem simples.

O curso lhe mostra como conectar os chips a dispositivos externos e aproveitar as idéias de um projeto aplicando-as em outro você poderá criar um circuito totalmente novo com o mínimo de conhecimento técnico.

Há uma coisa surpreendente sobre programar.

Um programa pode ser construído usando-se pensamento altamente complexo ou pensamento muito simples.

O resultado final será o mesmo, mas a abordagem mais simples poderá conter mais instruções para alcançar o resultado final.

Mas quem se preocupa com algumas instruções a mais quando o micro estiver processando a 1.000.000 instruções por segundo!?

Mas antes de você por o pé na estrada do desenvolvimento, temos algumas preliminares que antecedem a essas descobertas:

 

 

 

 

O Micro controlador


Um micro controlador é um "computador em um chip.” Os dois micros controladores escolhidos para este curso são os mais básicos e determinam o ponto de partida para quem deseja realizar um projeto "micro controlado".

São eles o PIC12C508A e o PIC16F84.

As iniciais "PIC" geralmente adotadas significam "Controlador de Interface Programável" (originalmente em inglês Programmable Interface Controler).

Os chips PIC se tornaram conhecidos como o Sonho dos Programadores. Eles são fáceis trabalhar se assimilarmos todas as informações técnicas necessárias para entender a sua operação. Informações estas que se encontram disponíveis GRATUITAMENTE na Internet e são geradas por grupos de entusiastas no assunto,  contando com colaboradores do mundo inteiro.

Essa informação é muito vasta e algumas vezes desconexa e de difícil acesso.

Muito dessas informações foram reunidas e será apresentada de maneira que possa ser compreendida por um iniciante.

Basicamente um micro controlador é capaz de armazenar e executar um programa. Ele pega as instruções ou dados do programa, e/ou de fontes externas, e fornece a saída do processamento em dispositivos para criar um resultado.

Ele pode efetivamente tomar o lugar de um ou mesmo centenas de circuitos integrados e componentes simples.

Isto torna o projeto de um circuito que utiliza micro controlador muito mais simples em aparência do que o projeto que utiliza componentes ativos e passivos em sua construção por muitas vezes substituindo milhares desse componente.

O programa gravado no micro controlador pode ser projetado para executar cálculos matemáticos, analíticos e oferecer uma resposta rápida e por esse motivo desconhecedores do assunto chegam a pensar que estes pequenos besouros tem  "inteligência própria”.
O micro controlador mais simples da família PIC é o PIC12C508A. É um dispositivo de 8 pinos com 5 linhas de entrada/saída mais uma linha apenas de entrada. Os outros dois pinos são para o pólo positivo (+5v) e pólo 0v (também chamado pólo negativo ou terra).

 

A ilustração abaixo mostra as atribuições de cada pino:

 

 

As linhas de saída são chamadas GP (Propósito Geral - general purpose) e são identificadas por GP0, GP1, GP2, GP3, GP4, e GP5.

 

O desenho abaixo ilustra como o chip é conectado à fonte de alimentação.

 

 


 

Conectando um PIC12C508A aos terminais da fonte

 

Como o PIC12C508A tem um oscilador interno não há nenhuma necessidade de outro componente para tê-lo disponível operacionalmente.

O oscilador interno não é absolutamente preciso e caso você precise de uma contagem de tempo com alta precisão, basta você adicionar um cristal como mostrado acima.

O inconveniente é que Isto reduz a capacidade do chip na quantidade de pinos  de entrada entrada/saída. 
O circuito acima tem um botão conectado à GP3.

Considerando que esta é uma linha exclusivamente de entrada, este é o melhor lugar para conectar o interruptor.  O interruptor pode ter qualquer função. Depende do programa. Pode ser projetado para ser: reset, começo, incremento, decremento, pânico, aumento de brilho, mudança de uma melodia, etc etc. 
O chip executará feitos surpreendentes; tudo depende do seu programa. O chip pode armazenar aproximadamente 511 linhas de programa e um programa deste tamanho realmente permite grandes realizações! 

Mas o principal limitador de seu uso é o pequeno número de apenas 5 saídas.

Por isso incluímos o também o chip da família PIC16F84.

 

 

O PIC16F84 tem 18 terminais o que permite projetos mais ousados.

Você pode também usar o PIC16C84.

Os dois chips apresentados são basicamente idênticos exceto que o PIC16C84 tem os arquivos de 0C a 2F enquanto que o F84 tem arquivos até 4F.

O circuito básico para um PIC16F84, conectado aos pólos da fonte, é mostrado abaixo:

 

 


 

Conectando um PIC16F84 aos terminais da fonte

 

O chip PIC16F84 bem como o PIC16C84 requer "componentes externos nos pinos 15 e 16 destinados para completar o circuito oscilador conectados à linha "clock in". Estes componentes permitem ao chip produzir uma freqüência (chamada de pulso de clock) na linha "clock in" e então o micro executará as instruções do programa. Escolhendo um resistor 4k7 e um capacitor de 22p, o chip operará a 4MHz. O chip pode ser operado a qualquer freqüência, e até mesmo diretamente a 0Hz! (Isto é chamado de single-steppinng)
O alvo deste curso está em produzir um programa e gravá-lo em um chip para que deste seja possível executar uma determinada tarefa.

A operação de "queimar" também é chamada de "programação" e para realizar essa tarefa disponibilizamos alguns projetos para a gravação do programa no chip, entre eles esta o programador independente Multi-chip apresentado em forma de KIT.

Destaco aqui mais uma das vantagens do PIC16F84 (e do PIC16C84) é a sua capacidade de programação no circuito (in-circuit).
O projeto para ser planejado com a modalidade para programação "in-circuit", deve prever a inclusão de um soquete de 4 pinos, dessa forma o chip pode ser atualizado sem precisar ser removido da placa de circuito impresso, pois soquete levara as 4 linhas de programação à porta serial de um computador permitindo assim a  programação "in-circuit".
Isso apresenta muitas vantagens. 

Um produto básico pode ser projetado para vários clientes ou operações diferentes, usando tecnologia de montagem de superfície (surface mount technology - SMT), e na última fase da montagem o programa apropriado pode então ser instalado conforme a indicação do cliente, os produtos são montados "vazios" e o software mais recente pode ser instalado a qualquer momento e atualizações podem ser adicionadas sem qualquer trabalho de re-projeto ou remoção do chip, bastando conectá-lo a um programador.

 

 

 

CONSIDERAÇÕES SOBRE A ALIMENTAÇÃO  DOS MICRO CONTROLADORES


Todos os componentes precisam ser alimentados a partir de uma fonte de energia. Esta pode ser uma bateria, uma fonte de alimentação ou mesmo um conjunto de células solares com os micro controladores acontece o mesmo e você precisa saber a corrente que cada pino do micro controlador pode entregar está em torno de

25mA
É corrente de operação para cada linha de saída

 

 

Cada linha de saída de um PIC12c508A pode entregar um máximo de 25mA enquanto que o micro controlador PIC16F84 pode entregar um máximo de 20mA e receber 25mA.  Nós permitimos um máximo de 25mA para todas as situações para manter as coisas mais simples.

O que isso significa?
Significa que qualquer dispositivo conectado a uma saída tem que receber 25mA ou menos.
Se necessitar mais do que os 25mA, um transistor de buffer (também chamado de transistor amplificador de corrente) deve ser somado e isto será discutido logo mais adiante.
Porém, há outro modo para limitar a corrente - com a adição de um resistor limitador de corrente. Um dispositivo típico que requer um resistor limitador de corrente o LED. Um LED deve ser alimentado com 25mA ou menos para funcionar corretamente. Mas você não pode conectá-lo diretamente à saída de um micro controlador.  Isso pode parecer uma contradição, porque a saída de corrente de um micro controlador é 25mA e um LED requer 25mA. 
O ponto técnico é este: A linha de saída de um micro controlador é capaz de entregar mais que 25mA e um LED é capaz de receber mais do que 25mA e se os dois estiverem conectados juntos diretamente, um dos transistores driver no chip será danificado.
Para limitar a corrente a 25mA, um resistor deve ser conectado em série com os LEDS. Ele é chamado um resistor limitador de corrente. Definir o valor do resistor limitador de corrente requer alguma matemática mas isto é muito fácil quando você sabe como.

25mA

A corrente  levada por um dispositivo é chamada a CORRENTE DE CARGA. Vinte e cinco miliamperes não significam muito em termos de eletricidade mas em eletrônica, é impressionante o que pode ser conseguido. 25mA são 0.025 A e isso não é suficiente para fazer um motor funcionar ou acender uma lâmpada incandescente mas há vários dispositivos que podem ser acionadosabaixo cito 3:

 

  • 1. LEDs (Light Emitting Diodes) requerem até cerca de 25mA para iluminação total. 

 

  • 2. Membranas Piezo  requerem uma corrente muito baixa e podem ser acionadas diretamente por uma linha de saída.
     

  • 3. Relês de baixa corrente podem ser acionados diretamente contanto que operem em 25mA e 5v. Se forem necessários mais de 25mA, um transistor driver (também chamado de transistor de amplificação ou estágio de amplificação) será necessário.
     

 

A especificação para a linha de saída de um micro controlador PIC é 25mA e 5v. Em outras palavras a linha de saída tem uma voltagem de saída de 5v e corrente máxima que podem ser fornecida por ela é de 25mA. A linha de saída vai, teoricamente, entregar mais que 25mA, mas o transistor no chip pode ser danificado (aquecer demais) se uma corrente mais elevada fluir. A corrente fornecida pela linha de saída é determinada pela resistência do dispositivo (ou dispositivos), conectado(s) à linha. O dispositivo mais simples é um resistor como mostrado na fig.1:

 

Se o valor do resistor for muito baixo, mais que 25mA fluirão. Se a resistência for alta, menos que 25mA fluirão. O fluxo da corrente não é determinado pelo chip mas pelo valor do resistor. O resistor é chamado RESISTOR de CARGA ou simplesmente de CARGA.

O VALOR DO RESISTOR DE CARGA

A resistência do resistor de carga é determinada pela Lei de Ohm. Nós sabemos que a voltagem na linha é 5v. Esta é V na fórmula. A corrente máxima disponível é 0.025A = I na fórmula. A Lei de Ohm declara: I = V/R (Corrente é igual a voltagem dividida pela resistência). Esta equação pode ser re-organizada assim:

R = V/I 
Colocando-se os dois valores na equação temos:
R = 5/.025
= 200 
= 200ohms.

Um resistor de 200 ohm conectado a uma linha de saída permitirá que fluam 25mA quando a saída for ALTA (HIGH). Esta é só uma explicação teórica sobre como um resistor em uma linha de saída não executará nenhuma função! Não fará nada por si só apenas ficar ligeiramente morno. Mas um resistor executará mais de 20 funções diferentes dependendo de onde é colocado no circuito e do valor dos componentes ao seu redor. Em nosso primeiro exemplo abaixo, um resistor é somado em série com um LED de forma que o LED receberá um máximo de 25mA. O propósito do resistor é duplo. Primeiramente permite o LED crie uma voltagem característica de 1.7v (para um vermelho LED) e secundariamente tem um valor que  permita que 25mA passem pelo LED. O resistor estará usando 5v em uma extremidade e 1.7v na outra. Estas voltagens são providas pelo chip e o LED e o resistor não tem nada a ver com a sua origem. O resistor simplesmente permite que uma certa quantia de corrente o atravesse dependendo de seu valor, e esse é o valor trabalhado acima.

Um ponto a se destacar: Os 508A têm 5 linhas de saída e se todas as saídas estiverem entregando 25mA, a saída total para o chip será 125mA. Isto está ligeiramente acima da corrente máxima permissível de 100mA para o chip, mas não será um problema.
O PIC16F84 tem um máximo de 150mA para o chip e assim só 6 linhas podem estar entregando corrente ao mesmo tempo.

 

Vamos para uma situação prática:

CONECTANDO UM LED

Se um LED for conectado a uma das saídas como mostrado na fig. 2,

uma certa voltagem é encontrada passando por ele, de acordo com a cor do LED. Isso é chamado de voltagem CARACTERÍSTICA ou voltagem de queda no LED. Essa voltagem existe, não importa o quanto o LED esteja iluminado. Isso é completamente diferente das características de uma lâmpada incandescente e é por isso que LEDs e lâmpadas precisam ser tratados diferentemente quando estivermos trabalhando com as suas necessidades operacionais.

Para um LED vermelho a "voltagem característica" é 1.7v. Para um LED laranja a "voltagem característica" é 1.9v. Para um LED verde a "voltagem característica" é 2.1v. LEDs não podem ser conectados diretamente à uma linha de saída sem um resistor limitador de voltagem. A razão é muito técnica, mas basicamente um LED vermelho, por exemplo, não se acende até que exatamente 1.7v o estejam alimentando, e, se a voltagem tentar subir além dos  1.7v, os LEDs brilharão com mais intensidade; permita uma corrente muito alta e eles serão danificados quando a intensidade da corrente for superior a 40mA.

É virtualmente impossível prover uma voltagem constante de 1.7v e o modo mais simples para se prevenir danos ao LED é conectar um resistor em série. Se o valor do resistor for determinado através de uma formula, uma corrente precisa será entregue ao LED e tudo ficará ok. O LED durará 100 anos ou mais! Suppose we want to deliver 25mA to a LED.

Se nós tomarmos um LED vermelho, o valor de resistência pode ser definida pela lei de Ohm. A voltagem que passa pelo resistor é determinada por:

5v - 1.7v = 3.3v (A voltagem através do LED é a voltagem de 5V da alimentação,  menos os 1.7v dissipados  pelo LED devido característica queda de voltagem mencionada acima). Esse é o valor para V.

I = V/R  
0.025 = 3.3/R
R = 132 Use um resistor de 130 ohm.

Um LED laranja tem uma voltagem característica mais alta, de 1.9v e assim, um resistor limitador de valor mais baixo será necessário para os 25mA. Use um 120R.

Para um LED verde, use um 100R. LEDs de alto brilho estão disponíveis em todas as cores e embora eles sejam classificados em 25mA, eles produzirão brilho muito bom com corrente de 5 a 15 mA.

Para projetos alimentados por bateria a corrente de LEDs pode ser reduzida para valores tão baixos quanto 1mA, e isso aumentará enormemente a vida da bateria.

A Tabela 1 fornece o valor para o resistor limitador para um LED vermelho, em diferentes correntes.
O modo mais fácil para determinar o valor de resistência por um resistor limitador é pôr um LED em série com um resistor de 1K com alimentação de 5v. Gradualmente reduza o valor do resistor até que um brilho satisfatório seja obtido.
A iluminação de um LED é informada em milicandelas (mcd) e como a fabricação melhorou durante os últimos anos, o brilho emitido aumentou consideravelmente. Por isso é melhor experimentar com resistores de valores diferentes até chegar a um valor adequado para seu(s) LED(s) em particular.

 

Resistor de queda para um LED vermelho a 5V:

25mA

130 ohms

15mA

220 ohms

10mA

330 ohms

5mA

680 ohms

1mA

3k3

Tabela 1. Valores do resistor de queda

 

CONECTANDO UM DIAFRAGMA PIEZO
Um diafragma piezo é essencialmente bem parecido a um condensador (aprox 22n) no que concerne ao micro controlador. Exige muito pouca corrente para operar. Um diafragma piezo é um dispositivo passivo. Não contém nenhum componente ativo para criar o tom.

Buzzers, sirenes e vibradores piezo têm componentes ativos dentro do alojamento (transistores, sufoque, etc) para criar um som bastante alto. Estes dispositivos operam com alimentação de corrente contínua (6 a 12v).

Um diafragma piezo requer uma onda senoidal quadrada - em outras palavras uma forma de onda "pulsante" para fazer o diafragma curvar-se e assim produzir o som irritante característico. A amplitude da onda determina a intensidade do som e a freqüência da onda determina o tom.

 

FORNECENDO CARGAS DE ALTA CORRENTE

Cargas que requerem mais que 25 Ma devem ser conectadAs a uma saída do micro controlador através de um transistor de amplificação (driver). Um transistor-driver é na realidade um amplificador de corrente. Transistores podem ser classificados em componentes de corrente baixa, média e alta.

Se uma carga necessita, digamos, de 100 mA, um transistor amplificador de baixa corrente será necessário.
Se uma carga requer de 500mA a 1A, um transistor amplificador de média corrente será necessário. Para correntes superiores a 1A, um transistor amplificador de alta corrente será necessário.
Para 100mA, um do tipo baixa corrente como  BC 547, 2N 3904 ou BC 338 será adequado. Se nós assumirmos que o transistor possui um ganho de corrente de 100, 1mA será necessário na sua base para que o transistor entregue 100mA.
Você não consegue coisa alguma a partir do nada!  Para um transistor ser capaz de ENTREGAR uma corrente para uma CARGA, ele necessita que uma corrente seja ENTREGUE a ele primeiro – em sua base. Por isso que um transistor é chamado de um dispositivo amplificador de corrente.

Se o transistor estiver controlando uma lâmpada, a corrente inicial para o filamento da lâmpada é aproximadamente 6 vezes a corrente de iluminação e assim o transistor deverá ser capaz de entregar 600mA.
Para entregar 600mA, a base deve ser alimentada com pelo menos 6mA. Para entregar esta corrente na base, o valor do resistor-base pode ser determinado como explicado a seguir:

A voltagem pelo resistor base será: 5v (a saída do '508A) menos a voltagem base emissor do transistor driver (0.7v) = 5 - 0.7 = 4.3v

Resistência do resistor base:
= V/I
= 4.3/.006
= 700 
R = 700 ohms. 
Use 680 ohms.

Este é o valor máximo de resistência que você deve usar. (Lembre-se: quanto mais alto o valor de um resistor, MENOS corrente irá passar por ele.)

Teoricamente um resistor 680R saturará o transistor completamente e proverá 600mA para ligar a lâmpada. Mas suponha que o transistor não tenha um ganho de 100. Pode ter só um ganho de 80 ao entregar uma corrente alta. Neste caso os 600mA não fluirão em sua totalidade e sob as piores condições a Lâmpada não irá iluminar-se.

Para considerar essa possibilidade, o valor do resistor base pode ser reduzido de forma que uma corrente ligeiramente mais alta fluirá pelo transistor. Deste modo você está garantindo que o transistor será saturado, no caso do ganho não ser 100.  É bom manter uma margem de garantia e assim um resistor tão baixo quanto um 470R pode ser usado.

Um resistor baixo, de 470 ohm não danificará o transistor e não fará o globo ascender de forma  "muito brilhante." É simplesmente um valor para assegurar que o transistor sature-se completamente mesmo nas piores condições. Se o transistor não se saturar completamente,  ficará mais quente que o normal e o globo ficará escuro. Isto pode aquecer demais o transistor e causar danos - por isso é importante que o transistor seja saturado COMPLETAMENTE.

Uma corrente inicial alta é um dos problemas ocultos quando acionamos globos geralmente não é encontrado até que um globo de corrente alta seja empregado ou vários globos sejam acionados ao mesmo tempo. Como você pode ver, corrente é requerida da saída do micro controlador para acionar o transistor e se forem acionadas  cargas de correntes altas, os 25mA do micro serão gastos muito rapidamente!

Suponha que você queira acionar uma lâmpada automotiva de 12v. Um transistor driver de alta-potência será necessário uma vez que a corrente inicial é de aproximadamente 6 ampères.

Transistores de corrente alta têm aproximadamente um ganho de corrente de apenas 20 a 50 e se você usar a pior situação, a corrente requerida na base para saturar completamente (ligar) o transistor será 5,000/20 =250mA.

Obviamente isto está além da capacidade de saída do micro controlador. Assim você tem que efetuar alguns cálculos antes de conectar dispositivos de corrente alta.

A resposta é acrescentar um transistor amplificador extra entre o chip e o transistor de potência como mostrado na fig: 3. este transistor é chamado  transistor de buffer e efetivamente amplia a capacidade do chip por um fator de cerca de 100. Se o transistor de saída (o transistor de potência) requer uma corrente de 250mA em sua base, o transistor de buffer entregará esta corrente e irá precisar de 250/100 = 2.5mA do microprocessador. Os 2.5mA podem ser providos facilmente pelo micro e assim, nós estamos de volta ao negócio.

O s transistores de saída e o driver podem estar em dois arranjos diferentes. A  Fig. 3 mostra dois transistores individualmente ou um único transistor Darlington como mostrado na fig.4.

 

 

O resultado é exatamente o mesmo. A única diferença é o número de componentes necessários e o espaço ocupado na placa de circuito impresso.

Na fig. 3, quando a saída do micro é BAIXA, o transistor PNP de buffer está ligado. Isto entrega corrente à base do transistor de saída por um resistor 18R. Nós determinamos que a corrente na base deve ser de 250mA para ligar com segurança a lâmpada de 12v x 1amp. Esta corrente tem que passar pelo resistor 18R, e a potência em watts dissipada por este resistor será surpreendente! Ela precisa ser 1watt! Esta corrente é perdida já que não executa nenhuma função e os 250mA colocarão uma carga pesada na alimentação de 5v. A solução é pôr um transistor Darlington na saída, como é mostrado na fig. 4.

Um transistor Darlington é composto de dois transistores no mesmo estojo e se parece com um transistor normal com três terminais. Um transistor Darlington típico pode ter um ganho de 2,500 e se a lâmpada requerer 6 amperes para ligar, a corrente requerida na base será 2.5mA. O resistor separador de 1K entregará aproximadamente 3.5mA, lembrando que há uma queda de 1.2v entre base e o pólo negativo negativa para o transistor de Darlington.

Mas a maior vantagem maior do projeto com o Darlington é a ausência do resistor de 18 ohm. Isto eliminará a forte demanda nos 5v da alimentação. Um transistor Darlington satisfatório para uma carga de até 4 ampères é o BD 679. A pinagem para um BD 679 é mostrado na fig. 5.

 

 

 

Um TRIAC pode ser usado, como mostrado na fig. 6.para manejar Cargas de altas de corrente alternada sendo o seu acionamento controlado pelo PIC.

 

O TRIAC é especialmente adequado para acionar cargas de corrente alternada pois conduz em qualquer direção e pode ser ligado parcialmente durante um ciclo (cada meio-ciclo) fornecendo suavização para lâmpadas (dimmer) ou controle de velocidade para motores. TRIACs estão disponíveis em versões "sensitive gate" que requerem baixa corrente no gate. Isto é ideal para o micro '508A. TRIACs requerem a menor CORRENTE DE DISPARO NO GATE, quando a corrente no gate é negativa.

 

 

 

BITS DE CONFIGURAÇÃO
 

Faça sua primeira leitura neste tópico com certeza não entendera muita coisa mas a medida que seguirmos tenho certeza que você retornara  a este tópico.

Estes são os bits essenciais contidos no arquivo de configuração de definições que determinam as características do chip estamos utilizando.
Estamos principalmente interessados nos 5 bits menores. 

Note os dois sinais de sublinhado antes de CONFIG da linha de configuração abaixo.

 

;Experiência 01.asm

;Projeto:Ligando um LED
;List P = 16F84 
;#include <p16F84.inc> 
(Indica o padrão MICROCHIP utilizado pelo MSPAM neste caso para PIC 16F84)
;__CONFIG 1Bh  ;_CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC


Os Bits 0 e 1  selecionam o oscilador.

O Bit 2 seleciona o timer watchdog.

O Bit 3 seleciona o timer Power-up e

O Bit 4 seleciona a Proteção de Código. 
Configurar WDT, PWRTE e CP também é conhecido como "Ajustar os fusíveis".

O Bit 4
é Proteção de Código.

Quando definido como “1” a proteção de código está DESLIGADA. Quando definido como “0” a proteção está LIGADA.


O Bit 3 habilita o timer Power-up. Quando definido como “1” o timer power-up está habilitado. Quando definido como “0” o timer Power-up está desabilitado.  O timer Power-up produz um atraso de 72ms e previne o chip de iniciar a execução de código até 72 ms após ter sido detectado o fornecimento de voltagem.


O Bit 2 habilita o timer Watchdog. Quando definido como “1” o timer watchdog está habilitado. Quando definido como “0” o timer watchdog está desabilitado.


Os Bits 1-0 são os bits de Seleção do Oscilador:
11 = oscilador RC – componentes RC externos. O chip irá operar de 1Hz a 4MHz.
10 = oscilador HS – Cristal de Alta Velocidade ou ressonador – freqüência máxima para o chip.
01 = oscilador XT – oscilador normal a cristal - 455kHz, 2MHz, 4MHz etc - use este para cristal. 
00 = Oscilador LP – cristal de 38kHz  


O  __CONFIG (para este curso), é mostrado em vermelho:

Bits de CONFIGURAÇÃO:   
 4                                      3               2                         1              0
CP                                 PWRTE          WDT                   FOSC1       FOSC2
 
1                                       1                 0                       1              1        __CONFIG 1Bh
(código não protegido)    (habilitado)  (desligado)                (osc. RC externo)
                                         
 

Nota: O bit do timer WDT foi intencionalmente LIGADO em cada um dos experiências a seguir de forma que você possa ver quando um novo programa (ou re-burn) tenha sido baixado pelo IC-Prog.  A check-mark ao lado de WDT deve ser removida antes do início da gravação. 

WDT

Clique para remover a check-mark

Agora vamos às experiências. 
 

Visão Geral -> Construindo -> Observando o Programa -> Tutorial Iniciante ->
Conjunto de Instruções PIC12C508A ----->> Conjunto de Instruções PIC16F84