Vous êtes sur la page 1sur 20

Chapitre III Ce microcontrôleur intègre en plus des fonctions sophistiquées :

LE MICROCONTRÔLEUR 68HC11 - Un convertisseur A/N de 8 canaux d’entrée multiplexés et de 8 bits de précision;


III.1 – Description : - Cinq ports d’entrée/sortie de 8 bits, programmables (le 68HC11F1 en possède sept);
C’est un microcontrôleur livré en un seul boîtier qui bénéficie des avantages de la - Un système de temporisation 16 bits développé de manière à avoir trois lignes de
technologie HCMOS, c'est-à-dire une faible consommation de puissance comme la capture en entrée, cinq lignes de comparaison en sortie et un circuit d’interruption en
famille CMOS, une grande immunité aux bruits et la grande de commutation (vitesse temps réel;
maximale d’environ 40 MHz). - Un accumulateur d’impulsions qui peut être utilisé pour mesurer une période externe;
La mémoire interne comprend : - Un circuit de surveillance de bon fonctionnement (COP) ou « Watchdog », qui aide à
- 8 kOctets de mémoire ROM (certaines versions ont 4 kOctets, d’autres ont 12 ou protéger contre les défaillances logicielles;
16 kOctets, les versions 68HC11A1 et 68HC11F1 ne possèdent pas de ROM); - Un système d’horloge programmable qui génère une initialisation dans le cas d’une
- 512 Octets de mémoire EEPROM (certaines versions n’en ont pas); perte d’horloge ou lorsque celle-ci est trop lente;
- 256 Octets de mémoire RAM (certaines versions ont 512, le 68HC11F1 intègre - Une interface de communication série asynchrone SCI;
1024 octets de RAM statique); - Une interface de périphériques série synchrone (SPI);
Le 68HC11 opère à une vitesse de BUS de 2 MHz (le 68HC11F1 opère à 4 MHz). - Un circuit de détection de code opératoire illégal qui produit une interruption non
masquable si un code opératoire illégal est détecté dans le programme.
III.2 – Modes de fonctionnement :
Le 68HC11 possède deux broches dédiées MODA et MODB qui sélectionnent le
XTAL
mode de fonctionnement. Les modes de fonctionnement de base sont :
68HC11
EXTAL - Mode Single-Chip (Mode auto-opérationnel) ou Mode 0;
Quartz de fréquence 4
fois la fréquence de - Mode Etendu-multiplexé ou Mode 1;
fonctionnement du µC
Les modes de fonctionnement spéciaux :
a) Horloge à base de Quartz - Mode Bootstrap;
- Mode Test.
La sélection des différents modes se fait conformément à la table de vérité suivante :
XTAL MODB MODA Mode de fonctionnement
68HC11
EXTAL Horloge de fréquence
1 0 Single-Chip ou Mono-Chip
4 fois la fréquence de
fonctionnement du µC 1 1 Étendu-Multiplexé
0 0 Spécial Bootstrap
b) Horloge externe
0 1 Spécial Test
Figure III.1 – Conception d’une horloge pour le microcontrôleur 68HC11
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 1/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 2/40
III.2.1 – Mode Single chip :
PB7 A15
Dans ce mode auto-opérationnel, le microcontrôleur fonctionne de manière PB6 A14
PB5 A13
autonome et n’a pas d’adresses extérieures ni de BUS de données externe. Il exploite au PB4 A12
PB3 A11
maximum ses propres ressources et périphériques internes. Toutes les manipulations de PB2 A10
PB1 A9
données et d’adresses sont internes. Ce mode est sélectionné pendant la remise à zéro à PB0 A8
l’aide de la combinaison ci-dessus. 68HC11 74HC373
PC7 PC7 Q1 A7
PC6 PC6 Q2 A6
III.2.2 – Mode étendu multiplexé : PC5 PC5 Q3 A5
PC4 PC4 Q4 A4
Dans ce mode, deux ports d’Entrée/Sortie et deux lignes d’E/S additionnelles PC3 PC3 Q5 A3
PC2 PC2 Q6 A2
deviennent BUS d’adresses, de données et de contrôle (AS et R/ W ) permettant au PC1 PC1 Q7 A1
PC0 PC0 Q8 A0
microcontrôleur d’adresser jusqu’à 64 koctets d’espace mémoire (figure III.2). L’octet de
(PD6) AS LE CE
poids fort des adresses sort sur le port B alors que l’octet de poids faible est multiplexé
(PD7) R/W
avec le BUS de données et sort sur le port C. Dans ce cas, le bit 6 du port D devient la WE
E
sortie de contrôle AS qui est utilisée pour démultiplexer l’octet faible d’adresses des D7
D6
données. Le bit 7 du port D contrôle la direction de transfert des données ( R/ W ). D5
D4
D3
Pour la version 68HC11F1, le BUS d’adresses est formé par le port B (A15-A8) et le D2
D1
port F (A7-A0). Le signal R/ W est fourni indépendamment par le 68HC11F1. Pour le D0
BUS de données, il est constitué dans cette version par le port C (D7-D0). Figure III.2 – Démultiplexage Adresses/Données avec le circuit MC74HC373
Les ports B, C et F fonctionnent aussi en ports d’entrée-sortie ordinaires (ports B et (Versions autres que le 68HC11F1)
F comme ports de sortie et port C comme entrée/sortie).
III.2.3 – Mode Bootstrap :
Dans le mode Bootstrap, le programme situé dans la ROM de démarrage initialise
Il s’agit d’un mode Single-Chip spécial, dont le programme de gestion (Firmware) et
la logique de réception série de façon logicielle, qui permet de programmer la vitesse de
les vecteurs sont placés dans la ROM de démarrage (Boot ROM). La ROM de démarrage
transmission et le format du mot de l’interface SCI pour charger le programme spécial de
a une taille de 256 octets et est située entre $BF00 et $BFFF. Le programme BOOT-
gestion dans la RAM interne.
LOADER est situé dans la ROM de démarrage entre $BF40 et $BFFF (192 octets).
Les bits de contrôle peuvent aussi être programmés de manière à ce que le mode de
Le programme de démarrage permet de charger un programme spécial de gestion de
fonctionnement puisse être changé (à la fin du chargement du programme dans la RAM)
256 Octets dans la RAM interne (ou jusqu’à 1 kOctet dans la version 68HC11F1) et un
du mode Bootstrap au mode étendu multiplexé, afin d’exécuter le programme chargé
contrôle est validé après cette lecture pour que le microcontrôleur retrouve le mode
dans la RAM à partir de l’adresse $0000.
single chip.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 3/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 4/40
III.2.4 – Mode Test : III.3.2 – Mode Etendu-Multiplexé :
C’est un mode étendu multiplexé spécial, le vecteur d’initialisation est recherché en Les emplacements mémoire sont les mêmes que ceux du mode Single-Chip, à
mémoire ce qui permet au programme d’être vectorisé vers un programme de test l’addition des emplacements désignés EXT; réservés aux mémoires et aux E/S externes.
externe.
III.3.3 – Mode Bootstrap :
Ce mode est avant tout considéré comme le mode de test global de production au
Les emplacements sont identiques à ceux du mode single chip, à l’addition des
moment de la fabrication. Cependant il peut aussi être utilisé pour programmer des
emplacements de la mémoire de démarrage (Boot ROM).
calibrations ou des données personnelles dans l’EEPROM interne ou programmer le
registre CONFIG. Durant l’initialisation de ce mode, un bit est configuré pour permettre III.3.4 – Mode Test :
l’accès aux bits de contrôle de ce mode. Les emplacements sont les mêmes que ceux du mode étendu multiplexé. Il faut
Les bits de contrôle peuvent aussi être programmés pour permettre au mode de seulement noter les emplacements réservés aux vecteurs d’interruption de ce mode, situés
fonctionnement de passer du mode test au mode single chip. dans l’espace mémoire externe.
III.3 – Répartition de l’espace mémoire : III.4 – Unité centrale de traitement :
L’espace mémoire dépend du mode de fonctionnement (figure III.3). C’est une extension de l’unité centrale du microcontrôleur 6801. En plus d’être
$0000
0000 RAM de (1024 sur la version F1)
capable d’exécuter les instructions du 6800 et du 6801, le 68HC11 possède 91 nouveaux
↑ ↑ 256 Octets
EXT EXT 00FF codes opératoires. L’unité centrale de traitement du 68HC11 peut être utilisée
$1000 ↓ ↓
1000 Bloc de 64 octets (96 sur la version F1 : $1000-$105F) indépendamment des E/S, mémoires et des périphériques externes et peut être
↑ ↑ de registres
EXT EXT
103F internes considérée comme un processeur indépendant qui communique avec ses sous-systèmes
↓ ↓
$B600 B600 EEPROM de
512 Octets internes, dans le mode Single-Chip.
↑ ↑ B7FF
L’unité centrale de traitement possède sept registres accessibles par l’utilisateur
EXT BF00 ROM de BFC0 64 Vecteurs
démarrage d’interruption des
EXT
BFFF BFFF modes spéciaux (Figure III.4). L’ordre d’empilement de ces registres dans la pile lors d’une interruption
$E000 ↓ ↓ E000 ROM de est montré à la figure III.5.
8 kOctets
FFC0 64 Vecteurs
d’interruption des III.4.1 – Accumulateurs A et B :
$FFFF FFFF FFFF modes normaux
Mode Mode Etendu Mode Mode Ces registres contiennent des opérandes ou des résultats d’opérations arithmétiques
Single-Chip Multiplexé Spécial Boot Spécial Test
(Mode 0) (Mode 1) ou logiques de manipulation de données. Ces accumulateurs 8 bits sont concaténables en
MODA= 0 MODA= 1 MODA= 0 MODA= 1
MODB= 1 MODB= 1 MODB= 0 MODB= 0
un accumulateur D de 16 bits. L’accumulateur A correspond au poids le plus fort.
Figure III.3 – Répartition de l’espace mémoire du 68HC11
III.4.2 – Registres d’index X et Y :
III.3.1 – Mode Single-Chip :
Utilisables lors de l’adressage indexé, ils contiennent la valeur 16 bits qui peut être
Aucune adresse mémoire externe n’est générée. Les emplacements mémoire internes
associée à un décalage pour créer l’adresse effective. Ils peuvent aussi servir de pointeurs
sont indiqués par les aires hachurées. Le contenu de ces aires est montré sur le coté droit
de la figure.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 5/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 6/40
d’adresses ou de zones de stockage temporaires. Il est à noter que plusieurs instructions III.4.4 – Le compteur programme PC:
utilisant le registre Y, nécessitent un octet supplémentaire de code machine. Ce registre de 16 bits contient à chaque instant l’adresse de la prochaine instruction à
COMPTEUR PROGRAMME - PC exécuter.
INDEX - X
III.4.5 – Le registre d’état CCR:
INDEX - Y
POINTEUR DE PILE - SP
Les huit bits de ce registre indiquent la signification des résultats de l’opération qui
ACCUMULATEUR - A ACCUMULATEUR - B vient d’être exécutée. Ces bits peuvent être testés par un programme pour générer une
action spécifique.
ACCUMULATEUR - D
Les bits (C, V, Z, N, I et H) sont identiques à ceux du MC6809 vu au chapitre
REGISTRE D’ETAT - CCR
précédent, la signification des bits S et X est comme suit :
S X H I N Z V C - S : Ce bit est utilisé pour permettre ou interdire l’instruction STOP du 68HC11.
Bit de retenue (CARRY)
L’instruction STOP arrête l’oscillateur du 68HC11 et par conséquent arrête le
Bit de débordement (OVERFLOW) fonctionnement du microcontrôleur. Quand S=1, l’instruction STOP devient
Bit de zero (ZERO)
Bit de signe négatif (NEGATIVE)
inopérante. Quand S=0, dès que le programme rencontre l’instruction STOP,
Masque d’interruption IRQ l’horloge du 68HC11 s’arrête.
Bit de demie retenue (HALF CARRY)
Masque d’interruption X (XIRQ) - X : Masque de l’interruption XIRQ . Il permet de valider les demandes d’interruption
Désactivation de STOP
sur la broche XIRQ . Ce masque est utilisé uniquement pendant la remise à zéro
Figure III.4 – Registres du 68HC11
(reset) pour inhiber l’interruption XIRQ , mais dès que le programme de démarrage est
III.4.3 – Pointeur de pile SP : lancé, les interruptions XIRQ sont autorisées et ne peuvent plus être masquées par
Configuré comme un registre à séquence LIFO « Le dernier sort en premier », lors
programme. XIRQ est une interruption non masquable en fonctionnement normal.
du stockage du contexte du 68HC11 au moment des interruptions (Figure III.5).
Remarques :
SP après interruption SP-9 Quand une interruption apparaît :
CCR SP-8
ACC. A
X=1 ⇒ blocage de XIRQ (lors d’un RESET);
SP-7
ACC. B SP-6 I=1 ⇒ blocage de IRQ .
XH SP-5
Adresses décroissantes
XL SP-4 Après traitement de l’interruption, l’instruction RTI (retour d’interruption) :
YH SP-3 X=0 ⇒ autorisation de XIRQ ;
YL SP-2
PCH SP-1 I=0 ⇒ autorisation de IRQ .
SP avant interruption PCL SP
X étant le masque de l’interruption XIRQ et I celui de l’interruption IRQ .
Figure III.5 – Ordre d’empilement des registres sur la pile
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 7/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 8/40
III.5 – Les autres registres internes du 68HC11 : $102A SPDR
Pour écrire à ou lire à partir des différents périphériques ou ressources internes du $102B BAUD
$102C SCCR1
68HC11, ce microcontrôleur utilise un ensemble de registres repérés dans l’espace $102D SCCR2
mémoire (entre $1000 et $103F dans la version de base et $1000-$105F sur la version $102E SCSR
$102F SCDR
F1). Un certain nombre de ces registres est utilisé pour la configuration des différents $1030 ADCTL
modes de fonctionnement de ces périphériques et ressources internes. Le tableau suivant $1031 ADR1
$1032 ADR2
donne le nom et l’adresse dans l’espace mémoire de ces registres dans la version de base $1033 ADR3
du 68HC11. $1034 ADR4
$1035 BPROT
$1000 PORT A (DDRA du Bit7 en $1026 = PACTL) $1036 à $1038 RESERVE MOTOROLA
$1001 RESERVE MOTOROLA $1039 OPTION
$1002 PIOC $103A COPRST
$1003 PORT C $103B PPROG
$1004 PORT B $103C HPRIO
$1005 PORT CL $103D INIT
$1006 RESERVE MOTOROLA $103E TEST1
$1007 DDRC $103F CONFIG
$1008 PORT D
$1009 DDRD III.6 – Les interruptions du 68HC11 :
$100A PORT E
$100B CFORC Il existe de nombreuses sources d’interruption pour le 68HC11: 2 interruptions
$100C OC1M matérielles (entrées externes sensibles à un niveau bas) : IRQ et XIRQ , une interruption
$100D OC1D
$100E et $100F TCNT logicielle SWI et un certain nombre de sources internes liées aux différents périphériques
$1010 et $1011 TIC1 qui équipent le microcontrôleur (TIMER, SCI, SPI, RTII : Interruption temps réel, etc...).
$1012 et $1013 TIC2
$1014 et $1015 TIC3
III.6.1 – Interruptions matérielles :
$1016 et $1017 TOC1
$1018 et $1019 TOC2 y XIRQ : Interruption non masquable du 68HC11 (broche externe). Le masque X du
$101A et $101B TOC3
$101C et $101D TOC4 registre d’état est utilisé uniquement pendant la remise à zéro (reset) pour inhiber
$101E et $101F TOC5
l’interruption XIRQ . Dès que le programme de démarrage est initialisé, les interruptions
$1020 TCTL1
$1021 TCTL2 XIRQ sont autorisées et ne peuvent plus être masquées par programme.
$1022 TMSK1
$1023 TFLG1 y IRQ : Interruption générale masquable du 68HC11 (broche externe). Elle peut être
$1024 TMSK2
$1025 TFLG2 masquée par programme (Instruction SEI).
$1026 PACTL y PA0 (IC3), PA1 (IC2), PA2 (IC1) : Utilisées par le TIMER. Elles peuvent être utilisées
$1027 PACNT
pour contrôler des demandes d’interruption. Les interruptions correspondantes sont
$1028 SPCR
$1029 SPSR masquables.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 9/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 10/40
y PA6 (OC2), PA5 (OC3), PA4 (OC4), PA3 (OC5) et éventuellement PA7 (OC1) : Exemple: SPIRQ est l’étiquette du sous-programme à exécuter si un niveau bas apparaît
utilisées comme sorties de comparaison par les comparateurs du TIMER. Quand il y a sur l’entrée IRQ .
égalité entre le contenu des registres de comparaison et le contenu du compteur libre, un ORG $FFF2
bit est positionné (OC1F à OC5F du registre TFLG1) et une interruption peut être FDB SPIRQ
générée. Les interruptions associées aux sorties de comparaison sont masquables. Il faudra au début du programme autoriser les interruptions (CLI).
III.6.1 – Interruption logicielle SWI : III.7 – Modes d’adressage :
SWI est exécutée comme toute autre instruction. Elle est utilisée dans un programme Le 68HC11 possède six modes d’adressage qui lui confèrent une grande flexibilité et
pour réaliser une interruption (afin de gérer ses points d’arrêt par exemple). d’importantes capacités logicielles. La description des différents modes a été présentée au
Quand une interruption apparaît, le 68HC11 termine l’instruction en cours, tous les chapitre consacré au 6809 et est résumée ci-après (les éventuelles différences par rapport
registres ainsi que le compteur ordinal sont sauvegardés dans la pile (voir figure III.5), et au 6809 sont citées dans le texte) :
le bit I du registre d’état CCR est mis à « 1 », ce qui interdit toute nouvelle interruption.
III.7.1 – Mode d’adressage inhérent :
Seule XIRQ , qui est non masquable, sera traitée si elle intervient pendant une phase
La donnée n’est pas nécessaire au microcontrôleur car l’instruction est implicite.
d’interruption. Ensuite le vecteur correspondant à l’interruption de plus haute priorité est Exemple:
recherché, et sa valeur chargée dans le compteur ordinal. Le sous-programme lié à TAB : Transfert du contenu du registre A vers le registre B.
l’interruption va donc s’exécuter. Ce programme se termine par l’instruction RTI qui a
pour effet de faire exécuter les opérations inverses, à savoir restitution des registres, III.7.2 – Mode d’adressage immédiat :
remise à « 0 » du bit I du registre d’état (CCR) autorisant la prise en compte de nouvelles La donnée fait partie de l’instruction. Par exemple si on veut initialiser un registre
interruptions et le chargement du compteur ordinal avec la valeur qu’il avait avant avec une valeur donnée, on utilisera ce mode d’adressage. Exemple:
LDAA #$4F : Le registre A est chargé par la valeur hexadécimale : 4F.
l’interruption, ce qui fait reprendre le programme à l’endroit où il avait été interrompu.
Ce mode est spécifié à l’assembleur par l’utilisation du préfixe # avant la donnée.
A la remise à zéro du système à base du 68HC11, les bits I et X du registre CCR sont
à « 1 », ce qui masque les interruptions. Si on désire que l’interruption IRQ soit active, il III.7.3 – Mode d’adressage direct :
faudra l’autoriser en passant le bit I à « 0 ». On utilisera l’instruction : CLI. Au contraire si La donnée est à une adresse codée sur 8 bits, c’est à dire comprise entre $00 et $FF
on a besoin de les masquer au cours du programme on utilisera l’instruction : SEI. donc dans la zone RAM. Un seul octet est nécessaire pour spécifier l’adresse. Exemple:
A chaque interruption il y aura neuf octets sauvegardés dans la RAM (voir figure STAA $0F : Le contenu du registre A est rangé à l’adresse $0F.
III.5). Il ne faut pas oublier d’initialiser le pointeur de pile SP sur une adresse en RAM où
Remarque : Le 68HC11 n’a pas de registre de page directe. L’espace adressable en mode
le microcontrôleur pourra sauvegarder ses registres.
direct s’étend de $0000 à $00FF.
Exemple: SP pointe le bas de la zone des 256 octets de RAM interne:
LDS #$00FF III.7.4 – Mode d’adressage étendu :
Il faudra initialiser le vecteur d’interruption en écrivant à l’adresse de ce vecteur La donnée est à une adresse codée sur deux octets, c’est à dire n’importe où dans
l’adresse du programme correspondant. l’espace adressable par le 68HC11 qui a 16 bits d’adresse. Exemple:
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 11/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 12/40
STAA $1000 : Le contenu du registre A est rangé à l’adresse $1000. EQU : Affecte une valeur permanente à une étiquette. Exemple:
PORTB EQU $04
III.7.5 – Mode d’adressage indexé :
La donnée est à une adresse spécifiée par le contenu d’un registre d’index: X ou Y ORG : Fixe l’origine des adresses pour l’assemblage. Exemple:
auquel on ajoute une valeur d’offset contenue dans l’instruction. Exemple: ORG $B600
LDX #$1000
FCB : Réserve une adresse mémoire (un mot de 8 bits) et l’initialise à une valeur.
LDAA 5,X : Le registre A est chargé par l’octet de l’adresse $1005.
Exemple:
Remarque : L’offset doit être compris dans la plage : $00 - $FF. L’offset est un nombre ORG $C000
non signé dans le cas du 68HC11 contrairement au microprocesseur 6809 qui utilise un FCB $7E : La valeur $7E sera écrite à l’adresse $C000
offset signé.
FDB : Réserve deux adresses (un mot de 16 bits) et les initialise. Exemple:
III.7.6 – Mode d’adressage relatif : ORG $B8CA
Ce mode d’adressage n’est utilisé que lors des instructions de branchement. Si la FDB $7F00 : La valeur de $7F00 est écrite à l’adresse $B8CA. Comme $7F00 est
codée sur 16 bits, le MSB (7F) sera situé à $B8CA et le LSB (00) à $B8CB
condition de branchement est vraie, le mot de 8 bits qui suit l’instruction représente un
déplacement binaire signé. Ce mot est ajouté au contenu du PC pour former l’adresse où FCC : Réserve plusieurs adresses et les initialise avec le code ASCII des caractères du
doit se brancher le programme. Il faut noter que le déplacement codé sur 8 bits autorise texte. Exemple:
un offset compris dans la gamme -128 à 127. Il n’existe pas de branchement long (16 ORG $C003
bits) dans le cas du 68HC11. Si le déplacement est trop important, on utilisera un saut en FCC "TEXTE" : Le code ASCII de T sera mis à l’adresse $C003, celui de E à $C004,
deux temps. celui de X à $C005, celui de T à $C006 et celui de E à $C007.
Remarque : Les modes d’adressage suivants n’existent pas pour le 68HC11 comparé Remarque : Certains assembleurs du 68HC11 n’acceptent pas la directive FCC pour les
avec le 6809 : Indirect, Indexé auto-incrémenté, Indexé auto-décrémenté, Relatif au PC. chaînes de caractères mais plutôt FCB (exemple : FCB "TEXTE")
III.8 – Programmation du 68HC11 : RMB : Réserve des adresses mémoire mais sans les initialiser à une valeur particulière.
Exemple:
III.8.1 – Syntaxe assembleur :
ORG $B7E0
De la même façon que dans le cas du microprocesseur 6809, chaque ligne
RMB $06 Les 6 cases mémoire à partir de l’adresse $B7E0 sont réservées.
d’instruction du programme assembleur du 68HC11 comporte quatre parties appelées
« champs ». Chaque champ est séparé par un espace. III.8.2 – Les instructions spéciales du 68HC11 :
Étiquette Code opératoire Code opérande Commentaire Ces instructions ne marchent qu’avec un adressage direct ou indexé.
BSET PORTD,X,#$40 : Mise à «1» du bit b6 de l’adresse X+PORTD
III.8.2 – Directives de l’assembleur :
BCLR MEM,X,#$08 : Mise à «0» du bit b3 de l’adresse X+MEM
Tout comme le 6809, le 68HC11 possède un certain nombre de directives
BRSET PORTB,X,#$01 ETIQ : Saut à ETIQ si le bit b0 de PORTB+X est à «1»
d’assembleur. Les plus importantes sont résumées ci-dessous : BRCLR MEM,#$02 ETIQ : Saut à ETIQ si le bit b1 de MEM est à «0»
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 13/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 14/40
III.9 – Les ports d’entrée/sortie : de PA7 est programmé par le bit DDRA7 (bit 7) du registre de contrôle PACTL
Le 68HC11 possède cinq ports de 8 bits chacun (il y en a 7 sur la version F1), qui dans la version de base et par le bit I4/O5 (bit 2) du registre PACTL dans la
peuvent servir plus qu’un objectif, dépendamment de la configuration du mode de version F1.
fonctionnement, défini par le registre de contrôle. Les broches des ports sont également Le registre PORTA permet l’écriture ou la lecture des bits PA0 à PA7.
partagées avec d’autres fonctions périphériques. Remarque : Si certaines lignes de sortie sont configurées pour être utilisées par le
TIMER, il est impossible de modifier leur état par une écriture dans le registre PORTA.
III.9.1 – Le port A :
Le résultat de cette écriture est cependant mémorisé dans un « Latch » et, lorsque les
Le port A est un port parallèle à usage général partagé avec le TIMER et
broches sont libérées par le TIMER, les données mémorisées sont transférées en sortie.
l’accumulateur d’impulsions. Lorsque les broches du port A ne sont pas utilisées en
Même si certaines lignes sont configurées pour être utilisées par le TIMER, leur état
temporisation, elles peuvent être utilisées comme des E/S ordinaires à usage général.
peut toujours être lu dans le registre PORTA.
Dans tous les modes de fonctionnement du 68HC11.
III.9.1.1 – Les registres associés au port A :
Dans la version de base, le port A possède :
i) Le registre PORTA :
▫ 3 entrées fixes : PA0, PA1, PA2;
Ce registre de 8 bits est accessible en lecture/écriture.
▫ 4 sorties fixes : PA3 à PA6;
▫ 1 entrée/sortie configurable : PA7. RESET - 0 0 0 0 - - -
PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PORTA $1000
Dans la version F1, tous les bits du port A peuvent être configurées en entrée ou en
Remarque : La ligne en face du mot « RESET » indique l’état des bits du registre à la
sortie.
remise à zéro du microcontrôleur.
Une lecture du contenu de ce registre retourne l’état réel des broches en entrée mais
Le port A peut être configuré de la façon suivante :
donne l’état précédemment écrit dans le registre pour les bits correspondants à des
- bits 0, 1, 2 : Trois entrées de capture IC3, IC2, IC1. Chacune des entrées de
broches de sortie.
capture est utilisée pour verrouiller une valeur de temporisation du compteur libre
Pour envoyer une donnée vers le port A, il suffit d’écrire :
dans le registre de capture en entrée à 16 bits à lecture seule, lorsqu’une transition
PORTA EQU $1000
active est enregistrée sur une broche externe;
STAA PORTA : La donnée étant disponible dans l’accumulateur A.
- bits 3, 4, 5, 6 : Quatre sorties de comparaison OC5, OC4, OC3, OC2. Chacune
Pour recevoir une donnée qui arrive sur le port A, il suffit d’écrire :
des sorties comparaison s’active lorsqu’une concordance est établie entre la valeur
PORTA EQU $1000
du compteur libre et la valeur chargée dans le registre de comparaison. Les sorties LDAA PORTA : La donnée se trouve alors dans l’accumulateur A.
peuvent être utilisées extérieurement pour indiquer qu’une période de temps s’est
écoulée; ii) Le registre PACTL :
Ce registre de 8 bits est accessible en lecture/écriture. Seul le bit DDRA7 nous
- bit 7 : Entrée de l’accumulateur des impulsions ou cinquième sortie de
intéresse dans ce paragraphe.
comparaison OC1. Cette broche est bidirectionnelle. Le sens de fonctionnement
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 15/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 16/40
RESET - 0 0 0 0 - - - y Les adresses des ports du microcontrôleur peuvent être relocalisées dans les cartes de
DDRA7 PAEN PAMOD PEDGE - - RTR1 RTR0 PACTL $1026
développement. Par exemple sur la carte CONTROLBOYF1, le port B est relocalisé à
DDRA : Sens de fonctionnement de PA7 l’adresse $1060.
0 Entrée commune avec l’entrée PAI de l’accumulateur d’impulsions
1 Sortie commune avec la sortie OC1, sortie de comparaison y Le port B comme le port C supportent divers modes de fonctionnement en « dialogue »
qui font intervenir les lignes STRA et STRB (du port D). Ces modes de fonctionnement
Si on désire que PA7 soit configuré en sortie, il faut écrire :
se programment grâce à divers bits du registre PIOC.
PACTL EQU $1026
LDAA #%10000000 : On veut mettre DDRA7 en sortie (on masque les autres bits III.9.2.1 – Les registres associés au port B :
pour ne changer que DDRA7)
STAA PACTL : On envoie dans PACTL
i) Le registre PORTB :
Remarque : Sur la version 68HC11F1, tous les bits du port A peuvent être configurés Le port B est un port de sortie de 8 bits à usage général. Il ne dispose pas de registre
comme entrées ou sorties. Le sens d’échange du port est déterminé par le registre DDRA DDR associé puisque son sens de fonctionnement est figé.
situé à l’adresse $1001.
RESET 0 0 0 0 0 0 0 0 RESET 0 0 0 0 0 0 0 0
DDRA7 DDRA6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRA0 DDRA $1001 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PORTB $1004
DDRA7 à DDRA0 : Sens
Pour envoyer une donnée vers le port B, il suffit donc d’écrire :
0 Entrée
1 Sortie PORTB EQU $1004
STAA PORTB : La donnée étant disponible dans l’accumulateur A
Exemple de configuration et d’utilisation du port A en entrées numériques (version Comme le port B est un port de sortie, la lecture du registre PORTB permet
68HC11F1): d’accéder à la dernière donnée qui a été écrite à ce port.
PORTA EQU $1000 Remarque : En dialogue simple, une écriture dans le registre PORTB place les données
DDRA EQU $1001
LDAA #$00 correspondantes en sortie sur le port et génère une impulsion d’une durée de 2 cycles
STAA DDRA : Les bits PA7-PA0 sont configurés en entrées
d’horloge E sur la ligne STRB.
LDAA PORTA : Lecture des données numériques présentes sur le port A
III.9.2 – Le port B : III.9.3 – Le port C :
En mode Single-Chip, les broches de ce port sont des sorties à usage général. En mode Single-Chip, les broches de ce port sont des E/S ordinaires à usage général
Cependant, en mode multiplexé les broches constituent l’octet de poids fort de l’adresse. ou de simples sorties validées par STRB (broche 7 du port D), les entrées peuvent être
En fonctionnement en port d’usage général, le positionnement des lignes du port B verrouillées par STRA (broche 6 du port D). Il peut aussi être utilisé dans le mode
se fait en écrivant dans le registre PORTB. Comme le port B est un port de sortie à usage dialogue E/S parallèle où l’entrée STRA et la sortie STRB opèrent en lignes de contrôle.
général, son sens est donc figé et ne possède pas de registre de direction. En mode étendu multiplexé, les broches sont multiplexées adresses/données
Remarques : (démultiplexées par le signal AS : bit PD6 du port D) qui représentent le poids faible de
l’adresse durant la portion adresse du cycle, et des données bidirectionnelles contrôlées
par le signal R/ W (bit PD7 du port D) durant la portion données du cycle.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 17/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 18/40
En mode de fonctionnement en port à usage général, le port C est un port STAF : Etat du détecteur de front de STRA
bidirectionnel. Le sens de chaque ligne est programmé grâce aux bits correspondants au 0 RAZ : lecture de PIOC (avec STAF = 1) et accès à
PORTCL (lecture ou écriture suivant mode de
registre DDRC. La lecture ou l’écriture des données de ou vers le port C fait par contre fonctionnement)
appel à deux registres : PORTC et PORTCL. 1 Transition active détectée sur STRA
STAI : Masque d’interruption de STRA
III.9.3.1 – Les registres associés au port C : 0 Demande inhibée
suivant mode de fct)
i) Le registre DDRC : 1 Interruptions (générées par passage à 1 de STAF)
Ce registre de 8 bits de direction de données est accessibles en lecture/écriture. autorisées
RESET 0 0 0 0 0 0 0 0
DDRC7 DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0 DDRC $1007
CWOM : Configuration matérielle du port C
0 Sortie CMOS
DDRC7 à DDRC0 : Sens 1 Sorties à drain ouvert nécessitant une résistance pull-up
0 Entrée
1 Sortie HDNS et OIN : Mode de fonctionnement
HDNS OIN
Si on veut par exemple que les broches PC0 à PC5 soient en sortie et les broches 0 x Dialogue simple
1 0 Dialogue complet en entrée
PC6 et PC7 en entrée, il faut écrire : 1 1 Dialogue complet en sortie
DDRC EQU $1007
PLS : Fonctionnement de STRB
LDAA #%00111111
0 Mode verrouillé
STAA DDRC 1 Mode impulsionnel
ii) Les registres PORTC et PORTCL (version de base uniquement): EGA : Choix du front actif de STRA
Ces deux registres de 8 bits sont accessibles en lecture/écriture. 0 Front descendant
1 Front montant
RESET - - - - - - - -
PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PORTC $1003
INVB : Niveau actif de STRB
0 Niveau bas
PORTCL (version de base uniquement)
RESET - - - - - - - - 1 Niveau haut
PCL7 PCL6 PCL5 PCL4 PCL3 PCL2 PCL1 PCL0 PORTCL $1005
iv) Modes de fonctionnement :
Remarque : On utilise le registre PORTCL pour accéder aux données verrouillées par
un « Latch » connecté au port C. a) Dialogue simple :
Une écriture dans le registre PORTC place les données correspondantes en sortie sur
iii) Le registre PIOC : le port et génère une impulsion d’une durée de 2 cycles d’horloge E sur la ligne STRB.
Ce registre de 8 bits, accessible en lecture/écriture, sert à sélectionner le mode de En entrée : la lecture du registre PORTC est le reflet de l’état courant des lignes de
dialogue utilisé mais aussi les états des divers signaux ou transitions. port. La lecture de PORTCL, par contre, est le reflet de l’état de ces lignes au moment de
RESET 0 0 0 0 0 - 1 1
STAF STAI CWOM HDNS OIN PLS EGA INVB PIOC $1002 la transition valide de la ligne STRA.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 19/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 20/40
En sortie : le fait d’écrire dans PORTC ou dans PORTCL produit les mêmes effets III.9.4 – Le port D :
au niveau des broches configurées en sortie. Peut être utilisé comme E/S à usage général (à 6 bits) ou travailler avec le SCI et le
Par contre l’écriture dans l’un de ces registres est évidemment sans aucun effet sur les SPI. En mode étendu-multiplexé, les bits 6 et 7 sont utilisés comme signaux de contrôle
broches configurées en entrée. des ports B et C (AS et R/ W ), les autres bits sont configurés comme suit (bit0 et bit1
Ces données sont cependant mémorisées localement et sont présentées en sortie si pour la transmission série):
les broches correspondantes changent de sens de fonctionnement. - bit 0 : Entrée réception RXD du SCI;
- bit 1 : Sortie transmission TXD du SCI.
b) Dialogue complet en entrée :
Les bits 2 à 5 sont réservés au SPI (pour l’interconnexion de plusieurs microcontrôleurs
Lorsqu’une condition « prêt » est reconnue, le système externe place les données sur
ou l’interconnexion de périphériques):
les lignes du port C, puis délivre un front actif sur la ligne STRA.
Ce front verrouille les données du port C dans le registre PORTCL et positionne - bit 2 : Ligne MISO (Master In-Slave Out)= Entrée quand le SPI est configuré
l’indicateur STAF (provoquant éventuellement une interruption). maître et sortie lorsqu’il est configuré esclave;
En mode « verrouillé » (PLS = 0), la ligne STRB est mise à son état actif pour inhiber - bit 3 : Ligne MOSI (Master Out-Slave In)= Entrée quand le SPI est configuré
le système externe en ce qui concerne la validation de nouvelles données sur le port C. esclave et sortie lorsqu’il est configuré maître;
La lecture du registre PORTCL efface l’indicateur STAF et repositionne STRB à - bit 4 : Horloge série = Sortie quand le SPI est configuré maître et entrée lorsqu’il
l’état « prêt » pour permettre un nouveau cycle. est configuré esclave;
En mode « impulsionnel » (PLS = 1), la lecture du registre PORTCL efface - bit 5 : Sélection d’esclave (SS) sert à valider un esclave pour accepter les données
l’indicateur STAF et génère une impulsion d’une durée de 2 cycles sur la ligne STRB pour du SPI.
indiquer que le microcontrôleur est « prêt » pour un nouveau cycle. Quand le port D n’utilise pas les interfaces SCI et SPI, le sens de fonctionnement des
6 lignes du port est programmé par les bits correspondants du registre DDRD.
c) Dialogue complet en sortie :
La sortie de données se fait par écriture de registre PORTD et c’est dans ce même
L’écriture d’une donnée dans le registre PORTCL positionne les lignes de sortie du
registre que l’on vient lire l’état des broches qui sont positionnées en entrées.
port C, active la ligne STRB pour indiquer au système externe que les informations sont
Il est possible de programmer le port D pour fonctionner avec des sorties a drain
valides et remet éventuellement à zéro le bit STAF.
ouvert en mettant à « 1 » le bit DWOM du registre du contrôle SPCR de l’interface série
En mode impulsionnel (PLS = 0), la ligne STRB reste positionnée seulement
synchrone (SPI).
pendant 2 cycles d’horloge. En mode verrouillé (PLS = 1), la ligne STRB restera jusqu’à
Avec ce type de sortie, il est nécessaire de câbler des résistances de pull up.
l’apparition d’un front valide sur STRA.
Si l’une ou l’autre des interfaces séries est utilisée, le sens des lignes du port D est fixé
Le système externe, après avoir traité la donnée, active la ligne STRA pour indiquer
en priorité par ces fonctions quelque soit l’état du bit correspondant du registre DDRD.
qu’un nouveau cycle peut débuter.
Dès que la fonction est sélectionnée, le bit de DDRD redevient significatif
Le front actif reconnu par le microcontrôleur sur la ligne STRA positionne le bit
automatiquement.
STAF à « 1 » et génère éventuellement une interruption.
Toutefois, dans certaines situations, le fonctionnement des lignes de la SPI est
Une écriture dans PORTCL initialise un nouveau cycle.
influencé par les bits correspondants du DDRD.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 21/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 22/40
III.9.4.1 – Les registres associés au port D : faut toujours garder VRefH – VRefL > 2,5 Volts. La conversion est réalisée avec une
i) Le registre DDRD : précision de 1 LSB (±1/2 LSB comme erreur de quantification et autant comme erreur
de linéarité). Les nouveaux microcontrôleurs produits n’ont plus d’erreur de linéarité.
Ce registre de 6 bits de direction de données est accessible en lecture/écriture.
La conversion s’effectue de la façon suivante : Une tension d’entrée égale VRefL est
RESET 0 0 0 0 0 0 0 0
0 0 DDRD5 DDRD4 DDRD3 DDRD2 DDRD1 DDRD0 DDRD $1009
convertie en $00 et une tension d’entrée égale ou supérieure à VRefH est convertie en $FF.
Un bit de contrôle interne permet de sélectionner une horloge interne qui servira à
DDRD5 à DDRD0 : Sens
faire des conversions plus précises lorsque la vitesse de l’horloge E devient plus basse
0 Entrée
1 Sortie que celle garantissant la bonne précision. Lors d’une demande de conversion, une
ii) Le registre PORTD : séquence de 4 conversions est lancée.
Ce registre de 6 bits de données du port est accessible en lecture/écriture. Le convertisseur utilise le principe des approximations successives : La tension est
RESET 0 0 0 0 0 0 0 0 − VRefL
V 
0 0 PD5 PD4 PD3 PD2 PD1 PD0 PORTD $1008 comparée à : Vi =  RefH .
 2 
