Sunteți pe pagina 1din 28

E.T.E.

REPBLICA

CURSO TCNICO DE ELETRNICA

LABORATRIO DE ELETRNICA ESPECIALIZADA

MICROCONTROLADORES PIC

MARO DE 2014

E.T.E. REPBLICA

SUMRIO

I O Microcontrolador PIC 16F628A ..........................................................................2


I.1- Principais Caractersticas .....................................................................................2
I.2 Estrutura Interna .................................................................................................2
I.3 Pinagem e Descrio dos pinos ..........................................................................3
II Uso do Winpic800 .................................................................................................4
II.1 Descrio dos fusveis (Configurations Bits) .......................................................10
III Uso do PICkit2 Programmer ................................................................................12
IV Uso do CCS ........................................................................................................14
VI.1 Primeiros passos em CCS C ............................................................................14
VI.1.1 Utilizando o Projetct Wizard ........................................................................16
V Primeiros Programas em CCS C ...........................................................................22

E.T.E. REPBLICA

CURSO TCNICO DE ELETRNICA


LABORATRIO DE ELETRNICA ESPECIALIZADA
I O Microcontrolador 16F628A
O 16F84 encabeou durante um bom tempo a lista dos microcontroladores PIC
mais populares, representando a porta de entrada para os hobistas que desejavam
ingressar no mundo dos microcontroladores. O baixo custo e a possibilidade de fcil
reprogramao eram seus principais atrativos. Embora ainda esteja em linha, o PIC
16F628 o sobrepujou por apresentar mais recursos e mais flexibilidade a um custo menor.
I.1- Principais Caractersticas:
- encapsulamento de 18 pinos
- 15 portas de entrada/sada e uma somente de entrada
- memria de programa flash com 2K x 14 bits (contra 1K x 14bits do 16F84)
- memria EEPROM com 128 x 8 bits (contra 64 x 8bits do 16F84)
- memria de dados com 224 x 8 bits (contra 68 x 8bits do 16F84)
- duas fontes de osciladores internos: 4MHz e 37 KHz (no disponvel no 16F84)
- Trs timers: timer 0 (de 8 bits); timer 1 (de 16 bits); e timer 2 (de 8 bits). (o 16F84 s
possui um mdulo contador/temporizador).
- USART (canal de comunicao serial)
- comparador
- compatibilidade de pinos e software com o 16F84
- tenso de alimentao de +3V a +5,5 V
- temperatura de trabalho de -40C at + 125C (faixa de temperatura com designador E)
- dissipao mxima de energia: 800 mW
- correntes mximas de entrada e sada por pino: 25 mA
- 10 fontes de interrupo
- instruction set de 35 instrues
I.2 Estrutura Interna
A figura I.1 mostra o diagrama em blocos da estrutura interna do PIC 16F628A:
caracterstica da famlia PIC possuir uma memria RAM que compartilhada
pelos registradores de finalidades especficas (SFRs Special Function Registers) , tais
como o PORTx, TRISx, STATUS, INTCON e OPTION_REG; e pelos registradores de
propsito geral (GPRs General Purpose Register), que so utilizados para
armazenamento temporrio de dados a serem processados pelo programa.
A EEPROM uma terceira memria presente em alguns modelos de PIC, como
o caso do 16F84 e do 16F628, para armazenar dados que no podem ser apagados. Sem
este recurso necessrio o uso de uma memria externa.

E.T.E. REPBLICA

Figura I.1 Estrutura interna do PIC 16F628

I.3 Pinagem e Descrio dos Pinos


As figuras III.2 e III.3 mostram a pinagem e a descrio dos pinos, respectivamente, dos
PICs 16F62X.

Figura I.2 Pinagem do PIC 16F62X

E.T.E. REPBLICA

Figura I.3 Descrio dos Pinos do PIC 16F628X


