Microcontrôleur MC68HC811E2: (Vppbulk
Microcontrôleur MC68HC811E2: (Vppbulk
Microcontrôleur MC68HC811E2
Introduction :
Le microcontrôleur Motorola MC68HC811E2 fait partie de la gamme des microcontrôleurs
68HC11, tous construits autour d’un même noyau.
Sa RAM interne de 256 octets et son EEPROM interne de 2 koctets sont les caractéristiques
principales qui le différencient des autres circuits de la gamme.
Ce circuit existe dans un boîtier PLCC de 52 broches ou en boîtier DIP de 48 broches. Les deux
sont alimentés par une tension unique de 5 Volts.
Il possède 4 ports de 8 bits et un port de 6 bits. Chacun de ses ports possède des caractéristiques
particulières. Le synoptique ci-dessous en dit long sur les possibilités de ce circuit.
ACCUMULATEU PA PA
D'IMPULSION
OC1 OC2 PA
RO OC3 PORT PA
TIMER OC4 PA
OC5 PA
IC PA
INTERRUPTION
TEMPS REEL IC PA
RA CHIEN DE IC PA
DATA DIRECTION
SS\ PD
SCK PD
EEPROM PORT
SPI PD
MOSI
MISO PD
PE Tx PD
SC
PE Rx PD
PE
PORT
PE
PE
PE CONVERTISSEU
A/D
PE
PE M68HC11 CPU
VREF
VREF
XIR INTERRUPTIONS
IR
(VPPBULK DIALOGUE ENTREES/SORTIES
XTA
EXTA
OSCILLATEUR DATA DIRECTION
E PORT B PORT
VD VSS
Page 1
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Chapitre I : Les signaux disponibles
1) 2 broches d’alimentation VSS et VDD (+5V)
Le mode de fonctionnement est défini par l’état des entrées MODA et MODB durant le RESET.
Les modes les plus souvent utilisés sont le mode bootstrap et le mode circuit seul :
le mode circuit seul, qui permet après la mise au point du logiciel et son chargement en
EEPROM, de faire fonctionner le microcontrôleur seul (sans mémoire externe) au sein d’une
application. Tous les ports sont alors disponibles.
74LS373
1
11
3
2
MODA 68HC811E2 PC0
9
10
3
4 5
2 A0
A1
MODB PC1
11 7 6 A2
PC2
19 12 8 9 A3
IRQ PC3
18 13 13 12 A4
XIRQ PC4
17 14 14 15 A5
RESET PC5
15 17 16 A6
PC6
34 16 18 19 A7
PA0 PC7
33
PA1
32 42 A8
PA2 PB0
31 41 A9
PA3 PB1
30 40 A10
PA4 PB2
29 39 A11
PA5 PB3
28 38 A12
PA6 PB4
27 37 A13
PA7 PB5
36 A14
PB6
20 35 A15
PD0 PB7
21
PD1
22 6
PD2 STRB/R/W
23 4 3 2 1
PD3 STRA/AS
24 3 WE\=E\+ R/W\
PD4
25 5 2
PD5 E
Page 2
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
mémoires
externes
BOOTROM $BF40
vecteurs
d'interruption
spéciaux
$BFFF
$F800
3) broches EXTAL et XTAL qui permettent la connexion du quartz qui va cadencer le 68HC11 ou une
horloge externe comme nous le montre la figure ci-dessous.
STOP STOP
M68HC11 M68HC11
EXTAL XTAL EXTAL XTAL
Rf
Horloge externe
XTAL
C1 C2
La fréquence du quartz doit être égale à quatre fois la fréquence réelle du bus E désirée.
4MHz
E
f= 1MHz T=1µs
4) Sortie de l’Horloge E utilisée en mode étendu qui permettra la synchronisation du transfert des
données(mode synchrone).
Page 3
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
en entrée une remise à l’état initial du microcontrôleur qui permettra en outre à celui-ci de
dérouler son programme à son début.
et en sortie de générer un état bas pour initialiser les circuits externes lors d’un reset
interne(anomalie, chien de garde,..).
Vecteur RESET
Après avoir placé le programme en mémoire morte (en EEPROM en mode sigle chip), l’opération de
RESET permet le démarrage de l’application. Elle consiste à placer un état bas sur l’entrée RESET\ lors
de la mise sous tension. Cette broche doit rester dans cet état pendant un minimum de 4096 cycles
d’horloge afin de permettre à l’oscillateur à quartz de se stabiliser. L’unité centrale lance alors une
procédure d’initialisation interne et va aller chercher l’adresse de début de programme dans les cases
mémoire $FFFE et $FFFF et va la placer dans le compteur de programme. Cette adresse est appelée
vecteur RESET.
* en $FFFE : $F8
* en $FFFF : $00
Le RESET initialise un certain nombre de registres (voir la suite du cours) afin que les ports qui en
dépendent ne viennent commander des interfaces qui pourraient s’avérer dangereux. Les registres
concernés sont donc configurés lors du RESET avant que le programme ne vienne fixer leur contenu.
Lors du RESET, les interruptions sont masquées (X et I du CCR sont positionnés à 1) et le mode STOP
est interdit (S = 1).
Le RESET POR
Le RESET à la mise sous tension POR (Power On RESET) est destiné à initialiser le microcontrôleur. Un
délai minimum de 4096 cycles d’horloge est alors nécessaire pour permettre à l’oscillateur de se
stabiliser. Si la broche RESET\ est encore à l’état bas après ces 4096 cycles, le microcontrôleur reste en
condition de RESET jusqu’à ce que cette broche devienne inactive (état haut).
RESET extérieur
Le microcontrôleur distingue un RESET interne d’un RESET externe en détectant si la connexion repasse
à l’état haut en un temps inférieur à deux cycles d’horloge E après un RESET interne. Quand une
condition de RESET est détectée, la connexion est mise à zéro par un circuit interne au microcontrôleur
pendant 4 cycles d’horloge E puis est relâchée. Deux cycles plus tard, elle est testée. Si la connexion est
toujours à 0, le microcontrôleur en déduit que c’est un RESET externe et un RESET interne dans le cas
contraire.
6) 2 broches d’entrée de demande d’interruption IRQ et XIRQ :
XIRQ : entrée de demande d’interruption non masquable active sur niveau bas.
Une interruption, comme son nom l’indique, permet d’interrompre le programme principal afin
d’effectuer un sous-programme d’interruption. Cette interruption est déclenchée par activation d' IRQ ou
XIRQ par un signal issu d’un autre circuit qui informe le microcontrôleur d’un certain événement.
(exemple : signal DA issu d’un encodeur de clavier qui informe le microcontrôleur que quelqu’un a
appuyé sur une touche du clavier).
Définition : une interruption est dite masquable si elle peut être inhibée par programme (non prise en
compte).
Remarque : chacune de ces entrées doit être ramenée au niveau Haut grâce à une résistance de pull-up
(4,7k) lors qu’il n’y a pas de demande d’interruption.
VDD 1 kOhms
VREFH
1 µF
VREFL
9) PB0 à PB7 : 8 lignes de sortie du port B en mode circuit seul(8 lignes de poids fort d’adresse en
mode étendu)
10) PC0 à PC7 : 8 lignes du port C bidirectionnelles (utilisables en entée ou en sortie par écriture du
registre DDRC.
11) PD0 à PD5 : 6 lignes de données du port D communes avec les lignes de la liaison série synchrone
SPI et de la liaison série asynchrone SCI.
12) PE0 à PE7 : 8 lignes d’entrées qui constituent le port E. Ces lignes sont partagées avec les entrées
du convertisseur analogique/digital.
13) STRA et STRB (respectivement appelés AS et R/W\ en mode étendu) sont utilisés pour divers
protocoles de dialogue lorsque le circuit est utilisé en mode circuit seul.
Page 5
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Chapitre II :L’unité centrale
L’unité centrale du 68HC11 est un modèle 8 bits disposant de fonctionnalités particulières lui
permettant d’exécuter avec un maximum de souplesse certaines instructions logiques et arithmétiques sur
16 bits.
L’unité centrale, cœur du microcontrôleur, est principalement composée d’une unité arithmétique
et logique (ALU), d’une unité de commande et de 7 registres.
II.1) L’unité arithmétique et logique (UAL), ou ALU (Arithmetic and Logic Unit).
II.1.a) Définition :
L’ALU, comme son nom l’indique, effectue, au sein du microcontrôleur, toutes les opérations
arithmétiques et logiques sur des mots binaires appliqués sur ses entrées. Ces mots binaires sont appelés
opérandes.
* addition * ET
* soustraction * OU
* décalage droite ou gauche * Complémentation
* incrémentation, décrémentation * OU exclusif
* etc. . . * etc. . .
II.1.b) Symbole :
Ce circuit possède deux entrées 8 bits et une sortie 8 bits.
mot X
de 8 bits
Résultat de l'opération
U.A.L arithmétique ou logique
mot Y sur 8 bits
de 8 bits
mot de commande
de l'opération arithmétique
ou logique
Le mot de commande permet de définir le type d’opération que l’on veut effectuer.
L’ALU permet également de positionner différents bits de test qui reflètent ce qui vient de se passer lors
de l’exécution d’une fonction élémentaire. Ces indicateurs, encore appelés flags (drapeaux), sont
constitués de bistables. Ils peuvent être testés automatiquement par le CPU ou par le programme.
Page 6
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Ces indicateurs sont regroupés dans un registre 8 bits appelé registre d’état ou CCR (Code Condition
Register)
registre
d'état
mot X
de 8 bits
Résultat de l'opération
U.A.L arithmétique ou logique
mot Y sur 8 bits
de 8 bits
mot de commande
de l'opération arithmétique
ou logique
CCR S X H I N Z V C
bit C (Carry) : bit de retenue est mis à un lorsqu’une opération arithmétique génère
une retenue.
bit Z comme Zéro : ce bit est positionné à 1 lorsque le résultat de l’instruction exécutée
est nul.
complément à 1 du mot 0 1 1 0 1 1 1 0
ajout de 1 + 1
complément à 2 du mot 0 1 1 0 1 1 1 1 soit 11110
Page 7
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
bit I (Interrupt mask) : masque de l’interruption IRQ qui interdit toute interruption
lorsqu’il est mis à 1.
bit H (Half carry) : bit de demi-retenue positionné à 1 lors d’une retenue entre les bits 3
et 4 d’une opération arithmétique.
bit S (Stop disable) : bit qui permet lorsqu’il est mis à 1 d’interdire l’exécution de
l’instruction STOP.
Définition : un accumulateur est un registre à accès et sorties parallèles qui permet le stockage temporaire
de la donnée binaire sur laquelle va travailler l’instruction en cours de déroulement. L’ALU est capable
d’effectuer sur un accumulateur un certain nombre d’opérations telles que décalage, rotation,
complémentation, etc. Le résultat de ces opérations est directement réintroduit dans le même
accumulateur.
L’automate séquenceur est piloté par une horloge qui va permettre au microprocesseur de travailler en
mode synchrone.
Page 8
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Le registre d’instruction permet de recevoir l’instruction à exécuter et fournir à l’automate séquenceur le
code machine qui déterminera toute la séquence à dérouler pour réaliser cette instruction.
Il ne reste plus qu’à ajouter, à notre unité centrale partielle, un compteur de programme PC qui va pointer
l’adresse de la prochaine instruction à exécuter et permettre ainsi de réaliser un déroulement
chronologique des instructions. Ce compteur de programme sera bien sur incrémenté automatiquement
par l’automate séquenceur.
Déroulement d’une instruction(nous prendrons comme exemple la première instruction contenu dans
la mémoire programme (adresse $2000 et $2001) du schéma ci-dessus à savoir LDAA #$22) :
le compteur de programme PC(qui contient alors $2000) envoie, sur ordre de l’automate séquenceur,
l’adresse($2000) de l’instruction à exécuter ainsi que l’ordre de lecture de la mémoire programme
la mémoire programme envoie alors sur le bus de donnée le code machine ($86) de l’opération à
effectuer(LDAA #). Cette donnée est alors dirigée, sur ordre de l’automate séquenceur, vers le registre
d’instruction.
ce code machine($86) est alors fourni à l’automate séquenceur qui reconnaît l’instruction de
chargement de A en adressage immédiat et va dérouler toute la routine permettant l’exécution de cette
instruction, à savoir diriger l’octet de l’adresse suivante dans le registre accumulateur A.
le compteur de programme est incrémenté de 1 et est envoyé sur le bus d’adresse en même temps que
le signal de lecture de la mémoire programme qui envoie alors $22 sur le bus de donnée. Cette donnée
est alors dirigée dans l’accumulateur A.
le compteur de programme PC est alors incrémenté pour pointer l’adresse de l’instruction suivante
devant être exécuter(PC = $2002 pointe l’instruction ADDA en mode direct).
…..
7 Accumulateur A 0 7 Accumulateur B 0
Page 9
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
15 Accumulateur D 0
15 Registre d’index X 0
15 Registre d’index Y 0
15 Pointeur de pile SP 0
15 Compteur de programme PC 0
7 Registre CCR 0
un registre d’état CCR (Code Condition Register) de taille 8 bits qui renseigne sur l’état
d’une partie de l’unité centrale après chaque opération effectuée. Il contient 8 drapeaux
(flags) ayant chacun un rôle particulier.
Une pile est une zone d’adresses mémoires réservée dans une mémoire RAM. Elle permet
au programmeur de stocker des informations qu’il va pouvoir récupérer plus loin dans le
programme. Elle permet aussi à l’unité centrale de mémoriser l’adresse de la prochaine
instruction à exécuter après son retour d’un sous-programme
En informatique, une pile (en anglais stack) est une structure de données fondée sur le
principe « dernier arrivé, premier sorti » (ou LIFO pour Last In, First Out), ce qui veut dire
que les derniers éléments ajoutés à la pile seront les premiers à être récupérés. Le
fonctionnement est celui d'une pile d'assiettes : on ajoute des assiettes sur la pile, et on les
récupère dans l'ordre inverse, en commençant par la dernière ajoutée.
Page 10
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Chapitre III : La programmation
Dans la suite du cours, nous parlerons d’adresse effective qui est l’adresse réelle de la donnée
manipulée par l’instruction. Nous utiliserons aussi les conventions d’écriture suivantes :
Exemples :
Un programme est une suite d’instructions en code machine. Chaque instruction doit être rédigée de
façon très précise grâce à 4 champs d’édition :
Afin de faciliter la relecture du programme, on utilise des étiquettes qui permettent de retrouver
facilement un emplacement mémoire utilisé par exemple pour un saut ou un branchement.
Page 11
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Le langage d’assemblage ou source assembleur utilise des symboles mnémoniques pour représenter les
codes opératoires (ex : LDAA, STAA, LDX, etc..)
Le texte source est écrit à l’aide d’un éditeur de texte sur ordinateur. Ce texte est ensuite traité par un
autre logiciel appelé assembleur qui traduit le texte source en codes hexadécimaux compréhensibles par
le microcontrôleur : le code machine.
Le texte source doit comporter, en plus des instructions, des informations appelées directives
d’assemblage. Les directives d’assemblage principales sont au nombre de trois :
Exemple de programme :
ORG $F800 ici ORG est la directive qui permet d’informer le programme
assembleur que le programme débute à l’adresse $F800
PORTC EQU $1003 cette directive EQU permet de faire une équivalence entre le
texte PORTC et $1003. Le programme utilisera dans son
programme PORTC qui est plus facile à retenir que $1003.
DEBUT LDAA #$22 instruction permettant de charger l’accumulateur A avec $22
STAA PORTC cette instruction est donc équivalente à STAA $1003 mais est
plus ‘’parlante’’
END END est la directive qui indique la fin du texte à assembler.
Le programme assembleur, après avoir assemblé ce texte, fournit un autre texte appelé listing
d’assemblage qui fournit, en plus du texte édité, les codes machine correspondant aux instructions du
programme.
DEBUT f800
PORTC 1003
Dans ce listing, on retrouve le texte assembleur, les codes machine ainsi que leur adresse et la table des
symboles :
Codes machine(HEXA)
Page 12
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0001 f800 ORG $F800
0002 1003 PORTC EQU $1003
0003 f800 86 22 DEBUT LDAA #$22
0004 f802 b7 10 03 STAA PORTC
DEBUT f800
PORTC 1003 Adresses des codes machine Texte édité
précédemment
Table des symboles
Nous pouvons remarquer, dans le listing ci-dessus, que PORTC a bien été remplacé par $1003 après
assemblage.
On peut déduire, du listing de programme, le futur contenu de la mémoire programme :
Ce mode d’adressage ne nécessitant que deux octets est plus rapide que le mode d’adressage
étendu et est donc à utiliser le plus souvent possible pour réduire la taille du programme et augmenter sa
rapidité.
Page 14
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
LDAB $25,Y charge l’accumulateur B avec le contenu de la case mémoire pointé par
l’index Y augmenté de $25.
Masque est un octet dont les bits à 1 indiquent le ou les bits de Opérande à manipuler.
BSET comme Bit SET = mise à 1 de bits utilisée pour forcer à 1 l’état de certains bits.
BCLR comme Bit CLeaR = mise à 0 de bits utilisée pour forcer à 0 l’état de certains bits.
BRCLR BRanch if bit(s) CLeaR qui effectue un branchement si tous les bits testés sont à 0.
BRSET BRanch if bit(s) SET qui effectue un branchement si tous les bits testés sont à 1.
Page 16
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Chapitre IV : Les interfaces parallèles
Dans ce chapitre, nous développerons essentiellement l’utilisation des ports en tant que lignes
d’entrées/sorties. Les autres utilisations des ports (Timer, conversion, etc..) seront développés
ultérieurement dans des chapitres qui leur seront exclusivement consacrés.
Les interfaces parallèles peuvent permettent l’émission ou la réception de données sous forme
parallèle (8 bits émis ou reçus simultanément). Le microcontrôleur peut aussi gérer chaque ligne des ports
individuellement. Certains port possèdent des lignes figées en entrée qui ne peuvent que recevoir des
informations, d’autres possèdent des lignes figées en sortie qui ne peuvent qu’émettre des informations
ou commander des interfaces et d’autres lignes sont bidirectionnelles , c’est à dire qu’elles peuvent être
programmées pour fonctionner en entrées ou en sorties par écriture des bits de leur registre de direction
des données respectifs(registre DDR...).
IV.1) Le port A
Le port A est un port parallèle à usage général partagé avec le timer et l’accumulateur d’impulsions.
Un timer est système qui permet de fournir des signaux carrés ou rectangulaires avec des durées très
précises ou mesurer la durée d’une impulsion . L’accumulateur d’impulsions permet de compter les
impulsions présentes sur la ligne PA7 du port A pour le 68HC811E2.
Le port A possède des lignes figées en entrée PA0, PA1 et PA2, des lignes figées en sortie (PA4 à PA6)
et deux lignes bidirectionnelles PA3 et PA7.
E/S S S S E/S E E E
PORTA 0 0 0 0 0 0 0 0
Pour programmer les lignes PA3 et PA7 en entrée ou en sortie, on programme les bits 3 (DDRA3) et 7
(DDRA7) du registre PACTL (Port A ConTroL).
Si le bit de direction des données est à 1, la ligne du port A correspondante est programmée en sortie.
Si le bit de direction des données est à 0, la ligne du port A correspondante est programmée en entrée.
Exemple :
Page 17
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
PACTL 0 1
Dans cet exemple, la ligne PA7 est programmée en entrée et la ligne PA3 est programmée en sortie.
Pour fixer l’état logique d’une sortie, on écrit le bit correspondant du registre PORTA ($1000) tandis que
l’état d’une ligne d’entrée est lu dans ce même registre.
Exercices :
ex 1 : fixons un état haut sur la ligne PA6 qui est toujours une sortie.
LDX #$1000
BSET PORTA,X %01000000 ; fixe à 1 PA6
ex 2 : fixons un état bas sur la ligne PA3 après l’avoir programmée en sortie
après ces instructions, l’accumulateur A contient tout l’état du port A donc le bit 7 de l’accumulateur A
correspond à l’état de la ligne PA7.
IV.2) Le port B
Le port B est unidirectionnel et ne fonctionne qu’en sortie (ces sorties deviennent des lignes d’adresses en
adressage étendu).
Les niveaux logiques sur ses sorties sont définis par écriture du registre PORTB à l’adresse $1004.
PORTB étant un registre, les états des sorties sont mémorisés jusqu'à ce que PORTB soit réécrit.
Page 18
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
PORTB PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
entrée/sortie S S S S S S S S
après un RESET 0 0 0 0 0 0 0 0
IV.3) Le port C
Remarque : Lorsque le circuit fonctionne en mode étendu, le port C véhicule en mode multiplexé le bus
de données (8 bits bidirectionnels) et les 8 bits de poids faibles du bus d’adresses.
Les 8 lignes du port C sont bidirectionnelles, c’est à dire qu’elles peuvent être programmées
individuellement en entrée ou en sortie. Le registre DDRC (adresse $1007) permet cette programmation.
L’état des sorties est fixé par écriture du registre PORTC tandis que les états des lignes en entrées sont
donnés par lecture de ce même registre.
Avant utilisation de ce port, il est donc nécessaire d’écrire DDRC afin de définir le sens de travail des
lignes du port.
Nous pouvons remarquer, qu’après un RESET, toutes les lignes du port C sont en entrée.
ex 1 : fixons un état haut sur toutes les lignes du port C après l’avoir programmé en sortie
ex 2: programmons les quatre lignes de poids fort du port C en entrée et les 4 lignes de poids faible en
sortie et effectuons une lecture des entrées.
LDX #$1000
LDAA #%00001111
STAA DDRC,X ; PC7 à PC4 en entrée, PC3 à PC0 en sortie
LDAA PORTC,X ; lecture du port C et chargement dans A
après ces instructions, l’accumulateur A contient tout l’état du port C donc les bits de poids forts de
l’accumulateur A sont les images des états logiques présents sur les entrées PC7 à PC4 (juste au moment
du déroulement de l’instruction uniquement).
IV.4) Le port D
Le port D, de taille 6 bits seulement, est relié aux interfaces séries synchrone(SPI) et asynchrone SCI
mais il peut être utilisé tout simplement en port parallèle bidirectionnel grâce à la programmation des
registres DDRD et PORTD.
Nous pouvons remarquer, qu’après un RESET, toutes les lignes du port D sont en entrée.
la programmation du port D étant similaire à celle du port C, elle ne sera pas développée ici.
IV.4) Le port E
Les 8 lignes d’entrée du port E sont partagées avec le convertisseur analogique/numérique. Utilisées en
entrées simples, le registre PORTE permet de connaître les états logiques qui leur sont appliqués.
Page 20
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
V.1) Définition
La transmission série d’informations consiste à envoyer les informations binaires bit après bit au
lieu de les envoyer en parallèle. Les liaisons parallèles nécessitent au moins autant de fils que de bits à
transmettre simultanément. La transmission série ne nécessite généralement que 2 fils(1 de données et 1
de masse), d’où son intérêt. Ce type de transmission permet de transmettre des informations sur des
distances beaucoup plus longues mais peut être aussi entaché d’erreurs dues par exemple à des parasites
d’origines électriques ou encore à l’atténuation des signaux provoquée par la résistance de la ligne.
La norme de transmission la plus courante est la RS232. Toutefois, en milieu industriel parasité,
on lui préfère les normes RS422 ou RS485 qui lui sont supérieures, car utilisant le mode différentiel.
Les niveaux logiques transmis sur la liaison RS232 sont représentés par des tensions comprises
entre +5V à +12V pour le 0 et entre -5V à -12V pour le 1. Les récepteurs eux sont prévus pour
recevoir des signaux atténués jusque -3V et +3V. La distance de transmission peut atteindre 15 mètres.
Les signaux d’entrée de l’émetteur et de sortie du récepteur sont compatibles TTL et CMOS.
Page 21
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Cette norme utilise une liaison différentielle sur une paire torsadée à laquelle on ajoute une liaison
référence de potentiel OVL qui sera véhiculée par une deuxième paire torsadée. Les deux paires sont
protégées des perturbations électromagnétiques par un blindage supplémentaire.
Dans ce mode de transmission, les niveaux logiques sont représentés par des niveaux de courant
différents dans une ligne. Les boucles de courant sont insensibles aux pertes dues à la résistance de ligne
et moins sensibles aux parasites.
Elles autorisent des transmissions jusqu'à 300 mètres.
Le niveau logique haut est représenté par un courant de 20 mA tandis que le niveau bas est de
4mA pour s’affranchir des coupures de lignes En effet, l’absence de courant dans la ligne sera considérée
comme une coupure de liaison.
Page 22
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
V.5) Le parasitage des lignes de transmission
Une erreur de transmission se traduit par le gain ou d’une perte d'un ou plusieurs bits transmis.
Pour détecter ces erreurs, en plus de la donnée, on émet un bit supplémentaire appelé bit de parité qui
permettra, lors de la réception, de vérifier s’il y a eu modification du nombre de bits pendant la
transmission. La détection standard de ces erreurs se fait par le contrôle de parité.
Exemple : soit à transmettre la donnée $F8 = %11111000 avec un contrôle de parité paire.
111110001
mot $F8 bit de parité ajouté
nous pouvons remarquer que le nombre de bits transmis ici est pair (6) grâce au bit ajouté.
A la réception, il suffit alors de contrôler que le nombre de bits reçus à 1 est pair.
Cette liaison SCI (Serial Communication Interface) est dite asynchrone, car on ne transmet pas de
signal d’horloge en même temps que les données. C’est donc au récepteur de détecter le début ou la fin
d’une donnée.
Les données sont transmises les unes après les autres et la synchronisation se fait par
l’intermédiaire de bits de START et de STOP, la ligne étant toujours au niveau 1 lorsqu’il n’y a pas de
transmission d’informations.
Dans une liaison asynchrone, la durée d’un bit transmis est toujours identique pour une vitesse de
transmission donnée. Cette vitesse est exprimée soit en bits par seconde soit en Bauds.
la vitesse exprimée en bits par seconde veut dire que l’on émet X bits d’information utile à la
seconde.
Page 23
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
la vitesse exprimée en Bauds exprime le nombre de bits bruts par seconde(bits d’information utile +
bit de START + bit de parité + bits de STOP) et ne dépend donc que de la durée d’un bit.
Exemple :
dans cet exemple, un bit dure 26,04µs (quelque soit le type de bit). La vitesse de transmission est donc de
1/26,04 E-6 soit 38400 Bauds.
8 bits de données sont émis en 11*26,04µs = 286,46µs, ce qui entraîne qu’un bit de donnée est émis en
286,46µs/8 soit 35,81µs la vitesse de transmission est de 1/35,81 E-6 soit 27927 bits par seconde.
Exercice : calculer la vitesse de transmission en bits par seconde d’une émission de données à une vitesse
de 9600 Bauds sachant que l’on utilise 1 bit de start, pas de bit de parité et deux bits de stop.
Réponse :
une de réception des données : ligne PD0 encore appelée RxD (Receive Data)
une de transmission des données : ligne PD1 encore appelée TxD (Transmit Data)
Page 24
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Chapitre VI Le convertisseur analogique/numérique du 68HC11
Le convertisseur analogique numérique du 68HC11 est un convertisseur 8 bits fonctionnant sur le
principe des approximations successives obtenues par répartition des charges dans des condensateurs
internes. Nous ne nous intéresserons, dans ce chapitre, que du fonctionnement de ce convertisseur et non
du principe, relativement complexe.
La tension de référence haute est appliquée sur la broche VrefH et le tension de référence basse sur la
broche VrefL.
Si la tension d’une entrée du port E atteint VrefH, celle-ci est convertie en mot binaire %11111111 et
inversement si elle égale la tension VrefL le convertisseur la traduit par %00000000.
Pour pouvoir convertir ces tensions, le convertisseur a besoin d’une tension supérieur à la tension
d’alimentation du microcontrôleur. Celle-ci est fabriquée à l’aide d’une pompe de charge interne au
microcontrôleur que l’on ‘démarre’ par l’écriture du bit ADPU (AD Power Up, bit 7) du registre option
($1039). Il conviendra d’attendre 100µs, après cette écriture, pour laisser le temps à la pompe de charge
d’atteindre la tension voulue.
7 6 5 4 3 2 1 0
ADPU CSEL IRQE DLY CME 0 CR1 CRO
0 0 0 1 0 0 0 0 RESET
Le bit CSEL (Clock SELect, bit 6) du registre OPTION sera mis à 1 pour des fréquences du bus E
inférieure à 750 kHz (cas le plus courant). Sinon, il sera mis à zéro mais dans ce cas la précision du
convertisseur sera moins précise.
Page 25
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
VI.2) Mode de fonctionnement.
Les conversions n’ont pas lieu simultanément mais de façon successive. Les résultats sont stockés dans
des registres appelés ADR1 ($1031), ADR2 ($1032), ADR3 ($1033) et ADR4 ($1034).
7 6 5 4 3 2 1 0
Il existe deux modes de fonctionnement suivant l’état du bit MULT (bit 4) du registre ADCTL ( Analog
Digital ConTroL:
7 6 5 4 3 2 1 0
CCF 0 SCAN MULT CD CC CB CA
0 0 - - - - - - RESET
choisie
0 CA 0 0 0 0 PE0 ADR1 1 0 0 0 réservé ADR1
ces bits sélectionnent 0 0 0 1 PE1 ADR2 1 0 0 1 réservé ADR2
1 CB l’entrée ou les entrées du 0 0 1 0 PE2 ADR3 1 0 1 0 réservé ADR3
port E qui seront utilisées 0 0 1 1 PE3 ADR4 1 0 1 1 réservé ADR4
2 CC par la conversion 0 1 0 0 PE4 ADR1 1 1 0 0 VRH ADR1
0 1 0 1 PE5 ADR2 1 1 0 1 VRL ADR2
3 CD 0 1 1 0 PE6 ADR3 1 1 1 0 ½ VRH ADR3
0 1 1 1 PE7 ADR4 1 1 1 1 réservé ADR4
4 MULT MULTiple channel 0 le CAN réalise 4 conversions successives sur l’entrée choisie par CA à CD
1 le CAN réalise une conversion sur chaque entrée du groupe choisi par CD et CC
5 SCAN SCAN control 0 les 4 conversions (1 ou 4 entrées suivant MULT) sont réalisées une seule fois
1 les conversions demandées ont lieu en continu et les registres sont actualisés
6 0 0
7 CCF Conversion Complete Flag 0 remis à 0 par écriture de ADCTL
1 mis à 1 à la fin des 4 conversions qui ont lieu au moins une fois
1er cas : SCAN = 0, acquisition de la tension de l’entrée 4 fois de suite, les 4 résultats étant stockés
dans les registres ADR1 à ADR4.
2ème cas : SCAN = 1, acquisition continue de la tension d’entrée, les résultats étant mis en mémoire
successivement dans les registres ADR1 à ADR4. Les résultats suivants écrasent les anciennes
valeurs dans ces mêmes registres.
VI.2.b) Le mode canaux multiples : MULT = 1
Page 26
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Deux cas possibles suivant l’état du bit SCAN (bit 5) de PACTL :
1er cas : SCAN = 0, acquisition unique des quatre canaux sélectionnés et mise en mémoire dans les
registres ADR1 à ADR4.
2ème cas : SCAN = 1, acquisition permanente des quatre canaux, les résultats étant mis en mémoire
dans les registres ADR1 à ADR4. Les résultats suivants écrasent les anciennes valeurs dans ces
mêmes registres.
Dans tous les cas de figure ci-dessus, la fin de la conversion est détectée par lecture ou test du bit CCF
(Conversion Complete Flag) du registre ADCTL (voir détail du registre ci-dessus). Le passage à l’état
haut de ce bit indique que les quatre registres de résultats contiennent des données valides. Ce bit est
remis à zéro par écriture du registre ADCTL.
***************************************************************
* programme d'affichage du résultat de la conversion numérique/analogique *
* de l'entrée PE0 sur le barographe relié au port B de la maquette *
***************************************************************
org $0
start ldx #$1000
bset optio,x %10000000
bsr tempo
ldaa #%00100000 *scan,mult,PE0 a PE3
staa adctl,x
atten brset adctl,x %10000000 acqui
bra atten
acqui ldaa adr1,x
staa portb,x
bsr tempo
jmp acqui
Page 27
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Les registres de configuration et de programmation de l’EEPROM
registre CONFIG $103F
7 6 5 4 3 2 1 0
0-1-2-3 REG3 à REG0 Ces 4 bits définissent le chiffre de poids fort de l’adresse de base du bloc de 64 registres internes. Suite à un RESET, ces
bits sont initialisés à 0001 ce qui place donc les registres de $1000à $103F
4-5-6-7 RAM3 à RAM0 Ces 4 bits définissent le chiffre de poids fort de l’adresse de base de la RAM. Suite à un RESET, ces bits sont initialisés à
0000 ce qui place la RAM à partir de l’adresse $0000
registre HPRIO : High PRIOrity interrupt $103C
Page 28
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
7 6 5 4 3 2 1 0
RBOOT SMOD MDA IRV PSEL3 PSEL2 PSEL1 PSEL0
- - - - 0 1 0 1 RESET
7 6 5 4 3 2 1 0
ODD EVEN - BYTE ROW ERASE EELAT EEPGM
0 0 0 0 0 0 0 0 RESET
PORTA : port parallèle d’usage général partagé avec le TIMER et l’accumulateur d’impulsions.
Page 29
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 PR0 PR1 = 0 et PR0 = 0 (facteur de division =1) (résol=500ns - capa max = 32,77ms)
Facteur de prédivision PR1 = 0 et PR0 = 1 (facteur de division =4) (résol=2µs - capa max = 131,1ms)
1 PR1 (pour un quartz de 8 Mhz) PR1 = 1 et PR0 = 0 (facteur de division =8) (résol=4µs - capa max = 262,1ms)
PR1 = 1 et PR0 = 1 (facteur de division =16) (résol=8µ - capa max = 524,3ms)
2 non utilisé 0
3 non utilisé 0
4 PAII Pulse Accumulator 0 interruption interdites mais PAOVF continue de fonctionner normalement
Interrupt enable 1 génération d’interruption au passage du bit PAIF
5 PAOVI Pulse Accumulator 0 interruptions interdites mais PAOVF continue de fonctionner normalement
Overflow Interrupt enable 1 interruptions autorisées par le passage à 1 du bit PAOVF(bit 5 de TFLG2)
6 RTII Real Time Interrupt enable 0 IRQ de la RTI inhibées, la RTI continue de fonctionner et de positionner le bit RTI
1 les interruptions de la RTI sont autorisées
7 TOI Timer Overflow Interrupt 0 interruptions interdites mais le bit TOF continue de fonctionner normalement
Enable 1 autorise les interruptions produite par le passage à 1 de TOF(bit 7 de TFLG2)
0 non utilisé 0
1 non utilisé 0
2 non utilisé 0
3 non utilisé 0
4 PAIF Pulse Accumulator Input 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
Flag 1 mis à 1 lors de la détection d’une transition valide sur l’entrée PAI
5 PAOVF Pulse Accumulator 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
Overflow Flag 1 mis à 1 lors du débordement du compteur de $FF à $00
6 RTIF Real Time Interrupt Flag 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1) avant l’instruction RTI
1 passe à 1 lorsqu’une interruption temps réel a lieu
Page 30
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
7 TOF Timer Overflow Flag 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 positionné à 1 à chaque débordement du compteur de $FFFF à $0000
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TIC1
$1011
$1010
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TIC2
$1012 $1013
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TIC3
$1014 $1015
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC2
$1018 $1019
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC3
$101A $101B
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC4
$101C $101D
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC5
$101E $101F
registre TCTL2 : Timer ConTroL 2 $1021
7 6 5 4 3 2 1 0
- - EDG1 EDG1 EDG2 EDG2 EDG3 EDG3
B A B A B A
0 0 0 0 0 0 0 0 RESET
Page 31
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
EDG3B = 1 EDG3A = 1 capture sur fronts montant et descendant
2 EDG2A ces bits définissent le type de EDG2B = 0 EDG2A = 0 capture invalidée
transition active sur l’entrée de EDG2B = 0 EDG2A = 1 capture sur front montant
3 EDG2B capture IC2 EDG2B = 1 EDG2A = 0 capture sur front descendant
EDG2B = 1 EDG2A = 1 capture sur fronts montant et descendant
4 EDG1A ces bits définissent le type de EDG1B = 0 EDG1A = 0 capture invalidée
transition active sur l’entrée de EDG1B = 0 EDG1A = 1 capture sur front montant
5 EDG1B capture IC3 EDG1B = 1 EDG1A = 0 capture sur front descendant
EDG1B = 1 EDG1A = 1 capture sur fronts montant et descendant
6 non utilisé
7 non utilisé
0 IC3I Input Capture Interrupt enable 0 les interruption sont interdites mais le bits IC3F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit IC3F
1 IC2I Input Capture Interrupt enable 0 les interruption sont interdites mais le bits IC2F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit IC2F
2 IC1I Input Capture Interrupt enable 0 les interruption sont interdites mais le bits IC1F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit IC1F
3 OC5I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC5F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC5F
4 OC4I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC4F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC4F
5 OC3I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC3F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC3F
6 OC2I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC2F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC2F
7 OC1I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC1F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC1F
0 IC3F Input capture Flag 3 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’une transition valide sur IC3 est détectée(si une capture a lieu)
1 IC2F Input capture Flag 2 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’une transition valide sur IC2 est détectée(si une capture a lieu)
2 IC1F Input capture Flag 1 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’une transition valide sur IC1 est détectée(si une capture a lieu)
3 OC5F Output Compare Flag 5 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC5
4 OC4F Output Compare Flag 4 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC4
5 OC3F Output Compare Flag 3 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC3
6 OC2F Output Compare Flag 2 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC2
7 OC1F Output Compare Flag 1 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC1
Page 32
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 OL5 ces deux bits définissent le OM5 = 0 OL5 = 0 pas d’action sur la sortie OC5
comportement de la sortie OM5 = 0 OL5 = 1 changement d’état à chaque comparaison valide
1 OM5 OC5 lors d’une comparai- OM5 = 1 OL5 = 0 mise à zéro à chaque comparaison valide
son réussie OM5 = 1 OL5 = 1 mise à 1 à chaque comparaison valide
2 OL4 ces deux bits définissent le OM4 = 0 OL4 = 0 pas d’action sur la sortie OC4
comportement de la sortie OM4 = 0 OL4 = 1 changement d’état à chaque comparaison valide
3 OM4 OC4 lors d’une comparai- OM4 = 1 OL4 = 0 mise à zéro à chaque comparaison valide
son réussie OM4 = 1 OL4 = 1 mise à 1 à chaque comparaison valide
4 OL3 ces deux bits définissent le OM3 = 0 OL3 = 0 pas d’action sur la sortie OC3
comportement de la sortie OM3 = 0 OL3 = 1 changement d’état à chaque comparaison valide
5 OM3 OC3 lors d’une comparai- OM3 = 1 OL3 = 0 mise à zéro à chaque comparaison valide
son réussie OM3 = 1 OL3 = 1 mise à 1 à chaque comparaison valide
6 OL2 ces deux bits définissent le OM2 = 0 OL2 = 0 pas d’action sur la sortie OC2
comportement de la sortie OM2 = 0 OL2 = 1 changement d’état à chaque comparaison valide
7 OM2 OC2 lors d’une comparai- OM2 = 1 OL2 = 0 mise à zéro à chaque comparaison valide
son réussie OM2 = 1 OL2 = 1 mise à 1 à chaque comparaison valide
Page 33
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 RTR0 Ces deux bits fixent le RTR1 = 0 RTR0 = 0 rythme= 4,10 ms (E/213 divisé par 1)
rythme de génération des RTR1 = 0 RTR0 = 1 rythme= 8,19 ms (E/213 divisé par 2)
1 RTR1 interruptions temps réel RTR1 = 1 RTR0 = 0 rythme= 16,38 ms (E/2 13 divisé par 4)
(valeur pour quartz 8MHz) RTR1 = 1 RTR0 = 1 rythme= 33,77 ms (E/213 divisé par 8)
2 0 0
3 0 0
4 PEDGE Pulse accumulator EDGE 0 l’entrée PAI réagit sur des fronts descendants et ouvre le comptage par niveau bas
Select 1 PAI réagit sur des fronts montants et ouvre la porte de comptage sur un niveau haut
5 PAMOD Pulse Accumulator MODe 0 l’accumulateur d’impulsions compte les impulsions sur PAI
1 l’accumulateur d’impulsions compte l’horloge E/64 sous contrôle du niveau de PAI
6 PAEN Pulse Accumulator ENable 0 l’accumulateur d’impulsions est inactif, le compteur est arrêté
1 l’accumulateur d’impulsions est validé
7 DDRA7 Data Direction Register A7 0 la patte PA7 qui est aussi PAI est configurée en entrée
1 PA7 est configurée en sortie. Elle peut être utilisée par OC1 du timer général
Le registre du PORT B
0 INVB INVert strobe 0 STRB est une impulsion active au niveau bas (état de repos=1)
1 STRB est une impulsion active au niveau haut
1 EGA EdGe select for strobe A 0 les transitions valides du signal STRA sont des fronts descendants
1 les transitions valides du signal STRA sont des fronts montants
2 PLS strbe B PuLSe mode select 0 la ligne STRB fonctionne en mode dialoge
1 STRB fonctionne en mode impulsionnel d’une durée de 2 période d’horloge E
3 OIN Output Input haNdshake 0 sélectionne le mode dialogue complet en entrée si HNDS =1
select 1 sélectionne le mode dialogue complet en sortie si HNDS =1
4 HNDS HaNdshake simple strobe 0 mode dialogue simple
moDe Select 1 mode précisé par l’état du bit OIN
5 CWOM port C Wire Or Mode 0 les sorties du port C fonctionnent en push pull
1 les sorties du port C supportent le OU cablé (transistor relié à VDD désactivé)
6 STAI STrobe A Interrupt enable 0 les interruptions générées par STAF sont interdites
1 le passage à 1 du STAF génère une interruption de type Strobe A
7 STAF STrobe A Flag 0 remis à zero par une procédure automatique(lecture de PIOC + R/W\ de PORTCL)
1 positionné à 1 par une transition actice sur STRA
0 DDRD0 Data Direction Register D0 0 PD0 est une entrée (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
1 PD0 est une sortie (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
1 DDRD1 Data Direction Register D1 0 PD1 est une entrée (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
1 PD1 est une sortie (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
2 DDRD2 Data Direction Register D2 0 PD2 est une entrée (patte MISO pour la SPI configurée en esclave quelquesoit DDRD2)
1 PD2 est une sortie (patte MISO pour la SPI configurée en maître)
3 DDRD3 Data Direction Register D3 0 PD3 est une entrée (patte MOSI pour la SPI configurée en esclave quelquesoit DDRD3)
1 PD3 est une sortie (patte MOSI pour la SPI configurée en maître)
4 DDRD4 Data Direction Register D4 0 PD4 est une entrée (entrée d’horloge SCK pour la SPI configurée en esclave)
1 PD4 est une sortie (sortie d’horloge SCK pour la SPI configurée en maître)
5 DDRD5 Data Direction Register D5 0 PD5 est une entrée(SS\ ou entrée de détection des défauts de transmission)
1 PD5 est une sortie d’usage général
6 - non utilisé
Page 35
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
7 - non utilisé
0 non utilisé
1 non utilisé
2 non utilisé
3 non utilisé
4 MODF MODe Fault flag 0 remis à 0 par lecture de SPSR suivie d’une écriture dans le SPCR
1 passe à 1 lorsque plusieurs maîtres sont détectés simultanément sur la liaison
5 non utilisé 0
6 WCOL Write COLlision 0 remis à zero par une lecture de SPSR suivie d’un accés (lect ou ecrit) au SPCR
1 passe à 1 lors d’une écriture de SPDR alors qu’un transfert de données est en cours
7 SPIF Serial PerIpheral data 0 remis à zero par une lecture de SPSR suivie d’un accés (lect ou ecrit) au SPCR
transfert Flag 1 passe à 1 lorsqu’un transfert est terminé(si SPIE=1 interruption de type SPI)
Page 36
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 non utilisé 0
1 non utilisé 0
2 non utilisé 0
3 WAKE WAKE (reveil) 0 reveil du recepteur lorsque la ligne restera inactive pendant la durée d’un caractère au moins
1 réveil du récepteur lors de la reception d’un 1 sur le bit de poids + fort du mot reçu
4 M format de transmission 0 1 bit de start, 8 bits de données, un bit de stop
1 1 bit de start, 9 bits de données, un bit de stop
5 non utilisé 0
6 T8 Transmit 8 x destiné à recevoir le 9 ème bit de donnée à transmettre lorque le bit M=1
7 R8 Receive 8 x ce bit contient le 9ème bit de donnée reçu lorsqu’un tel format a été selectionné par le bit M (M=1)
Page 37
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
registre SCCR2 : Serial Communication Control Register 2 $102D
7 6 5 4 3 2 1 0
TIE TCIE RIE ILIE TE RE RWU SBK
0 0 0 0 0 0 0 0 RESET
0 SBK Send Break 0 la SCI fonctionne normalement
1 l’emetteur de la SCI envoie en permanence des breaks(block de 10 ou 11 zéros)
1 RWU Receive Wake Up 0 reveil conforme au choix fait par WAKE de SCCR1
1 le recepteur est mis en sommeil
2 RE Receive Enable 0 le recepteur de la SCI est désactivé ,les bits RDRF, IDLE, OR, NF, FE sont inhibés
1 le recepteur fonctionne normalement
3 TE Transmitter Enable 0 l’emetteur est désactivé, la broche PD1 passe sous contrôle de DDRD1
1 l’emmeteur est activé
4 ILIE Idle Line Interrupt Enable 0 les interruptions causées par le bit IDLE du SCSR ne sont pas autorisées
1 les interruptions causées par le bit IDLE du SCSR sont autorisées
5 RIE Receive Interrupt Enable 0 les interruptions causées par les bits RDRF et OR de SCSR ne sont pas autorisés
1 les interruptions causées par les bits RDRF et OR de SCSR sont autorisés
6 TCIE Transmit Complete 0 les interruptions causées par le bit TC du SCSR ne sont pas autorisées
Interrupt Enable 1 les interruptions causées par le bit TC du SCSR sont autorisées
7 TIE Transmit Interrupt Enable 0 les interruptions causées par le bit TDRE du SCSR ne sont pas autorisées
1 les interruptions causées par le bit TDRE du SCSR sont autorisées
7 6 5 4 3 2 1 0
TCLR - SCP1 SCP0 RCKB SCR2 SCR1 SCR0
0 0 0 0 0 - - - RESET
Page 38
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 0 non utilisé 0
1 FE Framing error 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 par un erreur de format (non détection du bit de stop de fin de caractère)
2 NF Noise Flag 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 si du bruit est détecté lors de la réception y compris sur bits de start et stop
3 OR Ove Run error 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lors du débordement du recepteur
4 IDLE IDLE line detect 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lorsque la ligne de réception est détectée comme étant au repos
5 RDRF Receive Data Register Full 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lorsque le registre de réception SCDR est plein et peut donc être lu
6 TC Transmit Complete 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lorsqu’une émission de donnée est terminée (y compris bit de stop)
7 TDRE Transmit Data Receive 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
Empty 1 mis à 1 pour indiquer que le registre d’émission SCDR est vide
Page 39
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
CD CC CB CA entrée Resultat CD CC CB CA entrée choisie Resultat
choisie
0 CA 0 0 0 0 PE0 ADR1 1 0 0 0 réservé ADR1
ces bits sélectionnent 0 0 0 1 PE1 ADR2 1 0 0 1 réservé ADR2
1 CB l’entrée ou les entrées du 0 0 1 0 PE2 ADR3 1 0 1 0 réservé ADR3
port E qui seront utilisées 0 0 1 1 PE3 ADR4 1 0 1 1 réservé ADR4
2 CC par la conversion 0 1 0 0 PE4 ADR1 1 1 0 0 VRH ADR1
0 1 0 1 PE5 ADR2 1 1 0 1 VRL ADR2
3 CD 0 1 1 0 PE6 ADR3 1 1 1 0 ½ VRH ADR3
0 1 1 1 PE7 ADR4 1 1 1 1 réservé ADR4
4 MULT MULTiple channel 0 le CAN réalise 4 conversions successives sur l’entrée choisie par CA à CD
1 le CAN réalise une conversion sur chaque entrée du groupe choisi par CD et CC
5 SCAN SCAN control 0 les 4 conversions (1 ou 4 entrées suivant MULT) sont réalisées une seule fois
1 les conversions demandées ont lieu en continu et les registres sont actualisés
6 - non utilisé 0
7 CCF Conversion Complete Flag 0 remis à 0 par écriture de ADCTL
1 mis à 1 à la fin des 4 conversions qui ont lieu au moins une fois
Une pile est une zone d’adresses mémoires réservée dans une mémoire RAM. Elle permet au
programmeur de stocker des informations qu’il va pouvoir récupérer plus loin dans le programme. Elle
permet aussi à l’unité centrale de mémoriser l’adresse de la prochaine instruction à exécuter après son
retour d’un sous-programme.
Page 40