1
Exemplos de Aplicações
ASCII-HEXA e Motor de Passo
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I
Prof. Evandro L. L. Rodrigues
Comando de
Motor de Passo
Exemplos de Aplicações
Conversão de Código ASCII para Hexadecimal
• Alguns periféricos, tais como Teclados Alfa-numéricos, Monitores de
Vídeo, Displays de Cristal Líquido, comunicam-se usando o código
ASCII (American Standard Code for Information Interchange)
• Como toda a operação (lógica ou aritmética) realizada pelo
Microcontrolador é feita em Binário, e nós utilizamos a representação
Hexadecimal para facilidade de interpretação, se for usado um
teclado ASCII para entrada dos dados deve-se proceder à conversão
de ASCII para Hexadecimal.
Exemplo 1• Supondo, por exemplo, que se queira inserir números Hexadecimais
através do Teclado do PC conectado via RS232 com um
Microcontrolador 8051 e utilizar esses dados para deslocar um Motor
de passo de um número fixo de passos.
• Valores Hexadecimais possíveis: 00 a FF
• O Teclado gera códigos ASCII para todos
os números, letras, sinais gráficos e
comandos, de acordo com a Tabela ASCII.
2
Teclado ASCII
Se o usuário quiser inserir em uma aplicação qualquer código
Hexadecimal (um byte), via Teclado ASCII.
• 3F (00111111) Digita 3 Teclado gera 33h (00110011), ASCII do dígito 3
Digita F Teclado gera 46h (01000110), ASCII do dígito F
Como transformar os dois códigos digitados (33h e 46h) em apenas um byte
Hexadecimal (3F) que é o correspondente ao valor digitado pelo usuário?
Por exemplo 3F
• Duas possibilidades:
1. Ou o dígito é um número ( 0 a 9 )
2. Ou o dígito é uma letra (A a F)
0 1 2 3 4 5 6 7 8 9
| | | | | | | | | |
30h 31h 32h 33h 34h 35h 36h 37h 38h 39h
A B C D E F
| | | | | |
41h 42h 43h 44h 45h 46h
Número
Letra
Digitado no Teclado
3 F
Códigos ASCII Gerados
33 46
• Logo,
33h para ser decodificado para seu valor 3h 33h – 30h = 3h
• e,
46h para ser decodificado para seu valor Fh 46h – 37h = Fh
3F
33 46
Ou seja, se o valor digitado for um número basta subtrair 30h do código
ASCII e, se o valor digitado for uma letra basta subtrair 37h do código
ASCII
• O primeiro dígito é o MSB e seu resultado hexadecimal gerado é 03h
• O segundo dígito é o LSB e seu resultado hexadecimal gerado é 0Fh
• Logo, no exemplo, para montar o caractere (MSB LSB) deve-se
rotacionar o MSB de 4 posições e fundir (OU lógico) com o LSB.
03 30 MSB
0F LSB
3F
OR00110000
00001111
00111111
3
Conversão ASCII-HEXA de um dígito
Sub-rotina CONV
• O dígito ASCII entra
pelo Acumulador
• Converte o MSB
• Troca os nibles
• Converte o LSB
• Funde (OR) os dois bytes
gerando apenas um hexadecimal
Conversão ASCII-HEXA de dois dígitos
4
Exemplo 2
Conversão de Hexadecimal para Código ASCII
• Como toda operação (lógica ou aritmética) realizada pelo
Microcontrolador é feita em Binário, e nós utilizamos a representação
Hexadecimal para facilidade de interpretação, se for usado um
Display ou um Monitor de Vídeo ASCII para saída dos dados deve-se
proceder à conversão de Hexadecimal para ASCII.
Hexadecimal 3F
(00111111)
ASCII
33 46
Conversor A/D
Microcontrolador
• Exemplo.
•Hexadecimais possíveis (8 bits): de 00 a FF
Se for um dígito numérico 0 ---- 9 deve-se somar 30h para
se obter o ASCII equivalente entre 30h --- 39h
Se for uma letra A ---- F deve-se somar 37h para se obter
o ASCII equivalente entre 41h --- 46h
Como não existem valores hexadecimais impossíveis de
serem representados em ASCII, não é necessário adicionar
nenhum filtro.
Sub-rotina CONV2
Conversão HEXA-ASCII de um dígito
5
Exemplo
• O conteúdo do Acumulador contém o código 3F Hexadecimal
(8 Bits) que deverá ser enviado para o monitor de vídeo em
ASCII, para ser visualizado.
• Logo,
3F 03 + 30h 33h
0F + 37h 46h
• Deve-se, então, dividir o byte em dois com o valor dos
dois nibles posicionados na parte menos significativa de
cada um, zerando-se o nible mais significativo de cada
byte.
O valor em Hexadecimal entra pelo
Acumulador. Ex: A = 3Fh
Os valores dos dois dígitos em
ASCII saem em:
R0 = LSB Ex: R0 = 46h
A = MSB Ex: A = 33h
Conversão HEXA-ASCII de dois dígitos
6
MOTOR DE PASSO
“Step Motor”
Define-se MOTOR DE PASSO como um
“atuador incremental eletromagnético”.
O Motor de Passo converte “pulsos digitais de entrada” em
movimentos angulares em seu eixo.
Definição prática:
Características importantes
• Deslocamento angular diretamente proporcional ao
número de pulsos de entrada.
• Erro angular por passo pequeno ( 5% do passo) e
não acumulativo.
• Possibilita trabalho em “malha aberta”.
• Capacidade de trabalho em baixíssimas
freqüências.
• Retenção de posição sem uso de freio, etc...
CURVA CARACTERÍSTICA
7
CURVA DE RESPOSTA DE UM PASSO Classificação estrutural
RELUTÂNCIA VARIÁVEL
ÍMÃ PERMANENTE
HÍBRIDO
RELUTÂNCIA VARIÁVEL
Características principais:
Rotor de aço doce multipolar
Ângulo de Passo = 15 graus
Enrolamentos no Estator
Inércia do rotor baixa
Enrolamentos desenergizados, o Torque Residual é nulo
ÍMÃ PERMANENTE
Características principais:
Rotor magnetizado radialmente
Apresenta Torque de Retenção Estático (Residual)
Materiais mais utilizados no rotor : Ferrite e Alnico
8
HÍBRIDO
Características principais:
É uma “mistura” entre os dois anteriores
Tanto o rotor quanto o estator são multidentados
Geralmente apresenta alta precisão de posicionamento
Apresenta alto Conjugado por volume
TEORIA DE OPERAÇÃO
MODOS DE OPERAÇÃO
DOS ENROLAMENTOS
Unipolar
i
Bipolar
ii
Circuito de Controle
UNIPOLAR simplificado
9
Comutação nas Fases
(excitação dupla)
Circuito Acionador (Indexador + Driver)
de Motor de Passo (excitação dupla)
Sistema Típico de Controle com
Motor de Passo
Considere o seguinte esquema de hardware:
a. O Microcontrolador está conectado a um Monitor de Vídeo e a um
Teclado ASCII (que formam um “TERMINAL” com comunicação serial);
b. Um Motor de Passo também é um periférico deste Microcontrolador
(P1.0-clock e P1.1-direção).
1. Fazer um programa em ASSEMBLY do 8051 que receba através do
teclado um número decimal de passos (00 a 99) digitado pelo usuário
seguido de uma letra (H para sentido horário e A para sentido anti-horário)
2. O programa aciona o motor de passo e executa o comando solicitado,
atualizando no vídeo a cada passo dado seguido da direção (Horário ou
Anti-horário).
3. Permitir que possam ser inseridos até 4 valores/direções diferentes.
Exercício 4
•Entrega pelo Site do Curso até o dia 02/05/2016
10