III.9.5 – Le port E :
Si la tension à convertir est supérieure à cette valeur, le bit 7 du registre de
Utilisé comme port d’entrée numérique d’usage général et/ou comme canaux
comparaison est mis à 1, dans le cas contraire, il est mis à 0 ainsi que la tension Vi. Cette
d’entrée analogiques du convertisseur A/N. Le port E ne peut être lu comme entrée
nouvelle valeur est comparée à la tension à mesurer et le bit 6 est positionné en fonction
lorsqu’une conversion A/N est en cours d’exécution. L’information présente sur le port
de ce résultat.
est transmise seulement pendant la lecture du port.
RESET 0 0 0 0 0 0 0 0 Finalement, la tension à mesurer est comparée à Vi avec cette équation :
PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0 PORTE $100A b b b b b b b b 
Vi = (VRefH − VRefL )  7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 
Remarques : 2 4 8 16 32 64 128 256 
- Lors du fonctionnement en entrées numériques, comme le port E est un port d’entrée à
bn= 0 ou 1 suivant le résultat des comparaisons internes.
usage général, son sens est donc figé et ne possède pas de registre de direction.
Chaque opération est effectuée en 32 cycles d’horloge E (si E > 750 kHz). Le
- La version 68HC11F1 possède deux ports supplémentaires : Le port F qui est un port
convertisseur possède 4 registres de résultat séparés qui permettent de mémoriser les
de sortie et le port G qui est un port d’entrée/sortie.
résultats de la séquence de 4 conversions.
III.10 – Convertisseur A/N : Cette séquence débute un cycle d’horloge interne après une écriture dans le registre
Il s’agit d’un convertisseur à seize canaux d’entrée analogiques multiplexés, de 8 bits ADCTL.
de précision, à approximation successive, possédant un échantillonneur bloqueur en
III.10.1 – Les entrées de conversion :
entrée pour minimiser les erreurs de conversion causées par une variation trop rapide du
Un multiplexeur permet de sélectionner une entrée analogique parmi 16 voies
signal d’entrée. Les 8 entrées sont communes avec le port E.
analogiques : 8 de ces voies correspondent aux broches d’entrée du port E, 4 autres à des
Le 68HC11 possède deux broches dédiées VRefL et VRefH utilisées comme référence
références internes, le reste étant réservé pour un usage futur. Le choix de la voie
de tension au lieu des lignes d’alimentation; pour augmenter la précision de la conversion
s’effectue grâce au registre ADCTL.
A/N vis-à-vis de la variation de température et de celles de la tension d’alimentation. Il
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 23/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 24/40
III.10.2 – Les registres du convertisseur :
On peut donc convertir une seule entrée analogique avec MULT = 0. Nous aurons
i) Le registre ADCTL :
alors deux cas :
RESET 0 0 - - - - - -
CCF 0 SCAN MULT CD CC CB CA ADCTL $1030 y SCAN = 0 : La voie est convertie 4 fois et les résultats se retrouvent dans ADR1 à
CCF : Indicateur de conversion terminée (à lecture seule) ADR4 puis la conversion est stoppée. On peut relancer une conversion par
1 Lorsqu’une séquence de conversion est terminée et que les 4 registres
de résultats contiennent les résultats de la conversion écriture dans ADCTL.
0 Par écriture dans le registre ADCTL, ce qui à pour effet de relancer y SCAN = 1 : La conversion est effectuée sans arrêt sur le canal choisi. Le résultat
une nouvelle séquence de conversion
de la 5ème conversion est stocké dans ADR1 écrasant la première conversion et la
SCAN : Commande de balayage continu
6ème dans ADR2 écrasant la première conversion et ainsi de suite.
1 Conversion continue, les registres résultats sont en permanence mis à
jour à chaque fois que de nouvelles données deviennent disponibles On peut aussi convertir plusieurs entrées avec MULT = 1 avec toujours 2
0 La séquence (4 conversions) s’arrête lorsque les 4 registres résultats
possibilités:
sont pleins
y SCAN = 0 : Une conversion est effectuée successivement sur chaque voie, les
MULT : Commande 1 voie / plusieurs voies
1 La conversion s’effectue sur 4 voies successivement. Ces voies sont résultats sont placés respectivement dans ADR1, ADR2, ADR3 et ADR4 puis la
spécifiées par les bits CD et CC conversion s’arrête.
0 La conversion est effectuée 4 fois sur la voie choisie grâce à CD à CA
y SCAN = 1 : La conversion est effectuée sans arrêt selon le principe vu
Lorsque MULT=1, CB et CA n’ont aucune influence et le groupe des 4 canaux
précédemment.
sélectionnés se fait grâce à la combinaison des bits CD et CC.
CD, CC, CB, CA : Sélection de voie ii) Le registre OPTION :
Canal Résultat
Deux bits du registre OPTION sont utilisés pour contrôler le convertisseur
CD CC CB CA
analogique numérique (ADPU : Analog to Digital converter Power Up, et CSE : Clock
0 0 0 0 AN0 (PE0) ADR1
Select).
Groupe 1

