aula_mclps_a2_v1

11

Click here to load reader

Upload: felipe-rodrigues

Post on 02-Jul-2015

101 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 1

Familiarização com MPLAB IDE

Prof. Paulo EugenioUNIP – Sorocaba

Agosto - 2010Lab A1 (Pratica)

Parte I – Fundamentos Teóricos

23/08/2010 1

Ambientes de Desenvolvimento para o PICCompilador C para o PIC:• Fabricante CCS

• Modelos:

– PCB para PICs de 12 bits (série PIC12)

– PCM para PICs de 14 bits (séries PIC14 e PIC16)

– PCH para PICs de 16 bits (série PIC18)

– PCWH (todos)

MPLAB:• Ambiente de Desenvolvimento Integrado (IDE)

• Permite compilar de dentro do ambiente (Necessita compilador CCS).

• Grava o PIC e Depura.

• Download no site da Microchip.

Gravadores:• McFLASH

• McPLUS

• ICD

Simuladores:• ISIS - Proteus

• GPSIM (GNU PIC Simulator) – Open Source

• PIC IDE Simulator (Oshonsoft.com)

23/08/2010 2

Ambientes de Desenvolvimento para o PIC

Page 2: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 2

23/08/2010 3

Fluxo de Desenvolvimento

23/08/2010 4

Sistema Labtools

• O sistema Labtools é formado por:

– Softaware MPLAB IDE

Aplicativo integrador de desenvolvimento para firmware usando PIC

– Simulador / Gravador ICD2

• 1 ICD2BR – depurador / gravador Microchip;

• 1 McSoc - Soquete para leitura/gravação (DIP);

• 1 Cabo de ligação entre o ICD2BR o McSoc e os produtos LabTools;

• 1 Cabo padrão USB;

23/08/2010 5

Sistema Labtools (Cont..)

– Placa de desenvolvimento McLab2:

• A placa utiliza o microcontrolador PIC 18F452 como objeto central.

• Junto ao microcontrolador uma série de periféricos foram adicionados.

• O objetivo é disponibilizar uma placa de desenvolvimento onde o usuário possa testar seus conhecimentos em software, sem se preocupar com a montagem do hardware.

Lab 01 - Uso do MPLAB OBJETIVO: Aprender a usar o Ambiente MPLAB, realizando as operações para:

• Criar e configurar um novo projeto

Page 3: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 3• Compilar um arquivo-fonte (programa)

• Simular a execução do programa, acompanhando:

o A execução de cada instrução (Janela do programa)

o O efeito de cada instrução nos Registradores de Dados (Janela Watch)

o A geração de Estímulos Externos (Janela Stimulus)

Procedimento:

ATENÇÃO:

Ao final de cada atividade de laboratório, você será avaliado com uma nota, entre 0 e 10

Você tem 100min para executar todo o procedimento programado para esta atividade. Administre o seu tempo com sabedoria.

• PASSO I - CRIAR E CONFIGURAR UM NOVO PROJETO NO MPLAB

o Execute o MPLAB

o Crie um novo Projeto, com nome Lab01

o Salve o arquivo-fonte pisca_led.asm na pasta do projeto.

� DICA: Para salvar o arquivo, clique no link acima com o botão direito do mouse.

o Adicione o Arquivo-Fonte ao Projeto

• PASSO II - COMPILAR O PROJETO

o Para compilar o projeto, clique no botão Build All.

• PASSO III - SIMULAR O PROJETO

o Configure o ambiente de Simulação (Debugger)

o Usando o modo Step Into, acompanhe cuidadosamente a execução de cada instrução, e o efeito correspondente nos registradores (janela Watch)

o Por exemplo:

� ao executar uma instrução movlw, observe o valor correspondente aparecer em WREG

� ao executar uma instrução movwf, observe o valor de WREG ser copiado para o registrador indicado

� ao executar bsf STATUS,RP0, observe na barra inferior do MPLAB, a indicação de que o microcontrolador selecionou o banco 1 da memória...

� aproveite para observar também outros detalhes importantes nessa barra inferior: pela ordem:

� o modelo do microcontrolador que você está usando,

� o valor atual do PC,

� o valor atual de W,

� os indicadores Z, DC e C do registrador STATUS (minúsculo=0; maiúsculo=1),

� a frequência do oscilador.

� finalmente, o banco de memória que está em uso

