Vous êtes sur la page 1sur 12

Université Cadi Ayyad

Ecole Supérieure de Technologie –Safi-


Département Maintenance Industrielle

Manuel de Travaux Dirigés


2ème année

Microprocesseur 6809P

Réalisé par
A.Soulmani
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

EST SAFI 2ème année


Dépt. : MI

TD 1: Les Mémoires
- Système de numération
- Capacité, broches
- Câblage
______________________________

Exercice 1 : Rappel sur les systèmes de numération


1) Convertir en base 2 les nombres suivants : 2010, 83610, AB1F16, 208.
2) Convertir en base 8 les nombres suivants : 10510, 18716, 1011102, 1101010.
3) Convertir en base 10 les nombres suivants : 10111112, 1F16, 438, 166.
4) Convertir en base 16 les nombres suivants : 10111112, 2610, 438.
5) Ecrire en base 16, sur 8 bits, dans une représentation en complément à 2 les
nombres entiers relatifs suivants : -20, -30, -1.
6) Ecrire en base 16, sur 10 bits, dans une représentation en complément à 2 les
nombres entiers relatifs suivants : -20, -30, -1.
7) Effectuer les opérations suivantes :
• 101112 + 101112
• 101112 + 1010

Exercice 2
Soient les deux circuits mémoires de la figure 1 :
1) Quel est le type de chacune de ces mémoires ?
2) Donner leurs capacités et la signification des broches.
3) On a besoin de 48 koctets (32 koctets d’EPROM et 16 koctets de RAM)pour une
application à base du microprocesseur 6809 qui a un bus d’adresse de 16 fils.
3.1. De combien de boitiers de chaque type a-t-on besoin ?
3.2. Ces boitiers mémoires occuperont la zone $4000-$FFFF comme indiqué sur
la figure 2.
3.3. Donner la plage mémoire occupée par chaque circuit.
3.4. Donner un schéma de câblage en utilisant des portes
élémentaires.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
2
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

3.5. Réaliser le câblage en utilisant le circuit 74LS138 dont le schéma interne est
fourni en annexe.

Vpp Vcc NC Vcc

A12 A14 A12 /WE

A7 A13 A7 CS2

A6 A8 A6 A8

A5 A9 A5 A9

A4 A11 A4 A11

A3 /OE A3 /OE

A2 A10 A2 A10

A1 /CE A1 /CS1

A0 O7 A0 E/A8

O0 O6 E/A1 E/A7

O1 O5 E/A2 E/A6

O2 O4 E/A3 E/A5

Gnd 27256 O3 Gnd


HM 6264 E/A4

Figure 1 : Circuits mémoires

$4000
RAM

EPROM

$FFFF

Figure 2 : Plan mémoire

Exercice 3
Concevoir une mémoire de 1k*16 bits à l’aide de boîtiers de 1k*4 bits.

Exercice 4
Concevoir une mémoire de 4k*4 bits à l’aide de boîtiers de 1k*4 bits.

Exercice 5
Concevoir une mémoire de 4k*8 bits à l’aide de boîtiers de 1k*4 bits.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
3
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
4
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

EST SAFI 2ème année


Dépt. : MI

TD 2: Le µP 6809
Code machine – Jeu d’instructions

Exercice 1
Pour chacune des instructions suivantes, déterminer le mode d’adressage, le code
machine et l’effet :
1) ADCA #$2C
2) STA $0100
3) ABX
4) LDA $37
5) LDY -3,X
6) SUBA #$22
7) ADDA #$A0
8) TFR X,Y
9) EXG A,B
10) LDY [$0000]
11) LDA #$12
12) ANDA #$C4
13) LDY ,X++
14) BEQ -5
15) LSRA
16) ASRA
17) ROLA

Exercice 2
Pour chacune des instructions suivantes, déterminer le mode d’adressage, le code
machine, la taille en octets et le nombre de cycles :
1) BGE -10
2) BGT -10
3) BLO $50
4) LBPL -10
5) BSR 5
6) LBSR -400
7) PSHS A,B,X
8) CWAY #$FF
9) RTS
10) JSR $05
11) JMP $0400

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
5
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

EST SAFI 2ème année


Dépt. : MI

TD 3 : Le µP 6809
- Programmation assembleur
- Taille d’un programme
- Temps d’exécution
____________________________________

Exercice 1
Que fait le programme suivant ?
DEBUT LDA $1000
LDB $1001
STA $1001
STB $1000
FIN SWI

Y-a-t-il nécessité à ce que les adresses $1000 et $1001 soient en EPROM pour ce
programme ?

