Professional Documents
Culture Documents
Laboratório de
Sistemas
Microprocessados
Práticas com o microcontrolador MSP430
AUTORES:
1ª versão
Prof. Hércules M. Carvalho
Prof. Joel Augusto dos Santos
Prof. José Jonas da Silva Maia
Prof. Marcos Antônio da Silva Pinto
2ª versão – 2001
Prof. John Kennedy Schettino de Souza
Prof. Marcos Antônio da Silva Pinto
Prof. Paulo Sérgio Roque
5ªversão – 2010
Profa. Rosângela Fátima da Silva
6ª versão – 2012
Prof. Marcos Antonio da Silva Pinto
Profa. Rosângela Fátima da Silva
8ª versão – 2015
Prof. John Kennedy Schettini de Souza
Prof. Marcos Antonio da Silva Pinto
9ª versão - 2016
Prof. Marcos Antonio da Silva Pinto
CEFET-MG 1
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Índice
Introdução 04
Prática 01 05
✓ Ambiente de programação da IAR Systems
Prática 02 18
✓ Instruções de carga e transferência de 8 bits
Prática 03 22
✓ Instruções de carga e transferência de 16 bits
Prática 04 26
✓ Operações lógicas e aritméticas
Prática 05 30
✓ Codificação de programa a partir de um fluxograma
Prática 06 34
✓ Instruções de desvio
Prática 07 38
✓ Estudo de Sub-rotinas
Prática 08 42
✓ Exercícios de programação
Prática 09 44
✓ Dispositivo de saída
Prática 10 49
✓ Dispositivo de entrada
Prática 11 53
✓ Interrupção
Prática 12 56
✓ Teclado
Prática 13 65
✓ Display de LCD
Prática 14 70
✓ Integração de programas
CEFET-MG 2
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Prática 15 76
✓ Semáforo
Prática 16 80
✓ Motor de passo
Prática 17 87
✓ Controle digital de velocidade de motor cc
Prática 18 93
✓ Controle de portão de garagem
Prática 19 97
✓ Dimmer digital
Prática 20 102
✓ Voltímetro dc
CEFET-MG 3
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Introdução
Caríssimos alunos,
Como se 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 mudanças da tecnologia. Mas o que nos move é o
desejo de que esta apostila seja a melhor possível, portanto gostaríamos que você
prestasse muita atenção em tudo que a partir deste momento vamos oferecer e nos
ajude nesta missão. Talvez assim consigamos atingir nossos objetivos.
Esta apostila tem como público alvo estudantes da área de sistemas digitais de
cursos técnicos e superiores. Esta se destina a disciplinas com duração de dois
semestres (80 horas aula) com vistas a fornecer roteiros de aulas práticas para o
aprendizado das estruturas internas da família de microcontroladores MSP430
fabricado pela Texas Instruments. A primeira aula (prática 1) é um tutorial para a
familiarização com o ambiente de programação da IAR Systems (empresa que
desenvolveu o software). As práticas dois até oito se destinam ao aprendizado da
programação Assembly, uso do conjunto de instruções do microcontrolador, estruturas
de repetição e sub-rotina, sendo usado o ambiente de programação em modo
simulação. Da prática nove em diante são utilizadas as portas de entrada e saída e
outros módulos periféricos do microcontrolador e passa-se a usar o ambiente de
programação em modo de emulação, sendo então necessário o hardware do MSP430,
ou seja, o kit do microcontrolador. Ressalta-se também que a partir desta prática a
codificação é realizada na linguagem C e da pratica doze em diante inicia-se o uso da
técnica de modularização de códigos. Nesta segunda parte deste material (após prática
8) é imprescindível o conhecimento do hardware utilizado.
Atenciosamente,
CEFET-MG 4
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
1.1 - INTRODUÇÃO
O desenvolvimento de programas em linguagem Assembly exige não apenas o
conhecimento de um ambiente de programação, mas também do processador em
questão. A Texas Instruments desenvolveu a família de microcontroladores MSP430.
Cada membro desta família possui em seu chip além de um microprocessador, outros
dispositivos acoplados como memória de programa, memória de dados e vários
dispositivos periféricos, que é o objeto do nosso estudo. A IAR Systems é a
responsável pelo desenvolvimento do software que será utilizado ao longo deste curso.
O processo de criação de um programa em Assembly é muito parecido com o
processo de criação de programas em linguagem C, Observe a sequencia na Figura 1,
apresentada a seguir:
realmente roda na máquina na qual ele foi projetado (no microcontrolador). Desta
forma a depuração é muito mais precisa e efetiva, podendo ajudar a detectar inclusive
defeitos de conexão entre terminais do microcontrolador e dispositivos externos.
Cada etapa acima mencionada é realizada por um software específico. Porém o
ambiente de desenvolvimento oferecido pela IAR Systems proporciona um ambiente
integrado para desenvolvimento de programas em linguagem Assembly, C e C++,
contendo os quatro softwares na mesma ferramenta. Desta forma o usuário poderá
editar, montar, link editar e depurar seu programa no mesmo ambiente, utilizando
apenas um clique do mouse para trocar de tarefa. Mas é necessário criar um
workspace e um projeto antes de executar os passos mencionados.
1.2 - ATIVIDADES
1.2.1. - Explorando o IDE - ambiente integrado de desenvolvimento da IAR
Systems – IAR Embedded Workbench ( IAR EW)
Para abrir o programa IAR Embedded Workbench (IAR EW), vá ao botão Iniciar
e selecione as seguintes opções, sequencialmente: Todos os programas, IAR
Systems, IAR Embedded Workbench kickstart, IAR Embedded Workbench,
conforme se pode observar na Figura 2, apresentada a seguir, ou clique no ícone
correspondente na área de trabalho.
CEFET-MG 6
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Esta opção abre uma nova janela, que permite criar uma nova área de trabalho
(Figura 5). Uma área de trabalho é uma região lógica destinada à inserção de diversos
projetos que apresentam aplicações correlatas. Em nossas aulas práticas estaremos
escrevendo um único projeto para cada área de trabalho.
CEFET-MG 7
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Será então apresentada uma nova janela que permite escolher o tipo de projeto.
Como já foi dito, iniciaremos os nossos estudos pela linguagem Assembly. Portanto
deve-se abrir a opção asm e selecionar o item asm (Figura 7).
CEFET-MG 8
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - 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 é salvá-lo.
Quando se salva um arquivo, naturalmente deve-se que escolher uma pasta. Vá a
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. Assim
você saberá onde estão os seus arquivos. Agora crie uma nova pasta, ela pode
se chamar, por exemplo, AULA_01. 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.
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
PRJ_01, Figura 8.
CEFET-MG 9
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Enfim, surgiu na tela o editor de texto, Figura 9, onde se pode digitar o programa.
CEFET-MG 10
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Agora digite o seguinte código a partir da linha onde está escrito ;Insira o seu
programa aqui (Figura 9).
MOV.B #0xAA,R4 ;IMEDIATO −> REGISTRO
MOV.B R4,R5 ;REGISTRO −> REGISTRO
MOV.B R5,&0x200 ;REGISTRO −> MEMÓRIA
MOV.B &0x200, &0x201 ;MEMÓRIA −> MEMÓRIA
MOV.B &0x201,R6 ;MEMÓRIA −> REGISTRO
Escolha um nome para o workspace e salve. Neste caso foi escolhido o nome
AREA_01.
Agora é hora de verificar se o código digitado está correto e transformá-lo em
código de máquina utilizando os processos de montagem e linkedição. Entretanto, para
que tenhamos sucesso é necessário selecionar para qual componente da família
MSP430 estamos escrevendo o programa. Selecione no menu principal a opção
Project>Options (Alt F7) (Figura 11).
Na caixa category (Figura 12) selecione a aba General Options e verifique se o
MSP selecionado é o 430F1611 na caixa de opção Device. Caso contrário clique no
ícone a direita do MSP selecionado, para que sejam listados todos os MSPs
suportados pela versão atual do ambiente IAR instalado. Em seguida selecione
MSP430x1xx Family e então click na apção MSP430F1611.
CEFET-MG 11
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Com o modelo de MSP selecionado clique na aba Debugger (Figura 13) e confira
se na caixa de diálogo Driver está selecionado o modo simulação.
CEFET-MG 12
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 13
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
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 14
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 15
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Atenção:
✓ As opções de execução de programas presentes na barra de
ferramentas de depuração, mostradas na Figura 17, podem ser acessadas
através da seleção do botão Debug no menu principal.
Dica:
✓ Se você não observar diferenças entre alguns deles, fique ligado, pois
é apenas uma questão de tempo.
✓ Não se esqueça de salvar os seus arquivos no seu pen drive, ao final
de todas as aulas. Salve apenas o código fonte, com extensão .s43
CEFET-MG 16
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Pontos de checagem
Atenção:
✓ O seu desenvolvimento no processo de depuração de programa é tão
importante quanto o próprio processo de construção de um novo programa.
✓ Desta forma é fundamental conhecer os recursos de depuração de programa
que a ferramenta de desenvolvimento lhe oferece.
CEFET-MG 17
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
2.1 - INTRODUÇÃO
Na aula anterior, você executou a maioria das instruções de transferência de oito
bits existentes no conjunto de instruções do MSP430. E também aprendeu a elaborar
seus programas usando o ambiente de programação IAR EW. Vamos agora aproveitar
o projeto elaborado na aula anterior e estudar mais atentamente as instruções de carga
e transferência de oito bits.
CEFET-MG 18
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - 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, desvios e etc. Eles armazenam dados ou endereços.
✓ As operações de 8 bits com destino em registro são executadas
apenas com a parte menos significativa dos registros, sendo a parte mais
significativa zerada.
✓ Operações de 8 bits com destino em memória altera apenas o
endereço especificado. Porém operações de 16 bits em memória devem ter
endereço par, sendo o byte menos significativo enviado para o endereço
especificado (par) e o byte mais significativo ocupa o endereço seguinte.
CEFET-MG 19
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
2.2 - ATIVIDADES
INSTRUÇÕES/ MOV.B #0AAH,R4 MOV.B R4,R5 MOV.B R5,&200H MOV.B &200H,&201H MOV.B &201H, R6
REG. e MEM.
R4
R5
R6
(200H)
(201H)
Tabela 2 - Conteúdo corrente de registros e posições de memória.
Dica:
✓ Para executar o programa passo a passo, entre no modo simulação
( ) e pressione a tecla F10 ou o ícone para executar cada linha do
programa. Consulte a Figura 17.
✓ Para ver os registros, vá ao menu principal, clique sobre o botão View
e selecione a opção Register.
✓ Para ver a memória, clique sobre botão View no menu principal e
selecione a opção Memory. Na janela da memória, na aba Go to digite o
endereço desejado: 0x200 e tecle enter.
2.2.2. Abra uma nova pasta (Aula_02) e construa um novo projeto para testar as
seguintes instruções:
CEFET-MG 20
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 21
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
3.1. INTRODUÇÃO
Você já estudou todas as instruções de carga e transferência de 8 bits. Isto
significa que você já conhece as instruções de carga e transferência de 16 bits, uma
vez que a única diferença é o número de bits transferidos. Agora, temos que prestar
muita atenção em alguns registros que são utilizados apenas em operações de 16 bits:
o contador de programa (PC) e o ponteiro da pilha (SP).
3.2. ATIVIDADES
3.2.1. Abra uma nova pasta (Aula_03) e construa um novo projeto para testar as
seguintes instruções:
;Número da instrução
MOV.W #0x1234,R7 ;1
MOV.W #0x5678,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 3 - Conteúdo corrente de registros.
CEFET-MG 23
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - 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 4 - Conteúdo corrente de registros e memória.
CEFET-MG 24
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
INSTRUÇÕES/ 1 2 3 4 5 6 7
REG. e PILHA
PC
R4
R5
R6
R7
R8
(0200H)
(0202H)
Tabela 5 - Conteúdo corrente de registros e memória.
CEFET-MG 25
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
OBJETIVO
4.1. INTRODUÇÃO
A CPU contém a Unidade Lógica e Aritmética. Essa, como o próprio nome diz, é
responsável pela realização das operações lógicas e aritméticas. Ela geralmente utiliza
os registros de propósito gerais e posições de memória como operandos das
operações aritméticas (soma e subtração) e lógicas (and, or, xor, etc).
A maioria das operações lógicas e aritméticas afetam os flags. Por isto é
importante consultar o conjunto de instruções para saber como e quando os flags são
afetados. Os flags são bits que sinalizam o resultado das operações lógicas ou
aritméticas. Eles são usados pela CPU para tomada de decisão (operações de jump
condicional). Os flags existentes no MSP encontram-se localizados no Registro de
Status (SR - Figura 19) ocupando os seguintes bits:
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.
CEFET-MG 26
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
4.2. ATIVIDADES
MOV.B &0x200,R4
MOV.B &0x201,R5
ADD.B R4,R5
MOV.B &0x200,R6
MOV.B &0x201,R7
DADD.B R7,R6
CEFET-MG 27
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Dica:
✓ Para 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 esquerdo do mouse sobre a seta da
caixa de texto onde está escrito Memory e selecione RAM.
d. Marque com o botão esquerdo do mouse a posição de
memória que você deseja modificar e escreva o valor desejado por
cima.
CEFET-MG 28
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
A
B S
CEFET-MG 29
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
5.1. INTRODUÇÃO
Um programa nada mais é do que uma lista de instruções que a CPU deve
executar na sequência em que ela foi escrita. Porém a capacidade de tomada de
decisão oferecida pela CPU é uma poderosa ferramenta que proporciona a escrita de
programas mais inteligentes. A tomada de decisão permite a realização de estruturas
de repetição (loop), que reduz drasticamente as dimensões do programa. Uma tomada
de decisão é obtida através da consulta de um dos flags, pois eles são os indicadores
do estado corrente do programa. Dependendo do estado deste flag o programa segue
um caminho ou outro. Ela é representada em um fluxograma por um losango que
permite que o programa siga por um de dois caminhos possíveis, como pode ser
observado na Figura 21.
O fluxograma de uma rotina que faz a transferência (cópia) de dados de um bloco
de memória para outro é apresentada pela Figura 21, a seguir:
INÍCIO
TRANSFIRA UM BYTE
ATUALIZE O ENDEREÇO DO BLOCO DE ORIGEM
ATUALIZE O ENDEREÇO DO BLOCO DE DESTINO
ATUALIZE O NÚMERO DE BYTES RESTANTES
F TODOS OS
BYTES FORAM
TRANSFERIDOS?
V
FIM
PROGRAMA EM ASSEMBLY
;*********************************************************************************************************
; Descrição: Este programa transfere dados de um bloco de memória para outro.
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
NAME main ; module name
PUBLIC main ; make the main label visible
; outside this module
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label
CEFET-MG 31
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
5.2. ATIVIDADES
• Armazene os valores 00, 01, 02, ..., 0F nos endereços 200H a 20FH
Dica:
✓ Para executar o programa, totalmente, acione a tecla F5 ou o ícone
e em seguida clique sobre o ícone para parar. Consulte a Figura 17.
• Troque a instrução
JNZ volta por
JZ volta
Armazene o valor AA nos endereços 200H a 20FH e execute o programa.
CEFET-MG 32
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
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 esquerdo do mouse sobre a seta da caixa de
texto onde está escrito Memory e selecione RAM.
4. Clique com o botão direito do mouse sobre uma posição de
memória qualquer e selecione Memory Fill... Aparecerá a Janela Fill.
5. Preencha os seguintes campos: Start address, Length e Value.
No nosso caso use respectivamente os seguintes valores 0x200, 0x10 e
0xAA.
CEFET-MG 33
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
OBJETIVO
6.1. INTRODUÇÃO
As instruções lógicas e aritméticas afetam os 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, JC, JNC, JN, JGE e JL.
Jumps relativos são aqueles que desviam o programa para um endereço
calculado a partir da posição atual do PC (Program Counter). Além da instrução JMP,
todos os jumps condicionais dão saltos relativos ao apontador de programa. Estes
saltos relativos são ditos curtos, pois a extensão do salto está limitada a faixa de -511 a
+512 words.
A instrução BR (Branch) desvia o programa para qualquer uma das 64k posições
de memória endereçáveis e por isto é dito salto incondicional longo. Ela salta para o
destino, portanto é um jump absoluto.
O fluxograma de uma rotina que faz a comparação byte a byte do conteúdo de
dois blocos de memória e escreve como resposta em um terceiro bloco: 00 se iguais,
01 se menor e 02 se maior é apresentado na
Figura 22.
CEFET-MG 34
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Compara
S
(APT1) = (APT2) (APT3) = 0
S
(APT1) > (APT2) (APT3) = 1
(APT3) = 2
APT1 ++
APT2 ++
APT3 ++
Cont --
N Cont = 0
CEFET-MG 35
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
;*********************************************************************************************************
; Descrição:
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
NAME main ; module name
PUBLIC main ; make the main label visible outside this module
ORG 0200h
APT1 DB 0,1,2,3,4,5,6,7,8,9
ORG 0210h
APT2 DB 0,2,1,3,5,6,9,7,8,4
ORG 0220h
APT3 DB 30H,30H,30H,30H,30H,30H,30H,30H,30H,30H
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label
CEFET-MG 36
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
6.2. ATIVIDADES
6.2.1. Teste do programa proposto.
• Abra um novo projeto no IAR EW, crie um arquivo e digite no editor de texto o
programa de comparação de dados.
• Troque a instrução
JMP cont por
BR #cont
e execute o programa.
6.2.2. Altere o programa proposto de tal forma que seja armazenado em cada
posição do bloco 3 o maior valor entre os dois dados comparado.
CEFET-MG 37
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
7.1. 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, que denominamos rotina, para realizá-la. Portanto, para esse caso
especificamente, teremos a rotina de divisão.
Dentro de um programa pode ser necessário executar a operação de divisão
diversas vezes. O que nos obriga a copiar a rotina de divisão diversas vezes dentro do
programa, provocando um gasto excessivo de memória. Uma forma mais eficiente de
resolver esse problema é fazer uma única cópia desse programa e chamá-lo todas as
vezes que for necessário, observe a Figura 23.
Figura 23 – Sub-rotina.
CEFET-MG 38
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
7.2. 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 40
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
ORG 200H
string1 DB “CEFET-MG/$”
ORG 210H
string2 DB “ELT$”
ORG 220H
stringc DS 16
CEFET-MG 41
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
OBJETIVO
8.1. INTRODUÇÃO
8.2. ATIVIDADES
Posição B I M E S T R E
Figura 25 – Deslocamento da string.
CEFET-MG 42
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Dicas:
CEFET-MG 43
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
9.1. 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, motores 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 EW.
Nesta aula veremos como configurar um projeto para que o código seja carregado
no microcontrolador. Relembre como configurar as portas, para que possamos usá-las
para acionar os leds.
PROGRAMAÇÃO DE PORTAS
1. Registro de Seleção
2. Registro de Direção
CEFET-MG 44
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
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 Project e em seguida clique em
Options, aparecerá a janela Options for node “PROJ”, Figura 28. Na categoria
(Category) General Options selecione o microcontrolador utilizado no kit didático
utilizado (MSP430F1611).
CEFET-MG 45
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
HARDWARE ACIONADO
A Figura 29 mostra o diagrama dos LEDs presentes no kit didático. Para que o
LED seja ligado ou desligado basta colocar o nível lógico 1 ou 0, respectivamente, no
terminal L0.
+5V
L0
330R
74HC04
100k
FLUXOGRAMAS
Tempo pisca
Configura IO
desliga LED
Pisca LED
Tempo pisca
Retorna
PROGRAMA EM ASSEMBLY
;*********************************************************************************************************
; Descrição: Este programa aciona LED
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
NAME main ; module name
PUBLIC main ; make the main label visible
; outside this module
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label
RSEG CSTACK ; pre-declaration of segment
RSEG CODE ; place program in 'CODE' segment
CEFET-MG 46
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
;*********************************************************************************************************
;Subrotina: PISCA_LED
;Descrição: Faz o led presente no BIT 0 da porta P1 piscar com a frequência
;definida por um intervalo de tempo da rotina TEMPO_PISCA
;Entrada: -
;Saída: -
;*********************************************************************************************************
PISCA_LED
pisca
BIS.B #1,P1OUT ; ligar o led
MOV #100, R5 ; define o tempo de atraso em 100 ms
CALL #TEMPO_PISCA
BIC.B #1,P1OUT ; desligar o led
MOV #100, R5 ; define o tempo de atraso em 100 ms
CALL #TEMPO_PISCA
RET
;*********************************************************************************************************
;Subrotina: TEMPO_PISCA
;Descrição: Intervalo de tempo gasto pela CPU com tempo base de 1ms
;Entrada: R5, define o tempo total de atraso em milissegundos
; Tempo base = 3K/Fclk. Para T=1ms e Fclk=750kHz, k=250
;Saída: -
;*********************************************************************************************************
K EQU 250
CEFET-MG 47
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Programa em “C”
//Programa pisca led na frequência de 5Hz. A função delay tem tempo base de 1ms e parâmetro de
entrada (x) que define o tempo de atraso da função.
#include "msp430.h"
//função delay com tempo base de 1ms. O parâmetro de entrada é um multiplicador deste tempo.
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Desliga o watchdog timer
P1DIR |= 0x01; // bit 0 =1 para configurar saída
9.2. ATIVIDADES
9.2.2. Faça um novo programa PISCA-LED para que o led permaneça aceso o
dobro do tempo de apagado.
9.2.3. Ligue quatro LEDs respectivamente nas portas P1.0 a P1.3. A partir desta
montagem faça o fluxograma e o programa que garanta o piscamento dos LEDs
de forma sequencial. O tempo de duração do acendimento de cada LED é de
500 ms.
CEFET-MG 48
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
10.1. 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 porta
como saída. Naturalmente, o bit no qual estava ligado o led. A programação foi
efetuada através do registro de direção, P1DIR. Em seguida, foi possível enviar o sinal
para o led através do registro de saída P1OUT.
Imagine que você queira ler o sinal de uma chave. Naturalmente o bit no qual está
ligada a chave será programado como entrada no registro P1DIR. E o sinal da chave
também será obtido pelo registro P1OUT?
Além da preocupação com os registros envolvidos nas leitura de chaves também
trataremos do problema do repique de chaves. Quando ligamos ou desligamos uma
chave mecância ocorre uma trepidação que acarreta a geração de mais um pulso.
Como os sistemas microprocessados são extremamente rápidos esses pulsos são
percebidos pelo sistema podendo provocar alteração no seu comportamento.
HARDWARE ACIONADO
+3,3V
CH0
P1.0
10k
MSP430F1611
+5V
L0
P1.4
330R
74HC04
100k
CEFET-MG 49
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
FLUXOGRAMAS
Configura IO N
Chave = 1
Liga LED
monitora chave
Retorna
Figura 32 – Fluxogramas para leitura de chave utilizando a técnica espera ocupada.
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
NAME main ; module name
PUBLIC main ; make the main label visible outside this module
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label
RSEG CSTACK ; pre-declaration of segment
RSEG CODE ; place program in 'CODE' segment
init: MOV #SFE(CSTACK), SP ; set up stack
main:
MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer
MOV.B #0xF0,P1DIR ; programar os quatro bits + signif. da porta 1 como
; saída e os quatro bits menos signif. como entrada
BIC.B #0XF0, P1OUT ;Zera as saídas
repete
CALL #MONITORA_CHAVE
JMP repete
;*********************************************************************************************************
;Subrotina: MONITORA_CHAVE
;Descrição: Monitora o estado de uma chave
;Entrada: -
;Saída: -
;*********************************************************************************************************
MONITORA_CHAVE
BIT.B #1,P1IN ; monitorar chave
JZ MONITORA_CHAVE
BIS.B #0X10,P1OUT
RET
END
CEFET-MG 50
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
PROGRAMA EM “C”
//Programa monitora chave com espera ocupada
#include "msp430.h"
//função monitora chave
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR = 0xF0; // Os 4 bits mais significativos de P1 como
//saída e os 4 menos sign. Entrada.
P1OUT &= 0x0F; //Zera as saídas
for (;;) //Loop infinito
{
monitora_chave(); //chama a função monitora chave
}
}
Espera chave
Main
Chave = 1 N
Configura IO S
Contador = 0 Contador ++
Retorna
10.2. ATIVIDADES
10.2.2. Com o programa criado, carregue no MSP. Coloque a chave em nível lógico
baixo antes de executar o programa. Rode o programa, faça apenas uma ÚNICA
transição na chave (posicione a chave para nível lógico alto).
CEFET-MG 52
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Prática 11 - Interrupção
OBJETIVO
11.1. INTRODUÇÃO
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
CEFET-MG 53
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
FLUXOGRAMAS
Liga LED
Inverte LED
Configura IO
Tempo
Habilita interrupção
Desliga flag
Desliga LED
Retorna
CH0
P1.0
10k
+5V
MSP430F1611 L0
P1.4
330R
74HC04
100k
+5V
L1
P1.5
330R
74HC04
100k
CEFET-MG 54
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - 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 enquanto um led
;pisca(P1.4). Caso a chave seja acionada um segundo led deverá mudar de estado (P1.5).
;*********************************************************************************************************
#include "msp430.h" ; #define controlled include file
NAME main ; module name
PUBLIC main ; make the main label visible
; outside this module
ORG 0FFFEh
DC16 init ; set reset vector to 'init' label
ORG 0FFE8h ; carregar o endereço da RTI (TRATA_
DC16 TRATA_INTERRUPCAO ; INTERRUPCAO) no vetor de interrupção.
RSEG CSTACK ; pre-declaration of segment
RSEG CODE ; place program in 'CODE' segment
init: MOV #SFE(CSTACK), SP ; set up stack
main:
MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer
MOV.B #0xF0,P1DIR ; programar os quatro bits mais significativos
; da porta 1 como saída e os 4 menos
;significativos como entrada
BIC.B #0x01,P1IES ; estabelecer borda de subida no
; bit 0 da porta 1
BIS.B #0x01,P1IE ; habilitar interrupção do bit 0 da
; da porta 1
EINT ; habilitar interrupção geral
repete
CALL #PISCA_LED
JMP repete
;*********************************************************************************************************
;Subrotina: PISCA_LED
;Descrição: Faz um led conectado na porta P1.4 piscar na frequência de 5 Hz
;Entrada: -
;Saída: -
;*********************************************************************************************************
PISCA_LED
RET
;*********************************************************************************************************
;Subrotina: TRATA_INTERRUPCAO
;Descrição: Inverte o estado do led ligado na porta P1.5
;Entrada: -
;Saída: -
;*********************************************************************************************************
TRATA_INTERRUPCAO
XOR.B #0x20, P1OUT ;inverte o estado do led
BIC.B #0x01,P1IFG ; reseta flag de interrupção
RETI
END
CEFET-MG 55
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
PROGRAMA EM “C”
#include "io430.h"
//Função de tratamento de interrupção da porta P1.0
#pragma vector = PORT1_VECTOR //Define o endereço da rti da porta 1
__interrupt void PORT1 (void)
{
P1OUT ^= 0X20; //Inverte o estado de P1.5
P1IFG &= ~0x01; //desliga o flag de interrupção de P1.0
}
11.2. ATIVIDADES
P1.0 CH0
P1.4 L0
MSP430F1611 P1.5 L1
P1.6 L2
P1.7 L3
Dicas:
✓ Todo contador deve ser inicializado, caso contrário você poderá obter uma
contagem incorreta.
✓ O contador deve ser uma variável global, pois, será acessado em funções
distintas (RTI, main e envia).
✓ Não se esqueça de tratar o repique da chave.
CEFET-MG 56
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Prática 12 - Teclado
OBJETIVO
✓ Introdução a modularização,
✓ Implementação de uma função básica de tratamento de um teclado.
12.1. INTRODUÇÃO
P2.0
P2.1
P2.2
C2 C1 C0
MSP430F1611
L0
1 2 3
P3.0
1k2
L1
4 5 6
P3.1
1k2
L2
7 8 9
P3.2
1k2
L3
A 0 E
P3.3
1k2
CEFET-MG 57
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Configura IO
Retorna
S
COLUNAS = 2 Índice + 2 Retorna ← tabela [indice]
N
FIM
S
COLUNAS = 4 Índice + 3
Índice ← 0
CEFET-MG 58
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
12.2. ATIVIDADES
12.2.1. Monte um novo projeto que monitore o teclado presente no kit didático
codificando-o na linguagem C. Este projeto deve ser constituído de um programa
principal que será responsável por chamar a função teclado cujo comportamento
encontra-se descrito no fluxograma da Figura 37. Para criar um projeto em C basta
selecionar na janela da Figura 38 a opção C e selecionar a subopção main.
CEFET-MG 59
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Embora o arquivo esteja salvo ele ainda não pertence ao projeto. Sua inclusão é
bem simples. Dê um clique sobre o arquivo, em seguida clique sobre o nome do projeto
(Teclado) na janela Workspace e o mesmo ficará destacado. Com o botão direito do
CEFET-MG 60
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
mouse selecione a opção Add>>Add “Teclado.c” e este novo código fonte será
inserido no arquivo de projeto (Figura 41).
}
Já a função teclado irá retornar a tecla ou 0 (zero) se não houver tecla
pressionada. Desta forma definimos como tipo de retorno o unsigned char.
Copie o nome das funções que serão chamadas pelo main.c, insira no início de
cada função a diretiva extern e termine cada comando com ponte e vírgula (;) (Figura
42).
CEFET-MG 62
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
botão direito do mouse selecione a opção Add>Add “Tempo.s43” e este novo código
fonte será inserido no arquivo de projeto (Figura 43).
RSEG CODE
;************************************************************************************************
;Sub-rotina: TEMPO_REPIQUE
;Descrição: Intervalo de tempo gasto pela CPU. T=3k/750kHz.
;Para T=3ms, então k = 750
;Entrada:
;Saída: -
;************************************************************************************************
K EQU 750
END
12.2.3. Codifique o programa principal de tal forma que ele escreva na porta 5 o codigo
da tecla apertada. Caso não tenha tecla apertada espere, conforme fluxograma que
segue.
Main
Configura teclado
Teclado
N
Tem tecla
P5OUT ← tecla
fim
CEFET-MG 64
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
13.1. INTRODUÇÃO
HARDWARE ACIONADO
Posição do display 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Linha 1 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
Endereço de
DDRAM Linha 2 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
FLUXOGRAMA
Utilizamos três funções básicas para acionamento do LCD. A primeira refere-se à
programação do mesmo (Figura 46).
Programa LCD
Envia comando
Envia comando
Envia comando
Envia comando
Retorna
CEFET-MG 67
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
RS
D0 ~ D7 Comando Dado
Envia Envia
preparação comando preparação dado
2 ms 2 ms 2 ms 2 ms tempo
RS = 0 RS = 1
E=0 E=0
Tempo 2 ms Tempo 2 ms
E=1 E=1
Tempo 2 ms Tempo 2 ms
E=0 E=0
Retorna Retorna
Configura IO
Retorna
13.2. ATIVIDADES
já estão definidos no kit didático. Para isto crie um novo arquivo com o nome LCD.
Todas as funções do LCD devem ser escritas neste arquivo. O arquivo main chamará
as funções do LCD.
13.2.2. Crie no módulo LCD a função void envia byte (unsigned char) (Figura 51) que
recebe um caractere ASCII e faça o seu envio para o display.
Envia byte
P5 ← dado
Envia dado
Retorna
Figura 51 – Algoritmo da função envia byte.
13.2.4. Incremente a funcionalidade do módulo LCD criando a função envia string. Faça
o algoritmo e a respectiva codificação. O protótipo desta função é:
void envia string (const char *apt, char)
Onde o primeiro parametro passado (const char *apt) é um parametro tipo ponteiro
para a string. Para criar uma string na memória flash utilize o modificador de variável
const. Esta variável deverá ser global para ser vista dentro de outras funções. Já o
segundo parâmetro tipo char é o tamanho da string. Por exemplo, para criar a string
CEFET-MG:
const char mensagem1[8] = “CEFET-MG”;
E para chamar a função envia string, deve-se passar os parametros:
envia string (mensagem1, 8);
CEFET-MG 69
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
✓ Arquivo de protótipo e
✓ Integração de programas.
14.1. INTRODUÇÃO
Configura LCD
Programa LCD
Configura teclado
Teclado
N
Tem tecla
S
Envia byte
(tecla)
CEFET-MG 70
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
14.2. ATIVIDADES
14.2.1 Vamos utilizar a técnica de prototipação com o módulo teclado. Abra o projeto
do módulo teclado criado na prática12. Selecione a aba do programa principal (Figura
42). Observe as duas primeiras linhas do programa:
extern void configuraTeclado();
extern unsigned char teclado();
14.2.2 Crie um novo arquivo fonte e salve com o nome teclado.h. Recorte as duas
primeiras linhas do programa principal e cole no arquivo teclado.h. Retire as diretivas
extern presente em cada uma das linhas.
void configuraTeclado();
unsigned char teclado();
14.2.3 Salve o arquivo teclado.h.
14.2.4 Observe que se link editarmos novamente o programa ocorrerá uma falha, pois
não será possível dentro do módulo main encontrar as funções do módulo teclado.
Desta forma, é necessário inserir o arquivo teclado.h dentro do módulo main utilizando
a diretiva include conforme indicado a seguir:
#include “teclado.h”
14.2.5 Faça a prototipação também para o módulo LCD.
14.2.6 Com os protótipos criados, monte o programa do algoritmo TecladoLCD,
apresentado na Figura 52. Observe que o arquivo main será iniciado com as seguintes
linhas:
#include “teclado.h”
#include “lcd.h”
CEFET-MG 71
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 72
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
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 pressionada
;**************************
TECLADO
.
MOV.W #TAB_TEC,R4
.
CALL #TEMPO_REPIQUE ;função local
.
MOV.B 0(R4),TECLA
.
RET
;**************************
END
;Função externa
EXTERN TECLAD0
;Variável global
PUBLIC TECLA
;Label global
PUBLIC TAB_TECLA
ler_tecla
CALL #TECLADO
CMP.B #0,TECLA
JZ ler_tecla
.
;**************************
END
CEFET-MG 75
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Prática 15 - Semáforo
OBJETIVO
15.1. INTRODUÇÃO
Nas aulas anteriores fizemos acionamos LEDs baseado no estado de uma chave.
A implementação de um semáforo passa pelos mesmos conceitos com um aumento no
número de IOs e da complexidade do problema.
tAT = 60
P=0
tAT = 55
ESPERA/
VM,vd
tAT > 0
Figura 57- FSM do semáforo de uma fase com pedido de passagem.
A Figura 58 mostra um cruzamento onde poderemos tratar situações com apenas
uma única fase, ou seja, tratar apenas o controle entre veículo e pedestre de uma única
rua, conforme descrito na Figura 57 ou mesmo situações mais complexas envolvendo 4
fases com possibilidade de mão dupla em cada uma das ruas.
Para implementarmos a FSM da Figura 57 a linguagem C nos oferece recursos
(estruturas de controle) apropriados. No caso específico do semáforo necessitamos de
uma estrutura de repetição para garantir o funcionamento cíclico da FSM e uma
estrutura de tomada de decisão múltipla para determinação do estado corrente.
CEFET-MG 76
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Também será utilizado o tipo enumerado para que possamos representar os estados
da FSM com seus respectivos nomes.
Pb
b b
a c
Pa
Pc
a c
d d Sentido de
Rotação
Pd
Figura 58 – Lay-out do cruzamento com sinais luminosos para carro e pedestre.
15.2. ATIVIDADES
15.2.1 Com base na Figura 58 faça as conexões dos sinais luminosos aos IOs que
garantam o controle do semáforo da rua A. Observe que a FSM só descreve o
comportamento de apenas uma das ruas com possibilidade de pedido de passagem.
A estrutura do seu programa pode ser baseada no código a seguir, embora esta
solução não seja a única.
Dicas:
✓ Não se esqueça que para utilização dos dispositivos de IO é necessário
realizar sua configuração (entrada/saída).
✓ Lembre-se também de filtrar a trepidação presente nas chaves.
CEFET-MG 77
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
15.2.2 Com base na Figura 59 implemente o código para esta FSM que faz o
controle de um sinal de duas fases (ex: rua A e B), com pedidos de passagem distintos.
PA ➔ Pedido passagem Rua A
PB ➔ Pedido passagem Rua B
T ➔ Temporização
T T
LIVRE_RA/ T, PA ATENCAO_RA/
PA VDA,vmA AMA,vmA
VMB,vdB VMB,vdB
T
T
ATENÇÃO_RB/ LIVRE_RB/
VMA,vdA A T , PB VMA,vdA PB
AMB,vmB VDB,vmB
T T
Figura 59 - FSM do semáforo de duas fases com pedidos de passagem distintos.
CEFET-MG 78
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
15.2.3 Faça uma nova FSM e sua respectiva codificação considerando as seguintes
condições de funcionamento:
CEFET-MG 79
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
16.1. INTRODUÇÃO
Princípio de funcionamento
No que se refere ao funcionamento, o motor de passo pode ser comparado ao
motor síncrono. Um campo rotativo (nesse caso gerado pela eletrônica de controle) faz
girar um rotor magnético a ele acoplado. Tais motores foram subdivididos de acordo
com a forma em que é gerado o campo rotativo: enrolamento unipolar ou bipolar e com
o material empregado na confecção do rotor: ferro doce ou material permanentemente
magnetizado.
O motor de passo bipolar com rotor magnético (ímã permanente) está
representado na Figura 60. No momento do arranque, passa corrente nos dois
enrolamentos, o estator gera os pólos magnéticos e o rotor orienta-se de acordo. Caso
em seguida, por exemplo, a corrente A seja invertida (daí a designação bipolar), o
campo magnético irá deslocar-se 90° no sentido horário arrastando consigo o rotor. A
sequência de ativação para uma volta completa do rotor no sentido horário é: AB - A B
- AB - A B - AB, ou seja, quatro passos de 90° cada um. Também é possível cortar a
corrente de um dos enrolamentos, antes de inverter a polaridade na fase
CEFET-MG 80
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Figura 61 - Rotor.
Os motores de passo unipolares assemelham-se aos bipolares, mas são
enrolados de modo diferente. Neles, cada fase consiste de um enrolamento com
derivação central ou mesmo de dois enrolamentos separados, de forma que o campo
magnético possa ser invertido sem a necessidade de inverter o sentido da corrente
(Figura 62).
CEFET-MG 81
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
com o motor parado e a curva superior refere-se ao torque desenvolvido com o motor
girando.
CEFET-MG 83
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Tensão 12V
Resistência 75
Corrente 160 mA
Passos por rotação 100
Ângulo de passo 3,6°
+12V
Fase do
1N 4007 motor
22 R
8k2
Tip
122
Fase Fase 4
3
a b
Figura 66 – a) Diagrama elétrico do motor de passo e b) driver do kit didático.
A
Tabela 13 mostra a sequência de estados para acionamento do motor no sentido
horário e anti-horário, passo inteiro torque pleno (a), meio passo (b) e passo inteiro
meio torque (c).
CEFET-MG 84
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
FASES 1 2 3 4 FASES 1 2 3 4
1 1 0 0 1 1 0 0
sentido 0 1 1 0 0 1 0 0
anti-horário 0 0 1 1 0 1 1 0
1 0 0 1 sentido 0 0 1 0
1 1 0 0 Anti-horário 0 0 1 1
sentido 1 0 0 1 0 0 0 1
horário 0 0 1 1 1 0 0 1
0 1 1 0 1 0 0 0
a- passo inteiro torque pleno b-meio passo
FASES 1 2 3 4
1 0 0 0
sentido 0 1 0 0
anti-horário 0 0 1 0
0 0 0 1
c- passo inteiro meio torque
Tabela 13 – Sequência para acionamento das fases do motor de passo: a) passo inteiro
torque pleno, b) meio passo e c) passo inteiro meio torque.
16.2. ATIVIDADES
16.2.1 Conecte o kit MSP430 ao motor de passo conforme o diagrama da Figura 67.
Fase 1 P1.3
Fase 2 P1.2
Motor
Fase 3 P1.1 Kit
de
Fase 4 P1.0 MSP430
passo
GND GND
Dicas:
➢ A velocidade de rotação do motor é definida pela função de tempo.
➢ Crie um vetor de constantes global contendo os 4 estados do motor (tabela).
➢ Crie uma variável global para armazenar o índice do vetor (i).
Motor = tabela[ i ] S
Passo I = 4?
N I=0
Retorna
Tempo (x)
Motor = tabela[ i ]
Retorna
16.2.3 Escreva fluxograma e programa que faça o motor girar ininterruptamente com
velocidade de 10 pps, sendo a direção definida por uma chave conectada na porta
P1.7: 0 – horário
1 – anti-horário.
Neste caso, a função passo primeiramente deve testar a chave para então definir se
incrementa ou decrementa o índice da tabela.
CEFET-MG 86
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
17.1. INTRODUÇÃO
Ic
Rc
Lc E
Vc Va
CL N
Equações:
C = Kt ∅Ia onde: Kt é uma constante do motor
é o fluxo indutor de campo e
Ia é a corrente de armadura
• O conjugado motor é proporcional ao fluxo indutor e a corrente de armadura.
• Para se inverter o conjugado motor é necessário inverter o fluxo indutor de campo
ou a corrente de armadura.
𝑉𝑎 − 𝑅𝑎𝐼𝑎
𝑁=
𝐾𝑡∅
• A velocidade é proporcional à tensão de alimentação da armadura e inversamente
proporcional ao fluxo indutor de campo.
• Para inverter a velocidade é necessário inverter a tensão Va ou o fluxo . A
expressão geral da velocidade indica três maneiras de como se pode atuar sobre o
motor de modo a exercer o controle de sua velocidade:
1. Variar o fluxo de campo ()
2. Variar a resistência associada à armadura (Ra)
3. Variar a tensão de armadura (Va)
Utilizando o primeiro método tem-se a desvantagem de perder torque a uma
dada corrente Ia, pois quanto menor , menor o torque. Além disso, a resposta ao
controle será mais lenta, uma vez que a constante de tempo elétrica do enrolamento de
campo Lc/Rc é bastante elevada devido ao grande número de espiras do enrolamento
de campo. Este procedimento tem como vantagem o fato de se atuar com níveis de
potência relativamente baixos.
O segundo método é de baixo rendimento, por isso não é utilizado atualmente.
O terceiro método é o mais usado. O controle de velocidade do motor, pela
variação da tensão de armadura é o procedimento mais versátil e que apresenta maior
velocidade de resposta, em função da sua menor constante de tempo elétrica, La/Ra.
Mantendo-se o fluxo constante e atuando-se em Va, pode-se desenvolver o mesmo
conjugado em todas as velocidades.
A Figura 70 mostra as configurações possíveis para motores cc.
CEFET-MG 88
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Painel do motor cc
O painel do motor cc (Figura 71) foi concebido com motor cc de ima permanente
para realização de alguns ensaios. Entre eles podemos citar o controle de velocidade e
sentido de rotação do motor, medição da velocidade via contagem de pulsos do taco-
gerador ou via medida da tensão de saída do conversor frequência/tensão.
Na entrada Vf do painel, pode-se aplicar um sinal cujo valor médio pode variar
entre 0 e 3,3 V que é a tensão de trabalho das portas do MSP430, quando este é
alimentado com 3,3 V. A variação da tensão Vf permite apenas a alteração da
velocidade do motor, uma vez que a mudança do sentido de rotação depende do
sentido da corrente na armadura.
X
Va
BD139
BD140
Va Va = 6.Vf – 5.X
(V)
+9,9 +
Vf 6 Va
_
- 9,9
X = 1,98V
a b
Figura 73 – a) Curva de transferência Va x Vf e b) Diagrama de controle.
17.2. ATIVIDADES
17.2.1 Conecte a saída de PWM TA1 (P1.2) do painel microcontrolador MSP430 à
entrada Vf do painel do motor cc conforme diagrama da Figura 74.
MSP430F1611 Motor cc
14
53 P1.2/TA1 Vf
XT2IN
4 MHz
52
XT2OUT
GND GND
Orientações:
1. Configure I0: Porta P1.2 como saída e função especial. Defina os registros:
o Registro P1DIR =
o Registro P1SEL =
2. Configure o modulo de clock para que gere 4 MHz na saída SMCLK. O oscilador
XT2CLK do módulo de clock tem um cristal de 4 MHz (Figura 74).:
o Ligue o oscilador XT2CLK (bit XT2Off do registro BCSCTL1)
o Selecione o oscilador XT2CLK como fonte para SMCLK (bit SELS do registro
BCSCTL2)
CEFET-MG 90
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CCR0
CCR1
0
T (ms)
CCR0
int
TA out
1 ms
Figura 75 - Temporização do timer A.
CEFET-MG 91
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Habilita interrupção
Configura timerA
N
Cont passos =0
fim
Figura 76 – Fluxogramas para gerar PWM.
17.2.3 Altere o programa anterior para que o motor após a partida se mantenha em
velocidade máxima por 10 segundos e em seguida pare também em rampa de 10
segundos.
17.2.4 Faça fluxograma e programa para que o motor parta no sentido horário em
rampa de 10s somente após apertar a tecla "3".
17.2.5 Idem exercício anterior, porém acrescente a tecla “2” para parar, também em
rampa de 10 segundos. Neste caso após parar pode-se partir novamente.
17.2.6 Idem exercício anterior, acrescentado a tecla "1" para partir no sentido anti-
horário, ficando então assim:
Tecla “1” – parte no sentido anti-horário
Tecla “2” – parte no sentido horário
Tecla “3” – pára
CEFET-MG 92
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
✓ Aplicar os conceitos de IO e
✓ Implementação de Timeout com dispositivos de hardware.
18.1. INTRODUÇÃO
O kit portão de garagem simula uma situação real de controle, onde um sistema
digital pode controlar os estados do portão. O kit consiste de um mecanismo contendo
um motor cc acoplado ao portão por meio de caixa de redução, pinhão e cremalheira.
O motor cc é acionado pelo circuito driver TA8409F (Ponte H), que contém duas
entradas (IN1 e IN2) que definem a ação do motor (figuras 78 e 79) conforme a Tabela
14.
IN2 IN1 MOTOR
0 0 Desligado
0 1 Abre
1 0 Fecha
1 1 Parado
Tabela 14 – Condições de funcionamento do motor.
O portão por sua vez contém duas chaves fim de curso (FC) para indicação de
portão fechado e portão aberto, cuja denominação no kit é F para fechado e A para
aberto. Estas duas saídas são ativas em nível lógico baixo, conforme Tabela 15.
F A PORTÃO
1 1 Meio do curso
1 0 Aberto
0 1 Fechado
Tabela 15 – Posicionamento do portão.
OUT
200 ms 200 ms
Figura 77 – Sinal de saída do módulo receptor do controle remoto.
CEFET-MG 93
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 94
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
18.2. ATIVIDADES
18.2.1 Conecte o kit do MSP ao kit do portão conforme diagrama de ligações da
Figura 80.
+5V +5V
GND GND
Saídas
IN1 P1.4
IN2 P1.3
Kit Kit
Portão MSP430
F P1.2
A P1.1
Entradas
OUT P1.0
GND GND
OUT=0
0 Travado/F OU
T=
F= 11 1 A=1
F=1
Fecha Abre
10 01
0
OUT
=1 Travado/A A=
11
inicio
OUT – saída do controle remoto
F - saída do sensor FC fechado
OUT=0 A - saída so sensor FC aberto
Figura 81 – Diagrama de estados 1 para controle do portão.
OUT=0
T=
1 Travado/F OU
T =1 OUT=0
OUT=0 OU 0 11
F=
Fecha Abre
10 01
0
A= =1
OUT U T
=1 Travado/A O
11
inicio
OUT – saída do controle remoto
F - saída do sensor FC fechado
OUT=0 A - saída so sensor FC aberto
CEFET-MG 96
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Rede
127V
60Hz
0 t (ms)
5V
DCZ
0
t (ms)
8,33 ms 8,33 ms
Interrupção
captura
0
t (ms)
4,167 4,167
ms ms
IN
0
t (ms)
90° 90°
Tensão
na
carga
0
t (ms)
TAR
FFFFh
TACCR0
Valor adicionado
TACCR1 a TACCR0
Valor adicionado
a TACCR1
TACCR0
TACCR0
Valor adicionado
a TACCR0
TACCR1
Valor
adicionado
a TACCR1
TACCR0
0
t (ms)
Ângulo de Duração Ângulo de Duração
Interrupção disparo do pulso disparo do pulso
de captura
de CCR0
0 0° 0° t (ms)
OUT1
0 t (ms)
Output Mode 3 – PWM Set/Reset
Figura 84 – TAR e valor dos registros TACCR0, TACCR1; int. de captura e saída OUT1.
CEFET-MG 99
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
19.2. ATIVIDADES
19.2.1 Conecte o kit microcontrolador MSP430 ao dimmer conforme diagrama da
Figura 85
• Conecte a entrada de captura do bloco CCR0, CCI0A (P1.1/TA0) do kit
microcontrolador à saída DCZ do kit dimmer.
• Conecte a saída do bloco CCR1, OUT1 (P1.2/TA1) do kit microcontrolador à
entrada IN do dimmer.
• Conecte a alimentação do dimmer: +5V e GND.
52
XT2OUT
+5V +5V
X2
4 MHz 53
XT2OUT GND GND
19.2.2 Desenvolva um programa para acionar o dimmer com ângulo de disparo fixo de
90°, conforme fluxograma da figura 87.
Orientações:
1. Configure I0: Porta P1.1 como entrada, função especial e P1.2 como saída,
função especial. Defina os registros:
o Registro P1DIR =
o Registro P1SEL =
2. Configure o módulo de clock para gerar 4 MHz na saída SMCLK (Figura 85). O
oscilador XT2CLK do módulo de clock tem um cristal de 4 MHz.
o Ligue o oscilador XT2CLK (bit XT2Off do registro BCSCTL1)
o Selecione o oscilador XT2CLK como fonte para SMCLK (bit SELS do
registro BCSCTL2)
3. Configure o timer A. Defina o conteúdo de cada registro.
o Registro TACCTL0 =
➢ Modo captura
➢ Síncrona
➢ Captura pela borda de subida
➢ Interrupção habilitada
o Registro TACCTL1 =
➢ Modo de saída 3
o Registro TACTL =
➢ Defina SMCLK como fonte de clock do timer A (4 MHz).
➢ Defina o modo de contagem do Timer A em modo contínuo.
4. Utilize os fluxogramas da
CEFET-MG 100
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Configura
Habilita Escreve duração
clock
interrupção
Configura
Define ângulo Desliga flag
timer A
Define duração
Retorna Retorna
fim
19.2.4 Faça fluxograma e programa para que a tecla as teclas 3(↑) e 2(↓) funcionem
para alterar o ângulo de disparo em passos de 1° a cada 30 ms. Inicialmente a
lâmpada deve ficar apagada.
CEFET-MG 101
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Prática 20 - Voltímetro dc
OBJETIVO
✓ Aplicação do conversor analógico/digital (A/D)
✓ Implementação de um voltímetro dc com a utilização do conversor A/D.
20.1 INTRODUÇÃO
CEFET-MG 102
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
20.2 ATIVIDADES
470Ω
+5V
Display LCD
Conv. A/D
AD0 MSP430F1611
470Ω
V LFXT1
GND
32.768Hz
configura io lê resultado
hab. e dispara AD
fim
20.2.3 Insira mais uma funcionalidade no código para que seja mostrado no display a
tensão de entrada em volts, com duas casas decimais.
Dicas:
✓ Para enviar dados ao display, o dado antes deve ser convertido para BCD
(decimal codificado em binário) e posteriormente para ASCII.
✓ Faça o equacionamento matemático da tensão de entrada: 𝑁𝐴𝐷𝐶 = (2 𝑉−1)𝑉−𝑉 −𝑉
𝑛
𝑖𝑛 𝑅−
𝑅+ 𝑅−
✓ Faca o cálculo de Vin com inteiros. A primeira divisão fornecerá a parte inteira do
resultado. Para obter a parte fracionária do resultado, multiplique o resto da
primeira divisão por 10 (0xA) e faça a segunda divisão que fornecerá como
resultado a primeira casa decimal. Se quiser mais casas decimais repita o
procedimento.
✓ A taxa de atualização do display não deve ser muito elevada, pois isto inviabiliza
sua visualização. Utilize uma taxa de atualização de aproximadamente 0,5 Hz.
CEFET-MG 105
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 106
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 107
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 108
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 109
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 110
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 111
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe BR dst
Operação dst → PC
Operação SP - 2 → SP
PC → @SP
dst → PC
CEFET-MG 112
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Operação 0 → dst
Sintaxe CLRC
Operação 0 → C
Sintaxe CLRN
Operação 0 → N
CEFET-MG 113
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe CLRZ
Operação 0 → Z
Exemplo CLRZ
CEFET-MG 114
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Exemplo2 Dois blocos de RAM são comparados. Se não são iguais, vai para
o rotulo ERRO.
ORG 0200h
BLOCO1 DB 00,01,02
ORG 0210h
BLOCO2 DB 00,01,02
CEFET-MG 115
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 116
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe DINT
Operação 0 → GIE
CEFET-MG 117
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe EINT
Operação 1 → GIE
Exemplo O byte STATUS é incrementado. Quando ele for igual a 11, vai
para OVFL.
INC.B STATUS
CMP.B #11, STATUS
JEQ OVFL
CEFET-MG 118
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 119
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
24) JC ou JHS Jump se o bit carry estiver setado ou Jump se maior ou igual
Operação Se C = 1: PC + 2 x offset → PC
Se C = 0: executa a instrução seguinte
Operação Se Z = 1: PC + 2 x offset → PC
Se Z = 0: executa a instrução seguinte
CEFET-MG 120
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe JL rótulo
Operação PC + 2 x offset → PC
CEFET-MG 121
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe JN rótulo
CEFET-MG 122
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 123
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe NOP
Operação Nenhuma
CEFET-MG 124
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Operação SP – 2 → SP
Src → @SP
Sintaxe RET
Operação @SP → PC
SP + 2 → PC
Sintaxe RETI
Operação @SP → SR
SP + 2 → SP
@SP → PC
SP + 2 → SP
CEFET-MG 125
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Nota O assembler não reconhece a instrução RLA @R5+, que deve ser
substituída por ADD @R5+, -2(R5).
CEFET-MG 126
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Nota O assembler não reconhece a instrução RLC @R5+, que deve ser
substituída por ADDC @R5+, -2(R5)
CEFET-MG 127
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe SETC
Operação 1 → C
CEFET-MG 128
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
Sintaxe SETN
Operação 1 → N
Sintaxe SETZ
Operação 1 → Z
CEFET-MG 129
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 130
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 131
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
CEFET-MG 132
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS
DEEB - Coordenação de Eletrônica
Disciplina: Laboratório de Sistemas Microprocessados
REFERÊNCIAS BIBLIOGRÁFICAS
CEFET-MG 133