Sei sulla pagina 1di 4

Introduo a programao de microcontroladores usando o compilador PICC Lite.

Os microcontroladores atualmente fazem parte de nossas vidas de forma muito freqente, porm pouco nos damos conta de sua importncia. Eles esto presentes desde simples eletrodomsticos at grandes equipamentos industriais realizando tarefas complexas de controle e automao que seriam muito mais custosos sem os microcontroladores. Outros equipamentos onde encontra-se o uso de microcontroladores so os celulares, carros, aeronaves, robs, televisores, aparelhos de DVD e etc. Os microcontroladores so circuitos integrados que contm, alm de um microprocessador, memrias ROM e RAM, portas paralelas e seriais, conversores A e D/A, entre outros /D perifricos, que podem ser utilizados para diversas finalidades e que esto embutidos em um nico chip. Os microcontroladores podem ser programados utilizando diversas linguagens de programao como assembly, C e Pascal. Para programar tambm ser necessrio utilizar compiladores especficos. H diversos compiladores no mercado cada com suas vantagens e desvantagens. Para a linguagem de programao C os compiladores mais conhecidos so CCS , MikroC Compiler e Hi-Tech PIC C compiler (ou a verso gratuita PICC lite compiler). J para a linguagem Pascal os compiladores disponveis so MikroPascal e P2C. No caso da linguagem assembly ao invs de se utilizar um compilador usa-se um montador. O ambiente de desenvolvimento MPLAB IDE em sua verso gratuita j vem incluso um montador assembly chamado MPASM permitindo o desenvolvimento de programas para microcontroladores da MicroChip usando a linguagem assembly. Este artigo ir introduzir o leitor na rea de microcontroladores PIC utilizando a linguagem de programao C e o compilador PICC lite da HI TECH (compilador gratuito). Ser demonstrado tambm como utilizar o IDE MPLAB como ambiente de desenvolvimento de programas para microcontroladores. Alm de como utilizar um software de simulao ISIS PROTEUS para executar seus programas antes de montar um circuito em uma proto-board ou testar em um kit de desenvolvimento. Para melhor entendimento conveniente que o leito tenha um r conhecimento bsico em eletrnica e programao. Ser utilizado como exemplo o microcontrolador PIC16F877A. Este microcontrolador possui memrias ROM e RAM, conversor A/D e uma considervel quantidade de interfaces de entrada e sada alm de muitos outros recursos. Essas caractersticas variam de um microcontrolador para outro e devem ser analisadas de acordo com as necessidades de cada projeto. Informaes completas sobre um microcontrolador podem ser encontradas em seu DataSheet. A figura a baixo ilustra as interfaces do microcontrolador PIC16f877A.

Figura1. Microcontrolador PIC16F877A [imagem retirada de seu DataSheet] Como pode ser visto na figura uma nica interface (pino) pode desempenhar mais de uma funo. O pino 33, por exemplo, pode ser utilizado como uma interface de entrada ou de sada e ainda pode ser configurado para ativar interrupes externas. Mais detalhes sobre a funo de cada pino tambm pode ser encontrada no DataSheet do microcontrolador. Para iniciar a aprendizado em programao de microcontroladores alguns conceitos bsicos devem ser entendidos. Como qualquer programa em C a sua execuo comea pelo mtodo main(), ento ser necessrio implement-lo. Os includes tambm devem ser usados conforme necessrio. Uma biblioteca que indispensvel ao programar para microcontroladores PIC usando o compilador PICC lite o htc.h. Essa biblioteca contm definies padres do microcontrolador. Para inclu-la em seu programa basta adicionar a seguinte linha no inicio do cdigo: #include <htc.h> O cdigo a baixo ser utilizado para auxiliar o entendimento dos conceitos que sero apresentados em seguida. Veja o exemplo de um programa para microcontroladores.

