3. Programmer les entrées/sorties en mode simple.

publicité
Royaume du Maroc
OFFICE DE LA FORMATION PROFESSIONNELLE ET DE LA PROMOTION DU TRAVAIL
MODULE 11
Introduction aux Microprocesseurs
Résumé de Théorie
Télécharger tous les modules de toutes les filières de l'OFPPT sur le site dédié à la formation professionnelle au Maroc :
www.marocetude.com
Pour cela visiter notre site www.marocetude.com et choisissez la rubrique : MODULES ISTA
Première Année
Programme de Formation des Techniciens Spécialisés en
Électronique
DIRECTION DE LA RECHERCHE ET INGENIERIE DE LA FORMATION
Septembre 1995
INTRODUCTION AUX MICROPROCESSEURS
RÉSUMÉ DE THÉORIE
Programmer les entrées/sorties en mode simple.
TECCART INTERNATIONAL 2000 inc.
3155, boul. Hochelaga,
Montréal, Québec (Canada)
H1W 1G4
RÉDACTION
Serge Leblanc.
DESSINS ET CONCEPTION GRAPHIQUE
Serge Leblanc
RÉVISION TECHNIQUE
Pierre Asselin B.Sc. & Christian Lépine
RÉVISION LINGUISTIQUE
François Gaudreau
COMMISSION DE VALIDATION
Formateurs de l'OFPPT
Les droits de reproduction et de diffusion de ce document sont cédés par Teccart
International 2000 inc. à l’Office de la Formation Professionnelle et de la Promotion
du Travail du Royaume du Maroc, pour sa propre utilisation au Maroc.
Mis à part l’OFPPT, toute reproduction, en tout ou en partie, par quelque procédé
que ce soit, est interdite.
Mp_Rt3.Doc, imprimé à Montréal, le 17 avril 2017
TABLE DES MATIÈRES
3. PROGRAMMER LES ENTREES/SORTIES EN MODE SIMPLE.
3-1
3.1 Description générale du PIA
3-1
3.2 Brochage du PIA
3.2.1 Signaux réservés aux données des péripheriques:
3.2.2 Signaux réservés aux données du microprocesseur:
3.2.3 Signaux de contrôle et de synchronisation avec les périphériques:
3.2.4 Signaux de controle et de synchronisation avec le MPU:
3-1
3-2
3-2
3-2
3-2
3.3 Branchement du PIA sur le système Mod. E6809
3-3
3.4 Les registres du PIA
3-3
3.5 La programmation du PIA
3-4
3.6 Tableau résumé des fonctions du registre CRA du PIA
3-6
3.7 Choisir et installer un interface de puissance
3-7
3.8 Commande d’un élément de puissance
3.8.1 Schéma bloc du système
3.8.2 Algorithme de traitement
3.8.3 Ordinogramme
3.8.4 Programme assembleur
3-9
3-9
3-10
3-10
3-11
3.9 Convertisseur numérique à analogique
3.9.1 Rappel
3.9.2 Schéma électrique du convertisseur N/A
3.9.3 Programme de contrôle du convertisseur N/A
3.9.4 Programme assembleur:
3-12
3-12
3-12
3-13
3-13
3.10 Convertisseur analogique à numérique
3.10.1 Schéma électrique du convertisseur A/N
3.10.2 Le circuit de mise à l’échelle du signal d’entrée
3.10.3 Le convertisseur analogique à numérique ADC0804
3.10.4 Programme de contrôle du convertisseur A/N
3-14
3-14
3-15
3-15
3-15
3.11 Exercices
3-17
Résumé de Théorie
Introduction aux Microprocesseurs
3. Programmer les entrées/sorties en mode simple.
3.1 Description générale du PIA
Le PIA (abréviation de Peripheral Interface Adaptor) est un circuit électronique
sophistiqué qui contrôle des périphériques reliés en parallèle. Tous les micro-ordinateurs
travaillent avec des circuits d'entrées/sorties pour assurer la liaison avec le monde
extérieur. Le PIA est incorporé dans bon nombre d'applications commandées par divers
types de microprocesseurs. Ce circuit d'entrée/sortie peut recevoir des contacts simples ou
disposés en matrice, contrôler des lecteurs de LED, des relais ou des opto-coupleurs, etc.
Le PIA est incontestablement très populaire comme interface.
Le PIA communique avec les périphériques via 16 lignes d'entrée/sortie. Ces lignes PAO
à PA7 et PBO à PB7 sont configurées en 2 ports PA et PB de 8 bits (8 lignes). Un port
constitue un groupe d'entrées/sorties parallèles. Chaque ligne est programmée séparément
en entrée ou en sortie. Le programmeur peut contrôler chaque ligne de sortie
individuellement et lire l'état de chaque ligne d'entrée; c'est une question de logiciel !
Ainsi, quand le programmeur lit le port PA programmé en entrée, l'état des 8 lignes PAO
à PA7 est acheminé à travers le PIA puis sur les lignes DO à D7 du bus de données
jusque vers le microprocesseur. Quand le programmeur écrit dans le port B, programmé
en sortie, l'information est envoyée par le microprocesseur via le bus de données (lignes
DO à D7) puis à travers le PIA jusque sur les lignes PBO à PB7 du port B.
Les différences entre le port A et le port B se situent au niveau des possibilités d'échange
avec protocole entre le PIA et les péripheriques. Le port A est mieux adapté aux entrées
tandis que le port B convient mieux aux sorties. Chaque port est doté de 2 lignes de
contrôle: l'une en entrée (CA1 ou CB1) et l'autre en entrée ou en sortie (CA2 et CB2).
3.2 Brochage du PIA
La figure ci-contre montre le brochage du PIA.
Voici un résumé des signaux et du brochage du
PIA. D’un point de vue fonctionnel, les signaux
appartiennent à 4 catégories.
Signaux réservés aux
données des
périphériques
Signaux réservés aux
données P.
Signaux de contrôle et
de synchronisation avec
les périphériques.
Signaux de contrôle et
de synchronisation avec
le microprocesseur.
PA0 à PA7
PB0 à PB7
D0 à D7
CA1, CA2
CB1, CB2
E, R/W, /RESET CS0,
CS1, /CS2 ,RS0, RS1
/IRQA, /IRQB
VSS
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
CB1
CB2
VCC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
M
C
6
8
2
1
CA1
CA2
/IRQA
/IRQB
RS0
RS1
/RESET
D0
D1
D2
D3
D4
D5
D6
D7
E
CS1
/CS2
CS0
R//W
Figure 3-1
Programmer les entrées/sorties
page 3-1
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.2.1 Signaux réservés aux données des péripheriques:
PA0- PA7
Port A lignes d'entrée ou de sortie (logique à 3 états).
PB0 PB7
Port B lignes d'entrée ou de sortie (logique a 3 etats).
Ces lignes ne supportent pas de transferts bidirectionnels de données. Chaque ligne peut
fournir en source 1mA à 1.5 V et conduire la base d'un transistor. En entrée, chaque ligne
est à l'état 0, si la tension appliquée est de 0.8 V et moins et à l'etat 1, si la tension
appliquée est de 2 V et plus. Une ligne du port B (assigné en sortie) entre en état de haute
impédance lors d'une lecture.
3.2.2 Signaux réservés aux données du microprocesseur:
DO - D7
Lignes du bus de données assurant le transtert bidirectionnel d'information
entre le microprocesseur et le PIA. Ces lignes fonctionnent en logique à 3
états.
3.2.3 Signaux de contrôle et de synchronisation avec les périphériques:
CA1
Ligne, en entrée seulement, utilisée pour signaler une cause d'interruption
d'un périphérique.
CA2
Lorsque CA2 est programmée en entrée. cette ligne fonctionne comme
CA1. Lorsque CA2 est programmée en sortie, elle est utilisée comme
signal de réponse sur les données reçues au port A.
CB1
Ligne, en entrée seulement, utilisée pour signaler une cause d’interruption
d'un périphérique.
CB2
Lorsque CB2 est programmée en entrée, cette ligne fonctionne cornme
CB1. En sortie, elle véhicule un signal associé à l’envoi de données sur le
port B.
3.2.4 Signaux de controle et de synchronisation avec le MPU:
E
Signal de synchronisation d’horloge avec le MPU.
R/W
Si R/W = 1, le MPU lit dans le PIA les données provenant des
périphériques où il lit les registres DDRA, DDRB, CRA ou CRB.
Si R/W = O, le MPU écrit des données dans le PIA pour les envoyer aux
périphériques où il programme les registres DDRA, DDRB, CRA et CRB.
/IRQA et
Lorsque ces deux signaux passent à l'état logique 0, ils signalent une
/IRQB demande d'interruption provenant du PIA. Les broches /IRQA et
/IRQB sont généralement connectées aux lignes d’interruptions du CPU.
/RESET
Signal qui remet à 0 les registres internes du PIA. Lors d'un reset, les ports
A et B sont en entrée.
CS0, CS1 et /CS2 : Le boîtier du PIA sera choisi si CSO = 1, CS1 = 1 et CS2 = O.
RSO et RS1
Ces 2 lignes donnent accès aux 6 registres internes du PIA; 4 registres sont
accessibles directement et les 2 autres le sont de façon indirecte.
Programmer les entrées/sorties
page 3-2
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.3 Branchement du PIA sur le système Mod. E6809
R/W
RESET
A0
A1
FIRQ
CPU
6809
R/W
E
RESET
RS0
RS1
IRQA
IRQB
D0
D0
D7
D7
+5v
+5v
CA1
CA2
PIA
6821
CS0
CS1
CS2
Périphérique
A
PA
CB1
Périphérique
B
PB
CB2
signal: PAR adr: $1400
du décodeur d'adresse
Figure 3-2
La figure de branchement du PIA montre comment le PIA est implanté dans le système
Mod. E6809. Notez que le décodeur d’adresses fournit un signal de sélection répondant à
l’adresse de base $1400.
3.4 Les registres du PIA
Physiquement, le PIA utilise quatre adresses pour la sélection des registres. Deux
registres (PA et DDRA) répondent à la même adresse. L’accès à l’un ou à l’autre se fait
par le bit 2 du registre de contrôle CRA. Le même truc est utilisé pour le port B.
RS 1
RS 0
0
0
0
1
1
0
1
1
Programmer les entrées/sorties
Registre sélectionné
PortA PA si CRA2=1 ou registre de
direction DDRA si CRA2=0
Registre de contrôle CRA
Port B si CRB2=1 ou registre de
direction DDRB si CRB2=0
Registre de contrôle CRB
page 3-3
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
Du point de vue programmation, l'utilisateur a accès à 6 registres internes. Par
conséquent, le microprocesseur peut rejoindre 6 registres en lecture et en écriture comme
des cases mémoire. Ces registres sont divisés en 2 groupes A et B de trois registres.