II Uso do Winpic800
Em nossas prticas utilizaremos um dos softwares de programao mais utilizados
e fceis de usar: o winpic800 verso 3.55. Ele pode ser baixado gratuitamente do site
www.winpic800.com.
Uma vez que este software esteja instalado, ao ser executado ser exibida a tela
mostrada na Figura IV.15:

E.T.E. REPBLICA

Figura II.1 Tela principal do Winpic800


A Figura II.1 mostra uma tela com o idioma de exibio Portugus-BR j
selecionado. Isto feito no penltimo menu drop-down, da esquerda para a direita.
Os prximos passos so:
1) Configurar o programador que ser utilizado. A Figura II.2 mostra que deve se clicar no
menu Opes e, logo em seguida, em Hardware. Quando se abrir a janela WinPic800
Seleo de Hardware (Figura II.3).

E.T.E. REPBLICA

Figura II.2 Selecionando as opes de hardware

Figura II.3 Configurando o programador do tipo JDM


Se for utilizado o programador PROG1840P, com interface RS232, o programador
do tipo JDM, deve ser selecionado na janela Selecionar hardware no canto superior
6

E.T.E. REPBLICA
esquerdo. Logo desta janela encontra-se a seleo da porta serial COM na qual o
programador ser conectado, no caso: COM1.
Se forem utilizados outros tipos de programadores, deve-se verificar se eles so
suportados pelo Winpic800, e ento fazer a seleo adequada. H duas placas
gravadoras com interface USB em nosso laboratrio, mostradas na Figura II.4(a) e II.4(b):

(a)

(b)

Figura II.4 Gravadores USB disponveis no laboratrio


A Figura II.4(a) mostra um gravador clone do PICKIT2. Ele possui um software
especfico de gravao. J a placa mostrada na Figura II.4(b) do tipo GTP USB
(Grabador TodoPic), que pode ser gravado na verso do Winpic800 disponvel no
laboratrio (3.55). Basta selecionar GTP USB #0.
Obs.: Alguns gravadores USB utilizam um conversor USB-serial que cria uma porta
COM virtual. Neste caso, deve-se verificar no Gerenciador de Dispositivos do Windows
qual o nmero da porta COM gerada, pois aleatrio (geralmente, funciona a partir de
COM4). Diferentemente dos ajustes anteriores, este tipo de ajuste deve ser verificado
toda vez que a placa for conectada.
2) O passo seguinte selecionar o tipo de PIC nas caixas de dilogo indicadas na Figura
II.5. Como iremos trabalhar com o PIC 16F628A, na caixa indica pela seta 1
selecionamo PIC F, e na caixa indicada pela seta 2 selecionamos o nmero do PIC.

E.T.E. REPBLICA

FIGURA II.5 Seleo do tipo de PIC.


3) No prximo passo, o software deve abrir o programa que se deseja gravar no PIC. Este
um programa que j foi compilado por algum software de compilao tal como o CCS,
que utilizaremos em nossas prticas , e um arquivo com extenso .h.

Figura II.6 Abrindo o programa compilado para a gravao

