experiência 1 – reset + execução de programas no kit

Propaganda
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”.
Download