Você está na página 1de 26

Cícero Lima.

ÍNDICE

Introdução................................................................................ 01
.............
Hardware.................................................................................. 02
.............
Softwares.................................................................................. 04
............
O 10
Programador.............................................................................
........
O Porgramador 10
JDM...........................................................................
Circuito de 11
alimetação.........................................................................
Programa nº 1 Pisca-pisca com 13
LED..................................................
Gravar um programa no 14
Microcontrolador........................................
Instalar um 16
simulador.........................................................................
Testar um programa no 16
Simulador....................................................

Programa nº 2 19
Botão............................................................................
Programa nº 3 Interruptores ou 19
sensores............................................
Programa nº 4 Criar uma 20
melodia.......................................................
Programa nº 5 20
LCD’s............................................................................
Programanº 6 21
Sequêncial.....................................................................
Lista de 22
Comandos...............................................................................
Bibliografia............................................................................... 23
.............

Introdução

Um microcontrolador (uC) é um computador em um chip, contendo


um processador, memória e periféricos de entrada e saída. É um
microprocessador que pode ser programado para funções específicas,
em contraste com outros microprocessadores de propósito geral. Eles
são embarcados no interior de diversos dispositivos elétricos e

-1-
eletrônicos para que possam controlar as funções e ações do
aparelho.

Os microcontroladores se diferenciam dos processadores, porque


além dos componentes lógicos e aritméticos de um
microprocessador, o microcontrolador integra elementos adicionais
em sua estrutura interna, como memória de leitura e escrita para
armazenamento de dados, memória somente de leitura para
armazenamento de programas, EEPROM para armazenamento
permanente de dados, dispositivos periféricos como conversores
analógico/digitais (ADC), conversores digitais/analógicos (DAC) em
alguns casos; e, interfaces de entrada e saída de dados.

Os PIC16F627 e PIC16F628 são microcontroladores produzidos pela


Microchip Technology e que pertencem à sua família PIC de
microcontroladores. Ambos possuem características semelhantes
diferindo apenas na sua capacidade de memória flash disponível para
o software. O PIC16F627 possui 1024 palavras de 14 bits enquanto
que o PIC16F628 dispõe de 2048 palavras de 14 bits sendo
compatíveis em todos os outros aspectos. Ambos possuem 224 bytes
de Memória RAM e 128 bytes de memória EEPROM.

Distribuição do hardware interno de um uC-PIC

Não se assuste, pois com o


tempo você se
familiarizará com os
diversos conceitos
utilizados no trabalho com
os Microcontroladores.
Para facilitar, olhe para o
PIC como um conjunto de
portas-lógicas com um
interruptor em cada
entrada em cada saída;
sendo que, basta ligar ou
desligar os interruptores
que forem convenientes
para a finalidade do
circuito projetado.

-2-
Não entraremos em detalhes de arquiteturas e outros elementos
concernentes ao estudo do Microcontroladores, pois o objetivo aqui é
fazer uma introdução prática ao Hardware e Software, bem como,
Programação, gravação e montagem dos circuitos utilizando os uC-
PIC’s.

Hardware

Na hora de montar o circuito, devemos saber o que queremos que ele


faça, pois é apartir desse ponto que podemos ter uma idéia de como
será o programa que vamos gravar no PIC.
Os uC’s-PIC não são componentes com grandes vulnerabilidades
relacionadas as grandezas elétricas; no entanto, devemos obedecer
aos critérios específicos da marca e modelo, para que além de
funcionar corretamente, o uC não seja danificado antes de sair da
bancada de montagem.
A figura abaixo, nos mostra como deve ser montado o PIC 18F452.
Mas não se preocupe, pois se utilizar outros modelos, poderá
consultar o banco de DataSheet’s na Web.
O PIC será alimentado apartir de uma fonte de tensão +5VCC, GND
nos seus respectivos pinos, mais o pino MCLR , se o mesmo estiver
ativo. Ainda aconselho que utilize uma fonte de alimentação
estabilizada. Isso pode ser conseguido com o CI-7805.