E.T.E. REPBLICA
A Figura II.6 mostra que basta clicar no cone da pastinha amarela (para onde a
seta est apontando) ou no menu Arquivo e logo em seguida em Abrir, localizando-se
a pasta na qual o arquivo .h est gravado (a mesma pasta que foi criada para o projeto e
para o programa fonte, no caso, em C CCS). No exemplo, est se abrindo um programa
denominado PISCA_LED1.hex que se encontra na pasta PISCA_LED1 (que pode estar
dentro da pasta criada para a turma, por exemplo).
4) O quarto passo, caso haja necessidade, a configurao dos chamados fusveis de
configurao interna ou configuration bits. Se estes j foram definido em alguma diretiva
do programa ou no prprio software de edio/compilao, este passo pode ser pulado.
Independentemente do programador utilizado, necessrio escolher uma configurao de
trabalho do PIC. O 16F628A possui um registrador especfico para esta funo, chamado
CONFIG, o qual acessado por meio do endereo 2007h. Como este endereo est fora
da faixa de endereo da memria de programa (0000h at 07FFh), os bits desse
registrador so acessveis somente na gravao ou verificao.
No h necessidade de preocupao com esta posio de memria, pois, como j
mencionado, os softwares de gravao, assim como editores de linguagem, costumam
permitir que o usurio escolha as opes desejadas para os fusveis, e ento efetuar a
gravao automaticamente. Os itens configurados variam de PIC para PIC. O PIC
16F628A possui as seguintes opes:
- Tipo de oscilador
- Watchdog Timer (WDT)
- Power up Timer
- Brown Out Detect
- Master Clear Eneable
- Low Voltage Program
- Data EE read Protect
- Code Protect
A funo de cada um desses fusveis descrita na seo II.1.
Clicando-se na opo Config. do Winpic800 como mostrado na Figura II.7
possvel configurar estes bits, sem a necessidade de uma diretiva no cdigo em C, ou
sem usar o programa editor. Isto tambm possvel atravs do MPLAB, que pode
trabalhar associado ao CCS, no menu Configure/Configuration Bits...

Figura II.7 Acesso aos fusveis de configurao.

E.T.E. REPBLICA

A funo Config do Winpic800 tambm pode ser usada simplesmente para


checar as configuraes feitas anteriormente para o programa em questo. Se no
houver coincidncia com o que foi previamente configurado, geralmente um dentre dois
erros cometidos pelo usurio:
- O PIC no foi corretamente selecionado (Passo 2); ou
- O usurio abriu o programa errado.

5) Uma vez que a placa gravadora esteja conectada na porta COM (conector DB9) e o
PIC tenha sido detectado, clica-se no cone que tem o formato de um circuito integrado
com uma seta vermelha apontado para ele (programar tudo), como destacado na
Figura II.8, e s aguardar o tempo de gravao e verificao para ver se tudo correu
bem.

Figura II.8 Programando o PIC


II.1 Descrio dos fusveis (Configurations Bits)

Tipo de Oscilador
O PIC 16F628 pode trabalhar com vrios tipos de osciladores. Estes podem ser
internos ou externos. A escolha depende do tipo de hardware disponvel, das aplicaes e
da relao custo benefcio. Os cristais so os mais precisos, porm so os mais caros. A
malha RC a mais barata, porm de menor preciso. Uma soluo intermediria so os
ressonadores. As opes so:

10

E.T.E. REPBLICA

Watchdog Timer
O WDTE um fusvel de programao que permite habilitar ou desabilitar o WDT
(Watchdog Timer temporizador Co de Guarda), que um temporizador interno RC
que quando ocorre um overflow ou estouro (atinge o mximo da contagem) provoca um
reset no programa que esteja funcionando em modo normal. Tem um clock independente,
rodando livre e independentemente do clock principal. A principal finalidade do WDT
recuperar a CPU de eventuais travamentos no programa, que podem ocorrer por
interferncias externas ou erros no software. importante em casos onde o programa no
pode parar de funcionar, como o caso de um computador de bordo. Para a maioria dos
nossos programas o WDTE deve estar desabilitado, pois se o WDT estiver habilitado,
este deve ser resetado de tempos em tempos, de forma a nunca ocorrer o overflow do
mesmo. Este ajuste no pode ser alterado durante a execuo do programa.
Power up Timer
O temporizador de power up (PWRT), se estiver habilitado, permite que o PIC s
comece a operar cerca de 72 ms aps a fonte ter sido ligada. Evita problemas de
inicializao incorreta ou travamentos devido ao tempo de estabilizao necessrio da
fonte de alimentao ou do reset externo.
Master Clear Eneable (MCLRE)
Esta opo habilita o pino RA5/MCLR/THV a funcionar como entrada de reset. Se
isto ocorrer, h a necessidade de manter o pino correspondente (pino 4) em nvel alto, o
que feito atravs de um resistor de pull-up (resistor de elevao, conectando o pino
Vcc), que varia na faixa de 4,7 K a 10 K, geralmente. Se o MCLRE estiver
desabilitado, este pino funciona com I/O e no h necessidade do resistor de pull-up para
o funcionamento do PIC.

