EXERCÍCIOS 2 Prof. Adilson Gonzaga

Documentos relacionados
Lista de Exercícios 1

Lista de Exercícios 1

Lista de Exercícios 1

Lista de Exercícios 2

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

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga

Prof. Adilson Gonzaga

Interrupção. Prof. Adilson Gonzaga

Temporizadores e Contadores (Timer/Counter)

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada

Prof. Adilson Gonzaga

208 = D0 h TMOD. MOV TMOD,#20h ;TMOD = Timer 1 no ;Modo 2, controle por software SCON. ;Canal Serial

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

Temporizadores e Contadores

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

Laboratório de Microprocessadores e Microcontroladores

EXERCÍCIOS RESOLVIDOS

Laboratório de Microprocessadores e Microcontroladores

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

Laboratório de Microprocessadores e Microcontroladores

SEL 337 Aplicação de Microprocessadores II

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

Laboratório de Microprocessadores e Microcontroladores

Aula 10 Microcontrolador Intel 8051 Parte 2

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

2.4 Temporização da CPU

Laboratório de Microprocessadores e Microcontroladores

Família 8051 (introdução) 2011/1

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Lista de Exercícios 2

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível

Lista de Exercícios 2

17/04/2017. Comunicação Serial. Comunicação Serial. Comunicação de Dados em Microprocessadores. . Comunicação Paralela. Comunicação Serial

Interface Serial. Prof. Adilson Gonzaga

Interface com Teclas, Leds e Teclados Matriciais. Prof. Adilson Gonzaga

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

Aula 10 Microcontrolador Intel 8051 Parte 1

Prof. Adilson Gonzaga. Técnicas de Interface

Laboratório de Microprocessadores e Microcontroladores

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D - 26/04/ :56 1/16

FORMATO DO PROGRAMA FONTE

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

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Organização de Memórias

Microcontrolador 8051

Prof. Adilson Gonzaga

Estrutura Básica de um Computador

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

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

INTRODUÇÃO: MICROCONTROLADORES

LCDs Inteligentes. LCD Inteligente. Gabriel Kovalhuk DAELN / UTFPR

Prof. Adilson Gonzaga

Microcontroladores 8051

Laboratório de Microprocessadores e Microcontroladores

Montagem do Robô. Especificações. domingo, 28 de agosto de 11

Porta Série SÉRIE x PARALELO PORTA SÉRIE. Comunicação série SÉRIE PARALELA

MICROCONTROLADOR 8051

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

mov R1,10H ; Carrega o dado do endereço 10H em R1 mov R1,#10H ; Carrega 10H em R1

Interrupções 8051 Porta Serial

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Comunicação Serial. Comunicação Serial

Exemplos de Aplicações

SSC0611 Arquitetura de Computadores

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Comunicação Serial 1

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

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

UCP 8051 (parte 02) Professor Adão de Melo Neto

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Transcrição:

LISTA DE EXERCÍCIOS 2 Prof. Adilson Gonzaga 1) Um robô como mostrado na figura é acionado por dois motores de corrente contínua, um para cada roda, conforme o esquema, e possui um sensor localizado na parte da frente que tem a função de detectar a presença de obstáculos. Desenvolver um programa em Assembly do 8051 que controle o robô fazendo-o navegar por uma sala onde diversos obstáculos podem ser encontrados, de tal forma que elee não colida com nenhum. O circuito do sensor está ligado na entrada de interrupção Int0 que gera um pulso negativo quando um obstáculo é detectado. Os motores são acionados da seguinte maneira, conforme mostra o esquema eletrônico: P1.0 = 1 liga a alimentação do motor da roda da esquerda (P1.0 = 0 desliga) P1.2 = 1 liga a alimentação do motor da roda da direita (P1.2 = 0 desliga) O movimento do robô é dado pela tabela: P1.1 P1.3 Movimento 0 0 Robô movimenta-se para trás 0 1 Robô vira para a esquerda (roda esquerda pra trás e roda direita à frente) 1 0 Robô vira para a direita (roda esquerda à frente e roda direita para trás) 1 1 Robô movimenta-se à frente O programa deve: a) Inicialmente movimentar o robô à frente. b) Quando o primeiro obstáculo for detectado o robô deve voltar atrás por 2 segundos e virar à direita por 2 segundos. A freqüência do oscilador do microcontrolador é de 12 MHz. c) A cada obstáculo detectado o robô deve movimentar-se para trás por 2 segundos e inverter a última direção durante 2 segundos (direita, 2s, esquerda, 2s, direita, 2s, esquerda, 2s,...).