CRA et CRB: sont les registres qui contrôlent les paramètres de fonctionnement du
PIA.

DDRA et DDRB: sont les registres de direction dont chacun des bits fixe le sens de
transfert (entrée ou sortie) pour chacune des lignes reliées au péripheriques. Un état 1
définit une ligne en sortie et un état 0, une broche en entrée.

ORA et ORB: sont les registres de sorties qui mémorisent les données (en sortie) lors
d'une écriture.
Comment se fait-il que chaque ligne d'un port puisse être programmée individuellement
en entrée ou en sortie ? Ceci est obtenu par l'écriture d'un mot dans un registre de
direction. Les registres de direction règlent la direction du transfert de données entre les
périphériques et le MPU. Ainsi, lorsqu'un 0 est écrit dans le bit DDRA6 du registre
DDRA, la ligne A6 est programmée en entrée. À l’inverse, lorsqu’un 1 est écrit dans le
bit DDRB6 du registre DDRB, la ligne PB6 est programmée en sortie.
D'un point de vue plus électronique, seuls les bits des lignes programmées en sortie sont
mémorisés dans un registre périphérique. Par exemple, le signal envoyé au périphérique
via la ligne de sortie PB6 est mémorisé dans le bit ORB6 du registre de sortie ORB.
Ensuite, puisque le bit DDRB6 = 1 dans le registre de direction DDRB, le transfert du bit
ORB6 sur la ligne PB6 est autorisé.
Le sort d'une ligne programmée en entrée est tout différent! Son état n'est pas mémorisé
dans un registre de sortie. Ainsi, l'état de la ligne PA6 est transmis directement au buffer
bidirectionel. Ce dernier l'amplifie puis l'envoie sur la ligne D6 du bus de données vers le
microprocesseur.
3.5 La programmation du PIA
Avant d'utiliser le PIA pour communiquer avec des périphériques, l’utilisateur doit définir
le sens (en entrée ou en sortie) de chacune des lignes du port A et du port B. Ensuite, il
s'agit de rejoindre les registres périphériques ORA et ORB. Toutes ces étapes constituent
l'initialisation du PIA. Elles se résument par l'algorithme suivant:
1- Mettre à 0 les bits CRA2 et CRB2 des registres de contrôle pour préparer
l'accès aux registres de direction DDRA et DDRB.
2- Écrire dans les registres de direction DDRA et DDRB un code de 8 bits
programmant en entrée ou en sortie chacune des lignes des ports. Un bit mis à
1 assigne une ligne en sortie, tandis qu'un bit mis à 0 programme une ligne en
entrée.
3- Mettre à 1 les bits CRA2 et CRB2 des registres de contrôle pour préparer
l'accès aux registres periphériques ORA et ORB.
Programmer les entrées/sorties
page 3-4
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
Pour initialiser le PIA, les étapes de cet algorithme sont traduites en instructions. Par
conséquent, avant d'utiliser le PIA, il faut absolument faire exécuter un sous-programme
qui programme les registres internes suivant la configuration des entrées/sorties desirées.
Après son initialisation, le PIA est prêt à régir l'échange de données entre le
microprocesseur et les périphériques. À cette étape, les données sont lues et écrites dans
les ports A et B à 2 adresses correspondant aux registres périphériques ORA et ORB.
Voici un programme de démonstration qui permet la vérification du PIA.
;**********************************************
; Programme de demonstration utilisant le PIA.
; Ce programme fait la lecture des entrees (portA) et transmet le code lu sur les sorties (portB).
; On peut quitter le programme avec la touche (reset).
;
; par: Serge Leblanc (22 mai 1995)
;-----------------------------------------------P_DDRA
EQU
$1400
Data direction register A
P_DDRB
EQU
$1402
Data direction register B
P_CRA
EQU
$1401
Control register A
P_CRB
EQU
$1403
Control register B
PA
EQU
$1400
Port A data input address
PB
EQU
$1402
Port B data input address
;-----------------------------------------------; Programme principal
ORG
JSR
LDB
STB
JMP
;--------------------------------------------------; Sous-programme d'initialisation du PIA.
; Le port A est initialise en entree tandis que
; et le port B est initialise en sortie.
; para. d'entree : aucun
; para. de sortie: aucun
; reg. affectes : A, CC
$0200
INIPIA
PA
PB
BOUCLE
Origine du programme
Sous-programme d'initialisation
Lecture de PA -> reg.B
Ecriture du reg.B -> PB
Boucle sans fin (sort avec reset)
INIPIA
#$00
P_CRA
P_DDRA
#$04
P_CRA
#$00
P_CRB
#$FF
P_DDRB
#$04
P_CRB
demande acces au DDRA (CRA2=0)
programme le reg. CRA
programme le portA en entree
demande acces au PortA (CRA2=1)
programme le reg. CRA
demande acces au DDRB (CRB2=0)
programme le reg. CRB
place le portB en sortie
programme le reg. DDRB
demande acces au port B (CRB2=1)
programme le reg. CRB
retour du sous-programme
DEBUT
BOUCLE
LDA
STA
STA
LDA
STA
LDA
STA
LDA
STA
LDA
STA
RTS
;--------------------------------------------------END
Programmer les entrées/sorties
page 3-5
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.6 Tableau résumé des fonctions du registre CRA du PIA
Ce tableau montre la fonction de chaque bit du registre de contrôle CRA associé au port
A du PIA; le même tableau est utilisé pour le port B. L’initialisation du PIA se fait par la
programmation du registre CRA. Par exemple, si le PIA est utilisé en mode simple, c’està-dire sans utiliser les lignes de contrôles, seul le bit 2 de CRA est important. Ce bit
détermine l’accès à DDRA ou à PA.
7
6
IRQ
de CA1
IRQ
de CA2
5
4
0
CA2
en
entrée
1
1
transition
transition
active sur CA1 active sur CA2
P
R
O
G
R
A
M
M
E
1
CA2
en
sortie
P
U
L
S
É
D
I
A
L
O
G
U
E
Programmer les entrées/sorties
2
1
accès à DDRA
ou à PA
CONTRÔLE DE CA2
0
0
aucune
aucune
transition
transition
active sur CA1 active sur CA2
0
3
0
CA2 actif
sur
.
0
interruption
masquée
1
CA2 actif
sur
.
1
interruption
permise
1
X
CA2 = CRA3
0
DDRA
1
PA
0
CONTRÔLE DE CA1
0
CA1 actif
sur
.
0
interruption
masquée
1
CA1 actif
sur
.
1
interruption
permise
Mode dialogue
Rx : CA1
ou
=> CA2 et CRA7
Lire PA => CA2 et CRA7
0
1
lire PA => CA2
écrire PB => CB2
Tx : Écrire sur PB => CB2
CB1
0
ou
=> CB2
0
voir
page 3-6
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.7 Choisir et installer un interface de puissance
Les lignes, en sorties du port A ou du port B, de l’interface parallèle PIA ont une faible
capacité en courant. On peut, tout au plus, allumer des LED, mais les sorties du PIA ne
peuvent pas contrôler directement des éléments de puissance sans l’ajout d’une interface
de puissance adéquate. Il est possible de renforcir une sortie du PIA par l’ajout d’un
transistor, d’un petit relais ou d’un opto-coupleur. Voici quelques configurations
possibles.
Charge alimentée en courant continu avec un 7407
Le 7407 est un buffer dont la sortie est à collecteur ouvert. Il offre l’avantage
d’augmenter la capacité en courant jusqu’à 40mA et permet également une alimentation
jusqu’à +30 volts.
Vcc
Vcc
Charge
résistiv e
Charge
inductiv e
PB ou PA
PB ou PA
7407
Contrôle par «buffer»
à collecteur ouvert
7407
Contrôle par «buffer»
à collecteur ouv ert
Figure 3-3
Figure 3-4
Charge alimentée en courant continu avec un transistor
Le transistor permet aussi le renforcement en courant et bénificie des avantages d’une
sortie à collecteur ouvert. De plus, les transistors sont disponibles avec des spécifications
très variées en ce qui concerne: le courant, la tension, le gain et la dissipation. Il est
généralement peu coûteux.
Vcc
Vcc
PB ou PA
Charge
résistiv e
PB ou PA
Charge
inducti ve
Contrôle par transistor
Contrôle par transistor
Figure 3-5
Figure 3-6
Programmer les entrées/sorties
page 3-7
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
Charge alimentée en courant alternatif avec isolation
Les coupleurs optiques permettent une excellente isolation électrique entre le circuit de
puissance et le circuit de contrôle. On peut les utiliser directement si la charge est de
faible puissance ou les renforcer avec un thyristor de forte puissance. Certains coupleurs
optiques, comme le MOC3041, peuvent réaliser un amorçage des thyristors à 0° ou 180°
degrés; ces circuits sont idéaux pour les circuits de contrôle, puissance par cycle complet.
Les éléments chauffants sont généralement contrôlés de cette façon. D’autres coupleurs
optiques, comme le MOC3011, amorcent les thyristors aussitôt que la commande est
active; ces coupleurs sont utilisés lorsqu’il faut contrôler la puissance à la charge par
portion de cycle ou angle de phase. Le contrôle d’intensité d’éclairage utilise se principe
pour éviter le clignotement des lampes comme le ferait un contrôle par cycle complet.
+5v
Ce circuit permet de contrôler une
charge AC de faible puissance
directement et ce, en offrant une bonne
isolation électrique par coupleur
optique.
LA MP
AC
PB ou PA
OP TOTRIAC
Charge AC faible puissance
Figure 3-7
+5v
Voici la version à forte puissance, elle
peut contrôler des charges importantes à
l’aide du TRIAC de puissance ajouté.
Celui-ci devra être choisi selon les
caractéristiques en tension et en courant
imposées par la charge.
LAM P
PB ou PA
TRI AC
OPT OTRI AC
AC
Charge AC forte puissance
Figure 3-8
.
+5v
Ce dernier circuit est utile lorsque la
charge est inductive. Comme le
précédent, c’est un circuit à forte
puissance.
1K2
CH ARGE
IND UCTIVE
180 R
MO C301 1
0.2 uF
TR IAC
PB ou PA
AC
Charge AC inductive
Figure 3-9
Programmer les entrées/sorties
page 3-8
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.8 Commande d’un élément de puissance
L’expérience suivante démontre le fonctionnement d’un contrôle de puissance par un
système à microprocesseur. Il s’agit de maintenir la température d’un espace à l’aide d’un
élément chauffant. Le système est en boucle fermé et utilise un capteur pour mesurer la
température.
3.8.1 Schéma bloc du système

