of 26/26
Cícero Lima.

46919864 Apostila de Pic Basic

  • View
    41

  • Download
    1

Embed Size (px)

Text of 46919864 Apostila de Pic Basic

Ccero Lima.

NDICE Introduo................................................................................ ............. Hardware.................................................................................. ............. Softwares.................................................................................. ............ O Programador............................................................................. ........ O Porgramador JDM........................................................................... Circuito de alimetao......................................................................... Programa n 1 Pisca-pisca com LED.................................................. Gravar um programa no Microcontrolador........................................ Instalar um simulador......................................................................... Testar um programa no Simulador.................................................... Programa n 2 Boto............................................................................ Programa n 3 Interruptores ou sensores............................................ Programa n 4 Criar uma melodia....................................................... Programa n 5 LCDs............................................................................ Programan 6 Sequncial..................................................................... Lista de Comandos............................................................................... Bibliografia............................................................................... ............. 01 02 04 10 10 11 13 14 16 16 19 19 20 20 21 22 23

Introduo Um microcontrolador (uC) um computador em um chip, contendo um processador, memria e perifricos de entrada e sada. um microprocessador que pode ser programado para funes especficas, em contraste com outros microprocessadores de propsito geral. Eles so embarcados no interior de diversos dispositivos eltricos e

-1-

eletrnicos para que possam controlar as funes e aes do aparelho. Os microcontroladores se diferenciam dos processadores, porque alm dos componentes lgicos e aritmticos de um microprocessador, o microcontrolador integra elementos adicionais em sua estrutura interna, como memria de leitura e escrita para armazenamento de dados, memria somente de leitura para armazenamento de programas, EEPROM para armazenamento permanente de dados, dispositivos perifricos como conversores analgico/digitais (ADC), conversores digitais/analgicos (DAC) em alguns casos; e, interfaces de entrada e sada de dados.

Os PIC16F627 e PIC16F628 so microcontroladores produzidos pela Microchip Technology e que pertencem sua famlia PIC de microcontroladores. Ambos possuem caractersticas semelhantes diferindo apenas na sua capacidade de memria flash disponvel para o software. O PIC16F627 possui 1024 palavras de 14 bits enquanto que o PIC16F628 dispe de 2048 palavras de 14 bits sendo compatveis em todos os outros aspectos. Ambos possuem 224 bytes de Memria RAM e 128 bytes de memria EEPROM.

Distribuio do hardware interno de um uC-PICNo 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-lgicas com um interruptor em cada entrada em cada sada; sendo que, basta ligar ou desligar os interruptores que forem convenientes para a finalidade do circuito projetado.

-2-

No entraremos em detalhes de arquiteturas e outros elementos concernentes ao estudo do Microcontroladores, pois o objetivo aqui fazer uma introduo prtica ao Hardware e Software, bem como, Programao, gravao e montagem dos circuitos utilizando os uCPICs.

Hardware Na hora de montar o circuito, devemos saber o que queremos que ele faa, pois apartir desse ponto que podemos ter uma idia de como ser o programa que vamos gravar no PIC. Os uCs-PIC no so componentes com grandes vulnerabilidades relacionadas as grandezas eltricas; no entanto, devemos obedecer aos critrios especficos da marca e modelo, para que alm de funcionar corretamente, o uC no seja danificado antes de sair da bancada de montagem. A figura abaixo, nos mostra como deve ser montado o PIC 18F452. Mas no se preocupe, pois se utilizar outros modelos, poder consultar o banco de DataSheets na Web. O PIC ser alimentado apartir de uma fonte de tenso +5VCC, GND nos seus respectivos pinos, mais o pino MCLR , se o mesmo estiver ativo. Ainda aconselho que utilize uma fonte de alimentao estabilizada. Isso pode ser conseguido com o CI-7805. No decorrer da Apostila, voc ver em diagrama esquemtico estes modelos de ligao. Observe que a distribuio dos componentes ficar por conta do projetista, bem como a integrao ou no da fonte de alimentao no circuito do uC-PIC. Os valores dos componentes devero ser respeitados, pois do contrrio o uC-PIC ser danificado. Na figura abaixo, voc tem os valores padro 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 programao para uCs-PIC, no entanto a maioria deles est sendo comercializada; isto um problema para quem est comeando ou no pode investir em um Software confivel. Para alm disso tudo, voc ainda tem que escolher com que linguagem de programao vai trabalhar e existem muitas. Por exemplo: C; Basic; Jar; Pascal; Assembler; Ld; entre outras... A lLinguagem de programao desta Apostila, ser o Basic. Trata-se de uma linguagem de alto nvel, 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 razes de programao no uC-PIC que com uma linguagem de alto nvel ocuparia muito espao, sem falar na possibilidade de problemas de execuo 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 grfica e outra textual. Vamos dar uma olhada rpida em nosso compilador.

O menu File, administra os Arquivos do Compilador. Vejamos: New => Clique em New para comear 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 edio. Cut => Se voc selecionar um objeto grfico 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 ao do compilador. Redo => Inverte a ao de Undo. Em View podemos alternar entre os modos de programao; grfico ou texto. -5No Sub-Comando Window, podemos alternar entre vrios

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 gravao. Mais adiante estudaremos este comando em

Esta a palheta de escolha dos diferentes elementos grficos de programao. -6-

A seguir, ser mostrado uma srie de palhetas contendo diferentes elementos grficos de programao.

Para programar no modo grfico, basta clicar sobre o smbolo escolhido, arrastar e soltar na janela de edio. Veja no exemplo.

-7-

Agora, v ao menu View e clique em View as text para mudar para o modo de programao em Basic. Observe que a nica linha existente na janela de edio referente ao smbolo que foi colocado na janela grfica.

