Escolar Documentos
Profissional Documentos
Cultura Documentos
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Introdução a Programação
Sistemas
Microprocessados I
AUTORES:
1A versão
Prof. Marcos Antônio da Solva Pinto
Prof. Joel Augusto dos Santos
Prof. José Jonas da Silva Maia
Prof. Hércules M. Carvalho
2A versão – 2001
Prof. Marcos Antônio da Solva Pinto
Prof. John Kennedy Schettino de Souza
Prof. Paulo Sérgio Roque
3A versão – 2003
Prof. John Kennedy Schettino de Souza
Prof. Marcos Antônio da Silva Pinto
Profa. Rosângela Fátima da Silva
A
4 versão – 2004
Prof. John Kennedy Schettino de Souza
Prof. Marcos Antônio da Silva Pinto
5A versão – 2009
Profa. Rosângela Fátima da Silva
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ÍNDICE
Introdução 03
Aula Prática 01 04
Ambiente de programação da IAR Systems
Aula Prática 02 13
Instruções de carga e transferência de 8 bits
Aula Prática 03 17
Instruções de carga e transferência de 16 bits
Aula Prática 04 20
Operações lógicas e aritméticas
Aula Prática 05 23
Tomada de decisão
Aula Prática 06 26
Instruções de salto (jumps)
Aula Prática 07 28
Subrotinas
Aula Prática 08 32
Programas
Aula Prática 09 34
Acionamento de LEDs com temporização de software
Aula Prática 10 40
Monitoração de chave com espera ocupado
Aula Prática 11 43
Monitoração de chave com interrupção
Aula Prática 12 47
Teclado
CEFET-MG 1
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Aula Prática 13 50
Display de Cristal Líquido
Aula Prática 14 54
Modularização
Referências Bibliográficas 61
CEFET-MG 2
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
INTRODUÇÃO
Caríssimos alunos,
Como você pode observar na capa desta apostila, existem várias versões. Isto
significa que estamos, cada vez mais, tentando melhorar o material que você
utiliza. Parte destas versões é devido a mudamos da tecnologia. Mas o que nos
move é o desejo de que esta apostila seja a melhor possível, portanto gostaríamos
que você preste muita atenção em tudo que a partir deste momento vamos
oferecer e nos ajude nesta missão. Talvez assim consigamos atingir nossos
objetivos.
Atenciosamente,
CEFET-MG 3
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 01
OBJETIVO:
INTRODUÇÃO
Conforme a ferramenta que usarmos, os dois últimos processos podem ser feitos
em um único passo. Talvez seja necessário criar um projeto antes de executar os
CEFET-MG 4
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
IAR SYSTEMS
Para abrir o programa, vá ao botão Iniciar e clique com o lado direito do mouse e
selecione as seguintes opções, sequencialmente: Programas, IAR System, IAR
Embedded Workbench kickStart for MSP430 V4, IAR Embedded Workbench,
conforme você pode observar na Figura 2, apresentada a seguir.
Quando você clicar sobre a opção IAR Embedded Workbench, vai aparecer a
janela de Inicio do Embedded Workbench, veja a Figura 3:
CEFET-MG 5
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Atenção:
Se você clicar sobre a opção IAR Embedded Workbench e não aparecer a
janela mostrada na Figura 3. Vá ao menu principal escolha a opção Project
e em seguida Create New Project. A janela Create a New Project será
aberta, veja a Figura 5.
CEFET-MG 6
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Uma vez determinado o tipo de projeto a ser criado, o próximo passo é salva-lo.
Quando a gente salva um arquivo, naturalmente temos que escolher uma pasta.
Vá a Meus documentos, lá existe uma pasta para a sua turma. Caso não exista,
faça a gentileza de criá-la. Dentro desta pasta crie a sua pasta, de preferência
com o seu nome. Ótimo assim você sabe onde estão as suas coisas. Agora crie
uma nova pasta, ela pode se chamar AULA_01, por exemplo. Cada
projeto que criarmos, terá uma pasta exclusiva para ele.
Atenção:
Todos os seus arquivos devem estar dentro de uma única pasta com o seu
nome.
Crie uma pasta exclusiva para cada projeto, ou seja, para cada novo
programa que você vai implementar.
NÃO se esqueça de salvar os seus arquivos no seu pendriver, ao final de
todas as aulas.
A janela Salvar como, que surgiu na tela, lhe dá a opção de escolher o nome do
projeto. Observe, neste caso, foi salvo na pasta AULA_01 o projeto com o nome
PROJ_01, Figura 6.
Enfim, surgiu na tela o editor de texto, Figura 7, onde você pode digitar o seu
programa.
CEFET-MG 7
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 8
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Escolha um nome para o workspace e salve. Neste caso foi escolhido o nome
AREA_01.
Se houver algum erro no seu programa, uma mensagem de erro aparecerá nesta
aba, descrevendo resumidamente o erro. Se você der um duplo clique sobre a
mensagem, o cursor será imediatamente movido para o ponto em que o erro foi
localizado.
CEFET-MG 9
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Quando não houver mais erros, a mensagem Total number of errors: 0, deve ser
apresentada. Repare que a existência de mensagem de alerta (Total number of
warnings: 1, trata-se apenas de um aviso. Indica ao programador que algo foi
encontrado no programa, podendo provocar falhas ou problemas.
Observe a janela adicional de Disassembly que foi aberta no lado direito da tela.
Nela está exibido o conteúdo da memória de programa do processador, no
formato hexadecimal intercalado com o código-fonte original.
CEFET-MG 10
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Agora basta você escolher uma das opções de execução do programa na barra de
ferramentas IDE, Figura 12, e verificar a simulação do mesmo.
CEFET-MG 11
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Reinicia o programa
Cria/apaga um breakpoint
Atenção:
As opções de execução de programas presentes na barra de ferramentas
IDE, mostradas na Figura 12, podem ser acessadas através da seleção do
botão Debug no nenu principal.
ATIVIDADES
Dica:
Dica:
Se você não observar diferenças entre alguns deles, fique ligado, pois é
apenas uma questão de tempo.
CEFET-MG 12
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 02
OBJETIVO:
INTRODUÇÃO
Talvez, você não se lembre como abrir o IAR System. Então faça como na aula
anterior: clique sobre o botão Iniciar, e selecione sequencialmente as opções:
Programas, IAR System, IAR Embedded Workbench kickStart for MSP430 V4,
IAR Embedded Workbench, conforme foi mostrado na Figura 2. Quando você
clicar sobre a opção IAR Embedded Workbench, aparecerá a janela de Inicio do
Embedded Workbench, apresentada na Figura 3. Neste caso, escolha o botão
“Abrir um workspace já existente”.
Atenção:
Se você clicar sobre a opção IAR Embedded Workbench e não aparecer a
janela mostrada na Figura 3. Vá ao menu principal escolha a opção File e
em seguida as opções: Open e Workspace.... A janela Open workspace,
será apresentada, veja a Figura 13.
É provável que você tenha que localizar a sua pasta e em seguida a pasta relativa
ao seu projeto, AULA_01. Como você mandou abrir uma área de trabalho,
CEFET-MG 13
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Atenção:
O MSP possui 12 registros de uso geral: R4 a R15. Eles podem ser usados
em suas aplicações habituais: transferência de dados, operações lógicas,
aritméticas, jumps e etc. Eles armezenam dados ou endereços.
As operações de 8 bits são executadas apenas com a parte menos
significativa dos registros.
ATIVIDADES
CEFET-MG 14
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
2.2 Abra uma nova pasta e construa um novo projeto para testar as seguintes
instruções:
2.4 Abra uma nova pasta e construa um novo projeto para testar as seguintes
instruções:
MOV.W #0x200,R4
MOV.W #0x201,R5
MOV.B #0xCC,&0x200
MOV.B #0xDD,&0x201
MOV.B 0(R4),R6
MOV.B 0(R5),0(R4)
MOV.B R6,0(R5)
CEFET-MG 15
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 16
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 03
OBJETIVO:
INTRODUÇÃO
ORG 0FFFEh
DC16 init ;set reset vector to 'init' label
Elas iniciam o Program Counter para você. Observe que ao carregar o programa
no ambiente de simulação o PC sempre está com o valor de 0x1100. E não se
esqueça de observá-lo após a execução de cada instrução, ele é automaticamente
incrementado.
Agora está um poquinho mais claro, pois a instrução MOV você conhece e SP
representa o próprio Ponteiro da Pilha. Esse registro é automaticamenente
incrementado ou decrementado, em situações bem detrminadas que veremos no
decorrer deste curso.
CEFET-MG 17
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ATIVIDADES
3.1 Abra uma nova pasta e construa um novo projeto para testar as seguintes
instruções:
;Número da instrução
MOV.W #0x7777,R7 ;1
MOV.W #0x8888,R8 ;2
PUSH R7 ;3
PUSH R8 ;4
MOV.W #0x00,R7 ;5
MOV.W #0x00,R8 ;6
POP R8 ;7
POP R7 ;8
INSTRUÇÕES/ 1 2 3 4 5 6 7 8
REG. e PILHA
PC
SP
R7
R8
R9
(09FFH)
(09FEH)
(09FDH)
(09FCH)
Tabela 2 - Estado corrente de registros (exercício 3.1)
3.2 Abra uma nova pasta e construa um novo projeto para testar as seguintes
instruções:
; Número da instrução
MOV.W #0AAAAH,R10 ;1
MOV.W #0BBBBH,R11 ;2
PUSH R10 ;3
PUSH R11 ;4
POP R10 ;5
POP R11 ;6
CEFET-MG 18
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
INSTRUÇÕES/ 1 2 3 4 5 6
REG. e PILHA
PC
SP
R10
R11
(09FFH)
(09FEH)
(09FDH)
(09FCH)
Tabela 3 - Estado corrente de registros (exercício 3.2)
3.3 Abra uma nova pasta e construa um novo projeto para testar as seguintes
instruções:
; Número da instrução
MOV #0xBBBB,R4 ;1 - IMEDIATO −> REGISTRO
MOV R4,R5 ;2 - REGISTRO −> REGISTRO
MOV R5,&0x200 ;3 - REGISTRO −> MEMÓRIA
MOV &0x200, &0x202 ;4 - MEMÓRIA −> MEMÓRIA
MOV &0x202,R6 ;5 - MEMÓRIA −> REGISTRO
MOV #0x202,R7 ;6 - IMEDIATO −> REGISTRO
MOV 0(R7),R8 ;7 - MEMÓRIA −> REGISTRO
INSTRUÇÕES/ 1 2 3 4 5 6 7
REG. e PILHA
PC
R4
R5
R6
R7
R8
(0200H)
(0202H)
Tabela 4 - Estado corrente de registros (exercício 3.3)
CEFET-MG 19
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 04
OBJETIVO:
INTRODUÇÃO
Algumas operações lógicas e aritméticas afetam flags. Eles são consultados para
tomada de decisão. Os flags existentes no MSP estão no Registro de Status (SR)
nos seguintes bits:
Dica:
Dica:
É necessário consultar o conjunto de instruções do MSP para verificar quais
os flags que atuam após a execução de cada instrução e como eles são
afetados.
ATIVIDADES
CEFET-MG 20
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
MOV.B &0x200,R4
MOV.B &0x201,R5
ADD.B R4,R5
MOV.B &0x200,R6
MOV.B &0x201,R7
CLRC
DADD.B R7,R6
Dica:
Se você quiser inserir um conteúdo em um espaço de memória RAM, siga
os seguintes passos:
a. Vá ao ambiente de depuração.
b. Acrescente a janela Memory.
c. Clique com o botão direito do mouse sobre a seta da caixa de texto
onde está escrito Memory e selecione RAM.
d. Marque com o botão direito do mouse a posição de memória que
você deseja modificar e escreva o valor desejado por cima.
MOV.W #202H,R4
MOV.B 0(R4),R5
INC.W R4
MOV.B 0(R4),R6
INC.W R4
MOV.B 0(R4),R7
MOV.B R5,R15
AND.B R6,R15
INV.B R15
XOR.B R7,R15
INC.W R4
MOV.B R15,0(R4)
CEFET-MG 21
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 22
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 05
OBJETIVO:
INTRODUÇÃO
INÍCIO
TRANSFERIR UM BYTE
ATUALIZAR O ENDEREÇO DO BLOCO DE ORIGEM
ATUALIZAR O ENDEREÇO DO BLOCO DE DESTINO
ATUALIZAR O NÚMERO DE BYTES RESTANTES
F TODOS OS
BYTES FORAM
TRANSFERIDOS?
CEFET-MG 23
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
PROGRAMA EM ASSEMBLY
;*********************************************************************************************************
; Descrição: Este programa transfere dados de um bloco de memória para outro.
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
ATIVIDADES
5.2 Armazene os valores 00, 01, 02, ...0F nos endereços 200H a 20FH
Dica:
Dica:
Para executar o programa, totalmente, acione a tecla F5 ou o ícone e
em seguida clicle sobre o ícone para parar.Consulte a Figura 12.
CEFET-MG 24
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
5.4 Reinicie o programa e o execute passo a passo até a instrução DEC.B R6.
Justifique os valores encontados no registro R6 e no flag Z (zero).
5.5 Saia do modo de depuração. Troque a instrução MOV.B #10H,R6 por MOV.B
#01H, R6e repita o item 5.4.
5.7 Troque a instrução JNZvolta por JZ volta, armazene o valor AA nos endereços
200H a 20FH. E execute o programa.
Dica:
Se você quiser inserir o mesmo valor em um bloco de memória RAM, siga
os seguintes passos:
1. Vá ao ambiente de depuração.
2. Acrescente a janela Memory.
3. Clique com o botão direito do mouse sobre a seta da caixa de texto
onde está escrito Memory e selecione RAM.
4. Clique com o botão esquerdo do mouse sobre uma posição de memória
qualquer e selecione Memory Fill... Aparecerá a Janela Fill.
5. .Preencha os seguites campos: Start address, Length e Value. No
nosso caso use respectivamente os seguintes valores 0x200, 0x10 e
0xAA.
CEFET-MG 25
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 06
OBJETIVO:
INTRODUÇÃO
As instruções lógicas e aritméticas afetam flags. Isto significa que logo após a
execução de qualquer uma delas é possível tomar decisões. As instruções que
usamos, neste caso são os jumps condicionais: JZ, JNZ, JL, JGE, JN, JC e etc.
A instrução BR (Branch) desvia o programa para qualquer uma das 64k posições
de memória endereçáveis. Ela salta para o destino, portanto é um jump absoluto.
ATIVIDADES
;*********************************************************************************************************
; Descrição:
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label
CEFET-MG 26
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
MOV.W #APT1,R4
MOV.W #APT2,R5
MOV.W #APT3,R6
MOV.B #10,R7
volta CMP.B 0(R4),0(R5)
JZ igual
JL menor
MOV.B #02,0(R6)
cont INC.W R4
INC.W R5
INC.W R6
DEC.B R7
JNZ volta
JMP $ ; jump to current location '$'
; (endless loop)
igual
MOV.B #00,0(R6)
BR #cont
menor
MOV.B #01,0(R6)
JMP cont
END
6.5 Explique o que ocorre nas instruções JZ XX, JNZ XX, JC XX e JNC XX, para os
valores encontrados nos flags Z e C do item anterior.
CEFET-MG 27
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 07
OBJETIVO:
Estudar subrotinas
INTRODUÇÃO
Considere uma operação como a divisão, para a qual o MSP não dispõe de uma
única instrução capaz de executá-la. Torna-se necessário implementar um grupo
de instruções para realizar a operação de divisão. Um grupo de instruções que
executa uma tarefa específica é chamado de rotina. Portanto, para esse caso
especificamente, teremos a rotina de divisão.
CEFET-MG 28
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ATIVIDADES
PRINCIPAL DIVISÃO
DIVIDENDO 15
SALVAR CONTEXTO
DIVISOR 3
DIVISÃO QUOC 0
S
DIVIDENDO = 0?
S
DIVISOR = 0?
DIVISOR > S
DIVIDENDO
S
DIVIDENDO < 0?
RETORNA
CEFET-MG 29
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
;*********************************************************************************************************
; Descrição:
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
CEFET-MG 30
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
END
CEFET-MG 31
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 08
OBJETIVO:
INTRODUÇÃO
ATIVIDADES
CEFET-MG 32
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Dicas:
Cada posição de memória deve conter o código ASCII do digito corrente.
A base de tempo, que nos relógios são de 1 segundo, deverá ser
acelerada para possibilitar o acompanhamento e execução do programa.
CEFET-MG 33
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 09
OBJETIVO:
INTRODUÇÃO
Até agora apenas simulamos os nossos programas. Isto foi conveniente porque os
programas executados usavam apenas os dispositivos internos do
microcontrolador, registros da CPU e espaço de memória. Agora imagine que
você queira acionar um dispositivo externo, como um led, e não possa vê-lo
piscando...
Acionar leds, displays, chaves, teclados, motor de passo e etc, requer que os
programas sejam carregados na memória do próprio microcontrolador. Isto
significa que serão executados, de fato. E poderemos acompanhar o andamento
da execução através do IAR System.
Nesta aula veremos como configurar um projeto para que o código fonte seja
carregado no micorcontrolador, relembrar como configurar as portas, para que
possamos usa-las e acionar os leds.
PROGRAMAÇÃO DE PORTAS
1. Registro de Seleção
CEFET-MG 34
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
2. Registro de Direção
3. Registro de Saída
4. Registro de Entrada
O primeiro passo é criar um novo projeto, fazendo tudo como antes. O segundo é
configurá-lo: vá ao menu principal e selecione Projet e em seguida click em
Options, aparecerá a janela Options for node “PROJ”, Figura 18.
CEFET-MG 35
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
HARDWARE ACIONADO
CEFET-MG 36
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
FLUXOGRAMAS
CEFET-MG 37
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
PROGRAMA EM ASSEMBLY
;*********************************************************************************************************
; Descrição: Este programa aciona LED
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
;*********************************************************************************************************
;Subrotina: PISCA_LED
;Descrição: Faz o led presente no BIT 0 da porta P1 piscar 3 vezes, em
; um intervalo de tempo definido pela rotina TEMPO_PISCA
;Entrada: -
;Saída: -
;*********************************************************************************************************
PISCA_LED
CEFET-MG 38
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
;*********************************************************************************************************
;Subrotina: TEMPO_PISCA
;Descrição: Intervalo de tempo gasto pela CPU, para acionamento do led
;Entrada: -
;Saída: -
;Cálculo de tempo: 3+3+1+K1(1+K2(1+2)+1+2)+3=2+2+3
;*********************************************************************************************************
K1 EQU 1
K2 EQU 1
ATIVIDADES
CEFET-MG 39
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 10
OBJETIVO:
INTRODUÇÃO
Na aula anterior acionamos um led, em outras palavras, a CPU enviou sinais para
o led. Para executar essa operação, primeiro tivemos que programar um bit de
uma portas como saída. Naturalmente, o bit no qual estava ligado o led. A
programação foi efetuda através do registro de direção, PnDIR. Em seguida, foi
possível enviar o sinal para o led através do registro de saída PnOUT.
Imagine que você queira ler o sinal de uma chave... Naturalmente o bit no qual
está ligado a chave será programada como entrada. E o sinal da chave também
será obtido pelo registro PnOUT?
HARDWARE ACIONADO
Observe que no terminal CH0 sempre existe um sinal bem definido, terra ou VCC.
FLUXOGRAMAS
Os fluxogramas para leitura da chave são apresentados na Figura 23. Note que no
fluxograma ESPERA_CHAVE a CPU permanece lendo a chave até que ela seja
ligada. Essa técnica é chamada Espera Ocupada.
CEFET-MG 40
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
PROGRAMA EM ASSEMBLY
;*********************************************************************************************************
; Descrição: Este programa monitora uma chave através da técnica de espera ocupada
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
;*********************************************************************************************************
;Subrotina: ESPERA_CHAVE
;Descrição: Monitora o estado de uma chave
;Entrada: -
;Saída: -
;*********************************************************************************************************
CEFET-MG 41
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ESPERA_CHAVE
BIT.B #1,P1IN ; monitorar chave
JZ ESPERA_CHAVE
CALL #TRATA_EVENTO
RET
;*********************************************************************************************************
;Subrotina: TRATA_EVENTO
;Descrição: Quatro leds piscam sucessivamente
;Entrada: -
;Saída: -
;*********************************************************************************************************
TRATA_EVENTO
RET
END
ATIVIDADES
CEFET-MG 42
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 11
OBJETIVO:
INTRODUÇÃO
Você acha que esta técnica é utilizada no seu PC? Imagine então que a CPU
lesse o seu teclado atraves dessa técnica... Seria possível você escutar música,
baixar um texto pela internete e visualizar a tecla digitada por você no monitor de
vídeo, “simultaneamente”? Não se esqueça que a CPU executa uma atividade de
cada vez.
PROGRAMAÇÃO DE PORTAS
CEFET-MG 43
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
BIT = 0 => o flag de interrupção é setado com uma transição de baixo para alta
BIT = 1 => o flag de interrupção é setado com uma transição de alto para baixo
FLUXOGRAMAS
TRATA
INTERRUPÇÃO
DESABILITAR INTERRUPÇÃO
RESETAR FLAG DE INTERRUPÇÃO
TRATA_EVENTO
HABILITAR INTERRUPÇÃO
RETORNA
DA INT.
CEFET-MG 44
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
PROGRAMA EM ASSEMBLY
;*********************************************************************************************************
; Descrição: Este programa monitora uma chave através da técnica de interrupção
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
;*********************************************************************************************************
;Subrotina: PROCESSO_BÁSICO
;Descrição: A CPU poderá executar qualquer tarefa sem se preocupar com a interrupção
;Entrada: -
;Saída: -
;*********************************************************************************************************
PROCESSO_BASICO
RET
;*********************************************************************************************************
;Subrotina: TRATA_INTERRUPCAO
;Descrição: Espera que a chave seja colocada no estado ligado
;Entrada: -
;Saída: -
;*********************************************************************************************************
CEFET-MG 45
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
TRATA_INTERRUPCAO
DINT ; desabilitar intrrupção geral
BIC.B #0x01,P1IFG ; reseta flag de interrupção
CALL #TRATA_EVENTO
EINT ; habilitar intrrupção geral
RETI
;*********************************************************************************************************
;Subrotina: TRATA_EVENTO
;Descrição: Define a operação que deve ser executada após o acionamento da chave
;Entrada: -
;Saída: -
;*********************************************************************************************************
TRATA_EVENTO
RET
END
ATIVIDADES
Dicas:
Todo contador deve ser inicializado, caso contrário você contará lixo.
11.2. Acione a chave e analise o conteúdo exibido nos leds. Justifique o ocorrido.
CEFET-MG 46
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 12
OBJETIVO:
INTRODUÇÃO
HARDWARE ACIONADO
O teclado existente no kit didático é constituído por uma matriz 4x3 possibilitando
a identificação de doze teclas, Figura 25.
CEFET-MG 47
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
FLUXOGRAMA
TECLADO
CONFIGURAÇÃO DO
TECLADO
APT_TEC TAB_TEC TAB_TEC + 0 NULL
TECLA (APT_TEC) TAB_TEC + 1 3 TECLADO
COL_0 = COL_1 = COL_2 1 TAB_TEC + 2 6
TAB_TEC + 3 9 1 2 3
TAB_TEC + 4 E
Todas TAB_TEC + 5 2 4 5 6
S
linhas RETORNA TAB_TEC + 6 5
= 0? TAB_TEC + 7 8 7 8 9
TAB_TEC + 8 0
N A 0 E
TAB_TEC + 9 1
TEMPO_REPIQUE TAB_TEC + 10 4
TAB_TEC + 11 7
TAB_TEC + 12 A
COL_0 1
COL_1 = COL_2 0
Todas N S
linhas LINHA_0 = 1? APT_TEC APT_TEC + 1
= 0?
S N
COL_1 1 S
COL_0 = COL_2 0 LINHA_1 = 1? APT_TEC APT_TEC + 2
APT_TEC APT_TEC + 4
N
Todas S
N LINHA_2 = 1? APT_TEC APT_TEC + 3
linhas
= 0?
N
S
S
COL_2 1 LINHA_3 = 1? APT_TEC APT_TEC + 4
COL_0 = COL_1 0
APT_TEC APT_TEC + 4 N
S RETORNA
APT_TEC TAB_TEC
CEFET-MG 48
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ATIVIDADES
12.2. Faça uma subrotina que armazena as dez últimas teclas pressionadas.
Implemete nesta subrotina a função de repetição de tecla, ou seja, caso a tecla
acionada fique pressionada por mais de 1s, considere que a tecla foi pressionada
novamente.
CEFET-MG 49
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 13
OBJETIVO:
INTRODUÇÃO
HARDWARE ACIONADO
CEFET-MG 50
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
80 81 82 83 84 85 86 87 C0 C1 C2 C3 C4 C5 C6 C7
FLUXOGRAMA
CEFET-MG 51
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
D7
D6
D5
D4
D3
D2
D1
D0
INSTRUÇÃO DESCRIÇÃO
Limpa todo display
Limpa Display 0 0 0 0 0 0 0 0 0 1
Retorna cursor à primeira posição da primeira linha
Retorna cursor à primeira posição da primeira linha
Retorno 0 0 0 0 0 0 0 0 1 *
Retorna mensagem deslocada a sua posição original
I/D ->Sentido de deslocamento do cursor
I/D
Fixação do modo 0 0 0 0 0 0 0 1 S
S ->Define se mensagem deve ou ser deslocada
Controle Ativo/ (D) Ativa / Desativa display - (C) Ativa / Desativa
0 0 0 0 0 0 1 DCB
Inativo do display cursor - (B) Ativa / Desativa intermitência do cursor
Deslocamento do
R/L
S/C
0 0 0 0 0 1 * *
cursor/mensagem
Fixação das condições (DL) Número de bits da interface - (N) Número de linhas
DL
0 0 0 0 1 NF * *
de utilização (F) Formato do caracter
Endereçamento da CG Endereço
0 0 0 1
RAM da RAM CG
Endereçamento da DD Endereço da
0 0 1
da RAM RAM ADD
Leitura do contador B Contador de
0 1
de endereço F endereços AC
Escrita de dados na
1 0
CG ou DD RAM
Leitura de dados na
1 1
CG ou DD RAM
(*) irrelevante
CEFET-MG 52
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ATIVIDADES
13.2. Faça uma subrotina que envie uma string para o LCD.
CEFET-MG 53
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
AULA PRÁTICA 14
OBJETIVO:
Modularizar um programa
INTRODUÇÃO
MODULARIZAÇÃO
Imagine que você queira elaborar um programa que capture uma tecla
pressionada e apresente o conteúdo da mesma no LCD, Figura 32. Creio que
colocaríamos o programa principal e todas as subrotina do teclado e do LCD num
único arquivo. Mas convenhamos!!! Você não acha que este arquivo conteria
códigos com papeis totalmente distintos (teclado e display)?
Para resolver este problema são criados arquivos independentes para códigos
distintos. No nosso caso criaremos três arquivos fonte: o primeiro para o programa
principal, o segundo para o teclado e último para o display.
CEFET-MG 54
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Para criar novas janelas de edição, vá ao menu principal escolha a opção File, em
seguida selecione a opção New, e clique em File. Sugirá uma nova janela de
edição totalmente em branco, e a sua respectiva aba Untitled1, Figura 34.
CEFET-MG 55
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Para salvar vá a File, no menu principal, e escolha a opção Save As. Obseve que
na janela Save As, Figura 35, o Nome do arquivo é igual ao nome da aba da
janela de edição. Não se esqueça de selecionar Salvar como tipo: Asm Files
(“.s”, “.msa”, “.asm d”) antes de escolher o nome apropriado para esse módulo,
que deve ter extensão .s43 (teclado.s43 ). E finalmente, clique sobre o botão
Salvar.
CEFET-MG 56
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CÓDIGO FONTE
Para escrever o código fonte do programa principal vamos nos orientar pelo
fluxograma da Figura 32, já mencionado. O algoritmo configura IOs do MSP e testa
se uma tecla foi pressionada. Quando ocorre tal evento a tecla é apresentada no
display.
Observe bem o algoritmo, parte dele já foi refinado e implementado por você: as
subrotinas do LCD e do TECLADO. Como aproveitar esses códigos já escritos? O
procedimento é bem simples e envolve o conceito de localidade de funções.
Uma função é denominda global quando a mesma pode ser acessada por outros
módulos do programa e é local quando só pode ser acessada dentro do próprio
módulo.
Vamos pegar como exemplo o módulo do TECLADO que é constituído por uma
função global e uma local.
CEFET-MG 57
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
A função TECLADO foi declarada como pública, observe a diretiva PUBLIC antes
do nome da função. Ela poderá ser chamada por qualquer outro módulo do
projeto. A função TEMPO_REPIQUE é uma função local, portanto só poderá ser
chamada dentro do módulo corrente, que neste caso é o módulo teclado.s43.
Módulo teclado.s43:
#include “msp430x14x.h”
;Função global
PUBLIC TECLADO
;Variável externa
EXTERN TECLA
;Label externo
EXTERN TAB_TECLA
RSEG CODE
;**************************
;SUBROTINA: TECLADO
;DESCRIÇÃO: verifica se alguma tecla foi pressionada
;ENTRADA: -
;SAÍDA: TECLA – retorna o valor da tecla prossionada
;**************************
TECLADO
.
.
.
MOV.W #TAB_TEC,R4
.
.
.
CALL #TEMPO_REPIQUE a\\\\\\\;função loca
.
.
.
MOV.B 0(R4),TECLA
.
.
.
RET
;**************************
END
CEFET-MG 58
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ATIVIDADE
CEFET-MG 59
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 60
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
o
Departamento de Ensino do 2 grau - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
REFERÊNCIAS BIBLIOGRÁFICAS
CEFET-MG 61