La figure ci-après montre le système de contrôle de température. On y trouve un
capteur permettant la conversion de la température à une tension proportionnelle.

Le signal électrique du capteur de température est envoyé à un comparateur de tension
qui reçoit également une tension de comparaison. La position du potentiomètre sert à
établir à quelle température le comparateur basculera. La sortie du comparateur est
transmise au PIA sur la ligne PA7. Ce signal correspond à +5 volts pour une
température plus élevée que le point de consigne et à 0 volt, pour une température
inférieure.

Le PIA transmet au microprocesseur l’état du comparateur et celui-ci décide s’il faut
activer ou désactiver la sortie PB7 afin d’augmenter ou de réduire la température. Le
signal est actif à 0v et inactif à +5v.

Le signal de sortie PB7 du PIA est couplé optiquement à l’interface de puissance. Ce
dispositif protège, par isolation électrique, le circuit de contrôle d’une défectuosité
électrique du circuit de puissance.

L’interface de puissance à thyristor, commandée par le PIA, permet le contrôle d’un
élément chauffant branché sur le secteur.
Comparateur
de tension
PA7
PIA
PB7
Coupleur
optique
Vréf.
Micro
Processeur
Capteur de
température
Interface
de puissance
à thyristor
Élément
chauffant
Figure 3-10
Programmer les entrées/sorties
page 3-9
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.8.2 Algorithme de traitement
Pour solutionner ce problème, il faudra suivre un algorithme dont les étapes
chronologiques sont les suivants.
1. Initialiser le PIA.
2. Lire le bit 7 du portA.
3. Prendre la décision d’activer ou non PB7 selon l’état de PA7.
4. Recommencer à l’étape 2.
3.8.3 Ordinogramme
INIPIA
CONTRÔLE
accès à DDRA
CRA2=0
INIPIA
définir port A en entrée
DDRA=$00
LIRE LE PORT A
accès à PA
CRA2=1
accès à DDRB
CRB2=0
PA7 = 1
?
définir port B en sortie
DDRB=$FF
ACTIVER LA SORTIE
PLACER PB7 À 0
DÉSACTIVER LA
SORTIE
PLACER PB7 À 1
accès à ORB
CRB2=1
RETOUR
Figure 3-11
Programmer les entrées/sorties
page 3-10
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.8.4 Programme assembleur
;**********************************************
; Programme de controle de temperature. Ce programme fait la lecture de l'entree PA7
; puis active, si necessaire, la sortie PB7 afin de maintenir la temperature d'un espace.
; On peut quitter le programme avec la touche (reset).
;
; par: Serge Leblanc (22 mai 1995)
;-----------------------------------------------P_DDRA
EQU
$1400
Data direction register A
P_DDRB
EQU
$1402
Data direction register B
P_CRA
EQU
$1401
Control register A
P_CRB EQU
$1403
Control register B
PA
EQU
$1400
Port A data input address
PB
EQU
$1402
Port B data input address
;-----------------------------------------------; Programme principal
ORG
$0200
Origine du programme
JSR
LDB
LDA
ANDA
BEQ
ORB
BRA
ACTIVE
ANDB
STORE
STB
JMP
;--------------------------------------------------; Sous-programme d'initialisation du PIA.
; Le port A est initialise en entree tandis que
; et le port B est initialise en sortie.
; para. d'entree : aucun
; para. de sortie: aucun
; reg. affectes : A, CC
INIPIA
PB
PA
#10000000B
ACTIVE
#10000000B
STORE
#01111111B
PB
BOUCLE
Sous-programme d'initialisation
Lire l'etat des sorties PB
Lecture du portA
Isoler le bit 7
si bit7=0, temperature trop basse
Forcer le bit7 a 1 (desactive)
INIPIA
#$00
P_CRA
P_DDRA
#$04
P_CRA
#$00
P_CRB
#$FF
P_DDRB
#$04
P_CRB
demande acces au DDRA (CRA2=0)
programme le reg. CRA
programme le portA en entree
demande acces au PortA (CRA2=1)
programme le reg. CRA
demande acces au DDRB (CRB2=0)
programme le reg. CRB
place le portB en sortie
programme le reg. DDRB
demande acces au port B (CRB2=1)
programme le reg. CRB
retour du sous-programme
DEBUT
BOUCLE
LDA
STA
STA
LDA
STA
LDA
STA
LDA
STA
LDA
STA
RTS
;--------------------------------------------------END
Programmer les entrées/sorties
page 3-11
Forcer le bit7 a 0 (active)
Ecriture du resultat sur le portB
Boucle sans fin (sort avec reset)
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.9 Convertisseur numérique à analogique
Les convertisseurs N/A permettent de convertir une valeur numérique en un voltage
proportionnel. Le contrôle d’une tension à l’aide d’un système à microprocesseur est
particulièrement intéressant et permet une grande variété d’applications. On peut, pour en
nommer quelques unes, contrôler l’intensité lumineuse d’un système d’éclairage,
contrôler la puissance transmise à un élément chauffant, contrôler la vitesse de rotation
d’un moteur.
3.9.1 Rappel
Pour prévoir quelle sera la tension de sortie d’un convertisseur, quelques paramètres
doivent être connus. On peut évaluer la tension de sortie si on connaît la tension
maximale à pleine échelle, le nombre de bits utilisés par le convertisseur et la valeur
appliquée au convertisseur.
Un convertisseur possède les caractéristiques suivantes:

la tension maximale à pleine échelle = 8 volts;

le nombre de bits du convertisseur = 8 bits.
Si le convertisseur N/A convertit la valeur 255 qui correspond à la valeur la plus haute,
on obtient la tension maximale, c’est-à-dire 8 volts. La tension minimale est obtenue avec
la valeur 0. Par contre, si l’on tente de prévoir la tension pour une valeur intermédiaire
comme 64, les calculs suivants sont nécessaires. La résolution exprime la plus petite
variation de tension possible. Le nombre de bits est exprimé par la lettre n
Re solution 
Vout max 8volts 8volts
 8

 314
. mV
255
2n  1
2 1
Vout  valeur * resolution  64 * 31.4mV  2Volts
On peut donc facilement prévoir la tension de sortie de ce convertisseur.
3.9.2 Schéma électrique du convertisseur N/A
La figure montre le câblage du convertisseur implanté sur le système Mod. E6809.Le
circuit utilise un DAC0800 de 8 bits. Le DAC0800 reçoit les données à convertir du
circuit 74374. Celui-ci mémorise l’information présente sur le bus de données lorsqu’une
impulsion est reçue sur sa broche CLK. Cette impulsion est généré par le décodeur
d’adresses chaque fois que le microprocesseur fait une opération d’écriture à l’adresse
$1800. La sortie du convertisseur DAC0800 ne fournit pas directement une tension, c’est
une sortie en courant. Le circuit utilisant l’amplificateur opérationnel est un convertisseur
courant à tension calibrée de manière à obtenir une tension de 0 volt avec la valeur $00 et
+8 volts avec la valeur maximale $FF.
Programmer les entrées/sorties
page 3-12
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
R76
2K7
RV3
1K
+12V
CPU DATA BUS
+12V
1
11
OE
CLK
2
5
6
9
12
15
16
19
12
11
10
9
8
7
6
5
D0
D1
D2
D3
D4
D5
D6
D7
VRE F+
IOU T
VRE FV-
1
2
74L S374
V+
VLC
IOU T
COM P
13
7
IC3 2
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
R74
4K7
14
3
4
2
15
3
IC3 3
6
741
OUT
R75
4K7
5
D0
D1
D2
D3
D4
D5
D6
D7
4
1
IC3 1
3
4
7
8
13
14
17
18
C8
16
DA C0800
10K
RV4
10n
Adr.: $1 800
-12V
-12V
Figure 3-12
3.9.3 Programme de contrôle du convertisseur N/A
Le programme suivant génère une rampe de tension à la sortie du convertisseur. Cette
rampe commence à zéro volt et monte progressivement jusqu’à huit volts. Lorsque la
tension maximale est atteinte, elle tombe d’un coup à zéro volt puis recommence le cycle
continuellement. C’est ce qu’on appelle une forme d’onde en dent de scie.
3.9.4 Programme assembleur:
;**********************************************
; Generation d'une rampe de tension de 0 a 8 volt sur le convertisseur N/A.
; On peut quitter le programme avec la touche (reset).
; par: Serge Leblanc (22 mai 1995)
;---------------------------------------------CONV_DA
EQU
$1800
Adresse du convertisseur N/A
;---------------------------------------------ORG
$0200
Origine du programme
DEBUT
MONTE
LDB
STB
INCB
JMP
;---------------------------------------------END
Programmer les entrées/sorties
#$00
CONV_DA
MONTE
page 3-13
code = 00 = 0 volt
sur le convertisseur
incremente la valeur du N/A
continu a monter
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.10 Convertisseur analogique à numérique
Le convertiseur analogique à numérique permet la mesure d’une tension et la convertit en
une valeur numérique utilisable par le microprocesseur. Beaucoup de phénomènes
physiques peuvent être mesurés si l’on dispose d’un capteur et d’une interface
électronique traduisant la grandeur physique du phénomène sous la forme d’une tension,
dont l’amplitude est compatible avec l’entrée analogique du convertisseur A/N.
La valeur numérique obtenu du convertisseur dépend de la résolution du convertisseur et
de la quantité de bits utilisés pour réaliser la conversion. Prenons par exemple un
convertisseur de 10 bits dont la résolution est de 10mV. La tension maximale qu’il peut
mesurer est:
10mV * (210-1) = 10.23 Volts
Si on lui appliquait une tension de 2 volts, le valeur numérique serait égale à:
2 Volts / 10mV = 200 (ou C8 en hexa)
3.10.1 Schéma électrique du convertisseur A/N
Le schéma suivant montre l’implantation du convertisseur ADC0804 sur le système à
microprocesseur Mod. E6809. On retrouve sur ce schéma deux parties importantes: un
circuit pour la mise à l’échelle du signal et le convertisseur analogique et numérique
ADC0804.
DATA BUS
RV1 4K7
IC3 0
AD C0804
+12V
+12V
470 R
100 K
D7
1N9 14
20
R73
19
4
9
IC2 9
3
6
R70
100 K
2
6
741
C5
10n
R71
10K
C7
100 n
7
8
10
RV2
VCC
CLK -R
2K2
5
R69
4
1
INPUT
R68
C6
100 n
7
1N9 14
D6
+5V
CLK -IN
Vre f/2
Vin (+)
D0
D1
D2
D3
D4
D5
D6
D7
INT R
Vin (-)
WR
A-G ND
RD
GN D
CS
CPU
18
17
16
15
14
13
12
11
FIRQ
R/W
11
1K
IC4 E
740 4
5
3
10
R72
2
1
10K
adr: $1C00
-12V
Figure 3-13
Programmer les entrées/sorties
page 3-14
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.10.2 Le circuit de mise à l’échelle du signal d’entrée
Le circuit d’entrée est protégé, à l’aide de R68, D6 et D7, contre les tensions négatives et
contre les tensions positives plus grandes que +12.7 volts. La tension d’entrée est divisée
par deux par les résistances R69 et R70 qui déterminent aussi l’impédance d’entrée du
circuit, soit 200Kohms. Le potentiomètre RV1 permet d’ajuster le gain de l’amplificateur
et le potentiomètre RV2 sert à calibrer le décalage offset. Sur l’entrée Vin+ du ADC0804,
le signal doit se maintenir à l’intérieur des limites d’opération. Ces limites sont 0 volt
comme tension minimale et +5 volts, comme tension maximale.
3.10.3 Le convertisseur analogique à numérique ADC0804
Le ADC0804 est un convertisseur à 8 bits, doté d’une vitesse de conversion élevée et
d’une entrée analogique 0 à 5 volts. Il exploite la technique de conversion à
approximations successives. Ce convertisseur est équipé d’une porte de sortie à trois états
qui lui permet de s’attacher directement sur les bus du microprocesseur. Les signaux
suivants sont utilisés pour établir la communication.

