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

Documentos relacionados
MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

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

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

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!!!!

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

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

Laboratório de Microprocessadores e Microcontroladores

EXERCÍCIOS RESOLVIDOS

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Laboratório de Microprocessadores e Microcontroladores. Experimento 6:

Temporizadores e Contadores (Timer/Counter)

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

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

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

Laboratório de Microprocessadores e Microcontroladores

programáveis por software

Laboratório de Microprocessadores e Microcontroladores

Ex.: Rotinas de tempo

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás. Experimento 7: Sensores e Transdutores

Laboratório de Microprocessadores e Microcontroladores

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 Parte 2 Microcontrolador 8051

Prof. Adilson Gonzaga

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

Aula 10 Microcontrolador Intel 8051 Parte 2

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

MICROCONTROLADOR 8051

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

Laboratório de Microprocessadores e Microcontroladores

Interrupção. Prof. Adilson Gonzaga

Temporizadores e Contadores

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca

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

Microcontroladores. Contadores e Temporizadores. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

Lista de Exercícios 2

Laboratório de Microprocessadores e Microcontroladores

Oprojeto apresenta três níveis de dificuldade: fácil, médio e difícil. No modo fácil tem-se uma

Memória de Dados Interna. Memória de Dados Interna

Microprocessadores TIMER/COUNTER I

Lista de Exercícios 1

MICROPROCESSADORES E MICROCONTROLADORES PROVA 1

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

Interrupções do Interrupções Gabriel Kovalhuk. UTFPR DAELN - Tecnologia em Mecatrônica Industrial

Interrupção

Prof. Adilson Gonzaga

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

CONJUNTO DE INSTRUÇÕES

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

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

Organização de Memórias

CAPÍTULO II FAMÍLIA MCS-51

ORGANIZAÇÃO DE MEMÓRIA NO 8051: Microcontroladores - Prof: Demantova 1

EXERCÍCIOS 2 Prof. Adilson Gonzaga

Ex.: Rotinas de tempo

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

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

Microprocessadores. Organização de Memória

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

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

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

MICROCONTROLADOR 8051

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ENGENHARIA DE COMPUTAÇÃO. Vinicius Zanetti Tiago Dambros Rodrigo Yoshida Takeda

Acetatos de apoio às aulas teóricas

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

Lista de Exercícios 1

Os temporizadores / contadores (T/C) do 80C51

14/3/2016. A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios:

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

2.4 Temporização da CPU

Microcontrolador 8051

O microcontrolador Quatro partes importantes

Acetatos de apoio às aulas teóricas

USJT Universidade São Judas Tadeu ENGENHARIA ELÉTRICA - LAB. INTEGRADO. EXP4 : Interrupções do uc 8051

Prof. Adilson Gonzaga

PROJETOS COM MICROCONTROLADORES

1. Instruções de Desvio

Microcontroladores 8051

EEC2104 Microprocessadores

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

Interrupções por hardware

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

SEL 337 Aplicação de Microprocessadores II

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Transcrição:

Parte 3 Parte 1 Parte 2 Goiânia, 5 de junho de 2014. MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível 1. Suponha um sistema com um conjunto de 8 LEDs conectados à porta P1 e duas chaves do tipo pushbutton conectadas aos pinos P3.2 e P3.3. Analise o programa da Tabela 1, escrito em linguagem assembly do 8051 e responda às questões. Valor: 3,0 Tabela 1: Programa em assembly do 8051 RÓTULO MNEMÔNICO RÓTULO MNEMÔNICO V1: MOV R0,#10 MOV A,#03H V3: MOV P1,A ORG 03H LCALL ATRASO LJMP V1 RL A DJNZ R0,V3 ORG 13H LJMP V2 V2: MOV P1,#0FH INICIO: MOV SP,#2FH LCALL ATRASO MOV IE,#85H MOV P1,#0F0H MOV TCON,#01H LCALL ATRASO MOV IP,#01H SJMP $ ATRASO: MOV R7,#200 V4: MOV R6,#200 DJNZ R6,$ DJNZ R7,V4 RET Questões (Valor de cada questão: 1,0): a) Explique a finalidade da Parte 1. Qual configuração final das interrupções externas após execução da Parte 1? A Parte 1 tem duas partes: a primeira parte contém os endereços das interrupções externas zero e 1, com o endereço de desvio para as rotinas a serem executadas quando as duas forem solicitadas. Na segunda parte as interrupções externas zero e 1 são habilitadas; a interrupção externa zero é por transição e a 1 por nível. A interrupção externa zero tem prioridade alta. Ao final das configurações o programa entra em um laço infinito, aguardando a chamada das interrupções. b) Como funciona a Parte 2? Em que condições a Parte 2 é executada? Na Parte 2 há uma rotação (à esquerda) simultânea de 2 bits, começando por 00000011b. Essa subrotina é executada dez vezes (R0 = 10), a cada vez que a chave de P3.2 é pressionada. c) Como funciona a Parte 3? O que ocorre se a chave do pino P3.2 for pressionado durante a execução da Parte 3? Na Parte 3 os nibbles inferior (0000 1111) e superior (1111 0000) são alternados, enquanto a chave P3.3 permanecer em nível lógico baixo (interrupção por nível). Se a chave P3.2 for pressionada durante a execução da Parte 3, o processamento desvia para a Parte 2, que é executada normalmente (10 vezes) e, depois, o processamento volta para a Parte 3.

