Prova Substitutiva Uma Solução Aluno: Matrícula: Uso de Interrupções e do Temporizador 1. Faça um programa (usando o assembly do 8051) para acionamento de um motor de corrente contínua, com as seguintes características: (a) Programa principal: [2,0] Associa variável VELOC ao registrador 10H Associa variável AUX ao registrador 11H Configura temporizador zero no modo 1, com interrupção, para contar 50 ms (cristal de 12 MHz); Configura interrupção externa 0 por transição e interrupção do temporizador zero; Verifica pino P3.7; se estiver em nível lógico alto, fica aguardando em um loop infinito; se em nível lógico baixo liga o motor, dispara o temporizador zero e mostra continuamente a velocidade na porta P1. (b) Interrupção externa zero: acumula contagem de velocidade no registrador AUX; [1,0] (c) Interrupção do temporizador zero: transfere para a variável VELOC o conteúdo da variável AUX, zera a variável AUX e recarrega os dados que fazem o temporizador zero contar 50ms. [1,0] Observações: (a) O motor CC é acionado fazendo os pinos P3.4 = 0 e P3.5 = 1. (b) Para gerar um tempo de 50 ms (com cristal de 12 MHz) o início da contagem deve ser 15535 = 3CAFH. Solução: Rótulo Mnemônico Comentário $MOD51 AUX EQU 10H VELOC EQU 11H ORG 00H LJMP ALFA ORG 03H INC AUX RETI ORG 0BH LJMP TEMPZERO ; INTERRUPÇÃO ZERO ; INTERRUPÇÃO DO TEMPORIZADOR ZERO ALFA: ORG 30H MOV SP,#2FH MOV TMOD,#01H ; TEMP. ZERO NO MODO 1 MOV TH0,#3FH MOV TL0,#0AFH ; TEMP. ZERO CONTA A PARTIR DE 3CAFH MOV IE,#83H ; HABILITA INTERRUPCÃO EXT. ZERO E DO TEMP. ZERO MOV TCON,#01H ; INT. EXT. ZERO POR TRANSIÇÃO V1: CLR TR0 ; PARA TEMPORIZADOR ZERO CLR P3.4 CLR P3.5 ; PARA MOTOR
CHAVE: JB P3.7,V1 ; SE P3.7 = 1, FICA AGUARDANDO COM MOTOR PARADO CLR P3.4 SETB P3.5 ; SE P3.7 = 0, LIGA MOTOR SETB TR0 ; DISPARA TEMPORIZADOR ZERO. TEMPO DE AMOSTRAGEM DE VELOC MOV P1,VELOC ; MOSTRA VELOCIDADE EM P1 SJMP CHAVE ; VOLTA PARA VERIFICAR ESTADO DA CHAVE LIGA/DESLIGA TEMPZERO: MOV VELOC,AUX ; TRANSFERE PARA VELOC O CONTEÚDO DE AUX MOV AUX,#00 ; ZERA AUX MOV TH0,#3FH MOV TL0,#0AFH RETI ; RECARREGA VALOR INICIAL DE TH0 E TL0 END Uso de Comunicação Serial 2. Analise o funcionamento do programa a seguir e responda às questões. O cristal oscilador é de 11,0592MHz. Rótulo Mnemônico Rótulo Mnemônico $MOD51 V3: MOV A,#30H ORG 00H V3B: MOV SBUF,A LJMP INICIO JNB TI,$ CLR TI Parte 3 ORG 30H INC A INICIO: MOV SP,#2FH CJNE A,#7BH,V3B MOV SCON,#40H MOV TMOD,#20H MOV TH1,#0FAH Parte 1 V4: MOV DPTR,#TABELA MOV R7,#00H MOV R7,#00H SETB TR1 V4B: MOV A,R7 CLR TI MOVC A,@A+DPTR CJNE A,#0FFH,V5 V1: JB P3.7,V2 Parte 4 SJMP V3 V5: MOV SBUF,A Parte 2 V2: JNB P3.5,V4 JNB TI,$ CLR TI INC R7 SJMP V4B TABELA: DB TABELA ASCII, 0FFH END Perguntas: (a) Que configurações são estabelecidas na Parte 1? [1,0] (b) Como funciona a Parte 2? [1,0] (c) Qual a finalidade da Parte 3? [1,0] (d) Qual a finalidade da Parte 4? [1,0]
Goiânia, 05 de março de 2013. Prof. José Wilson Lima Nerys Solução: (a) Que configurações são estabelecidas na Parte 1? A comunicação serial é configuradaa para operarr no modo 1 (assíncronoo de 8 bits) com taxa de comunicaçãoo de 4800 bps (temporizador 1 configurado para operar no modo de recarga automática, com valor de recarga TH1 = 0FAH). O temporizador 1 é disparado (SETB TR1) e a transmissão serial é habilitada (CLR TI). (b) Como funciona a Parte 2? O nível lógico dos pinos P3.7 e P3.5 é verificado. Se P3.7 = 1, então verifica o pino P3. 5; caso contrário, se P3.7 = 0, desvia para V3. Se P3.5 = 1, então verifica o pino P3. 7; caso contrário, se P3.5 = 0, desvia para V4. (c) Qual a finalidade da Parte 3? Envia para a porta serial uma contagem hexadecimal de 30H a 7AH. Verificando a Tabela ASCII fornecida no final da prova, observa-se que são enviados os caracteres que começamm no número 0 até a letra z. Quando a contagem chega a 7B, o processamento volta para V1. (d) Qual a finalidade da Parte 4? Envia para a porta serial o texto TABELA ASCII. Quando o caracteree recebido da TABELA for FFH, o processamento volta para V1. Mapeamento de Memória 3. A Figura a seguir mostra o circuito (incompleto) de seleção usado para acionar alguns periféricos, em uma montagem com mapeamento de memória. (a) Complete a figura com os circuitos integrados que julgar necessários e as linhas de endereço para seleção e para habilitação do CI 74138, de modo que cada região corresponda a 2 Kbytes. Mostre o procedimentoo adotado. (b) Faça um programa para gerar uma onda quadrada no bit 0 período da onda quadradaa fica a critério do programador. do primeiro endereço da região 2. O Solução: (a) 2Kbytes = 2048 = 2 11 são necessárias 11 linhas de 11 linhas de endereços: A10 A9... AD1 AD0 endereço para obter-se uma região de 2 Kbytes. Escola de Engenharia Elétrica, Mecânica e de Computaçãoo (EMC) Universidade Federal de Goiás (UFG)
Goiânia, 05 de março de 2013. Prof. José Wilson Lima Nerys Mapa de endereços: Hab. 74138 Seleção C B A A 15 A 14 A 13 A 12 A 11 A 10 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 A 9 A 8 Intervalos de cada região de 2K (binário e hexadecimal) AD 7 AD 6 AD 5 Regiões AD 4 AD 3 AD 2 AD 1 AD 0 0000 H 07FF H 0800 H 0FFF H 1000 H 17FF H 1800 H 1FFF H 2000 H 27FF H 2800 H 2FFF H 3000 H 37FF H 3800 H 3FFF H 0 1 2 3 4 5 6 7 Figura completa: (b) Da tabela de mapeamento verifica-se que a região 2 começa no endereço 1000H. Onda quadrada no bit 0 do endereço 1000H Rótulo Mnemônico Comentário $MOD51 ORG 00H LJMP ALFA ALFA: ORG 30H MOV SP,#2FH MOV DPTR,#1000H ; ENDEREÇO INICIAL DA REGIÃO 2 V1: MOV A,,#00H MOVX @DPTR,A MOV A,,#01H MOVX @DPTR,A END ; A = 0 ; ENVIA VALOR DE 0 PARA ENDEREÇO INICIAL DA REGIÃO 2 ; A = 1 ; ENVIA VALOR DE 1 PARA ENDEREÇO INICIAL DA REGIÃO 2 ; VOLTA PARA V1. O RESULTADO É UMA ONDA QUADRADA NO BIT 0 Escola de Engenharia Elétrica, Mecânica e de Computaçãoo (EMC) Universidade Federal de Goiás (UFG)
----------------------------------------------- Obs. Geral: O valor de cada questão é 4,0, mas a nota máxima computada será 10,0. ----------------------------------------------- INFORMAÇÕES ÚTEIS Alguns Registradores Especiais TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TMOD G1\ C\T M11 M01 G0\ C\T M10 M00 IE EA X X ES ET1 EX1 ET0 EX0 IP X X X PS PT1 PX1 PT0 PX0 PSW CY AC F0 RS1 RSV X P SCON SM1 SM2 SM3 REN TB8 RB8 TI RI Taxas de Comunicação mais comuns Timer 1 Baud Rate (bits/seg) Freq. Osc. (MHz) SMOD 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 2 FDh 4,8K 11,059 2 FAh 2,4K 11,059 2 F4h 1.2K 11,059 2 E8h 137,5 11,059 2 1Dh 110 6 2 72h 110 12 1 FEEBh Instruções do 8051 ACALL CJNE DJNZ JNB MOVC POP RRC ADD CLR INC JNC MOVX RET SETB ADDC CPL JB JNZ MUL RETI SJMP AJMP DAA JBC JZ NOP RL SUBB ANL DEC JC LJMP ORL RLC SWAP DIV JMP MOV PUSH RR XCH XCHD Endereços das Interrupções Interrupção Endereço Reset 0000H Externa 0 0003H Temporizador 0 000BH Externa 1 0013H Temporizador 1 001BH Serial 0023H
Tabela ASCII Parcial