Você está na página 1de 21

[www.denteazul.com.

br]

TUTORIAL TERICO: Como utilizar o PROTEUS, PIC C, MPLAB e PICKit 2


O uso de microcontroladores em circuitos eletrnicos est ligado utilizao de alguns softwares que facilitam e efetivam a incrementao do componente em qualquer projeto. Este tutorial mostra os primeiros passos da utilizao do software de simulao PROTEUS, o compilador PIC C e o software para a gravao do cdigo no PIC, MLAB para que voc possa realizar seus primeiros projetos com microcontroladores.
INTRODUO

Para mostrar como se manipula os programas supracitados ser realizado um projeto bem simples, o qual aciona um LED. O uso do simulador PROTEUS A utilizao de um software para simular um circuito eletrnico contribui para a organizao de idias durante o projeto, e uma forma mais didtica de entender o funcionamento do circuito. O software para simulao utilizado ser o PROTEUS em sua stima verso. A seguir sero demonstrados os passos iniciais para realizar a simulao do primeiro projeto didtico, o acendimento de um LED atravs do PIC16F84A. 1 Passo: Com o software PROTEUS devidamente instalado em seu computador, abra o programa Isis 7 Professional , de acordo com o caminho dado abaixo: Menu Iniciar -> Programas -> Proteus 7 Professional -> Isis 7 Professional 2 Passo: Encontre clique sobre o cone indicado pela figura 1 com o nome de Component Mode. Posteriormente clique sobre o cone indicado pela letra P (PICk from Libraries), como mostra a figura 2.

[www.denteazul.com.br]

Figura 1 Manipulao inicial do programa PROTEUS

3 Passo: Na janela que abrir, encontre o campo de texto com o ttulo de Keywords (figura 2), neste campo digite a palavra PIC16F84A.

Figura 2 - Localizao de componentes no programa PROTEUS

Note que no campo Results est especificado o microcontrolador PIC16F84A, e no campo direita est a representao deste no modo simulao. Clique em OK.

[www.denteazul.com.br]

Figura 3 - Visualizao dos componentes no programa PROTEUS

Verique se o nome do componente consta no campo DEVICES, caso esteja, clique em cima do nome clique sobre a rea central delimitada por um retngulo azul como mostra a figura 4.

Figura 4 - Insero de componente no programa PROTEUS

Pronto! Voc adicionou seu primeiro componente na rea de simulao do PROTEUS, agora, para adicionar outros componentes, basta seguir a mesma lgica. Para o primeiro projeto didtico sero usados seis componentes, os quais so: PIC16F84A; RESISTOR 1K (Simbologia para o PROTEUS: RESISTOR);

[www.denteazul.com.br]
RESISTOR 330 (Simbologia para o PROTEUS: RESISTOR); LED-YELLOW; CAPACITOR 22 pF (Simbologia para o PROTEUS: CAP); Oscilador 20MHz (Simbologia para o PROTEUS: CRYSTAL);

A figura 5.a mostra todos os componentes necessrios para o primeiro projeto inseridos no campo DEVICES. Para conectar o terminal de um componente a outro componente basta posicionar o mouse no fim do terminal que aparecer um lpis do lugar do ponteiro do mouse, clique sobre o terminal e clique posteriormente no terminal do outro componente, como mostra a figura 5.b.

Figura 5.a - Todos os componentes inseridos

Figura 5.b Ligao entre componentes

No exemplo acima, foi adicionada uma resistncia de 10K com o nome de R1, mas este valor no fixo, caso voc deseje alterar o valor ou o nome da resistncia, d um clique duplo sobre o componente e observe que a janela mostrada na figura 6 ir se abrir. Nesta janela h opes para alterar as informaes do componente, para o primeiro projeto iremos alterar o valor de 10K para 330 . Sendo assim, voc pode alterar as informaes de vrios componentes desta forma.

Figura 6 - Mudana no valor da resistncia

[www.denteazul.com.br]
Caso voc no queira interligar os componentes por meio de fios, para que o projeto no fique to confuso, poder lanar mo do uso de pinos que realizam a mesma tarefa e deixam mais limpo o visual do projeto, como mostra a figura 7.

Figura 7 - Insero dos pinos de conexo

V em Terminals Mode e escolha o terminal denominado INPUT e adicione-o simulao, posteriormente v em Terminals Mode e escolha o terminal OUTPUT e o adicione simulao como mostra a figura 8.

Figura 8.a - Insero do pino OUTPUT

importante que voc nomeie o terminal de sada e o de entrada (de dados) de forma igual, para que um faa referncia ao outro. Outra dica importante diz respeito ao aterramento dos componentes, quando se simula um projeto eletrnico atravs do software PROTEUS necessrio que se nomeie o TERRA como VSS ou GND. Abaixo, a figura 9 mostra o primeiro projeto com todas as ligaes j realizadas. O Oscilador externo usado ser do tipo high speed, utilizando um cristal cuja frequncia de 20MHz de acordo com a especificao da folha de dados do PIC16F84A.

[www.denteazul.com.br]
Oscilador Tipo High Speed
C1
22pF