-8-

Por agora, podemos deixar o Compilador de lado e vamos conhecer o Software de gravao. O Software que vamos utilizar o Win-PIC800, que tambm Freeware e pode ser descarregado da Web. Vamo para uma breve explicao, 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 gravao e no mesmo, clicar em File=> Open: pasta-Arquivo escolhido e abrir o arquivo com a extenso.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-

No iremos entrar em detalhes com relao a este Software, pois o mesmo possui a opo de alterao do idioma; portanto muito intuitivo. Uma obserao que a grande maioria dos softwares de gravao, foram criados para sistemas operacionais no atuais. Por exemplo: No mximo at ao Windows XP. Entretanto, existem alguns outros softwares com as mesmas caractersticas e com o mesmo visual... (PIC-Prog, Ic-Prog...) e todos so Freeware e podem ser descarregados da Web. Outro Software interessante o de simulao, pois sem uma PCI para teste ou um programador sofisticado, o projetista fica sem saber qual a ao dinmica do circuito. O Proteus/ISIS uma poderosa ferramenta para projetar do incio ao fim qualquer circuito eletrnico e muito mais. Alm disso tudo, possibilita que o projetista de embarcados descarregue arquivos.HEX e simule-os no PC sem nus. Na figura abaixo, podemos ver a aparncia visual do ISIS. Ao contrrio 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 voltmetro, implementado com o PIC-16F627A em conjunto com os demais perifricos a sua volta. Mais a frente, iremos ver o cdigo fonte para este circuito. Tambm, por no se tratar de uma apostila sobre Proteus, no entraremos em detalhes sobre o uso deste software; somente mostraremos o necessrio.

- 10 -

O Programador O programador uma PCI apropriada para a gravao e teste preliminar dos uCs-PIC, bem como uCs 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 gravao do codigo fonte. No nosso caso, utilizaremos o programador JDM, que fcil de construir e suporta diferentes tipos de uCs de diferentes marcas. O programador JDM grava sem necessidade de uma fonte de alimentao externa; ou seja, utiliza a tenso proveniente da porta de comunicao serial do PC. Veja um exemplo na figura a seguir. Para quem quiser, poder utilizar Uma Proto-Lab em vz de montar seu programador JDM. Vejamos o diagrama esquemtico na pgina seguinte.

Eis aqui mais uma idia de como utilizar o programador JDM. Nesta figura, podemos observar um canal ICSP, apartir do qual podemos conectar atravs de um cabo apropriado o programador JDM a uma Proto-Lab. - 11 -

Existem muitos modelos que so comercializado na Net e podem ser adquiridos por um baixo custo. Circuito de Alimentao Eis um diagrama do circuito da fonte de alimentao para os uCs-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. Ento, mos obra! Para o efeito, vamos utiliza em primeiro lugar, os objetos grficos 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 programao.

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 anda no existem aes definidas para o programa. Apenas est definido o modelo do uC-PIC e o comando Set.

- 13 -

Observe que para uma ao em janela grfica, temos uma em modo de texto. Agora vamos terminar de escrever o codigo fonte em modo de texto e veremos como fica em modo grfico.

Programa n 1 Pisca-pisca com LED ;Chip Settings #chip 16F627A, 4 Inicio: Set PORTB.0 On Wait 1 s Set PORTB.0 Off Wait 1 s Goto Inicio End ;Toda linha precedida por ponto r vrgula somente ;um comentrio. ;O #chip 16F627A, 4 define o modelo do PIC e a ;frequncia. ;Inicio uma label; um ponto de referencia... ;Coloca em nvel alto o pino RB0 ;Faz uma pausa de 1 segundo ;Coloca em nvel baixo o pino RB0 ;Salta para o label inicio e executa novamente o ;codigo.

;Aqui termina o programa.

Agora v ao menu View e mude para a vista grfica. 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, atravs 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 posio correta de encaixe. A identificao dos pinos pode ser vista no respectivo Data-Sheet do componente.

Agora vamos abrir o Win-PIC800, => clique em configuraes,=> 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 exteno *.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 aps concluir a gravao o led para de piscar. Pode retirar o uC-PIC e coloca-lo no circuito de destino. Parabns, 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 referncia 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 boto direito do mouse em cima do componente a ser configurado; ele ficar vermelho, ento clique com o boto 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 extenso.HEX e abra-o. Configure a frequncia para 4 MHz e clique em OK. Na parte inferior da janela do proteus, exitem botes de Play, Pause, Stop..., use-os para iniciar a simulao. Vejamos como ficou o nosso circuito.

Programa 2 Boto ;Este mais um programa para controle de sadas 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 Boto, 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 nvel analgico ;lido no potencimetro ;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 LCDs ;Este programa l uma entrada analgica e escreve uma mensagem em ;um display de cristal lquido ;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 Sequncial ;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 Input ADC RAM Sound/Tone Serial Program Flow Loops Mathematics Variables Data memory Delays pause, Miscellaneous Interrupt Servo Control Infrared Temperature 1-wire Serial No Keyboard Input ADC Portc config. Portc output I2C Temperature PWM high, low, toggle, pulsout, let pins = if...then, pulsin, button readadc peek, poke sound serin, serout goto, gosub, return, branch for...next let (+, -, *, **, /, //, max, min, &, |, ^, &/, |/, ^/ ) if...then, random, lookdown, lookup eeprom, write, read wait, nap, sleep, end symbol, debug setint servo infrain readtemp readowsn keyin, keyled count, if portA.then readadc10 let dirsc = high portc, low portc, let pinsc = readi2c, writei2c, i2cslave readtemp12 pwmout

- 23 -

- 24 -