11

E.T.E. REPBLICA
Brown Out Detect Eneable (BODEN)
A habilitao desta opo ir resetar o PIC caso a tenso de alimentao caia
abaixo de certo valor (normalmente 4 V). Isto pode evitar travamentos com determinadas
quedas na tenso de alimentao.
Low Voltage Program (LVP)
Ativa ou no a programao de baixa voltagem. Este recurso permite que a
memria de programa do PIC seja gravada em baixa tenso (5 V ao invs dos tradicionais
13 V aplicados ao pino de programao). Isto favorece a criao de sistemas onde um
PIC grava o programa de outro PIC ou sistemas de upgrades remotos. Como os 13V
raramente esto disponveis nos projetos, este processo padroniza o hardware em nveis
TTL. Em geral, esta funo estar desabilitada de forma a permitir que o pino RB4/PGM
atue como I/O.
Data EE Read Protect
Se esta opo estiver ativada no ser possvel ler a EEPROM interna atravs do
gravador do PIC. Se esta opo estiver desativada todos os dados armazenados nesta
memria sero perdidos durante a gravao.
Code Protect (CP)
Uma vez ativado o cdigo de proteo, o programa gravado no chip no poder
mais ser lido, nem pelo programador, embora haja a possibilidade de reprogramao. Isto
evita cpias indevidas.
Checksum
O checksum o resultado da soma de todos os valores numricos armazenados
na memria de programa do PIC. Trata-se de uma tcnica de verificao de erros. Se um
programa j gravado possui o mesmo checksum de um programa compilado, mesmo com
o code protect ativado, deduz-se, por exemplo, que os dois possuem o mesmo cdigo
fonte.
Nmero de Identificao
O PIC possui 4 bytes (posies de 2000h a 2003h) que podem ser gravados para
uma identificao de verso, por exemplo. Facilita o rastreamento do software em caso de
problemas futuros, mesmo com o cdigo de proteo ativado. S os quatro bits menos
significativos de cada byte esto disponveis, de forma que 4 dgitos de 0 a 9 podem ser
usados como ID.

III Uso PICkit2 Programmer


Para a programao das placas Pickit2 (Figura II.4(a)) ser necessrio o software
adequado, cuja utilizao descrita a seguir:

12

E.T.E. REPBLICA
1) Conecte o gravador numa entrada USB do computador e clique no cone abaixo na
rea de trabalho:

Figura III.1 cone do PICkit2 na rea de trabalho

2) aps abrir a tela abrir a tela abaixo (Figura III.2), a placa e o PIC ligado a ela j devem
ter sido detectados. Se a mensagem No device found aparecer em na janela Device,
clique em Programmer/Manual Device Select.

Figura III.2 Tela do software de programao do PICkit2

3) Clique em File e logo em seguida em Import Hex para importar o arquivo compilado
(extenso .hex) desejado. Busque a pasta onde o arquivo se encontra.

13

E.T.E. REPBLICA
4) Aps a importao, clique em Write para gravar o PIC.

