MICROPROCEADORE E MICROCOTROLADORE PROVA 2 (Tema: Microcontrolador 8051) 1. Tema: programação geral do microcontrolador 8051. Valor: 2,5 A Figura a seguir mostra um carro com quatro sensores de obstáculos (nível baixo na presença de obstáculo) e dois motores de corrente contínua. Faça um programa (livremente), em assembly do 8051, para acionar os motores de forma que o carro se desloque desviando dos obstáculos. Quando não há obstáculo, o carro deve se deslocar para a frente (sensor 0 localizado na parte da frente). Explique a lógica desenvolvida. Todos os sensores devem ser considerados. 1 M2 0 istema de controle Bateria M1 3 Tabela 1: Pinos do Microcontrolador 0 1 2 3 ensores (P1.0) (P1.1) (P1.2) (P1.3) Motor M1 Motor M2 ituação do motor P3.4 (M11) P3.5 (M12) P3.0 (M21) P3.1 (M22) 0 0 0 0 Motor parado 0 1 0 1 Rotação horária 1 0 1 0 Rotação anti-horária 1 1 1 1 Motor parado 2 Uma das Respostas esperadas: IÍCIO Configurações básicas 0 = 1? 1 = 1? Para direita M1 (anti-horário) Para direita M1 (anti-horário) 0 = 0? 1 = 0? 2 = 1? 3 = 1? Para Frente M1 (horário) Para esquerda M1 (horário) M2 (horário) 3 = 0? Para Frente M1 (horário)
0 EQU P1.0 V1: JB 1,V2 1 EQU P1.1 ETB M11 ; M1 anti-horário 2 EQU P1.2 CLR M12 3 EQU P1.3 ETB M21 ; M2 anti-horário M11 EQU P3.4 CLR M22 M12 EQU P3.5 JB 1,$ ; aguarda não detectar 1 M21 EQU P3.0 V2: JB 2,V3 M22 EQU P3.1 CLR M11 ; M1 horário ETB M12 ORG 00H ETB M21 ; M2 anti-horário LJMP IICIO CLR M22 V3: JB 3, FRETE ORG 30H CLR M11 ; M1 horário IICIO: MOV P,#2FH ETB M12 CLR M21 ; M2 horário V1: JB 0,V1 ETB M22 ETB M11 ; M1 anti-horário JB 3,$ ; aguarda não detectar 3 CLR M12 FRETE: CLR M11 ; M1 horário ETB M21 ; M2 anti-horário ETB M12 CLR M22 ETB M21 ; M2 anti-horário JB 0,$ ;aguarda não detectar 0 CLR M22 JMP V1 ED 2. Tema: Interrupções do microcontrolador 8051. Valor: 2,5 Faça um programa, em linguagem assembly do 8051, onde as interrupções externas 0 e 1 são utilizadas, por transição, para acionar um motor de passo. Quando a interrupção externa 0 é solicitada, o motor de passo gira 180º no sentido horário (direita); quando a interrupção externa 1 é solicitada o motor gira duas voltas completas no sentido anti-horário (esquerda). Cada passo do motor corresponde a 5º. O motor está conectado ao nibble inferior da porta P2. ORG 00H IT0: MOV R0,#36 LJMP IICIO V1: MOV P2,A LCALL ATRAO ORG 03H RR A JMP IT0 DJZ R0,V1 Valor: 0,5 ORG 13H JMP IT1 IT1: MOV R1,#144 V2: MOV P2,A ORG 30H LCALL ATRAO IICIO: MOV P,#2FH RL A MOV IE,#85H DJZ R1,V2 MOV TCO,#05H MOV A,#11H JMP $ ATRAO:... RET ED
3. Tema: Temporizadores do microcontrolador 8051. Valor: 2,5 A Tabela 2 mostra um programa, em assembly do 8051. O cristal oscilador é de 12 MHz. Há um conjunto de 8 Leds conectados à porta P1. Tabela 2: programa em linguagem Assembly do 8051 ORG 00H V1: MOV TH0,#0D8H LJMP IICIO MOV TL0,#0EFH DJZ R0,V2 ORG 0BH MOV R0,#100 JMP V1 ORL A,#01H MOV P1,A (III) ORG 30H RL A IICIO: MOV P,#2FH CJE A,#0FFH,V2 (I) MOV TMOD,#01H MOV A,#00H MOV IE,#82H (II) MOV TH0,#0D8H V2: OP MOV TL0,#0EFH MOV A,#00H MOV R0,#100 ED ETB TR0 JMP $ Analise o programa da Tabela 2 e responda às questões de (a) a (d). (a) Qual a configuração resultante das instruções indicadas em (I)? (0,5) O temporizador 0 está configurado para operar no modo 1 (16 bits) e o temporizador 2, no modo 0 (13 bits). A interrupção do temporizador 0 está habilitada. (b) Qual o tempo resultante de cada contagem do temporizador, com a recarga indicada em (II)? (0,6) A recarga de TH0/TL0 é D8EFH, que corresponde ao valor decimal 55.535, de acordo com a Tabela 7. Portanto, a contagem do temporizador 1 será de 55.535 a 65.535, que corresponde a 10.000 pulsos. endo cada pulso de 1 µs (clock de 12 MHz frequência do temporizador = 1 MHz), então cada contagem do temporizador corresponde a 10.000 µs = 10 ms. (c) Qual o efeito, sobre os Leds, da execução das instruções indicadas em (III)? (0,7) O valor inicial de A é A = 0000 0000b. Assim, na primeira passagem por (III), o valor de A tornase 0000 0001b. Então ocorre uma rotação à esquerda de A, que passa para A = 0000 0010b. Assim, na segunda operação OU (ORL A,#01H), o valor de A torna-se A = 0000 0011b. ovamente há uma rotação à esquerda de A e outra operação OU, fazendo A = 0000 0111. Ao final de 8 operações OU/rotação, tem-se A = 1111 1111b. Portanto, os Leds acendem, um a um, até ficarem todos acesos. Depois de todos acesos, a operação CJE A,#0FFH,V2 faz o processamento ir para a linha seguinte. Então começa tudo de novo. (d) De quanto em quanto tempo as instruções indicadas em (III) são executadas? (0,7)
A cada 10 ms (final da contagem do temporizador 1) o processamento é desviado para V1, onde o registrador R0 (com valor inicial de 100 decimal) é decrementado. Enquanto R0 não for zero, as instruções em (III) não são executadas. Ou seja, (III) só será executada após a centésima passagem pela rotina iniciada em V1. Assim, (III) será executada a cada 100 x 10 ms = 1 s. 4. Tema: erial do microcontrolador 8051. Valor: 2,5 Faça um programa, em assembly do 8051, onde caracteres recebidos via serial do microcontrolador (no modo 1) são usados para acionar uma lâmpada (pino P1.7). Escolha, na Tabela 8, um caractere qualquer para ligar a lâmpada e outro para apagar. A taxa de comunicação deve ser de 4800 bps e o cristal oscilador, 11,0592 MHz. Use interrupção da recepção serial. ORG 00H ETB TR1 LJMP IICIO ETB RE CLR RI ORG 23H MOV A,BUF V1: CJE A,#CHAR1,V2 CLR RI ETB P1.7 ; liga lâmpada V2: CJE A,#CHA2,V1 ORG 30H CLR P1.7 ; apaga lâmpada IICIO: MOV P,#2FH JMP V1 MOV TMOD,#20H MOV CO,#40H ED MOV IE,#90H MOV TH1,#0FAH MOV TL1,#0FAH Questão opcional (Justifique sua resposta) Valor: 1,0 Uma mulher chamada Portia (personagem de hakespeare), resolveu que se casaria com o primeiro homem que passasse por dois testes. O segundo teste é dado a seguir: havia três caixas em uma sala e em uma delas estava o retrato de Portia. O candidato a esposo deveria acertar em qual das caixas estava o retrato, seguindo as frases que estavam escritas em cada uma delas. Portia explicou que em uma das caixas as duas frases eram verdadeiras; em outra as duas frases eram falsas e na terceira uma frase era falsa e outra verdadeira. Caixa A Caixa B Caixa C 1. O retrato não está nesta caixa 2. Ele está na caixa B Em qual caixa está o retrato de Portia? 1. O retrato não está na caixa A 2. Ele está na caixa C 1. O retrato não está nesta caixa 2. Ele está na caixa A Uma das maneiras de resolver é supondo que esteja em A, depois em B, depois em C e, para cada suposição, verificar as frases de cada caixa. uposição 1: Está na Caixa A Frases da Caixa A: F e F Frases da Caixa B: F e F Frases da Caixa C: V e V
e o retrato estivesse na caixa A, então todas as frases das caixas A e B seriam falsas, o que contraria a afirmação de Portia. Conclusão: não está na Caixa A. uposição 2: Está na Caixa B Frases da Caixa A: V e V Frases da Caixa B: V e F Frases da Caixa C: V e F e o retrato estivesse na caixa B, então as frases das caixas B e C seriam, respectivamente, V e F, o que contraria a afirmação de Portia. Conclusão: não está na Caixa B. uposição 3: Está na Caixa C Frases da Caixa A: V e F Frases da Caixa B: V e V Frases da Caixa C: F e F Há uma caixa com ambas as frases verdadeiras (B); uma com ambas falsas (C) e uma com uma verdadeira e outra falsa (A), conforme a afirmação de Portia. Conclusão: o retrato está na Caixa C. Informações Complementares Tabela 3: Alguns Registradores Especiais Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 TCO TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE EA X X E ET1 EX1 ET0 EX0 IP X X X P PT1 PX1 PT0 PX0 PW CY AC F0 R1 R0 OV X P TMOD G1 C/T\ M1.1 M0.1 G0 C/T\ M1.0 M0.0 CO M0 M1 M2 RE TB8 RB8 TI RI Tabela 4: End. interrupções Interrupção olicitada Endereço de desvio Reset 0000h IT0\ 0003h Timer/counter 0 000Bh IT1\ 0013h Timer/counter 1 001Bh Canal erial 0023h Tabela 5: Taxas de transmissão mais comuns Timer 1 Baud Rate (bits/seg) Freq. Osc. (MHz) MOD C/Tbarra Modo Valor Recar. Modo 0 Máx: 1MHz 12 X X X X Modo 2 Máx: 375K 12 1 X X X Modo 1, 3: 62,5K 12 1 0 2 FFh 19,2K 11,059 1 0 2 FDh 9,6K 11,059 0 0 2 FDh 4,8K 11,059 0 0 2 FAh 2,4K 11,059 0 0 2 F4h 1.2K 11,059 0 0 2 E8h 137,5 11,059 0 0 2 1Dh 110 6 0 0 2 72h 110 12 0 0 1 FEEBh Tabela 6: Tabela ACII parcial Caractere Código Código Código Código Código Código Caractere Caractere Hexadecimal decimal Hexadecimal decimal Hexadecimal decimal 0 30 48 A 41 65 a 61 97 1 31 49 B 42 66 b 62 98 2 32 50 C 43 67 c 63 99 3 33 51 D 44 68 d 64 100 4 34 52 E 45 69 e 65 101 5 35 53 F 46 70 f 66 102 6 36 54 G 47 71 g 67 103
Tabela 7: Valores Decimais e Hexadecimais Valor Hexadecimal Valor Decimal 3CAF 15535 63BF 25535 8ACF 35535 B1DF 45535 D8EF 55535 FFFF 65535