Exercice 2
Soient deux nombres de huit bits situés dans la mémoire aux adresses $0F00 et
$0F02. Proposer un programme qui calcule leur somme et stocke le résultat à
l’adresse $0F04. (Utiliser le mode d’adressage étendu).
Quelle est la taille du programme ?
Exercice 3
Refaire le programme précédent en utilisant le mode d’adressage direct.
Exercice 4
Proposer un programme qui réalise la somme de deux mots de seize bits situés aux
adresses $0F00 et $0F02 et stocke le résultat à l’adresse $0F04.
Exercice 5
Refaire l’exercice 4 sans utiliser l’instruction ADDD.
Calculer le temps d’exécution de ce programme sachant que la fréquence du quartz
est de 4 MHz.
Exercice 6
Proposer un programme qui remplit la zone mémoire comprise entre $0F00 et $0F0F
avec la valeur $AA.
Calculer le temps d’exécution de ce programme (Fclk= 4 MHz).

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
6
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

Exercice 7
Proposer un programme qui déplace le contenu de la zone mémoire comprise entre
$0100 et $010F vers la zone mémoire commençant à l’adresse $0200.
Exercice 8
Proposer un programme qui calcule le nombre de valeurs négatives dans la zone
mémoire $0100-$010F et stocke le résultat à l’adresse $0200.
Exercice 9
Proposer un programme qui calcule le nombre de valeurs nulles dans la zone mémoire
$0100-$010F et stocke le résultat à l’adresse $0200.
Exercice 10
Proposer un programme qui calcule le nombre de valeurs paires dans la zone mémoire
$0100-$010F et stocke le résultat à l’adresse $0200.
Exercice 11
Proposer un programme qui calcule le nombre de valeurs supérieures à (+2) et
inférieures à (+10) dans la zone mémoire $0100 et $010F (Les nombres considérés
sont non signés). Le résultat sera stocké à l’adresse $0200.
Exercice 12
Proposer un programme qui calcule le nombre de valeurs supérieures à (-3) dans la
zone mémoire $0100 et $010F (Les nombres considérés sont signés). Le résultat sera
stocké à l’adresse $0200.
Exercice 13
Proposer un programme qui génère un tableau des carrés des 256 premières valeurs
entières. L’adresse début du tableau est $0300.
(Le carré d’un nombre de 8 bits sera stocké sur 16 bits).
Exercice 14
Proposer un programme permettant d’effectuer le comptage de valeurs positives,
négatives et nulles d’une table de nombres signés située dans la zone mémoire $0100-
$010F. Les résultats seront stockés respectivement aux adresses $0050, $0051 et
$0052.
Exercice 15
Proposer un programme permettant de déterminer le nombre de 1 dans l’octet situé à
l’adresse $0100. Le résultat sera stocké à l’adresse $0200.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
7
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

Exercice 16
Proposer un programme de calcul de PGDC de deux nombres de 8 bits situés dans la
mémoire aux adresses $0F00 et $0F01. Le résultat sera stocké à l’adresse $0F02.
L’algorithme utilisé sera le suivant :
Tant que X≠Y et X≠0 et Y≠0
Faire
Si X<Y alors Y :=Y-X
Sinon X :=X-Y ;
Finsi
FinFaire
PGDC :=X
Exercice 17
Soient deux nombres de 16 bits situés aux adresses $0100 et $0102. Proposer un
programme qui calcule leur produit et stocke le résultat à l’adresse $0104.
Exercice 18
Ecrire un programme qui affiche en permanence la touche hexadécimale tapée au
clavier. Pour cela utiliser les routines du moniteur du système MC 09-B données dans
l’annexe 1 du manuel de TP.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
8
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

EST SAFI 2ème année


Dépt. : MI

TD 4 : Le PIA 6821
- PIA
- Sous-programmes
- Interruptions
______________________________
PARTIE 1
Dans le cas de la carte MC 09-B utilisée en travaux pratiques, les adresses des
registres du PIA sont les suivantes :
- Pour le port A :
DDRA et ORA → $8000
CRA→ $8001
- Pour le port B
DDRB et ORB → $8002
CRB→ $8003
Les broches PA0 et CA1 sont reliées à des interrupteurs, et les broches PA1 à PA7,
PB0 à PB7 et CA2 sont reliées à des leds conformément au schéma de la figure 1.

PIA 6821 0v
CA1 5V
0v
PA0 5V
PB0
CA2
PA1

PB7

PA7

Figure 1 : Commande de Leds


1) Analyser le sous-programme suivant et expliquer son fonctionnement :
ORG $0400
TOTO LDX #$FFFF
ENCORE LEAX -1,X
BNE ENCORE
RTS
Ce sous-programme doit commencer à partir de l’adresse $0400.

