Como programar um PIC?

Por: CT2HPM e CT2HGF  

  Esta página pretende abordar de uma forma simples a programação dos mais baratos e simples microprocessadores da Microchip, os PIC (Peripheral Interface Controllers), que são o caso dos PIC16C84 e PIC16F84.

    Estes novos chips são  fáceis de usar, de programar e de apagar, pois não precisam de estar sujeitos aos ultravioletas para apagar o seu conteúdo de memória, e acima de tudo, são bastante baratos. Estes chips podem ser apagados e programados vezes sem conta (cerca de 1.000.000!!!).

   Até à bem pouco tempo a versão mais comum destes chips era o 16C84, contudo foi largamente ultrapassado com o mais recente e moderno 16F84. Neste chip a memória eprom passou a ser flash e de maior capacidade, existindo várias versões. Operacionalmente os dois são muito similares, têm os pinos compatíveis, contudo o 16F84 tem mais memória e também é mais barato (cerca de 7 Euros), custando perto de metade do seu antecessor.

   Com eles  poderá encontrar algum circuitos de fácil construção e bastante úteis para os radioamadores e não só!.

Como programar um PIC ?

   O programador utilizado para o 16C84 ou 16F84 é bastante simples de construir. A sua conexão ao computador é feita através da porta série COM1 ou COM2. O circuito e placa está nesta página em projecto->PIC

    

    Em termos gerais vamos tentar explicar como programar um PIC :

1º Fase 

    Em primeiro lugar teremos de criar ou modificar o ficheiro que contém o programa para programar o PIC, chamado programa fonte. Existem dois tipos distintos destes ficheiros: os hexadecimais e os de texto. 
    Os primeiros estão aptos a serem lidos directamente pelo programa que vai gravar o ficheiro no PIC mas não permitem qualquer alteração do seu conteúdo.
    Os segundos,  tem normalmente uma extensão *.ASM (assembler) ou *.TXT (texto).  Estes já permitem alterar o conteúdo do programa com o qual pretendemos programar o PIC. Para tal utilizamos o NOTEPAD do Windows ou um qualquer outro editor de texto.
    Os ficheiros de programas  com extensão *.ASM ou *.TXT são os mais desejados por quem anda nesta lides, pois permitem fazer alterações no seu conteúdo como por exemplo, modificar os dizeres de  uma mira.
    No final de criar o programa ou altera-lo pelo editor de texto deve  salva-lo com extensão *.ASM ou *.TXT.

2º Fase

    Depois de criar ou alterar o ficheiro com que pretendemos programar o PIC,  tem de usar o MPASM,  programa do fabricante do PIC que compila o ASM (assembler) ou TXT para hexadecimal. Este programa pode ser descarregado, do site da MICROCHIP ou desta página MPASM

    Com o programa aberto devemos seleccionar o microprocessador manualmente que desejamos programar. A opção "Default" que aparece no arranque do programa, "lê" qual o PIC que está no programador e funciona com a maioria dos PIC16F84 mas na versão PIC16F84A por vezes não resulta o que nos pode levar a pensar que o PIC ou o programador esta avariado, como por exemplo uma resistência aberta.
    Seguidamente no botão "Browse", selecciona-se o ficheiro que criamos ou modificamos, depois de seleccionado, vamos ao botão "Assembler" e é só aguardar que MPASM faça a compilação do ficheiro.
    Se porventura ocorrerem erros na compilação aparecerá na janela essa informação, será então gerado pelo MPASM um ficheiro referente a esses mesmos erros que poderá ser lido num editor de texto.

3ª Fase

    Nesta 3ª e última fase resta-nos programar o PIC já com o ficheiro *.hex preparado. 
    Dentro de vários programas disponíveis, podemos usar o PIX,  este software é bastante fácil de usar e permite variadas funções, desde apagar o próprio PIC até ler o seu conteúdo e salvá-lo noutro formato. Um outro para ambiente WINDOWS e que funciona também muito bem é o ICPROG, ambos disponíveis neste site para download.
    O PIX é um programa de DOS, contudo funciona na perfeição em ambiente Windows. Para o pôr a funcionar com o programador através da porta série, primeiro deve editar o ficheiro PIX.CFG que vem com o programa. Encontre as duas linhas que dizem:

        Coloque um ";" no princípio de cada uma, que ficam com o seguinte aspecto:

 depois procure a linha que diz:  

    Que deverá ficar com seguinte aspecto:

NOTA: O programa existente para download neste site já tem estas configurações feitas.

    Depois é só ligar o programador à COM2, tendo em atenção que esta ligação deve ser feita com um cabo série curto ou de preferência colocando o programador ligado directamente à porta série.
    Quando correr o programa provavelmente aparecerá, MODEM DETECTED ou NO/BAD HARDWARE. NOT TRUE CONTINUE, pressione YES e ENTER, o programa entrará.

    Se o PIC for usado deve fazer ERASE (F7) para que o conteúdo existem em  memória seja totalmente apagado. Se for novo, logicamente, esta operação é desnecessária.

    Depois à que ler o ficheiro que criamos, para tal fazemos FILE (F3),  com a tecla "D" seleccionamos a drive A:, C: ... onde está guardado o ficheiro *.HEX. Depois de seleccionado o ficheiro fazemos BLOW (F9) e aguardamos que o programa grave o ficheiro na memório EEPROM do PIC.
    Finalmente e se tudo correr normalmente, poderemos fazer READ (F4) para verificar se a informação está registada no PIC. Para termos esta indicação bastas lermos a janela "Program Dump" e verificarmos  por ex. se o endereço "0000:" tem um registo diferente de "3FFF".  A leitura "000: 3FFF 3FFF..." significa que o PIC está com a memória vazia.      

    Após todas estas operações, resta testar o PIC no circuito e boa sorte...     

    Se pretender ler o código hexadecimal de um PIC já programado sem a opção "FUSE F8", (esta opção impede que se faça a leitura do PIC)  converte-lo para linguagem assembler (ASM)

    Para qualquer esclarecimento poderão fazê-lo através do nosso e-mail.

 


Os artigos são da responsabilidade de quem os escreveu.
  Os restantes conteúdos de - © Radioamadores.net

 Página "Como Programar um Pic?" actualizada em: 01-04-2008
|Home Page |