IV Uso do CCS
A partir de agora passaremos a ter noes sobre a linguagem C para sistemas
embarcados (embedded systems), isto , sistemas dedicados (para propsitos
especficos, em geral, automao e controle) que integram um sistema eltrico e/ou
mecnico maior. Muitos desses sistemas, hoje em dia, so baseados em
microcontroladores. Os sistemas dedicados tm objetivos opostos aos sistemas de
propsito geral, como os PCs, voltados tipicamente para processamentos de dados. O
embedded C uma extenso da linguagem C para operao com sistemas embarcados,
incluindo operaes de I/O, dentre outros recursos.
A aplicao da linguagem C em programao de microcontroladores tem ganhado
campo nos ltimos anos, substituindo com vrias vantagens a programao em assembly
que foi originalmente majoritria nessa aplicao.
Adotamos como plataforma de desenvolvimento de nossos programas em
linguagem C o software PCWHD da CCS (Custom Computer Service), empresa
responsvel pelos primeiros compiladores C para os microcontroladores da Microchip. A
verso demo, com durao de 45 dias, pode ser baixada do site www.ccsinfo.com.
Os chamados compiladores C-Aware IDE da CCS possuem as seguintes verses,
cuja aquisio depende da necessidade do cliente:
- PCW
Para PICs 10/12/16;
- PCWH
Para PICs 10/12/16/18;
- PCDIDE
Para PICs 24/dsPIC;
- PCWHD
Para PICs 10/12/16/18 e PICs 24/dsPIC.
O PCWHD, alm do mdulo IDE, constitudo por mdulos compiladores,
chamados compiladores de linha de comando (comand line), que podem ser comprados
separadamente, conforme a necessidade:
PCB
compilador para a linha base (pics de 12 bits)
PCM
compilador para a linha intermediria (pics de 14 bits)
PCH
compilador para o topo de linha (pics de 16 bits)
PCD
compilador para os pics de 24 bits

IV.1 Primeiros passos em CCS C


Esta seo tem por objetivo demonstrar o uso mais bsico e imediato do CCS
atravs do processo de criao de um programa fonte em C e de exemplos de
programas. A partir da, um primeiro contato com as funes da linguagem C, bem como
sua forma de estruturao, ser tomado. A verso ora usada em nosso laboratrio o
PCWHD verso 5.009.
Aps se clicar no cone esquematizado na Figura VI.1, na rea de trabalho, ser
exibida a tela que mostrada na Figura VI.2.

Figura IV.1 cone do CCS na rea de trabalho

14

E.T.E. REPBLICA

Figura IV.2

semelhana do MPLAB (que edita programas em assembly) e outros softwares


de programao de microcontroladores e CLPs, o CCS organiza suas aplicaes em
projetos. O projeto consiste em um nico arquivo de projeto (extenso .ccspjt, na atual
verso) e um ou mais arquivos fontes em C (extenso .c). S podem ser compilados
arquivos fontes que faam parte de um projeto. Assim, o primeiro passo a criao de um
arquivo fonte em C e sua respectiva vinculao a um projeto. Isto feito usando uma
dentre trs maneiras mais usuais:
1) Trabalhando com o CCS de dentro do MPLAB; ou
2) Utilizando-se o Project Wizard do CCS; ou ainda
3) Manualmente
O uso do MPLAB um recurso poderoso, permitindo compilar e simular o cdigo dentro
deste ambiente. Porm, pode ser um pouco complexo para iniciantes. O MPLAB no est
instalado nos computadores de nosso laboratrio, e este recurso no ser abordado aqui,

15

E.T.E. REPBLICA
at porque se torna um pouco invivel explorar todos esses recursos durante o perodo
letivo.
IV.1.1 Utilizando o Projetct Wizard
O Projetc Wizard do CCS a maneira mais simples, rpida e direta de fazer as
inicializaes necessrias para um novo programa fonte em linguagem C, inclusive as
configuraes dos fusveis. Algumas configuraes de fusveis, inclusive, no precisariam
nem ser especificadas, pois o compilador os configura automaticamente (situao
default), da seguinte maneira:
- A programao em baixa tenso (Low Voltage Program ou LVP) fica desativada;
- O Power up Timer fica ativado;
- O Watch dog Timer fica automaticamente desativado se no estiver presente no cdigo
fonte a funo restart_wdt();
- A configurao automtica dos bits de configurao feita baseada na diretiva #use
delay();
- O Master Clear Eneable (MCLRE) ativado.
Passos:
1) Clique File, logo em seguida em New, e finalmente em Project Wizard (Figura
IV.3):

