Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this document? Why not share!

Like this? Share it with your network

Share

Apostila de pic basic

on

  • 3,815 views

Destinado ao treinamento em GCGB

Destinado ao treinamento em GCGB

Statistics

Views

Total Views
3,815
Views on SlideShare
3,806
Embed Views
9

Actions

Likes
0
Downloads
110
Comments
0

1 Embed 9

http://www.techgig.com 9

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Apostila de pic basic Document Transcript

  • 1. Cícero Lima.
  • 2. ÍNDICEIntrodução............................................................................................. 01Hardware............................................................................................... 02Softwares.............................................................................................. 04O Programador..................................................................................... 10O Porgramador JDM........................................................................... 10Circuito de alimetação......................................................................... 11Programa nº 1 Pisca-pisca com LED.................................................. 13Gravar um programa no Microcontrolador........................................ 14Instalar um simulador......................................................................... 16Testar um programa no Simulador.................................................... 16Programa nº 2 Botão............................................................................ 19Programa nº 3 Interruptores ou sensores............................................ 19Programa nº 4 Criar uma melodia....................................................... 20Programa nº 5 LCD’s............................................................................ 20Programanº 6 Sequêncial..................................................................... 21Lista de Comandos............................................................................... 22Bibliografia............................................................................................ 23IntroduçãoUm microcontrolador (uC) é um computador em um chip, contendo umprocessador, memória e periféricos de entrada e saída. É um microprocessadorque pode ser programado para funções específicas, em contraste com outrosmicroprocessadores de propósito geral. Eles são embarcados no interior dediversos dispositivos elétricos e eletrônicos para que possam controlar asfunções e ações do aparelho.Os microcontroladores se diferenciam dos processadores, porque além doscomponentes lógicos e aritméticos de um microprocessador, omicrocontrolador integra elementos adicionais em sua estrutura interna, comomemória de leitura e escrita para armazenamento de dados, memória somentede leitura para armazenamento de programas, EEPROM para armazenamentopermanente de dados, dispositivos periféricos como conversoresanalógico/digitais (ADC), conversores digitais/analógicos (DAC) em algunscasos; e, interfaces de entrada e saída de dados. -1-
  • 3. Os PIC16F627 e PIC16F628 são microcontroladores produzidos pela MicrochipTechnology e que pertencem à sua família PIC de microcontroladores. Ambospossuem características semelhantes diferindo apenas na sua capacidade dememória flash disponível para o software. O PIC16F627 possui 1024 palavrasde 14 bits enquanto que o PIC16F628 dispõe de 2048 palavras de 14 bitssendo compatíveis em todos os outros aspectos. Ambos possuem 224 bytes deMemó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.Não entraremos em detalhes de arquiteturas e outros elementos concernentesao estudo do Microcontroladores, pois o objetivo aqui é fazer uma introduçãoprática ao Hardware e Software, bem como, Programação, gravação emontagem dos circuitos utilizando os uC-PIC’s.HardwareNa 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á oprograma que vamos gravar no PIC.Os uC’s-PIC não são componentes com grandes vulnerabilidades relacionadasas grandezas elétricas; no entanto, devemos obedecer aos critérios específicosda marca e modelo, para que além de funcionar corretamente, o uC não sejadanificado antes de sair da bancada de montagem. -2-
  • 4. A figura abaixo, nos mostra como deve ser montado o PIC 18F452. Mas não sepreocupe, pois se utilizar outros modelos, poderá consultar o banco deDataSheet’s na Web.O PIC será alimentado apartir de uma fonte de tensão +5VCC, GND nos seusrespectivos pinos, mais o pino MCLR , se o mesmo estiver ativo. Aindaaconselho que utilize uma fonte de alimentação estabilizada. Isso pode serconseguido 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 umDESENHO FEITO NO KI-CAD Software Livre, Free. -3-
  • 5. SoftwaresExistem muitos Softwares de programação para uC’s-PIC, no entanto a maioriadeles está sendo comercializada; isto é um problema para quem estácomeçando ou não pode investir em um Software confiável. Para além dissotudo, você ainda tem que escolher com que linguagem de programação vaitrabalhar 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 umalinguagem de alto nível, ou seja; é de bom entendimento.No entanto, aconselho que, com o passar do tempo, tente programar emAssembler, pois por ser uma linguagem de montagem, pode dar acesso araízes de programação no uC-PIC que com uma linguagem de alto nívelocuparia muito espaço, sem falar na possibilidade de problemas de execuçãodo programa já em funcionamento.O Software que usaremos é um Freeware-GNU e pode ser descarregado naWeb. GCGB; Great Cow Graphical Basic. Veja na figura abaixo.Como podemos ver e mesmo pelo seu nome, trata-se de um compilador deduas plataformas; uma gráfica e outra textual.Vamos dar uma olhada rápida em nosso compilador. -4-
  • 6. O menu File, administra os Arquivos doCompilador. Vejamos:New => Clique em New para começarum novo programa.Open => Clique em Open para abrir umprograma já existente.Save => Clique em Save para salvar umprograma novo.Save As => Clique em Save As parasalvar um arquivo em outra pasta.Edit é um menu de edição.Cut => Se você selecionar um objetográfico ou de texto na janela de trabalhoe clicar em Cut, o objeto será deletado.Copy => Copia textos ou elementosselecionados para outros locais.Paste => Cola ou faz aparecer o objetocopiado.Undo => Desfaz a ultima ação docompilador.Redo => Inverte a ação de Undo.Preferences... => Abre uma outra janelade configuração. 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 compilador. O menu Program, será estudado com mais detalhes mais oportunamente. -5-
  • 7. 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 detalhes. Esta é a palheta de escolha dos diferentes elementos gráficos de programação.A seguir, será mostrado uma série de palhetas contendo diferentes elementosgráficos de programação. -6-
  • 8. 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-
  • 9. Agora, vá ao menu View e clique em View as text para mudar para o modo deprogramação em Basic. Observe que a única linha existente na janela deedição é referente ao símbolo que foi colocado na janela gráfica.Por agora, podemos deixar o Compilador de lado e vamos conhecer o Softwarede gravação.O Software que vamos utilizar é o Win-PIC800, que também é Freeware epode 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. -8-
  • 10. Na figura abaixo, podemos ver o Win-PIC800.Não iremos entrar em detalhes com relação a este Software, pois o mesmopossui a opção de alteração do idioma; portanto é muito intuitivo.Uma obseração é que a grande maioria dos softwares de gravação, foramcriados para sistemas operacionais não atuais. Por exemplo: No máximo até aoWindows XP. Entretanto, existem alguns outros softwares com as mesmascaracterísticas e com o mesmo visual... (PIC-Prog, Ic-Prog...) e todos sãoFreeware e podem ser descarregados da Web.Outro Software interessante é o de simulação, pois sem uma PCI para teste ouum programador sofisticado, o projetista fica sem saber qual a ação dinâmicado circuito.O Proteus/ISIS é uma poderosa ferramenta para projetar do início ao fimqualquer circuito eletrônico e muito mais. Além disso tudo, possibilita que oprojetista 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áriodos 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 asua 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 detalhessobre o uso deste software; somente mostraremos o necessário. -9-
  • 11. O ProgramadorO programador é uma PCI apropriada para a gravação e teste preliminar dosuC’s-PIC, bem como uC’s de outros fabricantes.O programador é uma PCI apropriada para que possamos descarregar ocodigo fonte para o uC e tambem nela podermos realizar alguns testespreliminares.No Win-PIC800, você irá encontrar uma janela onde poderá escolher o tipo deprogramador que utilizará pra gravação do codigo fonte. No nosso caso,utilizaremos o programador JDM, que é fácil de construir e suporta diferentestipos de uC’s de diferentes marcas.O programador JDM grava sem necessidade de uma fonte de alimentaçãoexterna; ou seja, utiliza a tensão proveniente da porta de comunicação serial doPC.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áticona página seguinte. - 10 -
  • 12. 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ésde um cabo apropriado o programador JDM a uma Proto-Lab. Existem muitos modelos que são comercializado na Net e podem ser adquiridos por um baixo custo.Circuito de AlimentaçãoEis um diagrama do circuito da fonte de alimentação para os uC’s-PIC:Programa nº 1 Pisca-pisca com LEDApartir desse ponto, já temos alguma base para partir para o foco principal danossa apostila; escrever codigos fontes em Basic. Então, mãos à obra!Para o efeito, vamos utiliza em primeiro lugar, os objetos gráficos e somentedepois, 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 deprogramação. - 11 -
  • 13. Depois de feitos estes passos, o nosso programa fica como na figura abaixo.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. - 12 -
  • 14. 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 veremoscomo 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 sGoto 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. - 13 -
  • 15. Gravar um programa no MicrocontroladorSupondo que você já possui o seu Gravador JDM, ligue-o a porta serial do seuPC, através de um cabo apropriado. Observe que você deve antes de conectaro gravador ao PC, colocar o uC-PIC no seu devido slot. O modelo queescolhemos, foi o 16F627A, portanto esse uC-PIC possui 18 pinos. Atente paraa posição correta de encaixe.A identificação dos pinos pode ser vista no respectivo Data-Sheet docomponente.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 codigofonte feito no GCGB, abra o arquivo com a extenção *.HEX. Veja como ficaráno Win-PIC800. - 14 -
  • 16. - 15 -
  • 17. Observe que no momento em que o uC-PIC está sendo gravado, o led do JDMpisca 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 ProteusAbrimos o ISIS do Proteus e vamos simular o hrdware em ambiente virtual. - 16 -
  • 18. Abrir a palheta dos componentes.Para escolher um componente, basta dar um duplo clique na referênciadesejada.Depois de escolhido todos os componentes necessarios para a montagem,feche a palheta de componentes e inicie a montagem. - 17 -
  • 19. Para configurar os componentes, clique com o botão direito do mouse em cimado componente a ser configurado; ele ficará vermelho, então clique com obotão esquerdo do mouse em cima do componente, no caso em cima do uC-PIC. Veja como fica.Clique na pequena pasta amarela, escolha o arquivo com a extensão.HEX eabra-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. - 18 -
  • 20. Programa – 2 Botão;Este é mais um programa para controle de saídas apartir de uma entrada;Chip Settings#chip 16f627a,4;Defines (Constants)#define BUTTON PORTA.4#define light PORTB.4dir BUTTON indir light outDO UNTIL BUTTON = 1 SET light ON WAIT 1 s SET light OFF WAIT 1 sLOOPPrograma 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 0Dir 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 If - 19 -
  • 21. if porta.1 = 0 then portb.1 = 0end ifif porta.2 = 1 then portb.2 = 1end ifif porta.2 = 0 then portb.2 = 0end ifGoto ccEndPrograma 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.2dir SoundOut outMain:POT Adjust, ThresholdPOT LDR, LightLevelif LightLevel > Threshold then Tone 1000, 100end ifgoto MainPrograma 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 - 20 -
  • 22. ;VariablesDim cicero(1)Dim Temp1 As byteShow intro messagePRINT "VOLTIMETRO:"Locate 1,2PRINT "CICERO,CLAUDIA"Wait 500 msclsPrint "MARTA"Locate 1, 2Print "FRANCISCO"wait 500 msMain loopMain:Take two measurements, so the average can be calculatedTemp1 = ReadAD(AN0)wait 25 msTemp2 = ReadAD(AN0)Display measurementsclsPrint "NL:"LCDInt Average(Temp1, Temp2)Delay to avoid flickering of screenwait 20 msgoto MainPrograma – 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 msdir B1 out - 21 -
  • 23. dir B2 outdir B3 outdir B4 outstart:set LED4 OFFset LED1 ONwait FlashDelayset LED1 OFFset LED2 ONwait FlashDelayset LED2 OFFset LED3 ONwait FlashDelayset LED3 OFFset LED4 ONwait FlashDelaygoto startLista de comandosOutput high, low, toggle, pulsout, let pins =Input if...then, pulsin, buttonADC readadcRAM peek, pokeSound/Tone soundSerial serin, seroutProgram Flow goto, gosub, return, branchLoops for...nextMathematics let (+, -, *, **, /, //, max, min, &, |, ^, &/, |/, ^/ )Variables if...then, random, lookdown, lookupData memory eeprom, write, readDelays pause, wait, nap, sleep, endMiscellaneous symbol, debugInterrupt setintServo Control servoInfrared infrainTemperature readtemp1-wire Serial No readowsnKeyboard keyin, keyledInput count, if portA….thenADC readadc10Portc config. let dirsc =Portc output high portc, low portc, let pinsc =I2C readi2c, writei2c, i2cslaveTemperature readtemp12PWM pwmout - 22 -
  • 24. - 23 -