d) Após cada inversão de direção, o robô deve ser movimentado para frente até que novo obstáculo seja encontrado. Durante o movimento para trás e direita/esquerda a Int0 deve ser desabilitada. 2) Fazer um programa em Assembly do 8051 que informe a temperatura de um forno. O programa deve enviar inicialmente um String em ASCII armazenado na área de memória de programa a partir do endereço "TAB", para um monitor de vídeo serial RS232C (600 bps, sem paridade, 8 bits de dados, 1 stop bit), até encontrar o código ASCII do caractere "$" que não deve ser transferido. Após a mensagem ser mostrada, o programa deve enviar o valor da temperatura que está armazenado em hexadecimal no registrador R0 e parar. O cristal do micro é de 11.0592 Mhz. TAB: DB TEMPERATURA DO FORNO =, $ 3) Dado o programa em Assembly do 8051 abaixo responder a cada um dos itens: ORG 0 SJMP PROG PROG: LOOP: ORG 000BH MOV TH1,#7FH MOV TL1,#00 MOV TH0,#7FH CLR TR0 SETB TR1 RETI ORG 001BH MOV TH0,#7FH MOV TL0,#00 MOV TH1,#7FH CLR TR1 SETB TR0 RETI SETB EA SETB ET0 SETB ET1 MOV TMOD,#11H MOV TH0,#7FH MOV TL0,#00 MOV TH1,#7FH SETB TR0 MOV P1,TH0 MOV P2,TH1 SJMP LOOP END a) Se a freqüência do oscilador for de 12Mhz, qual o tempo aproximado em milissegundos que o Timer T0 contará até solicitar uma interrupção pela primeira vez? b) Como os contadores mostrados nas portas P1 e P2 do microcontrolador serão vistos externamente considerando-se o tempo de interrupção de cada temporizador?

4) Um Microcontrolador 8051, com um oscilador de 11.0592 MHz comunica-se serialmente com um teclado ASCII a 4800 BPS e com uma impressora ASCII a 9600 BAUDS. Fazer um programa em Assembly que leia o dado do teclado e envie para a impressora, considerando as velocidades de comunicação de cada periférico. 5) Escrever um programa em Assembly do 8051 que faça a comunicação serial RS232-C entre dois microcontroladores 89S52. A velocidade deve ser estabelecida inicialmente em 9600 Bps, 1 Stop Bit, 8 bits de dados e sem verificação de paridade. Um dos microcontroladores será o Mestre e o outro o Escravo. O Mestre envia uma String de caracteres ASCII na velocidade de 9600 Bps informando a Nova Velocidade, altera sua própria velocidade para o Novo Valor e o Escravo, ao receber a String, altera sua velocidade de comunicação, devolvendo ao Mestre, na nova velocidade, uma string de reconhecimento. O cristal dos dois microcontroladores é de 11.0592 MHz. As Strings devem ser armazenadas na memória de programa de cada microcontrolador através da pseudo-instrução DB. O programa deve ser executado apenas uma vez. 1) String a ser enviada pelo Mestre em 9600 Bps: NOVA_VEL1200 2) String de reconhecimento enviada pelo Escravo em 1200 Bps: VEL_RECONHECIDA 6) Considere o Controlador de Nível da figura operando da seguinte maneira: Dois sensores S1 e S2 emitem nível lógico zero se estiverem fora do líquido e nível lógico 1 se estiverem imersos no líquido. Uma válvula V1, acionada pelo bit P1.0 de um microcontrolador 8051 drena o reservatório e uma válvula V2 acionada pelo bit P1.1 enche-o com líquido. Inicialmente o reservatório está vazio, ou seja, com os dois sensores em nível lógico zero. Escrever um programa em Assembly do 8051 que mantenha o nível do líquido próximo à metade do reservatório (1/2 H) automaticamente, utilizando as entradas de Interrupções assinaladas, observando que as mesmas sentem a mudança de borda (descida) quando o líquido passa pelos sensores (S1 Drenando e S2 enchendo) 7) Desenvolver um projeto com um Microcontrolador 8051 que controle a cancela de uma passagem de trem. Fornecer o software (em assembly) e o hardware em blocos com as seguintes especificações: a) Os Pinos de controle da cancela são: P1.0 = 1 abre a cancela P1.0 = 0 fecha a cancela b) A cancela possui os seguintes sensores: P1.1 = 0 cancela está fechada P1.1 = 1 cancela está aberta O sensor de presença de automóvel querendo passar está conectado à Interrupção Externa 0 ativada na descida de borda Carro em frente à cancela fechada querendo passar. A cancela deve ser aberta se não tiver trem passando. Caso contrário, a cancela deve ficar fechada. c) O pino para o sensor de presença de trem passando é :

