Pia 6809
Pia 6809
Pia 6809
I. INTRODUCTION :
Le microprocesseur ne travaille pas uniquement avec ses accumulateurs, ses registres et sa
mémoire, il lui faut communiquer avec l'extérieur. Pour cela, on utilise des unités d'échange
pour assurer le dialogue entre le microprocesseur et la périphérie. Ces échanges étant
assurés par l'intermédiaire des bus de données, de contrôle et d'adresses.
Ces unités d'échange (appelées interfaces) occupent un certain nombre de cases mémoires
dans le champ mémoire du microprocesseur. Ils sont programmables pour s'adapter aux
périphériques connectés.
MR : HALAILI MED
Page 1
INSFP SBA MICROPROCESSUER MOTOROLA 6809
CRA et CRB : Control Register (Registre de contrôle) du port A et du port B. Ils sont
situés respectivement à Base +1 et Base +3 (où Base est l'adresse de base du PIA)
ORA et ORB : Output Register (Registre de sortie)du port A et du
port B. Situés à Base et Base +2 lorsque les bits 2 de CRA ou CRB
sont à 1
DDRA et DDRB :Data Direction Register(Registre de direction) du
port A et du port B. Base et Base +2 si les bits 2 de CRA ou CRB
sont à 0
Exemple:
1. DDRA ou DDRB :
Exemple :Si DDRA contient la donnée $F0, les 4 bits de poids faible du port A seront
des entrées et les 4 bits de poids fort seront des sorties.
2. ORA ou ORB :
Exemple 01 : Si le DDRB contient la valeur $F0, le fait de mettre $FF dans le ORB
aura pour effet de positionner les 4 lignes de poids fort du port B au niveau logique "1"
(les autres lignes restent inchangées).
Le fait de lire le contenu de ORB reviendra à avoir les 4 bits de poids fort à 1(en raison
de ce qui s'est fait précédemment) tandis que les 4 bits de poids faible possèderont
l'état logique affectés sur ces lignes.
Exemple 02: Si le DDRB contient la valeur $FF , le fait de mettre $FF dans le ORB ,
que peut-on avoir sur le port B ?
MR : HALAILI MED
Page 2
INSFP SBA MICROPROCESSUER MOTOROLA 6809
le fait de mettre $FF dans le ORB aura pour effet de positionner les 8 lignes du port B
au niveau logique "1" .
3. CRA ou CRB :
Ces deux registres ont un fonctionnement plus complexe. Pour résumer leur
fonctionnement on dira que :
Pour avoir accès au registre DDRA on doit mettre 0 dans le bit 2 du registre CRA
Pour avoir accès au registre DDRB on doit mettre0 dans le bit 2 du registre CRB
1. ADRESSES DU PIA :
MR : HALAILI MED
Page 3
INSFP SBA MICROPROCESSUER MOTOROLA 6809
MR : HALAILI MED
Page 4
INSFP SBA MICROPROCESSUER MOTOROLA 6809
RESUMER
EXEMPLE : Pour afficher E0 sur le port B c’est-à-dire (1110 0000) allumé les 3 Leds de
poids fort et éteindre les 5 Leds de poids faible, on procède comme suite :
1. On configure le registre DDRB (Les 3 bits de poids fort déclaré en sorties et les 5
bits de poids faible déclaré en entrées).
A. Pour accéder au registre DDRB, il faut mettre un 0 dans le bit 2 du CRB c’est-à-
dire à l’adresse $8003 :
CLR $8003 (bit 2 du CRB mis à 0) ce qui veut dire que l’adresse $8002 est
attribuée au registre DDRB (Adresse DDRB = $8002)
B. On charge la valeur E0 dans l’adresse $8002 :
LDA #$E0
STA $8002 (DDRB : 3bits de poids fort déclarer en sorties et 5 bits de poids
faible déclaré en entrées)
2. Il faut afficher la valeur E0 en sortie, pour cela on doit la charger dans le registre
ORB:
A. Il faut d’abord accéder au registre ORB, pour cela il faut mettre le bit 2 du CRB
à1 :
LDA #$04
STA $8003(bit 2 du CRB mis à 1) ce qui veut dire que l’adresse $8002 est
attribuéemaintenant au registre ORB(Adresse ORB = $8002).
B. Pour charger la valeur E0 dans le registre ORB on procède comme suite :
LDA #$E0
STA $8002
MR : HALAILI MED
Page 5