Académique Documents
Professionnel Documents
Culture Documents
8051 02 PDF
8051 02 PDF
---------------------------------------------------------------------------------------------------------------------
Adressage Immédiat
Ce n'est pas réellement un adressage mais le remplissage d'une case mémoire avec un octet.
Cette opération est caractérisée par la présence du sigle # devant la valeur de l'octet à charger dans
le texte assembleur .
Toute case mémoire interne désignée par son adresse peut être chargée :
Adressage direct
L'adresse n'a que 8 bits (soit 1 seul octet dans l'instruction ) Seule la RAM interne et le SFR
peuvent être adressés de cette manière:
Exemple: MOV A,45H chargement de l'accumulateur avec le contenu de la case d'adresse 45H
(mémoire interne) ( MOV A,45H E5 45)
MOV R0,30H A8 30 Chargement du registre R0 de la banque 0 (par défaut) avec
le contenu de la case 30H
MOV A,P1 E5 90 nous avons vu plus haut que le port 1 était matérialisé
dans la case 90H de la RAM interne. L'assembleur comprend la dénomination P1
pour désigner le port 1
ANL A,78 55 4E (4EH=78) Une opération ET est effectuée entre le contenu
de A et le contenu de la case mémoire 78 (4EH) (Interne)
L'instruction spécifie un registre qui contient l'adresse .Les mémoires internes et externes
peuvent être mises en jeu par ce type d'adressage. Dans le cas d'un adressage sur 8 bits le registre
d'index peut être l'un des 2 registres R0 ou R1 choisi dans la "banque" activée,
L'adressage indirect est désigné dans l'assembleur par le signe at @
On notera que les cases du SFR ne sont pas accessibles par adressage indirect
Exemple: MOV A,@R0 Charge l'accumulateur avec le contenu de la case dont l'adresse est le
contenu du registre R0 de la banque active.
MOV @R1,P1 Lecture du port P1 et transfert de son contenu dans la case mémoire
dont l'adresse est le contenu du registre R1 de la banque active.
ANL A,@ R0 ((R0)) ∩ (A)⇒(A) ∩ désignant le NAND
L'adressage sur 16 bits ne concerne bien sûr que la mémoire extérieure. Le registre d'index
est le Data Pointer Register DPTR localisé en 82H(DPL) et 83H(DPH) dans le SFR .
--------------------------------------------------------- 7 ----------------------------------------------------------
Le microcontroleur 8051
---------------------------------------------------------------------------------------------------------------------
Une page de 256 octets peur être atteinte en utilisant le registre R0 (ou R1 )
Les signaux RD ou WR ( suivant le cas, ici WR) sont créés par le CPU , l'adresse A0
A7 est envoyée sur P0. et mémorisée dans le latch d’adresses. Le port P2 n’est pas touché,s’il a été
préalablement chargé il définit l’octet haut d’une mémoire connectée sur P2-P0 , donc une page de
256 octets.
Exemple: Si (R0)= A0
MOV P2,43H
MOVX A,@R0 Charge l'accumulateur avec le contenu de la case 43A0H
La mémoire de programme (ROM) peut être lue par des instructions spéciales MOVC.
Dans ce cas l'adresse lue est la somme du contenu initial de l'accumulateur et d'un registre de base
qui est le DPTR ou le compteur programme lui même (PC).
Exemple: ADD A,R4 qui fait l'addition de (A) et du contenu du registre R4 de la bank activée
a pour code machine 00101rrr ou rrr=100 numéro du registre soit dans ce cas :
00101100B= 2CH
Exemple: INC R3 incrément de R3 a… pour code 00001rrr soit ici 00001011 ou 0DH
Adressage de Bits
Le 8051 possède un processeur de bits qui travaille sur des bits individuels. Pour ce
processeur l'Accumulateur est C.
Les bits de certains registres sont ainsi accessibles par une adresse sur 1 octet.
D'abord les bits de la zone réservée en début de RAM interne (16 octets de 20H à 2FH ),
ces 128 bits ont des adresses qui vont de 00 (Bit 0 de la case 20H) à 7FH (bit 7 de 2FH).
Sont également accessibles de cette façon les bits des cases du SFR dont l'adresse en
hexa. se termine par 0 ou 8, 80H 88H 90H 98H etc...Leur adresse est constituée par:
5 bits de fort poids qui sont les mêmes que ceux de l'adresse de la case
3 bits qui précisent la position du bit dans la case.
Ainsi le bit 5 de la case 90H a pour adresse 10010 101 soit 95H Le bit 6 de la case mémoire C8 a
pour adresse 11001 110 soit 0CEH
--------------------------------------------------------- 8 ----------------------------------------------------------
Le microcontroleur 8051
---------------------------------------------------------------------------------------------------------------------
Il n'y a pas d'adressage immédiat de bit pour lequel les seules valeurs seraient #0 ou #1
mais deux instructions de mise à 0 et 1
--------------------------------------------------------- 9 ----------------------------------------------------------
Le microcontroleur 8051
---------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------- 10 ----------------------------------------------------------