exercicios_8051

Upload: vinicius-vasconcelos

Post on 17-Oct-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

  • Exerccios - 8051

    1) Fazer um programa em assembly do 8051 para encontrar o valor FFH numa tabela iniciada em 500H com 50 elementos e substitu-lo por 00H. Iniciar o programa no endereo 40H.

    2) Fazer um programa em assembly do 8051 para ler a tecla CH0 da figura abaixo. A condio inicial LED0=1, LED1=0, LED2=0, LED3=0. Se o valor lido for 0, deslocar os LEDs em um sentido. Se o valor lido for 1 deslocar no sentido contrrio. Colocar comentrios no programa. Iniciar o programa na posio 40H.

    3) Fazer um software em assembly do 8051 para copiar uma tabela com 50 valores iniciada no endereo 00H da RAM externa para o endereo 50H da mesma RAM. Colocar comentrios no programa. Iniciar o programa no endereo 40H.

    4) O conversor A/D de aproximaes sucessivas da figura abaixo converteu um valor de tenso (Vin=3,2V) em um valor digital que est disponvel em P1 (endereo 90H). Mostrar qual o valor digital convertido e fazer um software em assembly do 8051 para armazenar esse valor lido na posio 200H da RAM externa. Iniciar o software na posio 50H.

    5) O conversor A/D de aproximaes sucessivas da figura abaixo converteu um valor de tenso (Vin=2,7V) em um valor digital que est disponvel nos 4 bits menos significativos de P1 (endereo 90H). Mostrar qual o valor digital convertido e fazer um software em assembly do 8051 para armazenar esse valor lido na posio 100H da RAM externa. Iniciar o software na posio 40H.

    6) Usando o circuito da questo anterior, fazer um software em assembly do 8051 para ler 100 valores do conversor A/D de aproximaes sucessivas e armazen-los a partir do endereo 200H da RAM. Iniciar o software na posio 50H.

  • 7) Fazer um software em assembly do 8051 para ler o dado armazenado no endereo 200H da RAM e coloc-lo no conversor D/A. Mostrar o valor Vout da tenso de sada do conversor D/A. Iniciar o software na posio 40H.

    Endereo Contedo 200H 0CH

    8) Fazer um programa em assembly do 8051 para ler o teclado (CH0-CH3) da figura abaixo e colocar o valor lido nos LEDs (LED0-LED3). Colocar comentrios no programa. Iniciar o programa na posio 40H.

    9) Comentar cada linha dos softwares abaixo e, se existirem erros, apontar e corrigir.

    a) ORG 40H

    MOV R0, #8H MOV DPTR, #102H MOVX A, @DPTR INICIO: MOV R1, A ANL A, #01H CJNE A, #01, ZERO SETB 90H SJMP CONTINUA ZERO: CLR 90H CONTINUA: ACALL PULSO MOV A, R1 RR A DJNZ R0, INICIO LOOP: SJMP LOOP

  • PULSO: SETB 91H NOP CLR 91H RET END

    b) ORG 0000H SJMP INICIO INICIO: MOV R0, #100 MOV DPTR, #100H LOOP: JB 0B5H, GRAVA JNB 0B6H, LOOP VOLTA: MOVX A, @DPTR MOV 90H, A INC DPTR DJNZ R0, VOLTA LJMP 00H GRAVA: MOV A, 90H MOVX @DPTR, A INC DPTR DJNZ R0, GRAVA LJMP 00H END

    10) Mostrar o resultado nos registradores e na RAM aps a execuo do programa abaixo:

    ORG 40H MOV R0, #5H MOV R1, #55H MOV DPTR, #200H VOLTA: MOVX A, @DPTR XRL A, R1 INC DPTR DJNZ R0, VOLTA MOVX @DPTR, A CPL A LOOP: SJMP LOOP END

    Valores antes da execuo do programa

    Valores aps a execuo do programa

    DPTR 1F20H A 20H

    R0 35H Registradores R1 1FH

    200H 0CH 201H 12H 202H 01H 203H 35H 204H 7FH

    RAM

    205H 00H

    11) Programar o Timer 0 do microcontrolador 8051 para gerar uma forma de onda quadrada de 1 Hz. Use o pino P1.0 como sada. Usar interrupo por overflow do Timer 0. Oscilador = 12 MHz.

    12) Programar o 8051 do circuito abaixo para ler o teclado e mostrar o cdigo da tecla apertada nos leds. Quando uma tecla for apertada, uma interrupo deve ser gerada (Usar interrupo externa 0 sensvel borda de descida). Oscilador = 12 MHz.

  • 13) O circuito abaixo um controle remoto. Programar o 8051 para ligar ou desligar o rel a cada toque no boto do transmissor. Oscilador = 12 MHz.

    14) Programar o 8051 do circuito abaixo para que quando for acionada a chave, o rel seja acionado e depois de 10 segundos o rel seja desligado (temporizador). Oscilador = 12 MHz.

    15) Programar o 8051 abaixo para ler uma frequncia no pino INT0. Usar interrupo por borda de descida. Enviar o valor da frequncia continuamente pelo canal serial a uma taxa de 1200 bps. Oscilador = 12 MHz.