X1 C2
VSS 22pF 16 15 CRYSTAL

Microcontrolador
U1 R1
OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13

R2
330

Reset Manual

VCC 1k

D1
LED-YELLOW

R3
1k

VSS

VSS

Figura 9 - Circuito com reset manual

O Reset Manual uma funo que o microcontrolador possui para que o usurio possa resetar o programa manualmente, caso este ltimo pare de ser executado. A lgica da funo ter o pino MCLR sempre alimentado pela fonte VCC, e caso o pino detecte um sinal VSS ou GND, o PIC reinicializado. Isso feito conectando um boto do tipo Push Button (que gera apenas um pulso de sinal) entre a alimentao (VCC) e o terra (VSS) para que ao ser pressionado o MCLR, momentaneamente seja aterrado. Por existir uma maneira automtica de realizar a reinicializao do PIC (a funo Watch Dog Timer), geralmente a funo de reset manual no utilizada, logo o pino MCLR ligado diretamente fonte de tenso VCC, como mostra a figura 10.
Oscilador Tipo High Speed
C1
22pF

X1 C2
VSS 22pF 16 15 CRYSTAL

Microcontrolador
U1 R1
VCC 1k OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13

R2
330

D1
LED-YELLOW

VSS

Figura 10 - Circuito com reset automtico

[www.denteazul.com.br]
O uso do compilador PIC C O PIC C Compiler um software que auxilia na criao de cdigos direcionados para microcontroladores. Com o PIC C possvel programar um PIC usando a linguagem C, sem, portanto, dominar a linguagem Assemby. A linguagem de programao Assembly d ao programador maior controle sobre o cdigo, mas uma linguagem cuja complexidade bastante elevada, por isso o uso da linguagem C. A seguir sero mostrados os passos para se criar um cdigo utilizando o PIC C. 1 Passo: Com o software devidamente instalado em seu computador, abra o programa PIC C atravs do caminho descrito abaixo: Menu Iniciar->Programas->PIC-C->PIC C Compiler 2 Passo: Na aba superior chamada Project, clique sobre PIC Wizard, como mostra a figura 11 abaixo:

Figura 11 - Ambiente do PIC C

3 Passo: Escolha uma pasta para salvar os arquivos necessrios ao cdigo criado.

[www.denteazul.com.br]

Figura 12 - Procedimento para salvar o cdigo

4 Passo: Esta tela que se segue lhe permitir escolher qual o PIC usado, os seus modos de operao, definir a funo de um pino especfico, determinar os parmetros da comunicao serial RS232, entre outras vrias configuraes. Neste momento o estudante no precisar conhecer todos os parametros..

Figura 13 - Parmetros para configurao do microcontrolador

[www.denteazul.com.br]
Primeiramente, no campo Device, escolha o nome do PIC que ir utilizar no projeto, neste caso ser escolhido o PIC16F84A como mostra a figura 14. Verifique que a frequncia de oscilao obedece ao especificado pela folha de dados do PIC, ou seja, 20MHz.

Figura 14 - Configurao do tipo de microcontrolador

Agora, no campo Fuses, na primeira lista, escolha a opo High speed Osc (>4mhz for PCM/PCH), indicando que o tipo de oscilador utilizado ser o High Speed.

Figura 15 - Configurao dos Fuses

[www.denteazul.com.br]
Selecione a caixa Power Up Timer e clique em OK.

Figura 16 - Configurao dos Fuses

5 Passo: Quando a tela mostrada pela figura abaixo surgir, pressione a tecla F9 do seu teclado para compilar o programa.

Figura 17 - Cdigo inicialmente criado pelo programa

10

[www.denteazul.com.br]
Na aba main.h copie todo o cdigo

Figura 18 - Cdigo mai.h

Figura 19 - Cdigo main.c

11

[www.denteazul.com.br]
Diretivas especficas do compilador PIC C O compilador PIC C possui algumas instrues bsicas e especficas da programao direcionada microcontroladores. Instrues estas que podem ser acessadas a qualquer momento durante a execuo do programa por meio da Ajuda do CCS, que pode ser acessada pressionando a tecla F1 do teclado quando estiver executando o programa. Uma das instrues mais bsicas para se realizar no compilador determinar o valor de tenso (zero ou cinco Volts) da sada de um pino especfico do PIC, para, por exemplo, acender ou apagar um LED. A grafia da instruo a seguinte: 1 output_high(PIN_B1); 2 output_low(PIN_B1); A primeira linha informa que a sada do pino 1 da porta B ser 5V ou nvel lgico 1 (nvel lgico alto), j na segunda linha o pino B1 ir fornecer uma tenso de zero volts, ou seja, est internamente aterrado, nvel lgico 0 (nvel lgico baixo). Outra diretiva bsica e importante do PIC C faz o microcontrolador aguardar algum tempo antes de executar a prxima instruo. Esta diretiva possui trs formas de operao, as quais so:

1) delay_ms(x); - Faz o PIC aguardar x milissegundos para executar a prxima linha; 2) delay_us(x); - Faz o microcontrolador esperar x microssegundos para executar a prxima instruo; A partir destas diretivas mostradas acima, voc j pode tanto acender um LED quanto apag-lo ou faz-lo piscar como mostra o exemplo de cdigo abaixo: #include <16F84A.h> #FUSES NOWDT #FUSES HS PCD) #FUSES PUT //No Watch Dog Timer //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for //Power Up Timer

12

[www.denteazul.com.br]
#FUSES NOPROTECT #use delay(clock=20000000) //Code not protected from reading

void main() { setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); while(1){ output_high(PIN_B1);

//Coloca o PIN_B1 em nvel um.

delay_ms(1000); // Espera de 1000 milissegundos ou 1 segundo. output_low(PIN_B1); // Coloca o PIN_B1 em nvel zero.

delay_ms(1000); // Espera de 1000 milissegundos ou 1 segundo. } } Simulao do circuito no PROTEUS Para simular o circuito juntamente com o cdigo no PROTEUS simples, basta informar ao microcontrolador simulado, o local onde se encontra o cdigo. A sequncia de figuras abaixo mostra como realizar este procedimento: 1 Passo: D um clique duplo sobre o PIC 16F84A

Figura 20 - Configurao do PIC16F84A no programa PROTEUS

13

[www.denteazul.com.br]
2 Passo: Clique sobre o cone foi salvo. do Program File e encontre o lugar em que o cdigo

Figura 21 - Escolha do cdigo para realizar a simulao

3 Passo: Escolha uma das extenses (.hex ou .cof)

Figura 22 - Escolha do tipo de extenso

4 Passo: Mude o valor de 1MHz em Processor Clock Frequency para 20MHz e clique em OK.

14

[www.denteazul.com.br]

Figura 23 - Escolha da frequncia de operao

Agora voc poder simular o circuito que acabou de criar, apenas clicando sobre o boto que se encontra no canto esquerdo da janela do PROTEUS.

O uso do programa MPLAB

O programa MPLAB disponibilizado de forma gratuita pela Microchip e uma ferramenta muito til para se criar cdigos e efetuar a gravao dos cdigos no PIC. Este tutorial abordar apenas o processo de gravao. A seguir sero mostrados os passos para realizar a gravao do cdigo no PIC. 1 Passo: Com o software devidamente instalado em seu computador, abra o programa MPLAB atravs do caminho descrito abaixo:

15

[www.denteazul.com.br]
Menu Iniciar->Programas->Microchip->MPLAB IDE->MPLAB IDE

2 Passo: V at a aba Configure e selecione a opo Select Device.

3 Passo: Na janela que surgir, escolha no campo Devices a opo PIC16F84A.

16

[www.denteazul.com.br]

4 Passo: Note que nesta janela existem os campos Programmers, Language and Desing Tools e Debuggers, estes campos dizem respeito aos programas e gravadores suportados pelo microcontrolador escolhido no MPLAB. Para este tutorial foi utilizado o gravador do tipo PICKit 2, gravador este que o programa MPLAB no suporta a gravao para o microcontrolador escolhido (PIC16F84A), como possvel visualizar na figura abaixo. Para este tipo de situao a Microchip tambm disponibiliza os programas dos gravadores que o MPLAB no suporta. Portanto, primeiramente iremos mostrar como gravar o PIC16F84A com o gravador PICKit 2 (e seu programa especfico) e posteriormente iremos mostrar o processo de gravao do PIC16F877A usando o gravador PICKit2 com o MPLAB.

17

[www.denteazul.com.br]
PICKit 2 1 Passo: O programa PICKit 2 Programmer utilizado para gravar cdigos em microcontroladores especificamente para o gravador PICKit 2 e sua manipulao bastante simples. A figura abaixo mostra a interface inicial do programa. Primeiramente v ao campo Device e selecione a opo PIC16F84A.

PICKit 2 2 Passo: V na aba File e selecione a opo Import Hex.

PICKit 2 3 Passo: Escolha o arquivo .hex gerado pelo PIC C e clique em Abrir.

18

[www.denteazul.com.br]

PICKit 2 4 Passo: V no campo Write e clique sobre o boto. Depois de alguns segundos a mensagem de programao bem sucedida ir aparecer no campo em verde.

Para gravar um outro PIC que o MPLAB suporte a utilizao do gravador PICKit2, por exemplo o PIC16F877A, continue lendo os passos abaixo: 5 Passo: Selecione, no campo Device, a opo PIC16F877A e observe que no campo Programmers a opo PICKit 2 est marcada em verde.

19

[www.denteazul.com.br]

6 Passo: V na aba Programmer, selecione a opo Select Programmer e escolha o gravador PICKit 2. Verifique que aps realizar este procedimento o programa ir carregar as configuraes do gravador.

7 Passo: V na aba File e selecione a opo Import e posteriormente escolha o arquivo (.hex ou .cof) para ser gravado no PIC.

20

[www.denteazul.com.br]

8 Passo: V na aba Programmer e selecione a opo Program e aguarde at que o programa termine a gravao.

21

Você também pode gostar