• Neste ponto, você já entendeu como funciona o ambiente MPLAB, e como usar os recursos de simulação. Agora é hora de se concentrar, especificamente, no programa que está sendo executado, e compreender seu funcionamento.

Page 4: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 4

Seja paciente e observador! Use a simulação, passo a passo, para visualizar e compreender como as coisas acontecem...

Seja curioso!

Procure entender a razão por trás de cada operação. Por exemplo:

• Por que foi necessário fazer CMCON = 00000111 ? (Leia seção 5.5.2 do livro)

• Por que foi necessário selecionar o banco 1, antes de acessar os registradores TRISA e TRISB? (consulte seção 3,2 do livro)

o Leia a Descrição, no cabeçalho do programa. Entenda o que esse programa faz, para daí entender como ele faz.

� Perceba que a descrição do programa prevê um certo número de entradas, e um certo número de saídas. Em que parte do código isso está sendo configurado?

� Coloque o simulador em modo Animate, ajuste-o para uma velocidade lenta, para que você possa observar cada instrução, e observe a execução do programa PRINCIPAL... ele vai executar essas 4 instruções, infinitamente.

� Acione os Estímulos (que você já configurou acima) e observe o efeito correspondente em cada bit de PORTA e de PORTB.

� Entenda o que cada uma dessas 4 instruções está fazendo.

� Agora, responda os Exercícios, no final do programa.

UFA! - Acabou!!!

Para finalizar o MPLAB, não precisa fechar cada janelinha interna - feche o MPLAB diretamente.

Assim, da próxima vez que você abrir esse projeto, todas as janelas já estarão configuradas e organizadas como você as deixou. Aproveite para copiar seus arquivos em seu pendrive. LEMBRE-SE: você só precisa copiar os arquivos .asm

Criar novo Projeto

• Para criar um novo projeto, clique em: Project | New... [vai abrir uma janela pedindo o nome do projeto, e a pasta onde será gravado] IMPORTANTE:

o Cada aluno deve cirar sua pasta pessoal (C:\PIC\SeuNome\)

o Cada novo projeto deve estar em uma pasta separada. Ex: C:\PIC\SeuNome\Projeto01\

o Os nomes das pastas e dos projetos DEVEM CONTER APENAS LETRAS E NÚMEROS. Não use:

� Espaços,

� cedilhas,

� acentuação,

� caracteres especiais de qualquer tipo.

Page 5: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 5• Para configurar o microcontrolador que será usado no projeto, clique em: Configure | Select Device...

[vai abrir uma janela, onde você poderá selecionar o dispositivo (device) a ser usado) Em nossos projetos, usaremos SEMPRE o microcontrolador PIC 18F452

• Para visualizar o projeto que você acabou de criar, clique em: View | Project [vai aparecer uma janela, mostrando o projeto com o nome que você criou (extensão .mcw), e várias pastas, ainda vazias, onde você adicionará os arquivos ao seu projeto]

• Observe que o ambiente criou, automaticamente, dois novos arquivos:

o Lab01.mcw (que contém as configurações do workspace - a área de trabalho do MPLAB)

o Lab01.mcp (que contém as configurações do projeto). Abaixo deste arquivo, estão representadas as várias pastas do projeto, ainda vazias.

Adicionar Arquivo-Fonte ao Projeto

Page 6: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 6

• Para adicionar um arquivo-fonte já existente ao projeto, siga o procedimento abaixo:

o Abra o arquivo-fonte: clique em File | Open...

� LEMBRE-SE: todo arquivo-fonte, na linguagem assembly tem a extensão ".asm"

� O MPLAB vai abrir uma nova janela, onde você pode ver e editar o arquivo-fonte.

o Adicione o arquivo ao Projeto:

� Na janela do editor, clique com o botão da direita do mouse, e selecione Add to Project.

• Observe que, a partir desse momento, o arquivo-fonte passa a constar dentro da pasta "Source Files", na janela do Projeto.

• A fim de formatar corretamente a visualização do arquivo, configurando as colunas do código assembly com a largura adequada, clique novamente com o botão direito na janela do editor, e selecione Properties...

Page 7: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 7

Build All

• Para compilar o projeto, clique no botão Build All:

ATENÇÃO:

Na primeira compilação de um projeto, o MPLAB irá perguntar sobre o tipo de código-objeto

