Aplicações: Conversão de Códigos e Motor de Passo. Prof. Adilson Gonzaga

Documentos relacionados
Exemplos de Aplicações

Fabio Bento

SSC512 Elementos de Lógica Digital. Sistemas de Numeração. GE4 Bio

PCS 3115 Sistemas Digitais I Códigos Prof. Dr. Marcos A. Simplicio Jr.

Aula 14. Contadores Assíncronos. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

CIRCUITOS DIGITAIS. Apresentação da Disciplina Introdução aos Circuitos Digitais. Prof. Denis Fantinato Prof. Rodrigo Moreira Bacurau

Eletrônica Digital Apresentação e Cap.1 PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

SISTEMAS DE NUMERAÇÃO (Unidade 2)

ELT502 Eletrônica Digital I Graduação em Engenharia Eletrônica

Circuitos Lógicos. Capítulo 9 Aritmérica Digital: Operações e Circuitos

Prof. Adilson Gonzaga

Objetivo. Sistemas de Numeração e Códigos. Apresentar técnicas de representação e converção de números em diversos sistemas de numeração.

Circuitos Digitais I. Notas de Aula. Sistemas de Representação. Bases e Códigos. Bases

ELE Microprocessadores I

Disciplina: Introdução à Engenharia da Computação

Lista de Exercícios 1

Sistema Supervisório - IHM

Sistemas de Numeração

ELETRÔNICA DIGITAL APLICADA Aula 8- Registradores de deslocamento como contadores

Prof. Leonardo Augusto Casillo

Lista de Exercícios 2

Circuitos Digitais. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional

SSC304 Introdução à Programação Para Engenharias

Circuitos Combinacionais. Arquitetura de Computadores I

Sistemas de Numeração e Códigos

Circuitos Lógicos Aula 5

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Capítulo 6 Aritmética Digital: Operações e Circuitos

Sistemas Digitais Módulo 3 Codificações BCD, Gray e ASCII e Números Fracionários

MATA49 Programação de Software Básico

Códigos, Portas Lógicas e Comportamento Elétrico

Lógica Matemática Elementos de Lógica Digital. Sistema de numeração 09/08/2016 1

Lista de Exercícios 1

11 a EDIÇÃO SISTEMAS DIGITAIS

Curso FFI Microprocessadores I

REPRESENTAÇÃO DE DADOS. Prof. Maicon A. Sartin

SEL 405 Introdução aos Sistemas Digitais. Prof. Homero Schiabel

Laboratório de Microprocessadores e Microcontroladores

Para essa conversão utiliza-se o valor posicional

Capítulo 04 : Sistemas Numéricos

INTRODUÇÃO: MICROCONTROLADORES

SISTEMAS DE NÚMERAÇÃO. Números decimais

Registradores de Deslocamentos.

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

Circuitos Lógicos. Prof. Odilson Tadeu Valle

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

PCS 3115 (PCS2215) Sistemas Digitais I. Módulo - Códigos. Prof. Dr. Edison Spina. sobre o material do Prof. Dr. Marcos A. Simplicio Jr.

Laboratório de Microprocessadores e Microcontroladores. Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico

ELETRÔNICA DIGITAL I

Redes Industriais. Carlos Roberto da Silva Filho, M. Eng.

Laboratório de Microprocessadores e Microcontroladores. Experimento 6: Conversor Analógico/Digital e Conversor Digital/Analógico

Revisão de Lógica Digital. Lógica Booleana Conversão A/D e D/A Circuitos digitais e Memória

14/3/2016. Prof. Evandro L. L. Rodrigues

Sistemas de Numeração. Tiago Alves de Oliveira

SISTEMAS DE NUMERAÇÃO

Conjunto de Instruções e Modelos de Arquiteturas

controle em instrumentação

Estrutura Básica de um Computador

Conversores D/A e A/D e Multiplexadores em Instrumentação

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

3. Componentes de um computador e periféricos

Unidade III. Sistemas Numéricos e o Computador

Elementos de processamento de sinais

Prof. Adilson Gonzaga

EXERCÍCIOS 2 Prof. Adilson Gonzaga

Sistemas numéricos Arquitetura e Organização de Computadores Curso de Análise e Desenvolvimento de Sistemas

CONVERSORES D/A e A/D. SEL Sistemas Digitais Prof. Homero Schiabel

(a) (b) (c) (d) =? 2. (a) (c) (b) (d) (a) (c) (b) (d) (a) 5BA4 16 (c) 7DC6 16

EELi02 Circuitos Lógicos

FORMATO DO PROGRAMA FONTE

Introdução. Universidade Federal de Campina Grande. A Informação e sua Representação (Parte I) Centro de Engenharia Elétrica e Informática

Técnico em Eletrônica Módulo I Eletrônica Digital (ED) - Prof. Samuel M. B. Cavalcante

CONTADORES DIGITAIS (Unidade 6)

SOMADORES E SUBTRATORES

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

Lista de Exercícios 2

Sistemas Digitais Módulo 1 Introdução e Sistemas de Numeração

HARDWARE SISTEMA NUMÉRICO E CODIFICAÇÃO. Wagner de Oliveira

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

CIRCUITOS ARITMÉTICOS (Unidade 4)

MICROCOMPUTADORES. Professor Adão de Melo Neto

IST ELECTRÓNICA II. Conversores Analógico Digital º semestre

Organização e Arquitetura de Computadores I

14/03/2011. A INFORMAÇÃO E SUA REPRESENTAÇÃO (Parte I)

Prof. Hélio Oliveira Ferrari Fb.me/profgandhiferrari

CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS

José Augusto Fabri. Assembly Básico

Laboratório de Microprocessadores e Microcontroladores. Experimento 6:

SOMADORES E SUBTRATORES