Figura IV.3

16

E.T.E. REPBLICA

2) Ao ser aberta a tela Salvar como (Figura IV.4), salve o projeto na pasta desejada,
com o nome desejado (que por default main.ccspjt).

Figura IV.4
3) Na prxima tela que se abrir (Figura IV.5), no item Device que a primeiro que se
abre selecione PIC16 na caixa intitulada Family (ou mantenha o defaut all), na aba
Options General Device;
Na caixa Device, na mesma aba, selecione o nmero do nosso PIC: 16F628A.
Ainda na mesma aba, abaixo, esto as opes de clock. Na caixa Oscillator Type
selecione Internal, para que o PIC possa funcionar com seu clock interno, sem a
necessidade de clocks externos (como um cristal, por exemplo). Na caixa Clock Speed,
digite a frequncia desejada, que pode ser selecionada em Hz, KHz ou MHz. No caso,
usaremos a frequncia do clock interno de 4 MHz (4.000.000 Hz).
Mais abaixo, mantenha o Watchdog Timer desabilitado, mantendo desclicado o
eneable na opo WDT.
4) Desa a barra de rolagem vertical na parte esquerda da tela at o final e selecione a
opo Fuses (Figura IV.6).
Na aba Options (Figura IV.7) desabilite a opo Master Clear pin eneable,
desabilitando a entrada de Master Clear (isto permite que este pino correspondente do

17

E.T.E. REPBLICA
PIC pino 4 prescinda do uso de um resistor de pull-up, j que a entrada de Master
Clear no ser utilizada. Isto disponibiliza tambm a entrada RA5).

Figura IV.5
Habilite o Power Up Time e o Reset when brownout detected.
Clicando na aba Code (Figura IV.8) pode-se verificar a configurao escolhida
para os fusveis (que teria de ser introduzida manualmente no programa caso no se
utilizasse o o Project Wizard). O que aparece direita da dupla barra (//) so
comentrios. As linguagens de programao dispem desse recurso para facilitar a
interpretao do que o programa est fazendo, servindo apenas para quem est lendo o
cdigo, pois no constituem comandos ou funes da linguagem. A dupla barra utilizada
para comentrios de linha (apenas em uma linha), j para comentrios de bloco (vrias
linhas) deve-se utilizas os delimitadores /* no incio do comentrio e */ no final do
comentrio.
Se quisermos testar o programa sem uma determinada parte dele (bloco ou
conjunto de instrues), basta transformar a parte que se quer eliminar em comentrio.
Assim, no h a necessidade de apagar todos os comandos e eles podem facilmente ser
reinseridos, caso haja necessidade.

18

E.T.E. REPBLICA

Figura IV.6

Figura IV.7

19

E.T.E. REPBLICA

Figura IV.8
5) Clique em Create Project no canto inferior direito e ser exibida a tela da figura IV.9:

Figura IV.9
No arquivo cabealho (extenso .h) introduzidos pela diretiva include,
encontram-se todas as configuraes feitas no projeto. Estas teriam que ser includas

20

E.T.E. REPBLICA
manualmente, caso no se houvesse empregado o Project Wizard, usando as seguintes
diretivas:
#include<16f628a.h>
#fuses intrc_io, nowdt, nolvp, nomclr, brownout, put
#use delay(clock=4000000)

A diretiva include inclui um programa fonte em outro. A primeira linha inclui um