Estimer la durée de son exécution pour une horloge µP de 4MHz.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
9
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

2) Le PIA doit pouvoir générer des interruptions suite à un front montant sur CA1.
Ecrire le sous-programme d’initialisation du PIA à partir de l’adresse $1000.

3) Ecrire un programme qui allume les leds reliées au port A et éteint celles reliées au
port B. Ce programme doit commencer à partir de l’adresse $1100.

4) Proposer un programme qui réalise la tache suivante :


- Si PA0=1, allume les leds reliées au port A et éteint celles reliées au port B.
- Si PA0=0, éteint les leds reliées au port A et allume celles reliées au port B.
Ce programme doit boucler indéfiniment et commencer à l’adresse $1200.

5) Proposer un programme qui fait clignoter en permanence les leds reliées aux ports
A et B. Utiliser le sous-programme de la question 1 pour la temporisation.
Ce programme doit commencer à l’adresse $1300.

6) - Proposer un programme qui réalise la tache suivante :


- Si PA0=1, allume les leds reliées au port B l’une après l’autre de gauche à
droite (chenillard).
- Si PA0=0, inverse le sens de défilement.
Ce programme doit commencer à l’adresse $1400.
- Modifier ce programme pour que le test d’arrêt soit PA0=0.

7) Sur la carte MC 09-B, les adresses des vecteurs d’interruption sont utilisées par le
moniteur et les nouveaux vecteurs à utiliser sont fournis dans la table 1 :

Interruption Vecteur Redirection sur la Remarque


carte MC 09-B
/RESET FFFE-FFFF moniteur Reset de la carte
/NMI FFFC-FFFD 3FFC-3FFD Int. matérielle
SWI FFFA-FFFB moniteur Int. logicielle
/IRQ FFF8-FFF9 3FF8-3FF9 Int. matérielle
/FIRQ FFF6-FFF7 3FF6-3FF7 Int. matérielle
SWI2 FFF4-FFF5 3FF4-3FF5 Int. matérielle
SWI3 FFF2-FFF3 3FF2-3FF3 Int. matérielle

Table1 : déplacement des vecteurs d’interruption sur MC 09-B


Le programme principal est celui de la question 6. Le sous-programme associé à
l’interruption IRQ consiste à faire clignoter les leds reliées au port B vingt fois et
celui associé à l’interruption NMI doit faire clignoter alternativement les leds reliées
au port A et au port B pendant 10 fois. La temporisation est assurée par le sous-
programme de la question 1.
Ecrire les sous-programmes associés à IRQ et à NMI aux adresses respectives $0100
$0200. La pile système commence à l’adresse $3000.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
10
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

8) Proposer un programme permettant de faire clignoter en permanence la led reliée à


la ligne CA2. En cas de front actif sur CA1, faire clignoter pendant dix fois les leds
reliées au port B.
Le programme principal doit commencer à l’adresse $1500.

9) Ecrire un programme qui réalise les opérations suivantes :


- Si PA0=0, le système compte de 0 à 99 en base 10 et affiche le résultat en
décimal sur le port B.
- Si PA0=1, le système décompte de 99 jusqu’à 0 et affiche le résultat en
décimal sur le port B.
La durée d’affichage d’une valeur est définie par le sous-programme tempo de la
question 1. Le programme commence à l’adresse $1600.

PARTIE 2
Soit la configuration de la figure 2 :
PIA 6821
PA0
X
PB0 PA3

PA4
PB7 Y
PA7

Figure 2 : port A en entrée et


port B en sortie

L’adresse de base du PIA est $7000.


1) Ecrire le sous-programme d’initialisation du PIA et le placer à l’adresse $2000.

2) Ecrire un programme qui réalise en permanence la somme (x+y) et sort le résultat


sur le port B. L’adresse début du programme est $2100.

3) Ecrire un programme qui calcule en permanence le nombre de 1 dans x et sort le


résultat sur le port B. L’adresse début du programme est $2200.

4) Ecrire un programme qui réalise en permanence les opérations suivantes :


- Si PA4=0, affichage sur PB0-PB3 de la valeur de x
- Si PA4=1, affichage sur PB0-PB3 du complément de x
L’adresse début du programme est $2300.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
11
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________

5) Ecrire un programme qui affiche en permanence PA0-PA3 sur PB4-PB7 et PA4-


PA7 sur PB0-PB3. L’adresse début du programme est $2400.
6) Le programme principal étant celui de la question 6, écrire le sous-programme
d’interruption NMI qui consiste à sortir sur le port alternativement les valeurs $FF et $00 et
ceci pendant 10 fois. Ce sous-programme doit commencer à l’adresse $0600.

_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
12

Vous aimerez peut-être aussi