a ser gerado (Absoluto ou Realocável) Escolha SEMPRE código Absoluto

Page 8: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 8• O processo de compilação gera algumas Mensagens (Message) e possivelmente algumas Advertências (Warning), na

janela Output (Saída).

o Se o seu arquivo-fonte compilar corretamente, ao final de todas as mensagens aparecerá BUILD SUCCEEDED.

� Mesmo que tenha compilado corretamente, preste atenção aos Warnings - eles podem indicar falhas de lógica em seu programa

o Caso contrário, aparecerá BUILD FAILED.

� Nesse caso, concentre-se nas mensagens de Erro (Error).

� Ao clicar em cima da mensagem qualquer, o MPLAB te mostrará exatamente a linha do seu programa a que ela se refere.

� Corrija todos os erros, até que seu programa compile corretamente.

Simulação

IMPORTANTE:

Procure ler e entender cada mensagem. Sua sobrevivência dependerá disso.

DICA IMPORTANTE:

Tudo que se refere a Simulação está dentro do menu Debugger Investigue, explore, aprenda por si mesmo!

• Configurar o ambiente de Simulação:

o clique em Debugger | Select Tool | MPLAB SIM Observe o aparecimento de uma nova barra de botões.

o Da esquerda para a direita, os botões têm as seguintes funcionalidades:

� Run: executa o programa em alta velocidade - não mostra a simulação passo a passo

� Pause: pausa a simulação

� Animate: executa instrução por instrução, automaticamente.

� Step Into: executa apenas uma instrução

� Step Over: executa apenas uma instrução, mas se a instrução for um call, ele executa toda a subrotina, sem mostrar detalhes, e retorna.

� Step Out: se estiver dentro de uma subrotina, executa rapidamente até sua finalização (return)

� Reset: Reinicia o programa, a partir do endereço 0.

� Breakpoints: gerencia os pontos de parada (breakpoints).

o Clique no botão Reset.

� Observe o surgimento de uma seta verde, apontando para a primeira instrução do programa.

� Essa seta corresponde ao valor do PC (Program Counter), logo, ela sempre estará apontando para a próxima instrução a ser executada.

o Ajuste a frequência do clock:

� Como o PIC pode trabalhar com diversas frequências de clock (oscilador), o simulador precisa saber qual a frequência que você pretende usar em seu projeto.

� Em TODOS os nossos projetos, usaremos sempre o oscilador RC interno, cuja frequência é 4MHz

� Para ajustar esse parâmetro, clique em Debugger | Settings... e selecione a guia Osc / Trace

Page 9: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 9

o Você pode ajustar também a velocidade da simulação (Animate step time), para o modo Animate e a velocidade de atualização dos dados (Realtime watch update), para o modo Run.

� Para isso, clique em Debugger | Settings... e selecione a guia Animation / Realtime Updates.

� Esses valores podem ser ajustados de acordo com a sua preferência.

• Abrir a janela para observar os Registradores:

o Clique em View | Watch

o No campo Symbol Name, digite os nomes dos registradores que você deseja observar (os registradores usados pelo seu programa):

o Observe que, ao digitar o nome de cada registrador, a janela automaticamente adiciona o seu endereço (Address), e seu valor, exibido em hexadecimal, decimal e binário.

� Se um desses valores não estiver aparecendo, clique com o botão direito sobre a barra "Value", e ative-o.

• Abrir a janela para controle dos Estímulos Externos:

o Clique em Debugger | Stimulus | New Workbook

o Nessa janela, você vai configurar cada pino de ENTRADA, correspondente ao programa que você estiver simulando.

� Por exemplo: para o programa inversor.asm, todos os pinos do RA7 até RA0 foram configurados como entradas, você deverá preencher a tabela de estímulos conforme a figura abaixo:

� Na coluna Comments / Message, você pode digitar um texto qualquer, que identifique cada uma dessas entradas

Page 10: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 10

o A janela de estímulo funciona da seguinte forma:

� Ao clicar no símbolo ">" na coluna "Fire", o simulador irá executar a ação Toggle (inverter) no estado daquele pino.

� Ex: coloque a simulação em modo Animate.

� Clique sucessivamente no > correspondente ao RA0

� Observe o efeito na janela Watch: O bit 0 do registrador PORTA alternará entre 0 e 1 a cada click do mouse.

