SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Exemplos de Aplicações Prof. Evandro L. L. Rodrigues Exemplos de Aplicações ASCII-HEXA e Motor de Passo Comando de Motor de Passo Exemplo 1 Conversão de Código ASCII para Hexadecimal 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. 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. 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. 1
Teclado ASCII Se o usuário quiser inserir em uma aplicação qualquer código Hexadecimal (um byte), via Teclado ASCII. Por exemplo 3F 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? Duas possibilidades: 1. Ou o dígito é um número ( 0 a 9 ) 2. Ou o dígito é uma letra (A a F) Número 0 1 2 3 4 5 6 7 8 9 30h 31h 32h 33h 34h 35h 36h 37h 38h 39h Letra A B C D E F 41h 42h 43h 44h 45h 46h Digitado no Teclado 3 F O primeiro dígito é o MSB e seu resultado hexadecimal gerado é 03h O segundo dígito é o LSB e seu resultado hexadecimal gerado é 0Fh Códigos ASCII Gerados 33 46 3F 33 46 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. Logo, 33h para ser decodificado para seu valor 3h 33h 30h = 3h e, 46h para ser decodificado para seu valor Fh 46h 37h = Fh 03 30 OR MSB 0F LSB 3F 00110000 00001111 00111111 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 2
Conversão ASCII-HEXA de um dígito Conversão ASCII-HEXA de dois dígitos 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 3
Exemplo 2 Conversão de Hexadecimal para Código ASCII Exemplo. Microcontrolador ASCII 33 46 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) Conversor A/D Hexadecimais possíveis (8 bits): de 00 a FF Conversão HEXA-ASCII de um dígito Sub-rotina CONV2 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. 4
Exemplo Conversão HEXA-ASCII de dois dígitos 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. O valor em Hexadecimal entra pelo Acumulador. Ex: A = 3Fh Logo, 3F 03 + 30h 33h 0F + 37h 46h Os valores dos dois dígitos em ASCII saem em: 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. R0 = LSB Ex: R0 = 46h A = MSB Ex: A = 33h 5
MOTOR DE PASSO Step Motor Definição prática: O Motor de Passo converte pulsos digitais de entrada em movimentos angulares em seu eixo. Define-se MOTOR DE PASSO como um atuador incremental eletromagnético. Características importantes CURVA CARACTERÍSTICA 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... 6
CURVA DE RESPOSTA DE UM PASSO Classificação estrutural RELUTÂNCIA VARIÁVEL ÍMÃ PERMANENTE HÍBRIDO RELUTÂNCIA VARIÁVEL ÍMÃ PERMANENTE Características principais: Ângulo de Passo = 15 graus Características principais: Rotor de aço doce multipolar Enrolamentos no Estator Inércia do rotor baixa Enrolamentos desenergizados, o Torque Residual é nulo Rotor magnetizado radialmente Apresenta Torque de Retenção Estático (Residual) Materiais mais utilizados no rotor : Ferrite e Alnico 7
HÍBRIDO TEORIA DE OPERAÇÃO 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 MODOS DE OPERAÇÃO DOS ENROLAMENTOS Circuito de Controle UNIPOLAR simplificado Unipolar i Bipolar i 8
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 Exercício 4 Entrega pelo Site do Curso até o dia 02/05/2016 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. 9
10