2. A Figura 1 mostra um sistema de acionamento de um motor de corrente contínua. Faça um programa em assembly do 8051 com as seguintes características: Valor: 3,0 a) A chave CH0 é usada para habilitar o acionamento do motor. Enquanto estiver aberta (desligada) o acionamento do motor fica desabilitado e o motor desligado. Ao habilitar o acionamento do motor, o LED verde é ligado. Quando CH0 é aberta (desligada), o motor para e os LEDs apagam. b) Com a chave CH0 ligada o programa passa a verificar as chaves CH1 e CH2. Enquanto elas não forem pressionadas pela primeira vez o motor permanece desligado. Depois que uma delas é pressionada e liberada, o motor passa a funcionar em um dos sentidos. c) Pressionando-se a chave CH1 (e liberando a seguir) o motor CC gira no sentido direto (IN1=0; IN2=1) e o LED amarelo é ligado e o vermelho desligado. d) Pressionando-se a chave CH2 (e liberando a seguir) o motor CC gira no sentido reverso (IN1=1; IN2=0) e o LED vermelho é ligado e o amarelo desligado. Figura 1: Sistema de acionamento de motor CC Uma solução possível: Rótulo Mnemônicos Comentários CH0 EQU P3.0 ; Atribui-se o nome CH0 ao pino P3.0 CH1 EQU P3.2 ; Atribui-se o nome CH1 ao pino P3.2 CH2 EQU P3.3 ; Atribui-se o nome CH2 ao pino P3.3 IN1 EQU P0.1 IN2 EQU P0.0 ; Atribui-se o nome IN1 ao pino P0.1 de acionamento do motor ; Atribui-se o nome IN2 ao pino P0.0 de acionamento do motor Verde EQU P1.7 ; Atribui-se o nome Verde ao LED do pino P1.7 Amarelo EQU P1.1 ; Atribui-se o nome Amarelo ao LED do pino P1.1 Vermelho EQU P1.0 ; Atribui-se o nome Vermelho ao LED do pino P1.0 INICIO: ORG 30H MOV SP,#2FH V1: CLR IN1 CLR IN2 CLR Verde CLR Vermelho CLR Amarelo ; Desliga motor ; Desliga LED Verde ; Desliga LED Vermelho ; Desliga LED Amarelo

V3: JB CH0, V1 ; Enquanto CH0 estiver aberta (CH0 = 1), o motor fica desligado SETB Verde ; Liga LED Verde quando CH0 = 0. Motor habilitado para acionamento JB CH1,V2 CLR IN1 SETB IN2 SETB Amarelo CLR Vermelho SJMP V3 ; Se CH1 = 1, verificar a chave CH2. Se CH1 = 0, liga motor ; Motor no sentido direto (de acordo com a Tabela 2) ; Liga LED Amarelo ; Desliga LED Vermelho ; Volta para verificar chave CH0 V2: JB CH2,V3 ; Se CH2=1, verificar CH0 (ainda está habilitado?). Se CH2=0, liga motor SETB IN1 CLR IN2 ; Motor no sentido reverso (de acordo com a Tabela 2) CLR Amarelo ; Desliga LED Amarelo SETB Vermelho ; Liga LED Vermelho SJMP V3 ; Volta para verificar chave CH0 3. A Figura 2 mostra um sistema onde um êmbolo é usado para deslocar um determinado volume de água de uma seringa. O êmbolo é deslocado para a direita e para a esquerda usando um motor de passo conectado ao nibble inferior da porta P0. A cada 10 passos do motor de passo, o êmbolo desloca 1 ml de água. Faça um programa em assembly do 8051 onde a interrupção externa zero, por transição, faz o êmbolo deslocar 10 ml de água (para a direita). Ao ser acionada, a interrupção externa 1, por transição, o êmbolo desloca 20 ml de água (para a direita). Ao final de cada 20 ml o êmbolo retorna à posição original, com a rotação do motor de passo no sentido reverso. Valor: 4,0 Figura 2: Sistema de injeção controlada Uma solução possível: Rótulo Mnemônicos Comentários ORG 03H LJMP VOL10 ; Endereço da Interrupção externa zero ; Desvia para a rotina VOL10 ORG 13H ; Endereço da Interrupção externa 1 LJMP VOL20 ; Desvia para a rotina VOL20 INICIO: ORG 30H MOV SP,#2FH MOV IE,#85H MOV TCON,#05H MOV A,#01H MOV R1,#0 SJMP $ ; Habilita as interrupções externas INT0 e INT1 ; INT0 e INT1 por transição ; Conteúdo de A a ser usado para rotacionar o motor de passo ; Contador de deslocamentos. Incrementa 1 a cada 10 ml deslocados ; Aguarda uma das interrupções em um laço infinito