No decorrer da Apostila, você verá em


diagrama esquemático estes modelos
de ligação. Observe que a distribuição
dos componentes ficará por conta do
projetista, bem como a integração ou
não da fonte de alimentação no circuito
do uC-PIC. Os valores dos componentes
deverão ser respeitados, pois do
contrário o uC-PIC será danificado.
Na figura abaixo, você tem os valores
padrão para os circuitos mais utilizados.

Obs:. O Software utilizado para


desenhar a PCI é o KI-Cad. Trata-se de
DESENHO FEITO NO KI-CAD um Software Livre, Free.

-3-
Softwares

Existem muitos Softwares de programação para uC’s-PIC, no entanto


a maioria deles está sendo comercializada; isto é um problema para
quem está começando ou não pode investir em um Software
confiável. Para além disso tudo, você ainda tem que escolher com
que linguagem de programação vai trabalhar e existem muitas. Por
exemplo: C; Basic; Jar; Pascal; Assembler; Ld; entre outras...
A lLinguagem de programação desta Apostila, será o Basic. Trata-se
de uma linguagem de alto nível, ou seja; é de bom entendimento.
No entanto, aconselho que, com o passar do tempo, tente programar
em Assembler, pois por ser uma linguagem de montagem, pode dar
acesso a raízes de programação no uC-PIC que com uma linguagem
de alto nível ocuparia muito espaço, sem falar na possibilidade de
problemas de execução do programa já em funcionamento.

O Software que usaremos é um Freeware-GNU e pode ser


descarregado na Web. GCGB; Great Cow Graphical Basic. Veja na
figura abaixo.

-4-
Como podemos ver e mesmo pelo seu nome, trata-se de um
compilador de duas plataformas; uma gráfica e outra textual.
Vamos dar uma olhada rápida em nosso compilador.

O menu File, administra os


Arquivos do Compilador. Vejamos:
New => Clique em New para
começar um novo programa.
Open => Clique em Open para
abrir um programa já existente.
Save => Clique em Save para
salvar um programa novo.
Save As => Clique em Save As
para salvar um arquivo em outra

Edit é um menu de edição.


Cut => Se você selecionar um
objeto gráfico ou de texto na janela
de trabalho e clicar em Cut, o
objeto será deletado.
Copy => Copia textos ou
elementos selecionados para outros
locais.
Paste => Cola ou faz aparecer o
objeto copiado.
Undo => Desfaz a ultima ação do
compilador.
Redo => Inverte a ação de Undo.
Em View podemos
alternar entre os modos de
programação; gráfico ou
texto.
No -5-
Sub-Comando
Window, podemos
alternar entre vários
O menu Program, será
estudado com mais detalhes
mais oportunamente.

No menu Tools, podemos


compilar o programa, visualizar
o codigo que ao ser compilado
gera um codigo em assembler.
Veja os comandos:
View Assembly;
View Program Summary;
Compile;
Compile and Download...

Neste Sub-menu, podemos


escolher o Software de
gravação. Mais adiante
estudaremos este comando em

Esta é a palheta de
escolha dos diferentes
elementos gráficos de
programação.
-6-
A seguir, será mostrado uma série de palhetas contendo diferentes
elementos gráficos de programação.

Para programar no modo gráfico, basta clicar sobre o símbolo


escolhido, arrastar e soltar na janela de edição. Veja no exemplo.

-7-
Agora, vá ao menu View e clique em View as text para mudar para o
modo de programação em Basic. Observe que a única linha existente
na janela de edição é referente ao símbolo que foi colocado na janela
gráfica.

-8-
Por agora, podemos deixar o Compilador de lado e vamos conhecer o
Software de gravação.

O Software que vamos utilizar é o Win-PIC800, que também é


Freeware e pode ser descarregado da Web.

Vamo para uma breve explicação, passo a passo para criar um


programa, compilar e gravar no uC-PIC.

1- Criar uma pasta-Arquivo com o nome que iremos dar ao nosso