0 0 0 1 AN1 (PE1) ADR2


0 0 1 0 AN2 (PE2) ADR3 RESET 0 0 0 1 0 0 0 0
0 0 1 1 AN3 (PE3) ADR4 ADPU CSE IRQE DLY CME - CR1 CR0 OPTION $1039
0 1 0 0 AN4 (PE4) * ADR1
Groupe 2

0 1 0 1 AN5 (PE5) * ADR2 ADPU : Mise en marche/arrêt du convertisseur A/N


0 1 1 0 AN6 (PE6) * ADR3 0 Le convertisseur A/N est arrêté
0 1 1 1 AN7 (PE7) * ADR4 1 Le convertisseur A/N est autorisé (mis en marche)
1 0 0 0 Réservé ADR1
Groupe 3

1 0 0 1 Réservé ADR2 CSE : Choix de l’horloge du convertisseur A/N


1 0 1 0 Réservé ADR3 0 Le convertisseur A/N utilise l’horloge interne E
1 0 1 1 Réservé ADR4 1 Sélectionne l’horloge locale à cellule RC
1 1 0 0 Vrh ** ADR1
Groupe 4 1 1 0 1 Vrl ** ADR2 iii) Exemple d’utilisation :
1 1 1 0 Vrh/2 ** ADR3 On relie sur les broches PE0 et PE1 deux photodiodes. On veut convertir la tension
1 1 1 1 Réservé ADR4
fournie qui est le reflet de la luminosité reçue par les photodiodes et sauvegarder ces
* Non disponibles dans les boîtiers à 40 broches ;
** Ces lignes sont destinées aux tests de fabrication. valeurs en mémoire.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 25/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 26/40
CONV LDX #OPTION Les fonctions du TIMER en usage général sont accomplies par :
BSET 0,X,%10000000 : Validation du convertisseur A/N
y Le diviseur de fréquence;
LDX #ADCTL
BSET 0,X,%00010000 : Début de conversion y Le compteur libre;
Bcl LDX #ADCTL y Les registres IC (trois registres de 16 bits : TIC1, TIC2 et TIC3);
BRCLR 0,X,%10000000,Bcl
y Les registres OC (cinq registres de 16 bits : TOC1 à TOC5);
LDAA ADR1
STAA $0000 y Les registres globaux de contrôle et d’état du TIMER.
LDAA ADR2
STAA $0001 III.11.1 – Les entrées de capture :
RTS Les entrées de capture IC3, IC2, IC1 (PA0, PA1, PA2 du port A) sont des broches
III.11 – Temporisateur programmable (TIMER) : utilisées pour déclencher des captures de temps. Ces captures sont déclenchées par le
Le TIMER est formé par un compteur libre de 16 bits qui s’incrémente en front du signal arrivant sur ces broches (le front est sélectionné par programme). La
permanence (Free running) dès la remise à zéro du microcontrôleur. Ce compteur est mesure du temps est réalisée par la lecture des registres correspondants. En enregistrant
attaqué par un circuit diviseur de fréquence programmable (division par 1, 4, 8 ou 16), les temps successifs entre plusieurs fronts, il est possible de mesurer la période ou la
lui-même piloté par l’horloge E du 68HC11. On peut donc programmer des fréquences largeur d’un signal. Le TIMER dispose de trois registres de capture (TIC1, TIC2 et TIC3)
d’entrée par division de la fréquence d’horloge E. qui sont prévus pour mémoriser l’instant d’arrivée de front actif sur les trois entrées
Le système de temporisation peut être divisé en quatre blocs fonctionnels distincts: correspondantes (IC1, IC2 et IC3), un bit d’état est positionné (IC1F, IC2F et IC3F) et
y Le TIMER en usage général ; une interruption peut être générée. Ces trois entrées vont permettre la mesure de
y Le Watchdog ou chien de garde (appelé aussi COP : Computer Operating longueur d’impulsions, de fréquence ou d’écart entre événements différents.
Properly); On peut choisir la polarité du front qui déclenche la capture et valider ou non les
y Le générateur d’interruption temps réel ; demandes d’interruption. Si les interruptions sont inhibées, il est nécessaire de lire
y L’accumulateur d’impulsions. périodiquement les indicateurs de capture.
Ces quatre blocs utilisent une source d’horloge et une chaîne de diviseurs en partie Trois registres correspondent à ces trois entrées de capture : TIC1, TIC2 et TIC3. Ce
communs mais qui sont indépendants les uns des autres. sont des registres 16 bits.
BIT15 BIT8 $1010
Les fonctions disponibles avec le TIMER en usage général sont : BIT7 BIT0 $1011
TIC1
y Trois fonctions de capture en entrée (IC) : Ces dernières enregistrent le comptage
BIT15 BIT8 $1012
TIC2
du compteur libre lorsqu’une transition active est enregistrée sur une broche BIT7 BIT0 $1013
correspondante; BIT15 BIT8 $1014
TIC3
y Cinq fonctions de comparaison en sortie (OC) : Ces sorties provoquent une action BIT7 BIT0 $1015
quand il y a égalité entre les 16 bits du registre de sortie comparaison et le compteur L’information lue avec ces registres est l’information correspondante au front qui
libre. s’est produit immédiatement avant la lecture et pas forcement celle qui a déclenché
Le rôle de ces fonctions a été décrit dans le paragraphe réservé au port A. l’indicateur de capture.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 27/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 28/40
Les entrées de capture étant indépendantes, il est possible de saisir simultanément LDAA #%00000001
STAA TCTL2
trois fronts de déclenchement et d’effectuer des mesures simultanées de délais sur trois
STAA TFLG1
signaux différents. BCL LDX #TFLG1
BRCLR 0,X,%00000001,BCL
III.11.1.1 – Les registres TMSK1 et TFLG1 : LDD TIC3
Les indicateurs de capture ICxF sont automatiquement mis à 1 à chaque fois que le STD $0000
LDAA #%00000001
front sélectionné est détecté sur l’entrée de capture correspondante. STAA TFLG1
RESET 0 0 0 0 0 0 0 0 BCL1 LDX TFLG1
OC1F OC2F OC3F OC4F OC5F IC1F IC2F IC3F TFLG1 $1023 BRCLR 0,X,%00000001,BCL1
LDD TIC3
IC1F, IC2F et IC3F : Indicateurs de capture SUBD $0000
IC1F IC2F IC3F
0 0 0 Remise à zéro en écrivant 1 sur le bit correspondant ii) Mesure de la largeur d’impulsions arrivant sur IC3 (PA0) :
1 1 1 A chaque front sélectionné détecté sur l’entrée correspondante On désire mesurer la largeur d’impulsion (temps de niveau haut d’un signal) entre un
Les bits de contrôle ICxI permettent à l’utilisateur de configurer chaque entrée en front montant et un front descendant en examinant l’état de IC3F (entrée sur PA0).
mode d’interruption ou en mode de lecture périodique. LDAA #%00000001
STAA TCTL2
RESET 0 0 0 0 0 0 0 0 STAA TFLG1
OC1I OC2I OC3I OC4I OC5I IC1I IC2I IC3I TMSK1 $1022 BCL LDX #TFLG1
BRCLR 0,X,%00000001,BCL
IC1I, IC2I et IC3I : Choix du mode LDD TIC3
IC1I IC2I IC3I STD $0000
0 0 0 Interruption inhibée ou masquée (Mode périodique) LDAA #%00000010
1 1 1 Interruption activée ou autorisée (Mode interruption) STAA TCTL2
III.11.1.2 – Le registre TCTL2 : LDAA #%00000001
STAA TFLG1
L’utilisateur peut choisir pour chaque entrée de capture le sens du front de BCL1 LDX #TFLG1
déclenchement. BRCLR 0,X,%00000001,BCL1
RESET 0 0 0 0 0 0 0 0 LDD TIC3
0 0 EDG1B EDG1A EDG2B EDG2A EDG3B EDG3A TCTL2 $1021 SUBD $0000
III.11.2 – Les sorties comparaison :
EDGxB, EDGxA : Configuration
EDGxB EDGxA Les sorties comparaison OC2 à OC5 (PA6 à PA3 du port A) et éventuellement OC1
0 0 Capture inhibée
0 1 Capture sur fronts montants (PA7 du port A) sont des broches utilisées comme sorties de comparaison par les
1 0 Capture sur fronts descendants comparateurs du TIMER. Lorsque le comptage du compteur libre atteint la valeur à
1 1 Capture sur chaque front
comparer, ces sorties sont activées. Il existe un registre et un comparateur associés à
III.11.1.3 – Exemples : chacune des sorties comparaison. Quand il y’a identité entre le contenu du registre du
i) Mesure d’une période arrivant sur IC3 (PA0): comparateur et celle du compteur, la sortie est activée.
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 29/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 30/40
La fonction comparaison en sortie fait appel à 5 registres de comparaison en sortie Ces registres 16 bits peuvent être lus ou écrits. On utilisera l’instruction LDD (ou
(TOC1 à TOC5). On peut les programmer à tout instant et ils sont comparés en LDX ou LDY) pour les lire. Après un RESET, les registres TOCx sont forcés à $FFFF.
permanence avec le contenu du compteur 16 bits. Quand il y a égalité, un bit d’état est III.11.2.1 – Le registre TMSK1 :
positionné (OC1F à OC5F), une interruption peut être générée et la patte de sortie RESET 0 0 0 0 0 0 0 0
OC1I OC2I OC3I OC4I OC5I IC1I IC2I IC3I TMSK1 $1022
correspondante (OC1 à OC5) peut changer d’état comme on le désire.
On peut utiliser les sorties comparaison pour générer par exemple des impulsions de Validation des interruptions
OC1I OC2I OC3I OC4I OC5I
durée bien déterminée. La sortie est configurée pour changer d’état à chaque égalité entre 0 0 0 0 0 Les interruptions sont inhibées ou masquées
le compteur et le registre de comparaison associé. A chaque égalité, une valeur 1 1 1 1 1 Les interruptions sont validées ou autorisées
correspondant à la largeur d’impulsion suivante est ajoutée au contenu du comparateur. III.11.2.2 – Le registre TFLG1 :
Application : génération de signaux modulés en largeur d’impulsion (MLI) pour RESET 0 0 0 0 0 0 0 0
OC1F OC2F OC3F OC4F OC5F IC1F IC2F IC3F TFLG1 $1023
commander des moteurs électriques, génération d’impulsions programmables.
Les registres de comparaison peuvent contenir une valeur différente (entrée par le Indicateur de comparaison
OC1F OC2F OC3F OC4F OC5F
programmeur). Un drapeau « OCxF » du registre TFLG1 est positionné quand la valeur Remise à zéro en écrivant un « 1 » sur le bit
0 0 0 0 0
du ou des registres est égale à celle du compteur et on peut ou non associer une correspondant
Il y a identité entre le compteur libre et le
interruption à chacun des indicateurs. 1 1 1 1 1
registre de comparaison correspondant
Pour OC2 à OC5 on peut choisir quatre actions au moment de la comparaison (état III.11.2.3 – Le registre TCTL1 :
haut, état bas, aucune action, changement d’état à chaque comparaison) en programmant On peut programmer indépendamment l’action qui apparaît sur chacune des sorties
les bits OMx et OLx du registre TCTL1. PA6 à PA3 (OC2 à OC5).
OC1 est particulier : il peut commander directement les 5 sorties de comparaison. RESET 0 0 0 0 0 0 0 0
OM2 OL2 OM3 OL3 OM4 OL4 OM5 OL5 TCTL1 $1020
Les registres de contrôle et de données associées à cette fonction sont OC1M et OC1D.
Il est possible de commander les actions sur une sortie à partir du comparateur OC1
Action
et du comparateur associé à cette sortie. OMx OLx
0 0 Aucune action
BIT15 BIT8 $1016 0 1 La sortie change d’état à chaque comparaison
TOC1
BIT7 BIT0 $1017 1 0 La sortie passe à 0 à chaque comparaison
1 1 La sortie passe à 1 à chaque comparaison
BIT15 BIT8 $1018
TOC2
BIT7 BIT0 $1019
III.11.2.4 – Exemple1 :
BIT15 BIT8 $101A Générateur de signaux carrés à fréquence fixe sur la sortie PA3 (utilisant OC5) :
TOC3
BIT7 BIT0 $101B
TCTL1 EQU $1020
BIT15 BIT8 $101C
TOC4 LDAA #%00000001
BIT7 BIT0 $101D
STAA TCTL1 : (OM5 = 0 et OL5 = 1, la sortie OC5 changera d’état à chaque comparaison)
BIT15 BIT8 $101E BRA *
TOC5
BIT7 BIT0 $101F
END
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 31/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 32/40
La sortie PA3 est programmée pour changer d’état à chaque comparaison. Le registre Sélection des sorties
de comparaison est à $FFFF après la remise à zéro. Donc on aura un changement d’état OC1Dx
0 Sortie à 0
à chaque comparaison donc toutes les 32,77 ms pour un quartz à 8 MHz (prédiviseur 1 Sortie à 1
égal à 1).
L’état pris par la sortie au moment de la comparaison avec OC1 est indiqué par
III.11.2.5 – Exemple2 : OC1Dx.
Générateur de signaux carrés à la fréquence de 1 kHz sur la sortie PA6 (OC2).
III.11.2.7 – Exemple :
Quartz de 8 MHz :
On désire réaliser une horloge multiphases sur les sorties PA3 à PA7.
TOC2 EQU $1018
LDAA #$80
TCTL1 EQU $1020
STAA PACTL
TFLG1 EQU $1023
COMP LDY #DEBTAB
LDAA #$40
LDX #TFLG1
STAA TCTL1 : (OM2 = 0 et OL2 = 1, la sortie OC2 changera d’état à chaque comparaison)
LDAA #$F8
DEBUT LDAA #$40
STAA OC1M
STAA TFLG1
RAZ LDAA #$80
WAIT LDX #TFLG1
STAA TFLG1 ; on remet à zéro le bit OC1F
BRCLR 0,X $40 WAIT
LDAA 0,Y
LDD TOC2
INY
ADDD #1000
CPY #FINTAB
STD TOC2
BNE SUITE
BRA DEBUT
LDY #DEBTAB
III.11.2.5 – Le registre OC1M : SUITE STAA OC1D
LDD TOC1
Le comparateur OC1 occupe une place à part. Il permet de contrôler une ou
ADDD #20000
plusieurs autres sorties de comparaison. STD TOC1
Les sorties affectées par la fonction de comparaison OC1 sont repérées en mettant à BASCUL BRCLR 0,X,$80,BASCUL
BRA RAZ
1 les bits OC1Mx correspondant du registre OC1M.
DEBTAB FCB 00,$08,00,$10,00,$20,00,$40,00,$80
RESET 0 0 0 0 0 0 0 0
FINTAB EQU *
OC1M7 OC1M6 OC1M5 OC1M4 OC1M3 0 0 0 OC1M $100C
OC2/PA6 OC3/PA5 OC4/PA4 OC5/PA3 END
Sélection des sorties III.11.2.8 – Le registre CFORC :
OC1Mx
0 Sortie non sélectionnée Il est possible de forcer, par programme, l’état d’une sortie sans avoir besoin
1 Sortie sélectionnée d’attendre le résultat d’une comparaison.
III.11.2.6 – Le registre OC1D : RESET 0 0 0 0 0 0 0 0
FOC1 FOC2 FOC3 FOC4 FOC5 0 0 0 CFORC $100B
RESET 0 0 0 0 0 0 0 0
OC1D7 OC1D6 OC1D5 OC1D4 OC1D3 0 0 0 OC1D $100D
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 33/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 34/40
Forçage des sorties III.11.4 – le prédiviseur et le compteur :
FOCx La base du TIMER est un compteur 16 bits qui compte en permanence de $0000 à
0 Sortie normale
1 Sortie forcée $FFFF sans aucun moyen de l’arrêter et qui positionne à « 1 » un bit de dépassement lors
du passage de $FFFF à $0000. Par contre, on peut venir lire en permanence la valeur du
III.11.3 – La fonction « Chien de garde » (Watchdog):
compteur grâce au registre TCNT.
Ce dispositif permet de protéger le système contre les défaillances logicielles. Quand
Le prédiviseur permet de définir le signal d’horloge qui pilote ce compteur (en fait,
on utilise le watchdog, si une boucle infinie se présente dans le programme, et que le
on divise la fréquence de E).
watchdog n’est pas relancé alors une séquence de réinitialisation interne est lancée.
Le Watchdog fonctionne ou non suivant l’état du bit NOCOP du registre CONFIG. III.11.4.1 – Le registre TCNT :
Sa période est positionnée à son temps le plus court. On peut changer sa période en BIT15 BIT8 $100E
TCNT
BIT7 BIT0 $100F
programmant les bits CR0 et CR1 du registre OPTION.
C’est un registre 16 bits, pour le lire on ne peut pas utiliser les accumulateurs A et B,
III.11.3.1 – Le registre OPTION :
mais on peut utiliser les registres 16 bits du 68HC11 (X, Y ou D).
RESET 0 0 0 1 0 0 0 0
ADPU CSE IRQE DLY CME - CR1 CR0 OPTION $1039 LDX TCNT
LDY TCNT
CR1 CR0 E/215 Divisé par CR1 et CR0 : Période du Watchdog
0 0 1 16,384ms LDD TCNT
0 1 4 65,536ms
1 0 16 262,14ms III.11.4.2 – Le registre TMSK2 :
1 1 128 1,049s Le prédiviseur est programmable grâce aux bits PR0 et PR1. Le tableau suivant est
III.11.3.2 – Le registre CONFIG : dressé pour une fréquence de quartz de 8 MHz.
RESET 0 0 0 0 0 1 1 1 Ce registre est partagé avec certaines parties du TIMER :
0 0 0 0 NOSEC NOCOP ROMON EEON CONFIG $103F
• Seul PR0 et PR1 nous serons utiles pour la programmation du prédiviseur ;
EEON : Validation de l’EEPROM • La validation des interruptions se fait avec PAII, TOI, RTII et PAOVI.
0 Les 512 octets d’EEPROM sont inhibés
RESET 0 0 0 0 0 0 0 0
1 Les 512 octets d’EEPROM sont validés de $B600 à $B7FF TOI RTII PAOVI PAII 0 0 PR1 PR0 TMSK2 $1024
ROMON : Validation de la ROM interne TOI : Validation des demandes d’interruption par l’indicateur de débordement
0 Les 8 koctets sont inhibés 0 Interruptions inhibées mais le bit TOF continue de fonctionner normalement
1 Les 8 koctets sont validés 1 Interruptions autorisées (par passage à 1 de TOF lorsqu’il est mis à 1)
NOCOP : Arrêt du Watchdog
0 Il est arrêté et ne produit pas de reset RTII : Interruption temps réel
1 Il est validé dès la fin de la remise à zéro (reset) 0 Interruption inhibée mais la RTI continue de fonctionner et de positionner le bit RTIF
1 Interruptions autorisées
NOSEC : Verrouillage de l’EEPROM
PAOVI : Validation d’interruption lors de dépassement
0 Cette possibilité n’est offerte que si la ROM à été programmée
0 Interruption inhibée
1 en usine pour cet usage
1 Les interruptions sont autorisées et effectives a chaque passage à 0 du compteur
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 35/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 36/40
PAII : Bit de validation des interruptions sur PAI
TOF : Indicateur de débordement
0 Interruptions inhibées
0 Remise à zéro par écriture de 1 sur ce bit
1 Interruptions autorisées et effectives à chaque front actif sur l’entrée
1 Il passe à 1 à chaque débordement du compteur
PR1 et PR0 : Rapport de pré division
PR1 PR0 E Divisé par Période/temps maximal III.11.4.5 – Le registre PACTL :
0 0 1 500ns/32 ,77ms Dans ce registre, seul les bits RTR0 et RTR1 sont utilisés pour les interruptions en
0 1 4 2µs/131,1ms
temps réel. Ces deux bits déterminent le rapport de sélection de la fonction RTI.
1 0 8 4µs/262,1ms
1 1 16 8µs/524,3ms Les autres bits sont utilisés pour la programmation du compteur d’impulsions.
RESET 0 0 0 0 0 0 0 0
III.11.4.3 – Interruption temps réel : DDR7 PAEN PAMOD PEDGE 0 0 RTR1 RTR0 PACTL $1026
La fonction interruption temps réel peut être utilisée pour produire des interruptions RTR1 RTR0 E Divisé par RTR1 et RTR0 : Rythme de l’horloge temps réel
à intervalle de temps régulier. Elle permet de savoir le temps exact d’exécution d’un ou 0 0 1 4,10 ms
0 1 2 8,19 ms
d’une partie de programme. Pour cela, on valide l’interruption à un point particulier du
1 0 4 16,38 ms
programme et on l’arrête en un autre point. L’interruption temps réel peut aussi être 1 1 8 32,77 ms
utilisée pour produire des interruptions à intervalle régulier servant de base de temps, PEDGE : Choix du front de comptage et du niveau de commande
permettant de synchroniser le fonctionnement d’un système à base du 68HC11. On peut 0 PAI réagit sur front descendant ou ouvre la porte de comptage avec un niveau bas
1 PAI réagit sur front montant ou ouvre la porte de comptage sur un niveau haut
choisir entre 4 rapports de division (registre PACTL).
PAMOD : Choix du mode
Il ne faut pas oublier, si on utilise la fonction RTI de remettre l’indicateur RTIF à 0 0 L’accumulateur fonctionne en mode comptage sur PAI
sinon, dès la fin de l’exécution du programme d’interruption, il y a retour dans ce même 1 L’accumulateur fonctionne en mode comptage de l’horloge
E/64 sous contrôle du niveau appliqué sur PAI
programme. Quatre bits de différents registres seront utilisés pour réaliser ce but :
PAEN : Bit de commande de comptage
• RTII de TMSK2;
0 Le comptage est inhibé
• RTIF de TFLG2 ; 1 Le comptage est autorisé
• RTR0 et RTR1 de PACTL. DDR7 : Bit de direction associé à PA7
0 Entrée
III.11.4.4 – Le registre TFLG2 : 1 Sortie
RESET 0 0 0 0 0 0 0 0
TOF RTIF PAOVF PAIF 0 0 0 0 TFLG2 $1025 III.11.5 – L’accumulateur d’impulsions :
PAIF : Indicateur d’interruption sur PAI C’est un compteur de 8 bits, associé à la broche PA7 / PAI (Port A) et qui peut
0 Remise à zéro par écriture de 1 sur ce bit travailler dans deux modes : Mode compteur d’événements et mode commandé. Le
1 A 1 lors de la détection d’une transition valide sur PAI
registre de contrôle de cet accumulateur (PACTL) le configure pour un mode ou l’autre,
PAOVF : Indicateur de dépassement
0 Remise à zéro par écriture de 1 sur ce bit par programmation du bit PAMOD.
1 A 1 lors du débordement du compteur de $FF à $00 En mode compteur d’événements : cet accumulateur s’incrémente à chaque front
RTIF : Indicateur d’interruption temps réel actif du signal PAI :
0 Remise à zéro par écriture de 1 sur ce bit
1 A 1 lorsqu’une interruption temps réelle a lieu
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 37/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 38/40
y Un bit de stop;
PA7 / PAI Compteur 8 bits
y Un break est défini comme la transmission de plusieurs données nulles.
En mode commandé : PA7 / PAI sert à bloquer un signal d’horloge appliqué au
III.12.3 – Interruptions du SCI:
compteur.
Le SCI possède plusieurs drapeaux d’état qui produisent une interruption matérielle
Horloge interne (÷ 64)
s’ils sont activés. Ces indicateurs correspondent à :
y Registre de transmission de données vide TDRE;
Compteur 8 bits
PA7 / PAI y Fin de transmission;
y Ligne de repos détectée (fin de message, début de message, resynchronisation avec
Ces deux modes sont sélectionnés par programme. Le comptage est déterminé par
le transmetteur);
lecture du registre correspondant (PACNT). Ce compteur peut générer une interruption.
y Registre de réception de données plein RDRF.
III.12 – L’interface de communication série :
III.13 – L’interface de périphérique série SPI :
Il est pourvu d’un format standard NRZ, avec une vitesse de transmission variable.
Permet d’interconnecter plusieurs microcontrôleurs entre eux, ou d’interconnecter le
L’interface avec les circuits périphériques est accomplie grâce aux broches du port D : la
68HC11 avec des circuits périphériques.
broche 0 pour la réception (RXD) et la broche 1 pour la transmission (TXD).
Cette interface confère au microcontrôleur les caractéristiques suivantes :
III.12.1 – Génération de vitesse de transmission : y Transfert bidirectionnel à 100% (full duplex);
Un registre programmable est utilisé pour programmer le rapport de division d’un y Opération en mode maître-esclave;
diviseur de fréquence piloté par l’horloge E du 68HC11. La programmation de ce registre y Interfaçage avec des périphériques passifs;
permet 32 vitesses différentes de transmission. y Interfaçage avec des périphériques intelligents en mode esclave;
III.12.2 – Format des données : y Polarité et phase d’horloge programmables;
La longueur du mot peut consister en 10 ou 11 bits. La sélection de cette longueur y Indication de fin de transmission (par un drapeau);
est contrôlée par un bit du registre de contrôle. Lorsque ce bit est à zéro, le mot contient y Détection d’erreurs de collision d’écriture;
un bit de Start, 8 bits de donnée et un bit de Stop. Lorsque ce bit est à un, le mot y Détection d’erreurs de mode maître – maître.
comprend un bit de Start, neuf bits de données et un bit de Stop. Les quatre lignes de signalisation associées à cette interface sont :
Le format de donnée requiert : y Ligne MOSI (Master Out-Slave In);
y Une ligne d’attente qui est à l’état haut (1 logique) avant la transmission ou la y Ligne MISO (Master In-Slave Out);
réception d’un message; y Ligne d’horloge série ou SCK;
y Un bit de Start (0 logique) qui est transmis/reçu pour indiquer le début du y Ligne de sélection d’esclave.
message;
y La donnée transmise ou reçue a le bit le moins significatif (LSB) en premier;
A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 39/40 A. BA-RAZZOUK – Systèmes à microprocesseurs – Chapitre III Page 40/40