View
65
Download
3
Category
Preview:
Citation preview
Cícero Lima.
ÍNDICE
Introdução.............................................................................................
01
Hardware...............................................................................................
02
Softwares..............................................................................................
04
O Programador.....................................................................................
10
O Porgramador JDM...........................................................................
10
Circuito de alimetação.........................................................................
11
Programa nº 1 Pisca-pisca com LED..................................................
13
Gravar um programa no Microcontrolador........................................
14
Instalar um simulador.........................................................................
16
Testar um programa no Simulador....................................................
16
Programa nº 2 Botão............................................................................
19
Programa nº 3 Interruptores ou sensores............................................
19
Programa nº 4 Criar uma melodia.......................................................
20
Programa nº 5 LCD’s............................................................................
20
Programanº 6 Sequêncial.....................................................................
21
Lista de Comandos...............................................................................
22
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
- 2 -
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
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.
DESENHO FEITO NO KI-CAD
- 3 -
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
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 -
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
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.
- 5 -
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 Sub-Comando Window, podemos alternar entre vários programas dentro do
- 6 -
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.
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á utilizarUma Proto-Lab em vêz de montarseu 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.
Observe que para uma ação em janela gráfica, temos uma em modo de texto.
- 13 -
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 RB0Wait 1 s ;Faz uma pausa de 1 segundoSet PORTB.0 Off ;Coloca em nível baixo o pino RB0Wait 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
;Defines (Constants)
- 19 -
#define BUTTON PORTA.4#define light PORTB.4
dir BUTTON indir light outDO UNTIL BUTTON = 1
SET light ONWAIT 1 sSET light OFFWAIT 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 InDir PORTA.1 InDir PORTA.2 InDir PORTB.0 OutDir PORTB.1 OutDir PORTB.2 Outcc:If porta.0 = 1 then
portb.0 = 1end ifif porta.0 = 0 then
portb.0 = 0end ifIf porta.1 = 1 Then
portb.1 = 1end Ifif porta.1 = 0 then
portb.1 = 0end ifif porta.2 = 1 then
portb.2 = 1end ifif porta.2 = 0 then
portb.2 = 0end ifGoto cc
- 20 -
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 outMain:POT Adjust, ThresholdPOT LDR, LightLevelif LightLevel > Threshold then
Tone 1000, 100end ifgoto 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
;VariablesDim cicero(1)Dim Temp1 As byte
'Show intro messagePRINT "VOLTIMETRO:"Locate 1,2PRINT "CICERO,CLAUDIA"
- 21 -
Wait 500 msclsPrint "MARTA"Locate 1, 2Print "FRANCISCO"wait 500 ms
'Main loopMain:
'Take two measurements, so the average can be calculatedTemp1 = ReadAD(AN0)
'wait 25 ms'Temp2 = ReadAD(AN0)'Display measurementsclsPrint "NL:"LCDInt Average(Temp1, Temp2)
'Delay to avoid flickering of screenwait 20 msgoto 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 outdir B2 outdir B3 outdir B4 outstart:set LED4 OFFset LED1 ONwait FlashDelayset LED1 OFF
- 22 -
set LED2 ONwait FlashDelayset LED2 OFFset LED3 ONwait FlashDelayset LED3 OFFset LED4 ONwait FlashDelaygoto 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, keyledInput 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 -
Recommended