MM – Microprocessadores e Microcontroladores – Roteiro da Experiência 1 EXPERIÊNCIA 1 – RESET + EXECUÇÃO DE PROGRAMAS NO KIT Parte I – Fundamentos Teóricos a) Reset A iniciação (reset) do 8051 é obtida aplicando-se tensão em nível alto em seu pino RST (pino 9), por pelo menos 24 períodos do oscilador (“clock”). No kit SDM 9413, isso ocorre quando o equipamento é energizado (graças a um circuito “limpa ao ligar”, composto por um capacitor ligado ao nível alto, e um resistor ligado na terra), ou quando é acionada a tecla RESET. No reset do 8051, a maioria de seus registradores especiais é zerada, com algumas exceções, conforme indica a Tabela 1. Registrador ACC B DPTR IE IP P0-P3 Valor após reset Registrador Valor após reset Registrador 00H PC 0000H TCON 00H PCON 0XXX0000B TMOD 0000H PSW 00H TH0 0XX00000B SBUF indeterminado TH1 XXX00000B SCON 00H TL0 FFH SP 07H TL1 Tabela 1 – Valores dos registradores especiais após o reset Valor após reset 00H 00H 00H 00H 00H 00H b) Execução de programas no kit Para um programa ser executado no kit, seu código deve ser carregado na memória RAM externa, a partir do endereço 5000H, e o seu endereço inicial de execução deve ser carregado no registrador PC. O programa monitor do kit oferece recursos para essas duas operações. Parte II – Roteiro Experimental a) Reset a1) Leia as informações do “Manual de Experiências” do Módulo SDM 9431, capítulo 2, itens 2.1, 2.2 e 2.3 (pág. 2-1 a 2-7, executando as instruções ali existentes. a2) Acione a tecla RESET do kit, para provocar um reset no 8051. a3) Preencha a Tabela 2. Utilize algarismos hexadecimais (cada algarismo representado 4 bits). Registrador Valor após reset Registrador Valor após reset PC B ACC DPTR PSW DPH SP DPL Tabela 2 – Valores de alguns registradores especiais após o reset, obtidos experimentalmente a3.1) Alguns dos registradores da Tabela 2 possuem uma tecla exclusiva, no kit, que permite a visualização (e alteração) de seus valores (por exemplo, PC). O registrador B não possui tal tecla. O que você fez para visualizá-lo? b) Execução de programas no kit b1) Insira o programa de teste da Tabela 3 na memória externa do kit, a partir de seu endereço 5000H, utilizando a tecla INS/VER (selecione a memória externa, e endereço inicial 5000H). Explicações sobre a tecla INS/VER estão no item 2.4 (pág. 2-8) do “Manual de Experiências”. Endereço Conteúdo 5000H 75H 81H 2FH 5003H 12H 10H AAH 5006H 12H 10H 02H 5009H 33H 500AH 40H 09H 500CH 13H 500DH 12H 10H AAH 5010H 12H 10H E7H 5013H 80H F1H 5015H 12H 01H C0H Tabela 3 – Programa de teste Responda: b1.1) Em que base estão os valores da Tabela 3 (tanto os endereços quanto os seus conteúdos, isto é, o código de máquina do programa de teste) ? b1.2) A letra “H” precisa ser digitada no kit, quando o programa está sendo inserido? b1.3) De acordo com suas respostas anteriores, deduza: qual a base normalmente utilizada para o fornecimento de valores numéricos ao kit? MM – Microprocessadores e Microcontroladores – Roteiro da Experiência 1 b2) Execute o programa inserido anteriormente na memória RAM externa do kit, utilizando a tecla EXEC e indicando o endereço inicial 5000H. Explicações sobre a tecla EXEC estão no item 2.4 (pág. 2-8) do “Manual de Experiências”. Após disparar a execução do programa (pela tecla ENTER), teste-o pressionando várias teclas hexadecimais (0 a 9 ou A a F), e, quando for terminá-lo, uma outra tecla qualquer (que não seja RESET nem INTER). Responda: b2.1) O que faz o programa? Faça uma breve descrição do seu funcionamento. Para as 3 próximas questões, considere as seguintes opções: - pressionar ENTER - pressionar EXEC ENTER - pressionar EXEC 5 0 0 0 ENTER - inserir novamente o programa, e pressionar EXEC 5 0 0 0 ENTER b2.2) O que é preciso fazer para executar novamente o programa, quando ele é encerrado pelo acionamento de uma tecla não hexadecimal? b2.3) Idem, pelo acionamento da tecla RESET? b2.4) Idem, pelo desligamento e religamento do kit? b2.5) Com base nas suas respostas anteriores, deduza: o que acontece com o código de um programa armazenado na memória do kit, quando a tecla RESET é acionada? EXPERIÊNCIA 1 – QUESTÕES ADICIONAIS 1) O que significa “PC”? Qual a função desse registrador? 2) O acumulador (registrador ACC) é “bit endereçável”, isto é, pode-se verificar e alterar cada um de seus bits, individualmente. Qual a seqüência de teclas a serem apertadas para “setar” o bit 5 desse registrador? (“dica”: use tecla RBIT) 3) Como saber um registrador especial qualquer do 8051 é “bit endereçável”, conhecendo-se apenas o seu endereço? 4) O que significa “PSW”? O que indica o bit 2 desse registrador? 5) O que deve ser feito no registrador PSW para que seja selecionado o banco 2 de registradores R0-R7? 6) O que significa “SP”? Quando SP tem o valor 7, ele aponta o registrador R7 do banco 0; por que, nesse caso, R7 não será alterado, quando for “empilhado” um valor (por exemplo, o endereço de retorno, depois de uma chamada de sub-rotina)? 7) Como observar o conteúdo do registrador SP, sem utilizar a tecla SP? (“dica”: use tecla REG_ESP) 8) O que significa “DPTR”? Qual a função desse registrador? 9) Apresente uma forma para alterar o valor do registrador DPTR para 55AAH, sem utilizar a tecla DPTR. 10) Complete as lacunas: “Os registradores utilizados como ponteiro de memória (PC e DPTR), ao contrário dos demais registradores, têm ____ bits. Portanto, sendo eles utilizados como endereços de memória, podem endereçar até 2__ bytes, isto é, ____ Kbytes”.