programa;
2- Abrir o Compilador GCGB;
3- Escrever o programa;
4- Clicar em Tools=> Compile;
5- Clicar em File=> Save e salvar dentro da pasta-Arquivo com o
nome do programa;
6- Abrir o Software de gravação e no mesmo, clicar em File=>
Open: pasta-Arquivo escolhido e abrir o arquivo com a
extensão.HEX, Ex: Led.HEX;
7- Escolher o modelo de gravador de uC-PIC;
8- Clicer em gravar e pronto.

Na figura abaixo, podemos ver o Win-PIC800.

-9-
Não iremos entrar em detalhes com relação a este Software, pois o
mesmo possui a opção de alteração do idioma; portanto é muito
intuitivo.
Uma obseração é que a grande maioria dos softwares de gravação,
foram criados para sistemas operacionais não atuais. Por exemplo: No
máximo até ao Windows XP. Entretanto, existem alguns outros
softwares com as mesmas características e com o mesmo visual...
(PIC-Prog, Ic-Prog...) e todos são Freeware e podem ser descarregados
da Web.

Outro Software interessante é o de simulação, pois sem uma PCI para


teste ou um programador sofisticado, o projetista fica sem saber qual
a ação dinâmica do circuito.
O Proteus/ISIS é uma poderosa ferramenta para projetar do início ao
fim qualquer circuito eletrônico e muito mais. Além disso tudo,
possibilita que o projetista de embarcados descarregue arquivos.HEX
e simule-os no PC sem ônus. Na figura abaixo, podemos ver a
aparência visual do ISIS. Ao contrário dos softwares apresentados até
o momento, o Proteus é pago; portanto, poderá descarregar o
Demonstrativo na Web.

No exemplo da figura abaixo, temos o diagrama de um voltímetro,


implementado com o PIC-16F627A em conjunto com os demais
periféricos a sua volta. Mais a frente, iremos ver o código fonte para
este circuito. Também, por não se tratar de uma apostila sobre
Proteus, não entraremos em detalhes sobre o uso deste software;
somente mostraremos o necessário.

- 10 -
O Programador

O programador é uma PCI apropriada para a gravação e teste


preliminar dos uC’s-PIC, bem como uC’s de outros fabricantes.
O programador é uma PCI apropriada para que possamos descarregar
o codigo fonte para o uC e tambem nela podermos realizar alguns
testes preliminares.
No Win-PIC800, você irá encontrar uma janela onde poderá escolher o
tipo de programador que utilizará pra gravação do codigo fonte. No
nosso caso, utilizaremos o programador JDM, que é fácil de construir
e suporta diferentes tipos de uC’s de diferentes marcas.
O programador JDM grava sem necessidade de uma fonte de
alimentação externa; ou seja, utiliza a tensão proveniente da porta de
comunicação serial do PC.
Veja um exemplo na figura a seguir.

Para quem quiser, poderá utilizar


Uma Proto-Lab em vêz de montar
seu programador JDM.
Vejamos o diagrama esquemático
na página seguinte.

Eis aqui mais uma idéia de como utilizar o programador JDM. Nesta
figura, podemos observar um canal ICSP, apartir do qual podemos
conectar através de um cabo apropriado o programador JDM a uma
Proto-Lab.

- 11 -
Existem muitos modelos que são
comercializado na Net e podem
ser adquiridos por um baixo custo.

Circuito de Alimentação

Eis um diagrama do circuito da fonte de alimentação para os uC’s-PIC:

Programa nº 1 Pisca-pisca com LED

Apartir desse ponto, já temos alguma base para partir para o foco
principal da nossa apostila; escrever codigos fontes em Basic. Então,
mãos à obra!

Para o efeito, vamos utiliza em primeiro lugar, os objetos gráficos e


somente depois, veremos como fica em linha de texto na linguagem
basic.
Vamos iniciar o GCGB, escolher o modelo do uC-PIC e na palheta
Category, selecionar Imput/Output=> clicar e arrastar o ícone “Set”
para a janela de programação.

