O documento descreve um experimento no qual funções como mov e add foram usadas em um programa no simulador edsim51 para o microcontrolador 8051. O mov move valores para variáveis e o add adiciona valores a variáveis. O documento também explica o funcionamento do registrador PSW do 8051, incluindo seus bits de carry flag, auxuliary carry flag e seletores de banco. Um exemplo de um contador de 0 a 59 em assembly usando mov, add e djnz é fornecido.
1. No experimento realizado no laboratório, foi feita uma introdução ao
microcontrolador 8051 por intermédio do programa edsim51. Nele, usamos várias
funções para comandos necessários ao funcionamento do programa proposto.
Uma das funções utilizadas foi o mov, que move um determinado valor para uma
determinada variável, fazendo com que ela assuma o valor especificado pelo projetista.
Outra vista também é o add, que adiciona um valor à uma determinada variável. Com
elas, pudemos trabalhar para que fosse visível a diferença após mexer no registrador PSW.
PSW é um registrador utilizado no 8051 que tem 8 bits. No sétimo bit, existe a
função carry flag, no sexto auxuliary carry flag, no quinto flag 0, no quarto e no terceiro
existem os seletores de banco, que é o que trabalhamos na primeira parte da aula, onde
00 vai para o banco 0, 01 para o banco 1, 10 para o banco 2 e 11 para o banco 3.
Continuando, o bit 2 representa overflow flag, o bit 1 user definable flag e, por fim, o bit
0 parity flag.
Na primeira parte, era pedido para que fosse implementado algum valor à algum
registrador R e observar onde era disposto na memória. Posteriormente, era possível
mudar no psw o banco para o registro na memória, e, assim, a posição mudava. O segundo
exercício proposto foi um contador de 0 a 59 em linguagem assembly no simulador
edsim51. Para ele, foram necessários os comandos mov, add e djnz que é uma condição
de parada quando alguma variável descrita pelo projetista não é nula. Também foi usado
um registrador auxiliar para fazer a contagem de quantas vezes o programa iria rodar.
ORG 0h ; começa na origem
MOV R3,#00h ; move 0 para o registrador R3
MOV R2,#3Bh ; move 59 para o registrador auxiliar R2
MOV A,#00h ; move 0 para o acumulador A
loop: ; começa o loop
MOV R3,A ; move o valor de A para R3
ADD A,#01h ; adiciona 1 ao acumulador A
DJNZR2, loop ; condiçãode parada, caso contrário voltapara o começodo loop
END ; fim do programa
Programa para o contador de 0 a 59.