Post on 03-Jan-2016
USANDO O MpLab 5.00 ESUPERIOR
Introdução e ajustesO MpLab é um ambiente integra-
do para o estudo e desenvolvimentocom a família PIC de microcontrola-dores.
Sua principal característica é atotal integração de seus móduloscom o ambiente Windows, permitin-do a fácil cópia de arquivos e trechosde arquivos de um aplicativo paraoutro.
Para se escrever um programa noMpLab, precisamos antes assimilaro conceito de “projeto”.
O “Projeto” no MpLabEntende-se por projeto um con-
junto de arquivos e informações quediz ao MpLab qual a situação de umcerto trabalho em particular.
Por exemplo, num certo projetodesignado EXEMPLO.PJT temosduas janelas abertas: exemplo.asme exemplo.lst.
Em outro projeto designadoTESTE.PJT temos três janelas aber-tas: teste.asm, teste.lst. e FileRegister Window.
Com o gerenciamento de proje-tos presente no MpLab não precisa-mos “lembrar” quais as janelas quecada projeto estava usando no mo-mento em que encerramos o traba-lho, pois ao carregarmos o projetodesejado todas as informações re-lativas ao mesmo serão recupera-das.
IMPORTANTE: Ao encerrar seustrabalhos não vá fechando as jane-las abertas. Feche apenas o MpLabe na janela “Save Project” selecioneYes, ou caso pretenda apenas en-cerrar o trabalho atual, selecione nomenu “Project > Close Project”, eresponda Yes se necessário, parasalvar as alterações.
Usando o MpLabpela primeira vez.
Crie uma pasta (diretório) em seuHD com o nome c:\0pic (com o nú-mero 0 antes, a pasta sempre esta-rá no topo dos menus).
Vamos criar um novo projeto, denome EXEMPLO.PJT, neste
diretório. Inicie o MpLab. Suatela deverá ser parecida com a dafigura 1.
Selecionando o processadorSe o processador indicado no
rodapé não for o 16F84A, siga a se-guinte seqüência nos menus:
Options -> Development Mode, eselecione a ficha “Tools” e teremosa tela da figura 2.
Marque a opção MPLAB-SIMSimulator e selecione PIC16F84Ano menu à direita, deixando sua se-leção conforme acima e depois dêum click no botão Apply e em se-guida em OK.
GUIA PRÁTICO PARA SIMULAÇÃO E ESTUDOS.
Mini-curso MpLabpasso-a-passo
MpLab 5.00 (e superiores)
VIDAL - Projetos Personalizadoswww.vidal.com.br
Figura 1 - Tela inicial do MpLab
Sua tela agora deve estar confor-me a tela inicial (figura 1).
Ajustando o clock para simulaçãoPara podermos obter do simula-
dor informações precisas sobre nos-so programa quando simulado, de-vemos informar ao mesmo qual a fre-qüência de clock com que o chip fun-cionará. Selecione na linha do menudo MpLab
Options > Development Mode> e selecione a ficha “Clock”
e obteremos a janela da figura 3:
- Inicialmente selecione se a fre-qüência estará em MHz, kHz ou Hz;
- No campo “Desired Frequency”entre com a freqüência desejada, porexemplo, 4 para 4 MHz ( o campo“Actual Frequency” mostra a fre-qüência atual com que o simuladorestá calculando os eventos);
- No box “Oscilator Type” selecio-ne modo XT;
- Dê um clique em “OK” e na novajanela apenas responda “OK” nova-mente.
- Veja no rodapé do MpLab a fre-qüência sendo reconhecida pelo pro-grama.
TRABALHANDO COM“PROJETOS”
Criando um novo fonte para tra-balharmos com um projeto
Iniciaremos um novo projetosempre pela criação de um novo fon-te. Execute a seguinte seqüência:
File > New
Um novo fonte de nomeUntitled1 será criado, e o MpLab lheperguntará se deseja criar um novoprojeto.
Responda “NO” para prosse-guir na criação do fonte.
Voce obterá a tela da figura 4:Ajuste o tamanho da janela
Untitled1 conforme sua conveniên-cia.
Nesta janela digite o texto con-forme a figura 5:
Figura 2 - Seleção do processador.
Figura 3 - Ajustando o clock para a simulação.
Figura 4 - Janela com o novo fonte ainda sem nome.
Após a digitação (confirme se oseu texto está igual ao acima, semerros), salve com o nomeEXEMPLO.ASM.
Como? Após escrever o progra-ma, selecione nos menus:
File > Save as...e na janela aberta digite o nome
exemplo.asm para o fonte E e sele-cione no drive C a pasta C:\0pic.
Agora dê um click no botão OK esua tela deverá estar conforme a fi-gura 5, mas com a barra de título dofonte trocada, ao invés de Untiled1,com o nome e caminho completos,c:\0Pic\exemplo.asm.
Criando o projetoAgora que já criamos o fonte va-
mos criar o projeto para trabalhar-mos com o mesmo.
Selecione Project > New Project
e a janela da figura 6 se abrirá(veja na janela do fonte o nome ecaminho do arquivo, como dito ante-riormente):
Escreva no campo "File Name".exemplo.pjt e de um click em OK(isto é , como salvar na pasta c:\0Pico projeto exemplo.pjt )
IMPORTANTE: O fonte e o pro-jeto devem estar na mesma pasta
O nome do fonte não precisa sero mesmo do projeto.
Sempre que um novo projeto écriado, a janela “Edit Project” seráexibida automaticamente.
Editando o projeto(novo ou já existente)
Entende-se por editar o projetoescolher qual fonte fará parte domesmo, sendo usado no processode compilação, além de ajustar osparâmetros do compilador.
Quando o projeto é novo, estaopção aparecerá automaticamente.
Podemos ainda usar a edição doprojeto para trocar o fonte ou o com-pilador usado no desenvolvimento. Figura 7 - Editando o projeto exemplo.pjt.
Figura 5 - Fonte de teste já digitado.
Figura 6 - Janela �New Project� do nosso exemplo.
Para indicarmos o fonte de umprojeto ou caso desejemos alterar osparâmetros do compilador, devemosusar a seqüência:
Project -> Edit Project
e em nosso exemplo teremos atela da figura 7.
Observe que em nosso caso, ocampo “Target filename” indica queo alvo, isto é, o objetivo final de nos-so trabalho, é a geração do arquivoexemplo.hex , que será o arquivohexadecimal a ser gravado no PIC.
Ajuste o campo “Developmentmode” para exibir MpLab-SIM ,16F84A. Ajuste o campo “Languagetool suite” para Microchip .
No Campo “Project files” dê umclick com o mouse em cima do texto“exemplo[.hex]” e observe que osbotões Add Node e Node Propertiesficarão realçados (caso ainda naoestejam).
Sua janela deve estar como a fi-gura 7 mostrada. Se não estiver, re-pita os ajustes.
Vamos começar a ajustar o Mplabpara trabalhar com nosso “projeto”.
Ajustando as propriedades do“nó” principal, exemplo.hex
Dê um click no botão NodeProperties. A janela da figura 8 deve
surgir (suas opções pré-selecionadas po-dem estar diferentes).
Caso as opções marcadas sejam dife-rentes, use o mouse e ajuste os camposde forma que suas opções fiquem iguaisàs da figura 8 e depois dê um click no bo-tão OK. Este ajuste é muito importante !
Sua tela retornará à da figura 7 (EditProject).
Neste ponto informamos ao MpLab qualcompilador usar, que arquivos gerar(listagem, erros, ...), formato do arquivo
Figura 9 - Janela �Add Node�.
Figura 10 - Janela �Edit Project� completa.
Figura 8 - Janela �Node Properties�.
.HEX, entre outros. Para cada proje-to novo você deverá ajustar destaforma.
Adicionando um fonte(também chamado de nó)
Agora vamos informar ao MpLabqual fonte será usado na compilação,dando um click no botão Add Node.Nossa janela ficará como a figura 9:
Lembre-se: o fonte deve estar namesma pasta do projeto.
Observe que a janela já aparececom a pasta atual do projeto e mos-tra em nosso caso o fonte criadoanteriormente, exemplo.asm.
Selecione o fonte e dê um clickem “OK”.
Agora sua janela “Edit Project”deve estar conforme a figura 10.
Então, basta dar um click no bo-tão OK que o processo de edição doprojeto estará completo.
Neste ponto você deverá estarcom a janela como a da figura 5, mascom os nomes do projeto e do fonteindicados nas barras de título do fon-te e do Mplab. A partir deste ponto jápodemos compilar e simular o nos-so programa.
OBSERVAÇÕESIMPORTANTES:
Se o MpLab travar repentinamen-te, todo seu trabalho será perdido.
Como evitar ?- Selecione Project > Save Project- Selecione File > Save All
Este procedimento de salvar an-tes de compilar é automatico depois!
COMPILANDO O PROGRAMA
Para compilar o fonte basta teclarF10. Se não houver erros de sintaxe(escrita) ou outros, haverá a indica-ção de tudo OK pela janela BuildResults, mensagem “Build comple-ted successfully”, conforme a figura11.
Feche a janela Build Results.
IMPORTANTE: O fato da compi-lação não apresentar erros não sig-
Figura 11 - Janela Build Results, após compilação OK.
nifica que o programa funcionaráconforme o desejado, pois erros delógica não são detectados pelo com-pilador. Se houver erros, uma janelaaparecerá indicando todos os avisose erros detectados pelo compilador.
Exemplo de erroNa fonte presente na tela, escre-
va logo após o org 0, na primeira ins-trução, PORTAB ao invés dePORTB, e então compile novamen-te teclando F10.
Sua janela Build Results deveráficar conforme a figura 12:
Observe a mensagem ao final,Build Failed . Isto é um indicativo deque algo errado no fonte não permi-tiu a construção do arquivo final.
Observando a janela, vemos umalinha com a seguinte mensagem:
Error[113] C:\0pic\EXEMPLO.ASM 9 :
Symbol not previously defined (PORTAB)
Esta mensagem está informandoque na linha 9 o símbolo (label, no-me, ...) PORTAB não está definido.
IMPORTANTE: Inicie sempre aanálise de erros pelo primeiro errodesde o início.
Figura 12 - Janela Build Results após erro na compilação.
Onde estão as definições relati-vas aos registros e bits do PIC ?
Selecione
File > View
e abra o arquivo P16F84A.INC napasta onde instalou o MpLab (Ex.:C:\Arquivos de Programas\Mplab).
Veja que lá estão todas as defini-ções relativas ao PIC 16F84A, comoendereços das portas, o nome peloqual o compilador reconhece os bits,etc. Não esqueça de fechar o arqui-vo antes de prosseguir.
Onde está o erro ?Em nosso caso, com apenas al-
gumas linhas de código, fica fácil alocalização do erro, mas para fontesmaiores (e eles ficarão cada vezmaiores), temos outro meio de che-gar à linha com o erro.
Vá com o cursor para a linha doprimeiro erro, veja a descrição domesmo e então dê dois clicks rápi-dos com o mouse sobre esta linha,e a janela com o fonte será mostra-da por cima da janela Build Results,com o cursor já posicionado na linhaque gerou o erro.
Basta corrigir e repetir todo o pro-cesso teclando F10 novamente, atéque nenhum erro ocorra.
PraticandoRepita este exercício de criar er-
ros e identificá-los várias vezes, bemcomo sair e entrar no MpLab crian-do outros projetos.
Termine retirando todos os errose testes realizados, mantendo o pro-jeto exemplo.pjt e seu fonte,exemplo.asm, conforme situação ini-cial.
TRABALHANDO COMPROJETOS JÁ EXISTENTESA principal diferença que encon-
tramos quando abrimos um projetojá existente está no fato de não pre-cisarmos selecionar novamente ofonte ou ajustar o compilador, bas-tando selecionar nos diretórios exis-tentes o projeto desejado.
Para melhor entendimento, fecheo MPLAB e volte para o Windows,
respondendo YES para todas as per-guntas, e volte a iniciar o MPLAB.
O MpLab vai perguntar se vocêdeseja abrir o último projeto traba-lhado. Se desejar, apenas click emYes. Em nosso caso, click No.
Então selecione o menu Projecte veja que no rodapé do menu quese abriu temos o nome dos últimosprojetos em que trabalhamos.
Caso o projeto desejado estejaindicado, basta dar um click no mes-mo. Veja a figura 13.
Se o projeto desejado não esti-ver indicado, dê um click no itemOpen Project, e teremos uma novajanela conforme a figura 14.
Escolha o diretório onde está oprojeto desejado e depois o nome do
mesmo, e então dê um click em OKpara ter o projeto aberto.
Se uma janela como a da figura15 aparecer, apenas click em OK eprossiga.
O MpLab está apenas indicandoque seu fonte deve ser (re)compila-do, pois não achou o hexadecimaldo mesmo. Isto pode ocorrer por ter-mos fechado o projeto antes de ter-mos retirado todos os erros, porexemplo.
Neste caso pressione F10 paracompilar e prosseguirmos com oexemplo.
A partir deste ponto valem asmesmas regras já vistas sobre edi-ção do projeto, compilação, correçãode erros, ...
Figura 14 - Selecionando projeto já existente.
Figura 13 - Menu �Project� com os últimos projetos trabalhados.
SIMULAÇÃO SIMPLES
Veremos agora técnicas para si-mular nosso programa, desde exe-cução passo a passo até animação.
Simulando o fonte do projetoEXEMPLO
Para evitar qualquer problemadevido a ações erradas que vocêpossa ter realizado, feche o MpLabe abra novamente selecionando oprojeto EXEMPLO.PJT
Compile teclando F10 e corrijaeventuais erros de digitação.
Principais teclas para o controleda simulaçãoF6 RESET
Equivale ao reset da CPU.Posiciona o contador deprograma no endereço 0000, ecoloca uma barra preta sobre alinha correspondente.Esta barra indica “a próxima”instrução a ser simulada.
F7 STEPA cada toque em F7 o MpLabexecuta uma instrução doprograma. É como se nossoprocessador rodasse umainstrução de cada vez. Se formantida pressionada, executaráas instruções no intervalo derepetição automática da tecla.
CTRL + F9 ANIMATERoda o programa passo apasso dinamicamente, tornandopossível acompanharvisualmente a seqüência doprograma.
F9 RUNRealiza a simulação rápida, sematualizar a tela. Ideal parasimular situações que tomariamdemasiado tempo na animação.Apenas a janela StopWatch éatualizada (veremos mais tarde)
F5 STOPInterrompe a simulaçãodinâmica iniciada peloCtrl+F9 ou pelo F9
Realizando uma simulação dinâ-mica para testes
Deixe seu projeto com a aparên-cia igual à da figura 5. Compile (F10)e então pressione a tecla F6. Vocêdeve obter uma tela como a da figu-ra 16. Vá pressionando F7 e veja quea barra preta, indicativa da próximainstrução a ser simulada, vai se des-locando, acompanhando a execuçãodo programa. Pressione Control +F9 e veja a simulação ocorrer dina-
Figura 15 - O projeto aberto ainda não possui um .HEX válido.
Figura 16 - Tela inicial após o �reset� do processador.
micamente. Para parar, pressioneF5. Veremos a seguir como abrir umaoutra janela que nos mostrará o tem-po decorrido de simulação.
Janela Stopwatch. Vendo o tempode execução
Para abrir a janela Stopwatch,siga a seqüência no menu:
Window > Stopwatch... e ajuste otamanho e a posição das janelaspara que fiquem como a figura 17.
Para que a simulação ocorra, ajanela exemplo.asm deve ser a ja-nela ativa, como na figura 17 (bastadar um click dentro da mesma).
Após qualquer ajuste na janelastopwatch, veja que as teclas de si-mulação não funcionam, até que ajanela do fonte seja selecionada.
Pressione F6 (reset) e veja que acada F7 pressionado os campos“Cycles” e “Time” do stopwatch vãose alterando, indicando o número deciclos e o tempo decorrido desde oreset (ou desde o ultimo click no bo-tão Zero).
Experimente também comControl+F9 .
Pare a simulação (F5) e dê umclick no botão Zero do stopwatch, eveja que os valores “Cycles” e “Time”serão zerados, mas ao voltar à jane-la do fonte, a simulação pode pros-seguir do ponto onde parou.
Esta característica permite-nosdeterminar o tempo exato de umcerto trecho de programa.
Observando registros da CPUdurante a simulação
Além de podermos ver o tempode execução, podemos observarcomo os registros internos se com-portam durante a execução do pro-grama.
Figura 17 - Janela Stopwatch junto à janela exemplo.asm.
Figura 18 - Iniciando a janelaWatch para ver registros.
Figura 19 - Ajustando as propriedades do registro escolhido.
No menu selecione a seqüência:Window > Watch window > Newwatch window e sua janela ficarácomo a figura 18:
Na janela ativa (Add WatchSymbol) , no campo “Symbol:” escre-va PORTB (os registros do PIC de-vem ser selecionados em maiúscu-las) e depois click no botãoProperties. Você pode ainda correra barra de rolagem vertical e seleci-onar com o mouse o registro dese-jado. Sua tela deverá estar como ada figura 19, com uma nova janela
onde ajustaremos as “propriedades”de visualização do registro selecio-nado.
Ajuste Format para DECIMAL eSize para 8 bits, e então dê um clickno botão OK, fechando a janela depropriedades do registro seleciona-do.
Veja que ao fechar a janelaPROPERTIES a janela Watch_1 jáconterá a seguinte linha:
Address Symbol Value06 PORTB D ’0’
IMPORTANTE: O valor inicial doPORTB aqui indicado pode ser dife-rente do seu!
Para ficar mais fácil acompanhara simulação ajuste o tamanho e aposição da janela Watch_1 para quesua tela fique conforme a figura 20.
Se desejar, acrescente outrosregistros da CPU e então dê umclique em “Close” para fechar a ja-nela “Add Watch Symbols”. Faça dajanela exemplo.asm a janela ativa edivirta-se com os recursos de simu-lação do MpLab.
Com Control + F9 veja o progra-ma rodando, o tempo decorrido e avariação do PORTB.
Se precisar de maiores detalhessobre as possibilidades de simula-ção, consulte o Help do MpLab, em
Help > MPLAB Help
SIMULANDO SINAISEXTERNOS NO MPLAB
ObjetivoDemonstrar a capacidade do
MpLab em simular variações exter-nas nos pinos do PIC.Procedimento
Inicie o MpLab e certifique-se de
Figura 20 - MpLab com fonte, stopwatch e visualização do PORTB.
Figura 21 - Projeto e Fonte ESTIMULO prontos.
que o mesmo está no modo de si-mulação do 16F84A.
Seguindo os passos já vistospara a criação de fonte, projeto,dimensionamento de janelas e simu-lação, crie um novo fonte e um novoprojeto na pasta c:\0pic de nomesESTIMULO.ASM e ESTIMULO.PJT.
Na janela Watch_1 acrescente oPORTA com propriedade em binárioe o PORTB com propriedade emdecimal.
Neste exemplo o PORTB seráincrementado somente se RA0 esti-ver em 1.
No fonte, conforme já visto ante-riormente, digite (respeitando astabulações):
list p=16F84Ainclude <P16F84A.INC>radix dec
org 0
clrf PORTB ; inicia em 0 bsf STATUS,RP0 ; banco 1
;para ajuste do trisb clrf TRISB ;portb é todo saída bcf STATUS,RP0 ; banco 0loop: btfss PORTA,0 ; se RA0 = 1 pula
;1 linha
goto loop ; RA0 = 0, repete; o teste
incf PORTB,f ; se chegou; aqui, RA0 = 1
goto loop ; repete tudoEND
Sua tela deverá estar como a fi-gura 21.
No menu principal selecione:Debug > Simulator Stimulus >
Asynchronous Stimulus e você de-verá obtera uma janela conforme fi-gura 22.
Observe que existem 12 “botões”com nomes de Stim 1 a Stim 12 edentro dos parênteses a letra P.
Vamos ver cada ajuste em deta-lhes.
Com o botão direito do mouse dêum click no botão Stim 1 (P) e vocêobterá o menu da figura 23.
Observe que a opção Pulse estáselecionada. Esta é a opção padrão,indicada dentro dos parêntesescomo (P).
As opções para estímulo externosão:Pulse (P) Dá um pulso no pino
selecionado (de 0para 1 e retorna a 0)
Figura 22 - Botões de estímulo.
Figura 23 - Ajustando os botões de estímulo.
Figura 24 - Ajustando os pinos que receberão o estímulo.
Low (L) Coloca nível‘0’ no pino
High (H) Coloca nível‘1’ no pino
Toggle(T) Inverte o estado nopino (iniciasempre em 0)
Experimente dar uma função di-ferente para cada botão e observa oresultado.
Como relacionar os pinos do PICaos botões
Observe que a primeira opção domenu é Assign pin ....
Selecionando esta opção umnovo menu se abre, conforme a fi-gura 24.
Então, para associarmos o botãodesejado a um certo pino do PIC,basta dar um duplo click no pino de-sejado.
Como treinamento, faça os se-guintes ajustes:
Botão 1: RA0 (T)Botão 2: RA1 (L)Botão 3: RA2 (P)e veja se os botões ficaram con-
forme a figura 25.
Agora, durante a simulação, po-demos fazer com que sinais exter-nos sejam aplicados ao PIC e verseu comportamento.
Basta durante a simulação dinâ-mica (CTRL F9) clicar sobre os bo-tões desejados, e o estímulo asso-ciado ao mesmo será aplicado aoPIC e o simulador responderá deacordo.Exemplo com estímulo
Baseado no projetoESTIMULO.PJT já pronto, vamos
efetuar a simulação com estímulo nopino RA0.
Certifique-se que temos o seguin-te ajuste: RA0 (T)
Após a compilação e eventuaiscorreções, desloque a janela de es-tímulo para um ponto que não atra-palhe a visualização dos registros efaça do fonte a janela ativa.
Tecle CTRL F9 e veja na simula-ção que a instrução btfss porta,0 ini-cialmente sempre vê a entrada RA0em 0.
Dê vários clicks bem espaçadosno botão RA0 (T) e vá analisando ocomportamento do PIC.
Boa SorteVidal n
Figura 25 - Botões de estímulo já ajustados.