Le signal /CS permet la sélection du boîtier, celui-ci répond à l’adresse
hexadécimale $1C00.

Le signal /RD utilisé en synchronisation avec /CS permet de lire la donnée
provenant du convertisseur.

Le signal /WR utilisé en synchronisation avec /CS à transmettre le signal de début
de conversion.

Le signal INTR, qui indique la fin de la conversion, peut être utilisé pour générer
des interruptions FIRQ au microprocesseur.
3.10.4 Programme de contrôle du convertisseur A/N
Bien que le programme ci-après utilise une boucle de délai pour permettre au
convertisseur de terminer la conversion avant de lire la donnée, il est possible d’utiliser
un programme de contrôle avec gestion de l’interruption FIRQ pour signaler la fin de la
conversion au microprocesseur.
;**********************************************
; Lecture d'une tension de 0 a 8 volt avec le
; convertisseur analogique a numerique ADC0804.
; Le code lu est retourne sur le portB du PIA
; pour la visualisation sur des LED.
;
; On peut quitter le programme avec la touche (reset).
;---------------------------------------------AD_CONV
EQU
$1C00
PORTB
EQU
$1402
DDRB
EQU
$1402
CRB
EQU
$1403
;---------------------------------------------ORG
$0200
DEBUT
LOOP
JSR
STA
JSR
Programmer les entrées/sorties
INIPIA
AD_CONV
DELAI
page 3-15
Adresse du convertisseur A/N
Adr. du portB du PIA
Adr. du reg. de dir. du PIA
Adr. reg. de controle du PIA
Origine du programme
initialise le PIA
depart de conversion
attend fin de conversion
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
LDA
STA
JMP
;---------------------------------------------; Sous-programme d'initialisation du PIA,
; le port B est defini en sortie.
;
; para. d'entree : aucun
; para. de sortie: aucun
; reg. affectes : CC
AD_CONV
PORTB
LOOP
lit la valeur convertie
ecrit la valeur sur PB
boucle sans fin
INIPIA
PSHS
CLR
LDA
STA
LDA
STA
PULS
RTS
;---------------------------------------------; Sous-programme de delai de ___ milli sec.
;
; para. d'entree : aucun
; para. de sortie: aucun
; reg. affectes : CC
A
CRB
#$FF
DDRB
#$04
CRB
A
sauve reg. A
acces a DDRB (CRB2=0)
defini tout le portB
en sortie.
DELAI
A
#$00
sauve reg.A
initialise le compteur
decremente le compteur
si > 0, aller a DEL1
recupere reg.A
retour
PSHS
LDA
DEL1
DECA
BNE
PULS
RTS
;---------------------------------------------END
Programmer les entrées/sorties
DEL1
A
page 3-16
acces au portB (CRB2=1)
recupere reg.A
retour
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
3.11 Exercices
# 1 - Énumérez les registres internes du PIA accessibles à l’usager et décrivez leur rôle.
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
# 2 - Sur quelles lignes se propagent les données entre
a) le microprocesseur et le PIA ?
réponse: _______________________
b) entre le PIA et les périphériques ?
réponse: ____________________________
# 3 - Quelles sont les lignes, parmi les suivantes, qui ne peuvent pas être programmées en
sortie sur le PIA?
PA0 à PA7,
PB0 à PB7,
CA1, CA2, CB1, CB2
réponse: _____________________________
# 4 - Pour assigner les lignes PB0 à PB3 en entrée et les lignes PB4 à PB7 en sortie, quel
code doit être écrit dans le registre de direction DDRB ?
réponse: ______________________________
# 5 - Un boîtier de PIA occupe les adresses de $1400 à $1403. Quel registre interne est choisi
dans les conditions suivantes:
a) à l’adresse $1400 si CRA = $04 ?
réponse: __________
b) à l’adresse $1401 ?
réponse: __________
c) à l’adresse $1402 si CRB = $00 ?
réponse: __________
d) à l’adresse $1403 ?
réponse: __________
Programmer les entrées/sorties
page 3-17
OFPPT/TECCART
Résumé de Théorie
Introduction aux Microprocesseurs
# 6 - Concevez l’ordinogramme d’un sous-programme qui initialise le PIA pour obtenir PA0
à PA3 en sortie, PA4 à PA7 en entrée et le port B en sortie.
# 7 - Concevez un programme en langage assembleur qui génère une rampe de tension qui
part à 7.5 volts et descend jusqu’à 0 volt par saut de ½ volt. Le programme boucle sur
lui-même et regénère la forme d’onde continuellement. La sortie du programme se fait
avec la touche reset.
# 8 - Dessinez le circuit nécessaire pour contrôler, à partir de la ligne PB7 du port B du PIA,
un petit moteur fonctionnant avec une tension de 12 volt DC. La charge doit être
contrôlée de manière on/off.
# 9 - Quel composant électronique permettrait une isolation électrique entre un circuit de
commande alimenté à +5v DC et un circuit de puissance utilisant une tension de 120v
AC?
réponse: _____________________________
# 10 - Écrivez un programme en langage assembleur qui commande une lampe selon le
niveau d’éclairage ambiant. Si le niveau d’éclairage est faible, la lampe doit s’allumer;
par contre, si le niveau d’éclairage est fort, la lampe doit s’éteindre. Voici le schéma
bloc du système.
Comparateur
Capteur:
Photorésistance
Sortie: trop bas = 0
correcte = 1
PA6
PIA
6821
PB3
Microprocesseur
6809
Calibration
du seuil
d'éclairage
Énoncés
Niveau
L'éclairage ambiant est bon
PA6 = 1
L'éclairage est trop bas
PA6 = 0
La lampe est éteinte
PB3 = 1
La lampe est allumée
PB3 = 0
Programmer les entrées/sorties
page 3-18
Interface de
puissance
LAMPE
OFPPT/TECCART
Téléchargement