VOL10: CLR F0 ; F0 = 0 --> quando o volume solicitado é 10 ml SJMP V3 VOL20: SETB F0 ; F0 = 1 --> quando o volume solicitado é 20 ml V3: MOV R0,#100 ; R0 = 100 --> 1 ml = 10 passos => 10 ml = 100 passos V2: MOV P1,#A ; Transfere conteúdo de A para o motor de passo (na porta P1) LCALL ATRASO ; Chama subrotina de atraso de tempo RR A ; Rotaciona conteúdo de A para a direita CJNE A,#80H,V1 ; Verifica de o conteúdo de A está fora do nibble inferior MOV A,#08H ; A = 08H, se A estiver fora do nibble inferior V1: DJNZ R0,V2 ; Verifica se já foram executados 100 passos. INC R1 ; Incrementa o contador de deslocamentos a cada 10 ml CJNE R1,#02H,V4 ; Verifica se R1 = 2 (deslocamento de 20 ml) MOV R1,#0 ; Zera contador LJMP RETORNA ; Se R1 = 2, então já deslocou 20 ml e deve deslocar para a esquerda V4: JB F0,V3 ; Se F0 = 1, e R1 =/= 2, então deve voltar e deslocar mais 10 ml RETORNA: MOV R0,#200 ; R0 = 200, para girar 200 passos para a direita V2R: MOV P1,A ; Transfere conteúdo de A para o motor de passo (na porta P1) LCALL ATRASO RL A ; Rotaciona conteúdo de A para a esquerda CJNE A,#10H,V1R ; Verifica de o conteúdo de A está fora do nibble inferior MOV A,#01H ; A = 01H, se A estiver fora do nibble inferior V1R: DJNZ R0,V2R ; Verifica se já foram executados 200 passos. ATRASO: MOV R7,#150 V5: MOV R6,#250 DJNZ R6,$ DJNZ R7,V5 RET Temporizadores: Questões Optativas 4. Suponha um sistema com 8 LEDs conectados à porta P1 e uma chave tipo push-button conectando o pino P3.2 ao Terra. Faça um programa em assembly do 8051 com as seguintes características: Valor: 3,0 a) Enquanto o pino permanecer em nível lógico alto o programa aguarda em um laço infinito; b) Quando o nível lógico de P3.2 muda para nível baixo o temporizador zero, no modo 1, inicia uma contagem de 50.000 pulsos, com cristal de 12 MHz, com interrupção. c) A cada final de contagem do temporizador o conteúdo do acumulador, inicialmente em zero, é incrementado em 1; d) Os LEDs da porta P1 são ligados de acordo com conteúdo do acumulador, conforme a tabela a seguir. A (H) 00 01 a 1F 20 a 3F 40 a 5F 60 a 7F 80 a 9F A0 a BF C0 a DF E0 a FF LEDs nenhum 0 0 e 1 0 a 2 0 a 3 0 a 4 0 a 5 0 a 6 todos

