Vous êtes sur la page 1sur 13

1) Opérations arithmétiques:

MUL AB cette instruction multiplie les contenus des registres A et B


puis range le résultat sur 16bits (le registre B contiendra les 8 bits
poids forts et le registre A contiendra les 8 bits poids faibles)

DIV AB cette instruction divise le contenu du registre A par celui du


registre B puis range le quotient dans le registre A et le reste dans le
registre B
2) sauts
DJNZ

XX

XX
MOV R2, # 3
XX
XX
BOUCLE: XX
XX
XX
DJNZ R2, BOUCLE
XX
XX
XX
XX
JZ
XX
XX
NUL: XX
XX
XX
JZ NUL
XX
XX
XX
XX
JNZ
XX
XX
XX
JNZ NON NUL
XX
XX
NON NUL: XX
XX
CJNE

XX
XX
XX
suite: XX
XX
XX
CJNE R2, #9, suite
XX
XX
XX
XX
JB
XX
XX
XX
JB ACC.0, suit
XX
XX
suit: XX
XX
3) Opérations logiques :

ANL A, <octet> cette instruction fait le ET logique du contenu du registre A avec un octet
Exemple : ANL A , #2Ch
A (avant exécution de l’instruction) = a7 a6 a5 a4 a3 a2 a1 a0
2Ch = 0 0 1 0 1 1 0 0
A (après exécution de l’instruction ANL A , #2Ch) = 0 0 a5 0 a3 a2 0 0
Remarque : cette instruction permet de forcer, dans un octet, certains bits à 0
ORL A, <octet> cette instruction fait le OU logique du contenu du registre A avec un octet
Exemple : ORL A , #4Eh
A (avant exécution de l’instruction) = a 7 a6 a5 a4 a3 a2 a1 a0
4Eh = 0 1 0 0 1 1 1 0
A (après exécution de l’instruction ORL A , #4Eh) = a7 1 a5 a4 1 1 1 a0

Remarque : cette instruction permet de forcer, dans un octet, certains bits à 1


XRL A, <octet> cette instruction fait le OU EXCLUSIF du contenu du registre A avec un octet
Exemple : XRL A , #4Eh
si A (avant exécution de l’instruction) = 0 1 1 1 0 1 1 1
4Eh = 0 1 0 0 1 1 1 0
A (après exécution de l’instruction XRL A , #4Eh) = 0 0 1 1 1 0 0 1
RLA A
A (avant exécution de l’instruction) = a 7 a6 a5 a4 a3 a2 a1 a0
A (après exécution de l’instruction RLA) = a 6 a5 a4 a3 a2 a1 a0 a7

RLCA
A (avant exécution de l’instruction) = a 7 a6 a5 a4 a3 a2 a1 a0 CY (avant exécution de l’instruction) = X
A (après exécution de l’instruction RLCA) = a6 a5 a4 a3 a2 a1 a0 X CY (après exécution de l’instruction RLA) = a7
CY A
SWAP A cette instruction permute les 4bits poids forts du registre A
avec les 4 bits poids faibles
A (avant exécution de l’instruction) = a7 a6 a5 a4 a3 a 2 a1 a0
A (après exécution de l’instruction SWAPA) = a3 a2 a1 a0 a7 a 6 a5 a4
Utilisation des leds
Pour allumer la ledi, il faut mettre dans P1.i la valeur 0
Pour éteindre la ledi, il faut mettre dans P1.i la valeur 1

Exercice 8 : chenille
Faire défiler 1 point lumineux, de la droite vers la gauche, en
permanence.
Exercice 9 : Simulation de Feux de carrefour
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

O R V2 O2 R2 V1 O1 R1

ROUTE 2 ROUTE 1

1) Fonctionnement du jour:
V1, R2
TEMPO T1
O1, R2
TEMPO T2
R1, V2
TEMPO T1
R1, O2
TEMPO T2

2) Fonctionnement de nuit:
clignotement de O1 et O2
Utilisation des switchs
Si le switch Swi est ouvert alors P2.i = 1
Si le switch Swi est fermé alors P2.i = 0

Suite exercice 9:
3) Reprendre 1) avec sous-programmes pour les temporisations
4) Fonctionnement de jour et de nuit:
si SW0 ouvert alors fonctionnement de jour
si SW0 fermé alors fonctionnement de nuit
Avec possibilité de passer d’un fonctionnement à l’autre pendant le
déroulement du programme
Utilisation des afficheurs
Pour allumer un segment il faut mettre le bit associé du port P1 à 0
Pour éteindre un segment il faut mettre le bit associé du port P1 à 1

Sélection de l’afficheur: P3.4 P3.3


0 0 AFFICHEUR DE DROITE
0 1
1 0
1 1 AFFICHEUR DE GAUCHE

a
f b dp g f e d c b a
g P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
e c
. dp d

Vous aimerez peut-être aussi