Depois de feitos estes passos, o nosso programa fica como na figura


abaixo.

- 12 -
Agora clique no menu View e mude a vista do programador para o
modo texto.
Observe que aínda não existem ações definidas para o programa.
Apenas está definido o modelo do uC-PIC e o comando Set.

- 13 -
Observe que para uma ação em janela gráfica, temos uma em modo
de texto.
Agora vamos terminar de escrever o codigo fonte em modo de texto e
veremos como fica em modo gráfico.

Programa nº 1 Pisca-pisca com LED

;Chip Settings ;Toda linha precedida por ponto r vírgula é


somente ;um comentário.
#chip 16F627A, 4 ;O #chip 16F627A, 4 define o modelo do PIC e
a ;frequência.
Inicio: ;Inicio é uma label; um ponto de referencia...

Set PORTB.0 On ;Coloca em nível alto o pino RB0


Wait 1 s ;Faz uma pausa de 1 segundo
Set PORTB.0 Off ;Coloca em nível baixo o pino RB0
Wait 1 s

Goto Inicio ;Salta para o label inicio e executa novamente


o ;codigo.

End ;Aqui termina o programa.

Agora vá ao menu View e mude para a vista gráfica. Veja como fica.
Depois, vá ao menu Tools, clique em Compile e salve em uma pasta
que você escolheu.

- 14 -
Gravar um programa no Microcontrolador

Supondo que você já possui o seu Gravador JDM, ligue-o a porta serial
do seu PC, através de um cabo apropriado. Observe que você deve
antes de conectar o gravador ao PC, colocar o uC-PIC no seu devido
slot. O modelo que escolhemos, foi o 16F627A, portanto esse uC-PIC
possui 18 pinos. Atente para a posição correta de encaixe.
A identificação dos pinos pode ser vista no respectivo Data-Sheet do
componente.

Agora vamos abrir o Win-PIC800, => clique em configurações,=>


Hardware,=> escolha o programador JDM e a porta COM1,=> clique
em OK e pronto!

Clique no menu Ficheiro/Arquivo,=> abrir e vá até a pasta onde


salvou o codigo fonte feito no GCGB, abra o arquivo com a extenção
*.HEX. Veja como ficará no Win-PIC800.

- 15 -
- 16 -
Observe que no momento em que o uC-PIC está sendo gravado, o led
do JDM pisca e após concluir a gravação o led para de piscar.

Pode retirar o uC-PIC e coloca-lo no circuito de destino.

Parabéns, já fizeste o teu primeiro programa!

Simulando o programa em Proteus

Abrimos o ISIS do Proteus e vamos simular o hrdware em ambiente


virtual.

Abrir a palheta dos componentes.

- 17 -
Para escolher um componente, basta dar um duplo clique na
referência desejada.

Depois de escolhido todos os componentes necessarios para a


montagem, feche a palheta de componentes e inicie a montagem.

Para configurar os componentes, clique com o botão direito do mouse


em cima do componente a ser configurado; ele ficará vermelho, então
clique com o botão esquerdo do mouse em cima do componente, no
caso em cima do uC-PIC. Veja como fica.

- 18 -
Clique na pequena pasta amarela, escolha o arquivo com a
extensão.HEX e abra-o. Configure a frequência para 4 MHz e clique
em OK.
Na parte inferior da janela do proteus, exitem botões de Play, Pause,
Stop..., use-os para iniciar a simulação.

Vejamos como ficou o nosso circuito.

Programa – 2 Botão

;Este é mais um programa para controle de saídas apartir de uma


entrada

;Chip Settings
#chip 16f627a,4

- 19 -
;Defines (Constants)
#define BUTTON PORTA.4
#define light PORTB.4

dir BUTTON in
dir light out
DO UNTIL BUTTON = 1
SET light ON
WAIT 1 s
SET light OFF
WAIT 1 s
LOOP

Programa nº 3 Interruptores ou sensores

;Este programa trabalha com entradas e saidas digitais