Interrupção Externa 1 ativada em nível baixo trem passando, a cancela deve estar fechada, mesmo que ocorra presença de carro querendo passar. Esta interrupção deve ser de mais alta prioridade que a Interrupção externa 0, ou seja, se ocorrer deve sempre fechar a cancela. 8) Escrever um programa em Assembly do 8051 que controle o dispositivo de teste térmico de materiais, mostrado na figura. Um recipiente, com determinada substância sob teste, deve ser baixado (Dir = P2.7 = 1) através de um Motor (Ligar = P2.6 = 1), dentro de um forno. O Sensor1 detecta a presença do recipiente e envia uma descida de borda ao pino Int0 do microprocessador. O micro pára o Motor (Ligar = P2.6 = 0) e aciona o aquecimento do forno (P1.2 =1) durante aproximadamente 500 ms. Desliga o aquecimento, inverte o sentido do Motor (Ligar = P2.6 = 1) (Dir = P2.7 = 0), erguendo o recipiente até a posição do Sensor2, que opera da mesma forma que o Sensor1, mas usando a Interrupção Int1. Quando Int1 receber uma descida de borda, o micro deve parar o Motor (Ligar = P2.6 = 0) e acionar o resfriamento (P1.0 =1) durante aproximadamente 500 ms. O ciclo deve ser repetido 3 vezes e parar. Considerar o Cristal da CPU de 12 MHz. a) Fornecer o programa em Assembly b) Fornecer os parâmetros de programação dos tempos envolvidos. 9) Automatizar uma Máquina de Doces com o Microcontrolador 89S52. A máquina deve fornecer em cada operação, somente um doce que custa 20 centavos. A cada operação o programa reinicia e espera nova seqüência de moedas. As moedas aceitas pela máquina são de 5 centavos, 10 centavos e 20 centavos. Como cada moeda tem um tamanho diferente, um sensor óptico alinhado com o coletor de moedas determina qual moeda foi inserida. Apenas uma moeda pode ser inserida por vez. A inserção de uma moeda é detectada através da Interrupção Int0. O circuito de reconhecimento de moedas é mostrado abaixo e sua operação é de acordo com a Tabela 1.

P1.2 = 20 cents P1.1 = 10 cents P1.0 = 5 cents Moeda inserida 1 1 1 Nenhuma (Int0 = 1) 1 1 0 5 centavos (Int0 = 0) 1 0 0 10 centavos (Int0 = 0) 0 0 0 20 centavos (Int0 = 0) Tabela 1 Sinal nos pinos do 89S52 quando as moedas são inseridas. A Máquina de Doces tem três controles: P2.0 = 1 Fornecer o Doce P2.1 = 1 Devolver 5 centavos de troco P2.2 = 1 Devolver 10 centavos de troco A operação da Máquina de Doce pode ser vista na Tabela 2 com todas as seqüências possíveis (S1 a S11) de inserção de moedas pelo usuário e com as ações a serem tomadas pelo microcontrolador. Seqüência de moedas inseridas Ações de controle S1 5 + 5 + 5 + 5 = 20 Doce P2.0 = 1 Troco = 0 S2 5 + 5 + 5 + 10 = 25 Doce P2.0 = 1 Troco = 5 cents S3 5 + 5 + 5 + 20 = 35 Doce P2.0 = 1 Troco = 15 ( 10 + 5) S4 5 + 5 + 10 = 20 Doce P2.0 = 1 Troco = 0 S5 5 + 5 + 20 = 30 Doce P2.0 = 1 Troco = 10 S6 5 + 10 + 10 = 25 Doce P2.0 = 1 Troco = 5 S7 5 + 10 + 20 = 35 Doce P2.0 = 1 Troco = 15 (10 + 5) S8 5 + 20 = 25 Doce P2.0 = 1 Troco = 5 S9 10 + 10 = 20 Doce P2.0 = 1 Troco = 0 S10 10 + 20 = 30 Doce P2.0 = 1 Troco = 10 S11 20 = 20 Doce P2.0 = 1 Troco = 0 Tabela 2 - Operação da Máquina de Doces 10) Para o Microcontrolador da família MCS-51, responder aos itens abaixo de maneira objetiva: a) Como acessar um dado armazenado na posição 1010h da RAM externa e copiar este dado no Registrador R7? b) Quais os pinos da CPU do microcontrolador 8051 são utilizados para a operação do item anterior, e qual a função de cada um? c) Se não for utilizada a memória de programa externa qual deve ser o nível lógico do pino EA? d) Que instrução usar para acessar o endereço 8Bh da RAM interna de dados do microcontrolador? 11) Usando instruções que endereçam bits no 8051, escrever um programa em Assembly que mova os bits do endereço de byte 20h para o endereço de byte 2Fh na ordem inversa, ou seja, o LSB do endereço 20h vai para o MSB do endereço 2Fh e assim sucessivamente até o MSB do endereço 20h ser movido para o LSB do endereço 2Fh. 12) Dado o programa em Assembly do 8051 abaixo responder a cada um dos itens: ORG 0

INIT: MOV DPTR,#100H MOV R1,#10 VOLTA: MOV A,R1 MOV R0,#10 LOOP: CPL P2.1 DJNZ R0,LOOP MOVX @DPTR,A INC DPTR INC R1 CJNE R1,#20,VOLTA SJMP $ END a) Quais são os endereços absolutos equivalentes aos endereços relocáveis INIT e VOLTA? b) Qual será o conteúdo hexadecimal da memória externa 108h após a execução do programa? c) Qual será o valor de R1 em hexadecimal após a execução do programa? d) Se na porta P2.1 tiver um LED ligado, quantas vezes ele acenderá durante a execução do programa?