Insfp sba microprocessuer motorola 6809








télécharger 41.74 Kb.
titreInsfp sba microprocessuer motorola 6809
date de publication03.02.2018
taille41.74 Kb.
typeDocumentos
ar.21-bal.com > droit > Documentos

INSFP SBA MICROPROCESSUER MOTOROLA 6809


CHAP :06 L’INTERFACE PIA 6821

  1. 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.


  1. L’INTERFACE PIA 6821 :

L’interface PIA Parallel Interface Adapter (Adaptateur d’Interface parallèle) est un circuit qui permet au système (Microprocesseur Motorola 6809) de communiquer avec d’autres composants ou dispositifs (clavier, décodeur + afficheur 7 segments au plus simple, ou un clavier, un écran, une imprimante ou un autre ordinateur au plus complexe...)



Fig 01 : Architecture du système à base du Microprocesseur Motorola 6809

Le PIA 6821 est un circuit d'interfaçage parallèle de 2 fois 8 lignes bidirectionnelles.

Il dispose de 6 registres internes adressables par 4 adresses différentes:

  • 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 :

Il s'agit de deux registres de 8 bits respectivement affectés au port A et au port d'entrée/sortie B.

Chaque bit de ces registres défini le sens de transfert des données. Si le bit est à 1, le bit correspondant en ORA ou ORB sera positionné en sortie, s'il est à 0 le bit correspondant de l'ORA ou l’ORBest en entrée.

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.

  1. ORA ou ORB :

Les registres d'entrée/sorties permettent d'affecter des états logiques en sortie du PIA ou de lire les états logiques présents sur les lignes du PIA. Cela se fait évidemment en cohérence avec le contenu du DDRA ou du DDRB.

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 ?

Si le DDRB contient la valeur $FF ( 8 bits du port B seront des sorties.)

le fait de mettre $FF dans le ORB aura pour effet de positionner les 8 lignes du port B au niveau logique "1" .

  1. 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. UTILISATION DU PIA 6821

  • DDRA (ou DDRB) : Registre de direction du port A (ou port B).

  • ORA (ou ORB) : Registre de sortie du port A (ou port B).

  • CRA (ou CRB) : Registre de commande du port A (ou port B).

  1. ADRESSES DU PIA :

ADRESSES

REGISTRE DU PIA

8000

DDRA et ORA

8001

CRA

8002

DDRB et ORB

8003

CRB



  1. Exemple d’adressage des registres DDRB et ORB :



  1. Adressage du registre de direction DDRB :

  • Accédé au registre DDRB

On commence par mettre la valeur 0 dans le bit 2 du CRB par les instructions :

LDA #$00

STA $8003 (adresse du CRB)

Ou tout simplement

CLR $8003

On vient donc de charger tous les bits du registre de commande par la valeur 0.

En mettant 0 dans le bit 2 du registre CRB on a accès au DDRB.

  • Configuration du registre DDRB en Entrée ou en Sortie

Si on souhaite déclarer un bit du port B en sortie, il faudra mettre un 1 dans ce bit ; inversement, si on veut déclarer un bit en entrée, il faudra mettre un 0 dans cebit.

Exemple 01 :

Supposons que l’on veuille déclarer les 3 bits de poids faibles en entrée et les 5autres en sortie, il suffira de charger le DDRB par la valeur 1111 1000=$8F

Ceci se fera à l’aide des instructions suivantes :

LDA #$F8

STA DDRB

Exemple 02 :

Rappelons que l’adresse du DDRB est 8002.

Su on veut tout le port B en sortie, on écrira :

LDA #$FF

STA $8002

  1. Adressage du registre de sortie ORB :

Selon l’exemple 02 tous les bits du port B sont déclarés en sortie : c’est-à-dire, l’information ira du PIA vers l’extérieur.

Reste à sortir les valeurs voulues ; il nous faudra avoir accès à l’ORB. Pour cela il faut mettre la valeur 1 dans le bit 2 du CRB (registre de commande du port B) par les instructions :

LDA #$04

STA $8003

Ceci étant fait, on a aces à l’ORB.

Supposons qu’on veuille allumer les 3 leds de poids forts et éteindre les 5 leds de poids faibles. On écrira alors,

LDA #$E0

STA $8002

D’où le programme final :

Adresse

Code Machine

Mnémonique

Commentaires

0000

0002

0005

0007

000A

000C

000F

0011

0014

86 00

B7 8003

86 FF

B7 8002

86 04

B7 8003

86 E0

B7 8002

3F

LDA #$00

STA $8003

LDA #$FF

STA $8002

LDA #$04

STA $8003

LDA #$E0

STA $8002

SWI

Accès au DDRB

Port B déclaré en sortie

Accès à l’ORB

Sortir 1110 0000 sur le port B

Fin de programme

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).

  1. 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)

  1. 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)

  1. Il faut afficher la valeur E0 en sortie, pour cela on doit la charger dans le registre ORB:

  1. 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).

  1. Pour charger la valeur E0 dans le registre ORB on procède comme suite :

LDA #$E0

STA $8002


Page

M: HALAILI MED

similaire:

Insfp sba microprocessuer motorola 6809 iconCours de perfEctionnement Formation sur la configuration des cable-routeurs...
...








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com