;Por exemplo: um Botão, um fim de curso...

;Chip Settings
#chip 16F627a,64

;Defines (Constants)
#define LCD_IO 0

Dir PORTA.0 In
Dir PORTA.1 In
Dir PORTA.2 In
Dir PORTB.0 Out
Dir PORTB.1 Out
Dir PORTB.2 Out
cc:
If porta.0 = 1 then
portb.0 = 1
end if
if porta.0 = 0 then
portb.0 = 0
end if
If porta.1 = 1 Then
portb.1 = 1
end If
if porta.1 = 0 then
portb.1 = 0
end if
if porta.2 = 1 then
portb.2 = 1
end if
if porta.2 = 0 then
portb.2 = 0
end if

- 20 -
Goto cc
End

Programa nº 4 Criar uma melodia

;Este programa gera um tom sonoro de acordo com o nível analógico


;lido no potenciômetro

;Chip Settings
#chip 16F627A,0

;Defines (Constants)
#define Adjust PORTB.0
#define LDR PORTB.1
#define SoundOut PORTB.2

dir SoundOut out


Main:
POT Adjust, Threshold
POT LDR, LightLevel
if LightLevel > Threshold then
Tone 1000, 100
end if
goto Main

Programa nº 5 LCD’s

;Este programa lê uma entrada analógica e escreve uma mensagem


em
;um display de cristal líquido

;Chip Settings
#chip 16F877A,20

;Defines (Constants)
#define LCD_IO 8
#define LCD_DATA_PORT PORTC
#define LCD_RS PORTD.0
#define LCD_RW PORTD.1
#define LCD_Enable PORTD.2

;Variables
Dim cicero(1)
Dim Temp1 As byte

'Show intro message


PRINT "VOLTIMETRO:"
Locate 1,2

- 21 -
PRINT "CICERO,CLAUDIA"
Wait 500 ms
cls
Print "MARTA"
Locate 1, 2
Print "FRANCISCO"
wait 500 ms

'Main loop
Main:

'Take two measurements, so the average can be calculated


Temp1 = ReadAD(AN0)

'wait 25 ms
'Temp2 = ReadAD(AN0)
'Display measurements
cls
Print "NL:"
LCDInt Average(Temp1, Temp2)

'Delay to avoid flickering of screen


wait 20 ms
goto Main

Programa – 6 Sequêncial

;Este é um programa para sequencial

;Chip Settings
#chip 16F627A,20
#config HS_OSC, WDT_OFF, LVP_OFF

;Defines (Constants)
#define LED1 PORTB.1
#define LED2 PORTB.2
#define LED3 PORTB.3
#define LED4 PORTB.4
#define FlashDelay 125 ms

dir B1 out
dir B2 out
dir B3 out
dir B4 out
start:
set LED4 OFF
set LED1 ON
wait FlashDelay

- 22 -
set LED1 OFF
set LED2 ON
wait FlashDelay
set LED2 OFF
set LED3 ON
wait FlashDelay
set LED3 OFF
set LED4 ON
wait FlashDelay
goto start

Lista de comandos

Output high, low, toggle, pulsout, let pins =


Input if...then, pulsin, button
ADC readadc
RAM peek, poke
Sound/Tone sound
Serial serin, serout
Program Flow goto, gosub, return, branch
Loops for...next
Mathematics let (+, -, *, **, /, //, max, min, &, |, ^, &/, |/, ^/ )
Variables if...then, random, lookdown, lookup
Data memory eeprom, write, read
Delays pause, wait, nap, sleep, end
Miscellaneous symbol, debug
Interrupt setint
Servo Control servo
Infrared infrain
Temperature readtemp
1-wire Serial No readowsn
Keyboard keyin, keyled
Input count, if portA….then
ADC readadc10
Portc config. let dirsc =
Portc output high portc, low portc, let pinsc =
I2C readi2c, writei2c, i2cslave
Temperature readtemp12
PWM pwmout

- 23 -
- 24 -

Você também pode gostar