arquivo cabealho (header file, com extenso .h) com as configuraes do PIC que vai
ser utilizado (16F628A). Um arquivo cabealho um programa reutilizvel em vrios
outros programas, pois permite manter separados certos elementos do cdigo fonte
principal.
Sua forma geral :
#include "nome_do_arquivo" ou
#include <nome_do_arquivo>
A diferena entre se usar " " ou < > esta somente na ordem de procura nos
diretrios pelo arquivo especificado. As aspas devem ser utilizadas, caso se deseje
informar o nome do arquivo com o caminho completo, ou o arquivo estiver no diretrio de
trabalho. Se o arquivo for prprio do sistema, use < >, para procura por caminhos prespecificados do compilador.
Toda diretiva iniciada por # e no usa ; no final da linha.
A diretiva fuses configura os fusveis (configurations bits), de acordo com o
quadro abaixo:
FUNO
Master Clear
Brown Out
Watch dog timer
Power up timer
Low Voltage Program

Code Protect
Data EE Read Protect
Oscilador

DESCRIO
Habilita Master Clear
Desabilita Master Clear
Habilita brownout detect
Desabilita brownout detect
Habilita Watchdog Timer
Desabilita Watchdog Timer
Habilita Power Up Timer
Desabilita Power Up Timer
Habilita prog. em b. tenso
desabilita prog. em b.
tenso
PROTECT
Leitura do cdigo protegida
NOPROTECT
Leitura no protegida
CPD
Leitura da EPROM prot.
NOCPD
Leitura da E PROM no p.
LP, RC, XT, HS, INTRC_IO, Vrios
tipos
de
clock
INTRC_OSCOUT, EC e
internos e externos
EC_OSCOUT
MCLR
NOMCLR
BROWNOUT
NOBROWNOUT
WDT
NOWDT
PUT
NOPUT
LVP
NOLVP

21

E.T.E. REPBLICA

A diretiva use delay(clock=4000000), especifica a frequncia do clock em 4 MHz.

V Primeiros Programas em CCS C


Um dos conceitos mais importantes da linguagem C o de funo. Uma funo
encerra a idia de uma sub-rotina, ou seja, um subprograma.
Todo programa em C deve ter uma e somente uma funo principal, denominada
main. O nosso programa mnimo em linguagem C est esquematizado abaixo:

1 PROGRAMA Programa_Mnimo em CCS C

#include <16F628A.h>
Main( )
{
}
Em qualquer compilador de linguagem C tradicional a funo Main, com as
duas chaves delimitando o incio e o fim da funo, j seria o bastante. No caso do
compilador para microcontroladores, entretanto, h a necessidade da incluso do
arquivo cabealho (header) que contm as informaes necessrias ao PIC que
ser usado (no caso, o PIC 16F628A). Da a necessidade da diretiva include no
incio do programa (como visto anteriormente, isto feito automaticamente ao se
usar o Project Wizard).
O programa anterior nada faz, mas j compilado sem erros. Experimente
digitar, compilar e gravar os programas a seguir e, com base nas explicaes de
sala de aula, responda o questionrio a seguir:

2 PROGRAMA Programa Pisca_Led1


#include<16f628a.h>
#fuses intrc_io, nowdt, nolvp, nomclr, brownout, put
#use delay(clock=4000000)
void main()
{
while(true)
{
output_high(pin_B7);
delay_ms(1000);
output_low(pin_B7);
delay_ms(1000);

22

E.T.E. REPBLICA
}
}

3 PROGRAMA Programa Pisca_Led2

#include<16f628a.h>
#fuses intrc_io, nowdt, nolvp, nomclr, brownout, put
#use delay(clock=4000000)
#define led pin_b5
main()
{
while(true)
{
output_high(led);
delay_ms(1000);
output_low(led);
delay_ms(1000);
}
return(0);
}
4 PROGRAMA Programa Pisca_Led3
#include<16f628a.h>
#fuses intrc_io, nowdt, nolvp, nomclr, brownout, put
#use delay(clock=4000000)
main()
{
while(true)
{
output_bit(pin_B1,0); // coloca o bit 1 da porta B em nvel baixo
delay_ms(1000);
output_bit(pin_B1,1); // coloca o bit 1 da porta B em nvel alto
delay_ms(1000);
}
return(0);
}
5 PROGRAMA Programa Pisca_8_Leds_juntos1