WatchDogs: Nas primeiras linhas so mostradas como fazer comentrios em seu cdigo. Depois includo a biblioteca htc.h e o mtodo main() criado. Em seguida uma declarao feita para desativar o WatchDog. O WatchDog (co de guarda) um dispositivo que reinicia o programa em execuo no microcontrolador quando no aplicado um reset no WatchDog durante um determinado tempo. Ele serve para alertar falhas que podem ocorrer durante a execuo de um programa. Para evitar ter que aplicar reset ao WatchDog constantemente no cdigo pode se desativ-lo como foi feito neste exemplo. Aps desativar o WatchDog as interfaces que iniciam como o nome RB so configuradas, ou seja, as interfaces RB0, RB1 at a RB7. Para configurar as interfaces RC ou RD basta trocar a palavra TRISB por TRISC ou TRISD respectivamente. A configurao foi realizada utilizando nmeros binrios isso evidente ao verificar que a configurao comea com 0b. Aps o 0b vem uma sequncia de oito algarismos podendo assumir apenas os valores 1 e 0 (j que uma representao binria). O primeiro algarismo representa a configurao da porta RB7, o segundo da porta RB6 e assim at o ultimo algarismo representar a configurao da porta RB0. Quando se deseja configurar uma porta como entrada pe o valor 1, para sada valor 0. -se Ento a configurao realizada no programa apresentado de que apenas a porta RB0 ser uma porta de entrada de dados proveniente do meio externo enquanto as demais sero portas de sada. O resto do cdigo cria um loop infinito que verifica se o pino RB0, configurado para entrada, recebe o valor 1 do meio externo. Caso um sinal de valor 1 esteja sendo enviado ao microcontrolador pelo pino RB0 ento um sinal de valor 1 sair do microcontrolador pelo pino RB1. Caso contrrio a sada do pino RB1 ser o valor 0. Exemplo de aplicao deste cdigo seria ligar o pino RB0 a um boto (devidamente conectado a um Vcc e um GND) e o pino RB1 ao um LED. Com isso poderia verificar-se que ao pressionar o boto a luz do led se acenderia.

Ser mostrado agora como utilizar o microcontrolador para um projeto de um simples piscapisca. O programa a ser criado ir fazer o microcontrolador funcionar como um pisca-pisca. Os pinos RD0 a RD3 do PIC16F877A sero conectadas a leds que iro simular o pisca-pisca. Os pinos RB0 e RB1 iro funcionar como entradas que modificaro a forma como os leds iro piscar. Tendo esses dois pinos como entradas pode-se criar at quatro maneiras diferentes de acender os leds. A tabela a seguir mostra o que o programa dever fazer de acordo com as entradas. Entrada RB0 0 0 1 1 Entrada RB1 0 1 0 1 Resumo da ao Manter leds apagados Piscar um led por vez na ordem de RD0 a RD3 Piscar um led por vez na ordem inversa (de RD3 a RD0) Piscar leds alternadamente.

Esse programa ir usar um mtodo que provoca um atraso em sua execuo. O mtodo o __delay_ms(n) que faz o programa parar por n milissegundos. Para utiliz-lo necessrio definir a freqncia de funcionamento do microcontrolador atravs da seguinte linha de comando: #define _XTAL_FREQ 8000000 Ser mostrado no primeiro vdeo como criar um projeto no MPLAB para o microcontrolador PIC16F877A e o compilador PICC - lite. Em seguida um programa em linguagem C ser desenvolvido e incorporado ao projeto depois compilado e exportado para um arquivo hexadecimal. Este arquivo hexadecimal contm o programa desenvolvido em C a ser executado pelo microcontrolador. (fazer vdeo criando um projeto e programando um pequeno exemplo no IDE MPLAB) O segundo vdeo ir mostrar como utilizar o software Isis para simular um ambiente e testar o programa desenvolvido. Este software simula diversos equipamentos eletrnicos incluindo microcontroladores da famlia PIC. (fazer outro vdeo testando cdigo no ISIS) Este artigo introduziu conceitos bsicos sobre a programao de microcontroladores em linguagem C para o compilador TCC lite, porm sem entrar em muitos detalhes devido grande extenso do contedo relacionado programao de microcontroladores e todo seu potencial. Outros artigos sero publicados no intuito mostrar mais detalhes sobre este assunto. Referncias:

Para baixar o cdigo fonte criado e o projeto do Isis click aqui.

Potrebbero piacerti anche