Manuel TD 6809
Manuel TD 6809
Manuel TD 6809
Microprocesseur 6809P
Réalisé par
A.Soulmani
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________
TD 1: Les Mémoires
- Système de numération
- Capacité, broches
- Câblage
______________________________
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.
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
$4000
RAM
EPROM
$FFFF
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
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________
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
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________
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
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________
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
_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
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.
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.
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 :
_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
10
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________
PARTIE 2
Soit la configuration de la figure 2 :
PIA 6821
PA0
X
PB0 PA3
PA4
PB7 Y
PA7
_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
11
Microprocesseur A.Soulmani
_____________________________________________________________________________________________________________________________ _____________________________________________________________________________________________________
_____________________________________________________________________________________________________________________________ ____________________________________________________________________________________________
12