Página: 1
Guião MPLAB – IDE (v8.92)
Descrição
Este documento é um guia rápido de utilização do ambiente de desenvolvimento da Microchip para os microcontroladores de oito bits da série 16F6xxx estudados nas disciplinas de Microprocessadores e Microcontroladores.
A utilização do MPLAB-IDE permite:
• Proporcionar ao estudante/programador o desenvolvimento projectos com os microcontroladores da Microchip de forma integrada:
Editor de código fonte próprio Debugger
Ajuda integrada
• Interface ao utilizador do tipo Windows
• Criação de Projectos cujo ambiente de trabalho (WorkSpace) é guardado e recuperado a cada sessão.
Nota: O MPLAB-IDE é um produto de acesso livre da Microchip e pode ser descarregado de: http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_8_92.zip
Lançamento e comandos básicos
No computador do Laboratório deverá estar instalado o MPLAB-IDE v8.xx. O lançamento poderá ser efectuado das seguintes maneiras alternativas:
• Através da tecla do Windows • Com “Start”-> “Search” - MPLAB • Com “Start”-> “All Programs”
Página: 2 Após o lançamento deverá aparecer uma janela da aplicação a seguir à apresentação do logo da Microchip, semelhante à da figura seguinte. Para sair do programa, fazer “File” “Exit” na Barra de Comandos (1).
1. New File Source, Open/Save Work Space; Exit;
2. Criação de projectos e várias Opções de Configuração do ambiente 3. Navegador dos recursos do Projecto
4. Ajuda Integrada sobre as ferramentas disponíveis 5. Janela de mensagens
6. Dispositivo seleccionado
Nota: A primeira coisa a fazer é seleccionar o PIC16F627A como Device em
“Configure” “Select Device” PIC16F627A
7. Atalhos para criação de novo projecto, abertura de um projecto existente ou gravação de todo o projecto corrente
Página: 3 Criação de um Projecto
A criação de um projecto novo envolve a preparação de uma pasta com uma série de ficheiros de configuração, de recursos e de registo. O modo mais fácil de criar um projecto novo é usar a ferramenta “Project Wizard…” na zona (2) do ambiente de trabalho.
Ao aparecer a janela de “Welcome” deverá seleccionar-se a opção “Next” até ao passo “3” onde se terá de atribuir uma pasta (normalmente vazia) onde se irão gerar os diferentes ficheiros necessários ao projecto:
1. Directoria onde vão ficar os projectos
2. Directoria onde fica o projecto que se está a criar 3. Nome do projecto
Finalmente ir carregando em “Next” e “Finish”. O resultado obtido será:
1. Nome do “WorkSpace” – onde se guardam as configurações.
2. Nome do projecto 3. Ficheiro fonte a adicionar
Página: 4 De seguida, é necessário criar um ficheiro de código fonte com a extensão “.asm” na directoria do projecto, que será adicionada á pasta “Source Files”. Primeiro cria-se um ficheiro “untitled” com “File” ”New” (aparece uma janela com nome “untitled”). Com essa janela seleccionada, fazer de imediato “File” “Save As” e atribuir o nome “nome_projecto.asm” ”Save”:
De seguida adicionar o ficheiro “Source” (*.asm criado previamente) na janela do projecto na pasta “Sources”- Em cima de “Sources”, clicar no botão da direita do rato e adicionar o ficheiro *.asm :
Página: 5 Fazer a gravação do Ambiente de trabalho (WorkSpace) em “File” “Save WorkSpace” ou utilizando o Atalho correspondente e sair do MPLAB-IDE.
Observando a directoria do projecto poderemos observar:
1. Ficheiro de configuração do Projecto
2. Ficheiro que guarda o aspecto do ambiente de trabalho (WorkSpace) 3. Ficheiro do Código Fonte
4. Ficheiro com objectivo desconhecido..
Lançar agora o MPLAB a partir da directoria do projecto clicando em qualquer dos “Icons” Microchip. O MPLAB deverá arrancar na mesma situação do último “Save”, mantendo o ambiente de trabalho.
Notas:
• Se aparecer uma mensagem a pedir para indicar o tipo de código gerado, escolher “Absolute”.
• O MPLAB pode ser lançado do “Start” do Windows abrindo o projecto com “Project” “Open”, ou em alternativa, “File” ”Recent Workspaces”.
Codificação e Assemblagem
Com o Projecto aberto, assegurar-se que tem um ficheiro de código fonte adicionado (1). Assemblar com “Build All” (2).
Página: 6 Se não existir nada no ficheiro fonte deverá aparecer na janela “Output” uma
indicação de erro (3) com “BUILD FAILED”. A partir deste momento, teremos de introduzir o código no ficheiro – linguagem assembly do microcontrolador, além de directivas ao programa assemblador. Por exemplo, a directiva “END” indica ao programa de assemblagem que a codificação introduzida e a interpretar finalizou.
Com o Projecto aberto, introduzir o seguinte código no ficheiro fonte (*.asm):
; primeiro - teste -> comentário inicia-se com um ";" VAR1 EQU 0x20 ; Zona de memória do utilizador em 20H
VAR2 EQU 0x21 ; EQU - "Equal" - o assemblador substitu VAR2 por 0x21 no código clrw ; WREG = 0 - WREG é o acumulador
movwf VAR1 ; Mover o conteúdo de WREG para a VAR1 (20H) inc ; label/etiqueta/endereço
incf VAR1, 1 ; Incrementar o conteúdo de VAR1 e gravar em VAR1 goto inc
END
Nota: Reparar que o editor é “esperto” – muda a cor do texto introduzido sempre
que reconhece palavras chave (intruções, directivas e outras).
Após a introdução do código fazer “Buil All” – Deverá aparecer “BUILD SUCCEEDED” na janela de “Output”
Ficheiros gerados pelo Assemblador
Nesta altura poderemos fazer uma inspecção à directoria do Projecto:
1. Código Fonte.
2. Ficheiro que indica os erros ou avisos que ocorreram na assemblagem. 3. Ficheiro com a imagem do código – a enviar para o microcontrolador, no
Página: 7 4. Ficheiro com a demonstração do trabalho do Assemblador.
5. Estatísticas várias sobre a utilização dos recursos do microcontrolador.
Nota: Os restantes ficheiros são ficheiros intermédios necessários à geração
da imagem *.HEX.
O ficheiro realmente importante é o “*.lst” – Listing:
1. Valores em Hex atribuídos aos Símbolos “VAR1” e VAR2”.
2. Endereços da memória de programa “FLASH” onde estão os CODOPs das instruções.
3. CODOPs das instruções (relacionar com a pág 118 do manual do PIC 16F627A).
4. Linhas no ficheiro de Código Fonte (*.asm)
5. Aviso – o assemblador não aprecia particularmente que esta directiva esteja na coluna 1 do ficheiro fonte – colocar um TAB antes e o aviso desaparece. 6. Table com os Símbolos e respectivos valores atríbuidos.
7. Estatística da memória usada.
Página: 8 Despistagem de Erros e Simulação
A despistagem de erros, simulação e teste do funcionamento do código é fundamental na fase de desenvolvimento de um projecto envolvendo
microcontroladores. No MPLAB-IDE existe um simulador do funcionamento do
microcontrolador, permitindo fazer a depuração dos erros lógicos e aprimorar o código antes de realizar a programação do dispositivo e partir para os testes de campo, o que tem importância relevante em termos de ganhos de tempo no desenvolvimento.
1.
Comandos Básicos
Para activar o Simulador fazer “Debugger” ”Select Tool” ”4 MPLAB SIM” , pelo que deverá aparecer a barra:
Esta barra de comandos permite fazer a execução do código “passo a passo” além de outras funcionalidades, que serão explicadas com maior detalhe mais à frente neste Guião. Para se verificar o funcionamento do nosso código será preciso introduzir no ambiente de trabalho (“Work Space”) mais três janelas:
1 . “View” ”Program Memory” (memória FLASH onde estão os nossos CODOPs) 2. “View” ”File Registers” (Memória RAM onde estão os registos internos do microcontrolador (de 00h até 1Fh), e as nossas variáveis (a partir de 20h).
3. “View” ”Special Function Registers”
Nota: Existem outros endereços na memória alocados a outros registos internos do
microcontrolador (SFRs). Ajustar o ambiente de trabalho como na figura seguinte:
Página: 9 Comandos mais Importantes:
1. Reset (F6) – Coloca o programa no Início (endereço 0000h) 2. Step Into (F7) – Faz a execução Instrução a Instrução 3. Step Over (F8) – faz a execução Linha a Linha
4. Break Point - Clicar duas vezes na linha à esquerda no código fonte – coloca um ponto de espera
5. Run (F9) – Executa rapidamente até ao(s) Break Point (s)
Observe as alterações que provoca nas diferentes janelas quando executa passo a passo o programa:
• Quando existe uma alteração, o elemento alterado fica a vermelho. • O endereço da memória 20H vai sendo incrementado
• O endereço 02H mantêm-se em 02/03. Porquê?
• É possível alterar uma posição de memória arbitrária na janela “File Registers”
• Na janela “Programa Memory” é possível alterar o CODOP ou a respectiva MNEMÓNICA (dar “ENTER” depois de alterar).
2. Comandos Avançados
A partir de agora apresenta-se o ambiente de trabalho típico usado no desenvolvimento de projectos com o microcontrolador:
1. Retire as janelas “Progam Memory”, “SFR” e “File Registers” 2. Inclua as janelas “Watch” (View Watch) e “Stopwatch”
(Debugger StopWatch)
3. Em Debugger Settings, altere a frequência de trabalho para 4 MHz 4. Introduza os SFRs “WREG”, “PCL” e “STATUS”. Introduza o Symbol “VAR1”
Página: 10 Explore agora a simulação com esta nova configuração do ambiente de trabalho:
• Pode alterar alguns valores nas janelas
• Verifique o tempo de execução na janela “Stopwatch”
• PCL – Contador de programa – aponta para a instrução a executar
Teste do programa KITT
Na directoria “primeiro” renomeie o ficheiro “primeiro.asm” para “primeiro_1.asm”. Introduza agora o ficheiro “primeiro_2.asm” e copie-o para “primeiro.asm”. Lance o projecto em MPLAB. Na janela “Watch” terá de remover a linha da “VAR1” e introduzir o SFR PORTB.
Tente fazer a exploração deste novo projecto: Assemblagem, testes passo a passo, compreensão da rotina “delay...”, uso de“Breakpoints”, etc. Meça o tempo de execução de vários troços de programa.
Procure finalmente reduzir o tamanho do programa utilizando outras instruções/métodos. 21-04-2016
Procure no site oficial o Ficheiro Comprimido “projectos_pic” e descarregue-o para a área de trabalho do seu computador. Abra o ficheiro e arraste para a área de trabalho (DeskTop) a directoria “projectos_pic”. Fica assim com acesso a vários projectos MPLAB.
Atenção: o MPLAB não funciona sobre ficheiros comprimidos.
Na directoria “primeiro”, encontra um ficheiro “source” - primeiro_2melhorado.asm – copie-o para primeiro.asm e abra o respectivo projecto. Pode agora simular e tentar compreender como se conseguiu melhorar o programa “Kitt”, nomeadamente com a utilização de “tabelas”.
Página: 11 Codificação de Fluxogramas. A janela de “Estímulos”
Na directoria de projectos PIC, pode encontrar um projecto sobre codificação em assembly do PIC de Fluxogramas.
Abra o projecto “Fluxograma” e tente perceber o mesmo, com o objectivo de desenhar o fluxograma que descreve um automatismo. Apage a janela “Stimulus” e acrescente uma janela “Stop Watch” com a frequência a 4 MHz (a partir de Debugger Stop Watch, e Settings...).
Tente fazer “Build All”. Vai verificar que existem erros na assemblagem. O troço de código que apresenta erros (quais?) foi usado para explicar os desvios condicionais. Apague esse troço de código e prossiga com a assemblagem.
Utilize agora a ferramenta de simulação para perceber o
funcionamento do programa: F6 – reset ; F7 - “passo a passo”; Janela “Watch” – registos PCL, WREG e PORTB.
Deve conseguir a seta verde com PCL=0 – micro a iniciar o código no endereço “00” da memória de programa (FLASH). Com F7, execute passa a passo e verifique o funcionamento do programa na janela “Watch”: o WREG a ser carregado com os valores definidos com “EQU” e passados ao PORTB. Note que primeiro foi feita a inicialização e configuração dos Portos de entrada/saída do microcontrolador: PORTA – INPUT; PORTB – OUTPUT.
Página: 12 “estado_0”. Porquê? Porque K1 – definido como “PORTA, 0”, bit 0 do PORTA como entrada, se mantém a “0”, e portanto, a instrução “btfss” não faz o salto. Para vermos evoluir o programa para os outros estados é necessário actuar nas entradas K1 e Z1.
Repare que tentando modificar os respectivos bits em PORTA na janela “Watch” (K1 – bit0, Z1 – bit 1) não funciona. Este método só funciona para as saídas.
Introduza agora a janela “Stimulus”: Debugger Stimulus New WorkBook:
Preenchendo os respectivos campos, introduza sucessivamente “RA0 – para o K1”; RA1 – para o Z1”; as acções como “Toggle” e a descrição no campo “Coments”.
Comece novamente a simulação a partir do início do programa com “reset” (F6).
Agora, quando o programa estiver no “estado_0”, faça um click em “Fire” (>) de K1. Após a execução de uma instrução, deverá aparecer na janela “Watch” a modificação no bit 0 do PORTA (K1). A acção “Toggle” permite trocar o bit.
Simule o programa, com a utilização da janela “Stimulus”, para verificar o funcionamento do automatismo: Perante as entradas K1 e Z1, assim teremos várias situações diferentes (“estados”) com as saídas respectivas.
Compreendendo o funcionamento do programa e utilizando as ferramentas de simulação será possível desenhar o respectivos Fluxograma:
INIT 0 K1 0 Z1 Z1 1 2 3 0 0 11 10 00 01