• O ambiente total de simulação, portanto, envolverá a observação de tudo o que acontece nessas 3 janelas:

o O código-fonte do programa, com a seta indicando cada instrução a ser executada

o A janela Watch, mostrando o que acontece em cada registrador, após a execução de cada instrução

o A janela Stimulus, onde você poderá controlar eventos e sinais externos

IMPORTANTE:

Organize o seu ambiente de trabalho, de forma que todas as janelas fiquem visíveis, sem sobreposições,

aproveitando ao máximo a área do monitor, conforme o exemplo abaixo

Page 11: Aula_MCLPs_A2_V1

MCLPs – Microprocessadores e CLPs – Roteiro da Experiência 1 - 23/08/10 11

Parte II – Roteiro Experimental

a. Carregando Software de teste do hardware

Utilizado para testar as funcionalidades de quase todos os recursos da placa McLab 2: • Fornecido apenas o arquivo .HEX (código de máquina); • Selecione o Device instalado na MCLab2, usar: <Configure> <Select Device...> e selecionar 18F452; • Importar o arquivo modulo2.hex,usar: <File> <Import> no menu do MPLAB IDE;

b. Utilizando ICD2 como gravador

Mudando ICD2 para gravador: • Clique em Debugger > Select Toll > e selecione None; • Clique em Programmer > Select Programmer > MPLAB ICD2 para habilitar o ICD2BR como gravador; • O menu do gravador e o MPLAB mudarão para opções de gravação sempre que a ferramenta for selecionada. Também, a janela de

saída (output) abrirá com mensagens sobre o status de comunicação e aceitação do ICD. Para gravar a aplicação do projeto no componente siga os passos:

• Selecione Programmer > Blank Check para checar se a memória de programa está apagada. Se não estiver, é obrigatório o processo de apagar (Programmer > Erase Part);

• Selecione Programmer > Program para inserir seu código no componente ou placa de aplicação ou placa de demonstração que está conectada no seu ICD2BR;

• Selecione <Verify> do menu de gravação (Programmer) para verificar se o componente foi gravado corretamente; • Gravar o software utilizando ICD2 como gravador; • Desfaz conexão entre ICD2 e MCLab2; • Desliga e liga MCLab2 e verifique o funcionamento da aplicação.

c. Responder as questões abaixo:

1) Anotar as funções testadas pela aplicação de teste carregada no McLAB2:

2) Seguir as orientações da Parte I e:

a. Criar um Novo Projeto de nome Lab1;

b. Adicionar o arquivo fonte abaixo ao projeto:

#include <p18F452.inc> CONFIG WDT=OFF; disable watchdog timer CONFIG DEBUG = ON; Enable Debug Mode CONFIG LVP = OFF; Low-Voltage programming disabled (necessary for debugging)

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; * DEFINIÇÃO DAS VARIÁVEIS * ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CBLOCK 0X20 ; POSIÇÃO INICIAL DA RAM Delay1 ; Reserva byte para variável Delay1 Delay2 ; Reserva byte para variável Delay1 STATUS_LEDS ; ARMAZENA O ESTADO DOS LEDS ENDC org 0; start code at 0 Start: MOVLW B'11110000' ; PREPARA MASCARA ANDWF TRISB,F ; EXECUTA MASCARA (TORNA RB0 ATE RB3 SAÍDA) ANDWF PORTB CLRF Delay1 CLRF Delay2 MainLoop: BTG PORTB,RB0 ;Inverter PORT B PIN 0 BTG PORTB,RB1 ; Inverter PORT B PIN 1 BTG PORTB,RB2 ; Inverter PORT B PIN 2 BTG PORTB,RB3 ; Inverter PORT B PIN 3 Delay: DECFSZ Delay1,1 ;Decrementa Delay1 de 1, pula próxima instrução se Delay1 é 0 GOTO Delay DECFSZ Delay2,1 GOTO Delay GOTO MainLoop END

c. Compilar o projeto, clique no ícone BUILD ALL (para maiores detalhes desta operação veja na Parte I). Siga os passos do item b acima para gravar o programa compilado no MCLAB2 e verifica seu funcionamento. O professor deve verificar que a aplicação está funcionando.

d. Alterar o programa de forma que o tempo de piscar dos LEDs fique com um tempo maior, re-escrever o programa abaixo:

e. Fazer o fluxograma do programa do item b.