23

E.T.E. REPBLICA

#include<16f628a.h>
#fuses intrc_io, nowdt, nolvp, nomclr, brownout, put
#use delay(clock=4000000)
main()
{
while(true)
{
output_b(0b00000000);
delay_ms(1000);
output_b(0b11111111);
delay_ms(1000);
}
return(0);
}

6 PROGRAMA Programa Pisca_8_Leds_alternados1


#include<16f628a.h>
#fuses intrc_io, nowdt, nolvp, nomclr, brownout, put
#use delay(clock=4000000)
main()
{
while(true)
{
output_b(0b01010101);
delay_ms(1000);
output_b(0b10101010);
delay_ms(1000);
}
return(0);
}

Exerccios
1) Numere a sequncia de passos abaixo de forma a coloc-la na ordem certa:
(
(
(
(

) compilar o programa
) Identificar erros de sintaxe e lgica (debbug)
) editar o programa em linguagem
) gravar o PIC

24

E.T.E. REPBLICA

3) Em funo do hardware abaixo, responda as questes a seguir:

a) Sabendo-se que o circuito ser montado num protoboard apenas com os componentes
apresentados, que cuidados devem ser tomados na configurao dos fusveis em relao
ao Master Clear e ao tipo de clock? Por qu? O que h de diferente na base de testes
empregada no laboratrio no tocante a esses itens?
b) Calcule um adequado valor para R1 considerando-se:
tenso de sada em nvel alto 5,0 V
corrente nominal do led 20 mA
tenso sobre o led (aceso) 2,0 V
c) Qual dos programas Pisca_led (1, 2 ou 3) estaria adequado para este hardware, de
forma que o led permanea 1 segundo aceso e 1 segundo apagado?
d) Altere este programa de forma que:
d.1) O led pisque mais rpido
d.2) O led pisque mais lentamente
d.3) O led permanea 4 segundos aceso e 2 segundos apagado

25

E.T.E. REPBLICA

4) Quais os limites mximo e mnimo da funo Delay?


5) Redesenhe o esquema de forma a atender os outros dois programas Pisca_led
6) Em relao a linguagem C, responda:
a) uma linguagem estruturada? Por qu?
b) uma linguagem case sensitive? O que acontece no CCS?
c) Defina o conceito de funo em linguagem C
d) Defina o conceito de diretiva
e) Explique porque instrues de desvio incondicional, do tipo GOTO, so
desaconselhados em C.
7) Correlacione as colunas:
1 OUTPUT_HIGH (pino)
2 OUTPUT_LOW (pino)
3 OUTPUT_bit (pino, estado)
4 OUTPUT_X (byte)
(
(
(
(

) coloca o pino especificado em determinado nvel lgico


) coloca o pino especificado em 0
) coloca o pino especificado em 1
) Escreve um byte em uma determinada porta do microcontrolador.

8) O arquivo de um programa fonte em C tem extenso:


( ) .HEX

( ).CCSPJT

( ).C

( ).PBAS

9) O arquivo de um programa para ser gravado no PIC deve ter extenso:


( ) .HEX

( ).CCSPJT

( ).C

( ).PBAS

10) No Programa Pisca_Led3 cite exemplos de:


a) instruo de entrada e sada
b) diretiva
c) arquivo cabealho
d) instruo de controle de fluxo
e) comentrio
f) instruo de atraso
11) Quais as formas de citar um comentrio em C?
12) Por que no Programa Pisca_led1 no foi necessrio um return(0) no final da funo?

26

E.T.E. REPBLICA
13) Altere o 5 programa e o 6 programa de maneira a passar a informao de binrio
para hexadecimal.
14) Elabore um programa em CCS C que pisque alternadamente dois leds colocados em
RB3 e RB6. Eles devem permanecer 0,5 segundo aceso e 0,5 segundo apagado.

27

S-ar putea să vă placă și