Representação Digital da Informação II

Circuitos Digitais Primeira Lista de Exercícios

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA

Microprocessadores e Microcontroladores

Circuitos Lógicos Aula 22

Organização e Arquitetura de Computadores I

2. A influência do tamanho da palavra

Prof. Adilson Gonzaga. Interface com Displays

FACULDADE PITÁGORAS PRONATEC

Transcrição:

Aplicações: Conversão de Códigos e Motor de Passo

Aplicação 1 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. 2

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. 3

Teclado ASCII Se o usuário quiser inserir em uma aplicação qualquer um 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? 4

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 5

Digitado no Teclado 3 F Códigos ASCII Gerados 33 46 3F 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 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 6

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 OR 0F LSB 3F 00110000 00001111 00111111 7

Conversão ASCII-HEXA de um dígito Sub-rotina CONV O dígito ASCII entra pelo Acumulador 8

Conversão ASCII-HEXA de dois dígitos Converte o MSB Troca os nibles Converte o LSB Funde (OR) os dois bytes gerando apenas um hexadecimal 9

10

11

Aplicação 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. 12

Microcontrolador ASCII 33 46 Hexadecimal 3F (00111111) Conversor A/D 13

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. 14

Conversão HEXA-ASCII de um dígito Sub-rotina CONV2 15

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. 16

Conversão HEXA-ASCII de dois dígitos 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 17

18

19

Aplicação 3 Conversão de Hexadecimal para BCD BCD Decimal Codificado em Binário Neste exemplo será utilizado sempre o BCD Packed (ou BCD 8421), cuja representação de 2 dígitos BCD é realizada com apenas 1 Byte. 20

Conversão de Hexadecimal para BCD Decimal Hexa 00 00 01 01 02 02 03 03 04 04 05 05 06 06 07 07 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 08 08 09 09 10 0A 11 0B 0 0 0 0 1 0 0 1 Logo, se o número Hexa estiver entre 0A e 13, soma-se 1x06 12 0C 13 0D 14 0E 15 0F 16 10 0 0 0 1 0 0 0 0 21

Se o número hexa estiver entre 14 e 1D soma-se 2x06 14+06=1A+06=20 15+06=1B+06=21 16+06=1C+06=22 17+06=1D+06=23 18+06=1E+06=24 19+06=1F+06=25 1A+06=20+06=26 1B+06=21+06=27 1C+06=22+06=28 1D+06=23+06=29 Decimal Hexa 17 11 18 12 19 13 20 14 21 15 22 16 23 17 24 18 25 19 26 1A 27 1B 28 1C 29 1D 30 1E 31 1F 32 20 33 21 34 22 35 23 36 24 Logo, se o número Hexa estiver entre 0A e 13, somase 1x06 11+06=17 12+06=18 13+06=19 Se o número estiver entre 1E e 27 soma-se 3x06 1E+06+06+06=30 1F+06+06+06=31 20+06+06+06=32 21+06+06+06=33 22+06+06+06=34 22

O algoritmo pode ficar bastante complexo seguindo este raciocínio. O 8051 possui uma instrução que faz o Ajuste Decimal do Acumulador DA A Esta instrução somente deve ser utilizada quando a operação realizada anteriormente foi com números BCD. Exemplo: 19 + 1 = 1A DA A 20 A instrução não opera corretamente onde isto não acontece. Exemplo: 1F + 1 = 20 DA A 26 23

Algoritmos para conversão Hexa-BCD Algoritmo_1: 1. Entrar com o número Hexadecimal a ser convertido em R0 2. Inicializar um contador BCD em Zero 3. Decrementar R0 até zero e simultaneamente incrementar o contador BCD 4. Quando o valor do número Hexadecimal chegar em zero, o Acumulador terá realizado o mesmo número de contagens em BCD O maior número hexadecimal de dois dígitos que pode ser convertido é o : 63h = 99 em BCD 24

Este exemplo não testa se o número Hexadecimal a ser convertido é menor que 63h, o que deve ser feito externamente no programa principal. 25

Algoritmo_2: 1. Dividir o número Hexadecimal (8 BITS), a ser convertido, por 10 (0Ah) 2. O resultado da divisão gera um número BCD unpacked, com o MSB no Acumulador e o LSB no registrador B 3. Transformar o BCD unpacked para BCD packed (8421) 09 09 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 99 1 0 0 1 1 0 0 1 26

Exemplo: Programa que gera um Contador BCD na Porta P1, de 00 a 99, continuamente retornando a zero. 27

Aplicação 4 MOTOR DE PASSO Step Motor Define-se MOTOR DE PASSO como um atuador incremental eletromagnético. 28

Definição prática: O Motor de Passo converte pulsos digitais de entrada em movimentos angulares em seu eixo. 29

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... 30

CURVA CARACTERÍSTICA 31

TEORIA DE OPERAÇÃO 32

Circuito de Controle UNIPOLAR simplificado 33

Comutação nas Fases (excitação dupla) 34

Sistema Típico de Controle com Motor de Passo 35

Circuito Acionador (Indexer + Driver) de Motor de Passo (excitação dupla) 36

Exemplo de Conexão de um Microcontrolador 89S52 com um Driver/Indexador de Motor de Passo Clock Direção Inibe 37

O Clock, na descida de borda, armazena a Direção (1 ou 0) que o motor girará na próxima subida de borda. Clock Direção Direção = 0 Horário Direção = 1 Anti-horário Inibe Inibe = 1 Operação Normal Inibe = 0 Pára o Motor de Passo Frequência do clock (Hz) = Passos por Segundo (pps) no Motor 38

Exemplo de Comando de um pulso em um Motor de Passo (Usando subrotina de Atraso). 39

Comando de Motor de Passo usando Timer e Interrupção 40