26
Cícero Lima.

46919864 Apostila de Pic Basic

Embed Size (px)

Citation preview

Page 1: 46919864 Apostila de Pic Basic

Cícero Lima.

Page 2: 46919864 Apostila de Pic Basic
Page 3: 46919864 Apostila de Pic Basic

Í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 -

Page 4: 46919864 Apostila de Pic Basic

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 finalidade do circuito projetado.

Page 5: 46919864 Apostila de Pic Basic

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 desenhar a PCI é o KI-Cad. Trata-se de um Software Livre, Free.

Page 6: 46919864 Apostila de Pic Basic

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 -

Page 7: 46919864 Apostila de Pic Basic

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

Page 8: 46919864 Apostila de Pic Basic

- 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.

Page 9: 46919864 Apostila de Pic Basic

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 -

Page 10: 46919864 Apostila de Pic Basic

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 -

Page 11: 46919864 Apostila de Pic Basic

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 -

Page 12: 46919864 Apostila de Pic Basic

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 -

Page 13: 46919864 Apostila de Pic Basic

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 -

Page 14: 46919864 Apostila de Pic Basic

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 -

Page 15: 46919864 Apostila de Pic Basic

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 -

Page 16: 46919864 Apostila de Pic Basic

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 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 -

Page 17: 46919864 Apostila de Pic Basic

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 -

Page 18: 46919864 Apostila de Pic Basic

- 16 -

Page 19: 46919864 Apostila de Pic Basic

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 -

Page 20: 46919864 Apostila de Pic Basic

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 -

Page 21: 46919864 Apostila de Pic Basic

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 -

Page 22: 46919864 Apostila de Pic Basic

;Defines (Constants)#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 if

- 20 -

Page 23: 46919864 Apostila de Pic Basic

Goto ccEnd

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,2

- 21 -

Page 24: 46919864 Apostila de Pic Basic

PRINT "CICERO,CLAUDIA"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 FlashDelay

- 22 -

Page 25: 46919864 Apostila de Pic Basic

set LED1 OFFset 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 -

Page 26: 46919864 Apostila de Pic Basic

- 24 -