Rótulo Mnemônicos Comentários ORG 0BH MOV TH0,#3CH MOV TL0,#0AFH INC R0 ; Endereço da Interrupção do temporizador zero ; Recarga do temporizador zero ; Incrementa contador R0 (usado para definir os LEDs a serem ligados) INICIO: ORG 30H MOV SP,#2FH MOV IE,#82H ; Habilita interrupção do temporizador zero MOV TMOD,#01H ; Temporizador zero no modo 1 MOV TH0,#3CH ; Valor inicial da contagem do temporizador zero para contar 50.000 MOV TL0,#0AFH pulsos. Com um cristal de 12 MHz resulta em 50 ms V0: JB P3.2,$ ; Aguarda em laço infinito, enquanto P3.2 = 1 SETB TR0 ; Dispara o temporizador zero V1: MOV A,R0 ; A recebe o valor atual da contagem em R0 CJNE A,#00H,V2 ; Verifica se A = 00h. Se A =/=00H, desvia para V2 MOV P1,#00H ; Se A = 00H, todos os LEDs permanecem apagados para atualizar o valor de A V2: MOV A,R0 ; A recebe o valor atual da contagem em R0 SUBB A,#20H ; Subtrair 20H do conteúdo de A. A = A - 20H JNC V3 ; Se CY = 0 (A > 20H ou A = 20H), então desvia para V3 MOV P1,#01H ; Se CY = 1 (A < 20H), então liga o LED0 V3: MOV A,R0 ; A recebe o valor atual da contagem em R0 SUBB A,#40H ; Subtrair 40H do conteúdo de A. A = A - 40H JNC V4 ; Se CY = 0 (A > 40H ou A = 40H), então desvia para V4 MOV P1,#03H ; Se CY = 1 (A < 40H), então liga os LEDs 0 e 1 V4: MOV A,R0 ; A recebe o valor atual da contagem em R0 SUBB A,#60H ; Subtrair 60H do conteúdo de A. A = A - 60H JNC V5 ; Se CY = 0 (A > 60H ou A = 60H), então desvia para V5 MOV P1,#07H ; Se CY = 1 (A < 60H), então liga os LEDs 0, 1 e 2 V5: MOV A,R0 ; A recebe o valor atual da contagem em R0 SUBB A,#80H ; Subtrair 80H do conteúdo de A. A = A - 80H JNC V6 ; Se CY = 0 (A > 80H ou A = 80H), então desvia para V6 MOV P1,#0FH ; Se CY = 1 (A < 80H), então liga os LED 0 a 3 V6: MOV A,R0 ; A recebe o valor atual da contagem em R0 SUBB A,#0A0H ; Subtrair A0H do conteúdo de A. A = A - A0H JNC V7 ; Se CY = 0 (A > A0H ou A = A0H), então desvia para V7

MOV P1,#1FH ; Se CY = 1 (A < A0H), então liga o LEDs 0 a 4 V7: MOV A,R0 ; A recebe o valor atual da contagem em R0 SUBB A,#0C0H ; Subtrair C0H do conteúdo de A. A = A - C0H JNC V8 ; Se CY = 0 (A > C0H ou A = C0H), então desvia para V8 MOV P1,#3FH ; Se CY = 1 (A < C0H), então liga os LEDs 0 a 5 V8: MOV A,R0 ; A recebe o valor atual da contagem em R0 SUBB A,#0E0H ; Subtrair E0H do conteúdo de A. A = A - E0H JNC V9 ; Se CY = 0 (A > E0H ou A = E0H), então desvia para V9 MOV P1,#7FH ; Se CY = 1 (A < E0H), então liga os LEDs 0 a 6 V9: MOV A,R0 ; A recebe o valor atual da contagem em R0 MOV P1,#0FFH ; Liga todos os LEDs CJNE A,#0FFH,V1 ; Verifica se A = FFH. Se não for, volta para V1 CLR TR0 ; Se A = FFH, então para o temporizador zero. LJMP V0 ; Volta para V0, para aguardar novo início controlado por P3.2 Descobrindo a Lógica na Vida: Dizem que as famílias Bellini e Cellini, fabricantes de porta-joias da Itália renascentista, tinham uma característica peculiar: os membros da família Bellini sempre escreviam frases verdadeiras nos porta-joias que eles fabricavam; e os membros da família Cellini sempre escreviam frases falsas nos porta-joias que fabricavam. Um dia um comprador se deparou com um conjunto com dois porta-joias com as seguintes inscrições: Quem fabricou cada um dos porta-joias (Bellini pai, Bellini filho, Cellini pai ou Cellini filho)? (0,0) Descreva o raciocínio lógico usado para chegar à resposta apresentada. (0,5) Tabela 2: Lógica de operação do motor CC IN1 IN2 Operação do motor 0 0 Motor parado 0 1 Rotação sentido direto 1 0 Rotação sentido reverso 1 1 Motor parado Tabela 3: Recarga do temporizador-modo 1 Início da Contagem TH0 TL0 5.535 15H 9FH 15.535 3CH AFH 25.535 63H BFH 35.535 8AH CFH 45.535 B1H DFH 55.535 D8H EFH Tabela 4: Alguns Registradores Especiais Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE EA X X ES ET1 EX1 ET0 EX0 IP X X X PS PT1 PX1 PT0 PX0 PSW CY AC F0 RS1 RS0 OV X P TMOD G1 C/T\ M1.1 M0.1 G0 C/T\ M1.0 M0.0 Tabela 5: Endereços das interrupções Interrupção Solicitada Endereço de desvio Reset 0000h INT0\ 0003h Timer/counter 0 000Bh INT1\ 0013h Timer/counter 1 001Bh Canal Serial 0023h