Vous êtes sur la page 1sur 17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

ARCHITECTURE DUNE MACHINE INFORMATIQUE


SYNCHRONE PILOTEE PAR UNE HORLOGE
I)

Fonctions de base dune machine informatique

Contenir de faon permanente les tches excuter (mmoire programme) en ROM


ou sur support magntique.
Contenir de faon temporaire des donnes (mmoire de travail) en RAM.
Permettre un dialogue avec lextrieur (circuit dinterface entre/sortie) :
PIA- ACIA- TIMER
PIO- USART
SIO- UART.
Effectuer des oprations arithmtiques et logiques lmentaires (UAL, en anglais
ALU).
Organiser des transits dinformations (unit de contrle : U.C.)
Cadencer les diffrentes informations (Horloge)
Pointer ltape du programme en cours (P.C. : compteur programme, en anglais
Program Counter).

II)

Schma fonctionnel dune machine informatique


Unit de
contrle

Horloge

P1

P 1
U.A.L.
Interface
de
sortie

Interface
d entre

Pn

Mmoires
DMA

DMA

P n

A) Pn : Priphriques dentres
Clavier
Souris
Joystick
Ecran tactile

Lecteur de bande magntique


Lecteur de cartes
Chanes dacquisition de donnes
Crayon optique

B) Registres mmoires
A accs dit alatoire cest dire, temps daccs indpendant de lemplacement de la
donne stocke.
RAM :
Statique
Lecture seule :
ROM
Dynamique
PROM
REPROM
Page n1/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

C) Mmoires de masse
Accs squentiel :
Accs alatoire :

Bandes magntiques
Disquettes
Disques durs
Cdroms

D) Pn : Priphriques de sortie
Dispositifs de visualisation :

DELs
Affichage alphanumrique
Ecran vido

Imprimante
Table traante
Perforatrice de bandes
Synthtiseur vocal
Lecteur disquette

III)

Architecture dun systme microprocesseur


A) Structure : P 68HC11 MOTOROLA

(UCT)
CPU
Central
Processing
Unit

Bus de

Bus de donnes bidirectionnel

Mmoires

contrle

16

Circuits
d interface
entre/sortie

Bus d adresses unidirectionnel

Extrieur
Les priphriques chez MOTOROLA sont considrs comme des accs mmoires.
B) Notion de programme source et programme objet
Programme source : Traduction de lalgorithme dans un langage comprhensible par
la machine informatique (BASIC, PASCAL, C, FORTRAN, COBOL, ALGOL, PL1, ADA, LOGO,
LSE, DELPHI, etc ...).
Programme objet : Traduction du programme source en instructions codes en
binaire, seul langage excutable par le microprocesseur.

Page n2/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Passage du programme source au programme objet :


Programme
source crit en

Mode de traduction

Programme
objet en

Matriel

Binaire

Binaire
Hxadcimal
Mnmonique

Conversion Hxadcimal/binaire
Assembleur (logiciel)
Dsassembleur (logiciel)

Langage volu:
* Basic

Interprteur (logiciel)
Ligne ligne chaque excution

* Pascal

Compilateur (logiciel)
Globalement une seule fois

C) Structure interne 68HC11

Mapping mmoire du 68HC11.


Le 68HC11 est un microcontrleur. Cest un microprocesseur qui possde de la RAM,
ROM et divers priphriques dentres/sorties. Un microcontrleur peut donc tre utilis seul, car il
est lui seul une machine informatique. Un microprocesseur, PENTIUM, 6809, Z80, etc..., ne peut
fonctionner seul, il a ncessairement besoin de ROM et de RAM externes.

Page n3/17

/2

*Conf ig urable par cavaliers

Pulse accumula tor

Compteur
systme

CPU
68HC11A1

EEPROM
512 octets

RAM
256 octets

V MA
V PA
R/W

Pas Pas

EPROM 8K ou 32K
selon la version

Conversion N/A
12 Bits (en option)

RAM 8K ou 24K
selon la version

SPI

Conversion
A/N

SCI

Liaison RS232 n2 IRQ


(en option)

Adaptateur
RS232C

Non dis poni ble sur version LC

RX1
TX1

PE0

PE3

Port E

PD0

PD5

Port D

PC0

Port C
PB0
STRA
STRB
PC7

PB7

Port B

PA0

PA7

Port A

XIRQ

Gestion priphriques
externes

RX2
TX2

Osc

Bus d
adresses

PD1

MODB*

Bus de
donnes

PD0

Mode

Gestion des
interruptions

MODA*

14,745 6MH z

RES ET
IRQ
X IRQ

OSC
7,3728M H z

S.T.I. Gnie Electrique option Electronique


E
1,8432M H z

Cours 68HC11

Architecture dun microprocesseur de la famille 68HC11.


Lunit centrale 68HC11 est drive du vieux 6801. Il existe une grande varit de
68HC11, issus du 68HC11A8.
Autour de lunit centrale du 68HC11, on trouve de la mmoire. Elle se subdivise au
maximum en trois blocks distincts dont la taille et la prsence varient selon les rfrences exactes
du circuit : RAM ( 256 octets minimum), ROM (prsente ou absente) et EEPROM.
Cette unit centrale est entoure dun certain nombre de ports parallles baptiss port A
port E qui peuvent tre bidirectionnels ou unidirectionnels selon le cas.
Un timer est galement disponible. Il comporte plusieurs timers trs volus, ainsi
quun accumulateur dimpulsions, une horloge temps rel et un chien de garde (ou COP : Computer
Operating Properly) destin surveiller le fonctionnement du microcontrleur.
Un convertisseur analogique/numrique huit entres complte les ressources internes
du 68HC11.

Page n4/17

AGND
Vref
Vout

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

D) Accumulateurs

0 Accumulateur 8 bits A et B
ou Accumulateur 16 bits D

15

IX

0 Registre d'index X

15

IY

0 Registre d'index Y

15

SP

0 Pointeur de Pile

15

PC

07

0
7
0
S X H I N Z V C

Compteur de programme
Registre d'tat
Retenue
Dpassement
Zro
Ngatif
Masque d'interruption I
Demi-Retenue
Masque d'interruption X
Inhibition Stop

Registres de travail du 68HC11


Accumulateurs A, B et D :
Les registres A et B sont des accumulateurs 8 bits indpendants utiliss pour toutes
oprations arithmtiques et logiques. A et B peuvent tre concatns et former un accumulateur D
de 16 bits. Attention cet accumulateur nest pas indpendant de A et B.
Registres dindex X et Y :
Les registres dindex X et Y, indpendants, possdent 16 bits chacun, puisque la
capacit dadressage du 68HC11 est de 16 bits dadresses. Leur rle premier est dtre utilis pour
ladressage index, mais ils peuvent tre utiliss pour le stockage temporaire de donnes, ou pour
quelques oprations arithmtiques lmentaires.
Pointeur de pile S :
Le pointeur de pile S est un registre 16 bits. Ce registre pointe sur la premire adresse
libre de la zone mmoire dfinie pour ranger diffrents paramtres, tel registre PC, registre CCR,
etc ..., suivant la demande (interruption, appel un sous-programme). Il est indispensable de
linitialiser une adresse RAM, sinon la premire interruption ou appel un sous-programme, le
programme se plantera (bug).
Compteur programme ou PC :
Le compteur programme, PC, indique ladresse du prochain code binaire 8 bits
(instruction ou valeur de travail) traiter. La taille du registre PC est donc de 16 bits.
Registre dtat ou CCR :
Le registre dtat ou CCR ( Condition Code Register) est un registre sur 8 bits. Chaque
bit une signification particulire.
Le bit C (Carry) : C est mis 1 lorsquune opration arithmtique gnre une
retenue. Il est galement utilis comme indicateur derreur lors dune multiplication ou dune
division, et sert lors de certaines oprations de dcalage ou rotation qui peuvent passer par son
intermdiaire ou non.
Le bit V (oVerflow) : V est mis 1 lorsquune opration arithmtique gnre un
dbordement de laccumulateur.
Le bit Z (Zero) : Z est mis 1 lorsque le rsultat de linstruction excut est nul.
Page n5/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Le bit N (Negative) : N est mis 1 lorsque le rsultat de la dernire opration


arithmtique ralise est ngatif (bit de poids fort du rsultat 1).
Le bit H (Half carry) : H, demi-retenue, est mis 1 lors dune retenue entre les bits 3
et 4 dune opration arithmtique. Il nest affect que par les instructions ADD, ADC et ABA, et est
ensuite exploit par linstruction DAA pour raliser de larithmtique DCB (en anglais BCD), cest
dire code en fait sur 2 groupes de 4 bits.
Le bit I (Interrupt mask) : I interdit toute interruption masquable lorsquil est mis 1.
C'est dire qu'il permet d'autoriser les interruptions du TIMER, ACIA et autres. Suite un RESET,
I est mis 1.
Le bit X (Xirq interrupt mask) : X interdit toute interruption masquable lorsquil est
mis 1. Suite un RESET, X est mis 1. Attention XIRQ est une interruption non masquable en
gnral, mais dans le cas du 68HC11, il est possible de la masquer.
Le bit S (Stop disable) : S est mis 1 pour interdire lexcution de linstruction
STOP. Elle sera considre comme un simple NOP (No OPeration).
Il existe certaines instructions pour manipuler directement certains bits du registre CCR.
E) Dfinitions des signaux de contrle
Alimentation (VDD et VSS) :
VSS=0V et VDD=+5V 5%.
MODB
0
0
1
1

MODA / LIR et MODB/Vstby :


MODA
Mode de fonctionnement
0
Normal- Circuit seul
1
Normal- Etendu
0
Spcial- Bootstrap
1
Spcial- Test

EXTAL et XTAL :
Entres du quartz pour gnrer le signal dhorloge E. On peut aussi appliquer seulement
un signal dhorloge sur lentre EXTAL.
E:
E est une sortie dhorloge de bus. Sa frquence est gale au quart de la valeur du quartz.
Ltat logique de E, haut ou bas, indique si des donnes ou des adresses valides sont prsentes sur le
bus du 68HC11.
RESET :
Entre RESET active au niveau bas. Mais elle peut devenir une sortie, dans le cas du
chien de garde ou COP, active l aussi au niveau bas.
IRQ :
Entre dinterruption masquable (voir bit I du registre CCR et bit IRQE du registre
option).
XIRQ :
Entre dinterruption non masquable (voir bit X du registre CCR). Cette interruption est
quand mme masquable.
VREFL et VREFH :
VREFL et VREFH sont respectivement des entres de rfrence basse et haute du
convertisseur analogique/numrique. Pour une bonne prcision, la diffrence de potentiel entre
VREFH et VREFL doit tre au moins de 2,5V, mais reste dans les limites de VDD et VSS.

Page n6/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Port E :
PE0 PE7 sont des entres du port parallle E. Ces lignes sont unidirectionnelles et ne
fonctionnent quen entre. De plus elles sont partages avec les entres du convertisseur
analogique/numrique. Il est possible de faire travailler le port E en numrique et en analogique en
mme temps (il faudra soigner le programme sous peine de lgres perturbations).
Port D :
PD0 PD5 sont des entres ou sorties du port parallle D. Ces lignes sont
programmables indpendamment en entre ou sortie. La programmation du port D est ralise par
le registre DDRD, registre de programmation des lignes du port D.
Port C :
PC0 PC7 sont des entres ou sorties du port parallle C. Ces lignes sont
programmables indpendamment en entre ou sortie. La programmation du port C est ralise par le
registre DDRC, registre de programmation des lignes du port C.
En mode tendu, le port C devient bus de donnes (8 bits) ou bus de poids faible des
adresses (8 bits) (multiplexage des diffrents bus).
Port B :
PB0 PB7 sont des sorties du port parallle B.
En mode tendu, le port B devient bus de poids fort des adresses (8 bits).
STRA/AS :
STRA est une entre permettant de mmoriser des donnes prsentent sur le port C en
entre. STRA est actif sur un front programmable.
S TR B / R / W :
STRB est une sortie indiquant lorsque des donnes sont prsentent sur les lignes du port
B et C qui ont t places en sorties (fonction strobe).
Port A :
PA0 PA2 sont des entres du port parallle A, P3 PA6 sont les sorties de ce port et
PA7 est lentre ou sortie de ce mme port.
Ces lignes sont partages par le timer. PA0 PA2 sont les entres de capture IC3 IC1
du timer. PA3 PA6 sont les sorties de comparaison OC1 OC5 du timer. PA7 peut tre configur
en entre de capture ou sortie de comparaison.

IV)

Structures algorithmiques fondamentales


A) Dfinitions :

Organigramme : (en anglais flowchart, se dit aussi ordinogramme) cest un schma


synoptique qui analyse dans le dtail les diffrentes phases du problme traiter.
Algorithgramme : Cest la transposition dun organigramme en tches simplifies.

Page n7/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

B) Structure linaire ou squentielle :


Ex: P = U x I

C) Structure itrative :
1) Structure itrative : boucle tant
que :
Tant que < condition ralise >
Faire quelque chose
Rpter

DEBUT

Saisir la valeur de u
et la mmoriser

Oui
Condition
ralise?

Saisir la valeur de I
et la mmoriser

Faire quelque chose


Sortie

Afficher le rsultat
P=UxI

Remarque : Le travail peut ne jamais tre


effectu.
2) Structure
itrative :
boucle
jusqu :
Faire quelque chose
Jusqu ce que < condition
ralise >

FIN

Faire quelque chose

Condition
ralise?

Non

Sortie

Remarque : Le travail effectuer lest au


moins une fois.
D) Structure alternative :
Ex: Un candidat est reu au bac si

M 10

M 10

M 8

Candidat dclar
Reu

Candidat admis au
2e groupe dpreuves

Candidat refus

FIN

FIN

Page n8/17

Cours 68HC11

V)

S.T.I. Gnie Electrique option Electronique

Modes dadressage
A) Adressage inhrent :

Ce mode nest pas proprement parler un mode dadressage, mais tous les fabricants le
dcomptent comme tel.
Les instructions agissent sur les registres internes du microprocesseur. Les instructions
comportent donc un code oprateur seul sans oprande.
ABA Additionne le contenu de A avec celui de B. Le rsultat se trouve dans A.
ASLA Effectue un dcalage vers la gauche des bits de A.
B) Adressage immdiat :
Dans ce mode dadressage, le code oprateur est suivi par la donne manipuler, code
oprande, qui est prcde par le symbole #. Linstruction est donc compos dun code oprateur,
dun # et enfin dun code oprande.
LDAA #55
Stocke la valeur 55 en dcimale dans le registre A.
LDD #$5A0 Stocke la valeur 5A0 en hexadcimale dans le registre D.
C) Adressage direct :
Ce mode dadressage, que lon peut confondre avec ladressage immdiat, est le premier
vrai mode dadressage du 68HC11. Le code oprateur est suivi dun octet non sign qui est
ladresse effective de la donne , ou oprande, manipuler.
Ne codant ladresse que sur un octet, il nest possible que dadresser les 256 premiers
octets, ladresse $00 ladresse $FF, de lespace adressable du microcontrleur.
LDAA $55
Stocke la valeur contenue ladresse $0055 dans le registre A.
ADDA 55
Additionne la valeur contenue ladresse $0037 avec la valeur
contenue dans le registre A. Rsultat de lopration arithmtique dans le
registre A.
D) Adressage tendu ou absolu :
Ce mode dadressage est une volution du prcdent et permet datteindre nimporte
quelle adresse mmoire car il autorise un codage de ladresse effective sur deux octets, ou 16 bits.
Le champs mmoire adressable est donc de $0000 $FFFF.
Loprande est donc cod sur 2 octets.
LDAA $B05A Stocke la valeur contenue ladresse $B05A dans le registre A.
ADDA $B05A Additionne la valeur se trouvant ladresse $B05A avec la valeur
contenue dans le registre A. Rsultat de lopration arithmtique dans le
registre A.
E) Adressage index avec dplacement dune constante :
Ce mode dadressage est particulirement souple et fait intervenir deux facteurs dans le
calcul de ladresse effective : le contenu dun des registres dindex X ou Y et une donne appele
dplacement ou offset (non sign).
LDAA $33,X
Stocke la valeur se trouvant ladresse X+$33 dans le registre A.
ADDA $33,Y
Additionne la valeur contenue ladresse Y+$33 avec la valeur
contenue dans le registre A. Rsultat de lopration arithmtique dans le
registre A.
STAB ,X
Stocke la valeur contenue dans le registre B ladresse X, car loffset
est de 0 ici.
Page n9/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

F) Adressage index avec dplacement accumulateur :


Ce mode fonctionne de la mme manire que prcdemment, cependant loffset nest
plus une constante, mais un registre du 68HC11.
LDAA B,X
Stocke la valeur se trouvant ladresse X+B dans le registre A. X tant
un registre sur 16 bits et B un registre sur 8 bits.
Remarque : On peut conclure que loffset est une donne sur 8 bits non signe. Il ne
peut donc varier que $00 $FF.
G) Adressage relatif :
Ce mode dadressage se rencontre quasiment sur tous les microprocesseurs, mais nest
utilis ici que pour les instructions de saut et branchement. Il spcifie ladresse effective sous forme
dun dplacement qui est donc ajout la valeur courante du PC pour dterminer ladresse de
poursuite du programme. Comme lors de lexcution dune instruction, le PC pointe toujours sur
linstruction suivante, ladresse effective est en fait gale la valeur courante du PC+2+le
dplacement.
Le dplacement est cod sur un octet sign, d'o un dplacement de 128 +127 en
base dcimale.
BEQ
$FB
Aprs excution de la ligne de commande le contenu du PC sera
additionn 5 si le bit Z est 1, sinon le contenu du PC
sincrmentera de +2.
BCC
$10
Aprs excution de la ligne de commande le contenu du PC sera
additionn +16 si le bit C est 0, sinon le contenu du PC
sincrmentera de +2.

VI)

Jeux dinstructions du 68HC11

Page n10/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n11/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n12/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n13/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n14/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n15/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

Page n16/17

Cours 68HC11

S.T.I. Gnie Electrique option Electronique

VII) Editeur assembleur :


A) Fentre de l'diteur :
Commentaire car symbole
* en dbut de ligne

Champ commentaire

* Programme Principal *
*---------------------*

Champ
tiquette

*
DEBUT
CONT
CONT1

CONT2

ORG

DEBROM

LDS
JSR
JSR
JSR
BNE
JSR
JSR
JSR
BNE
BRA

#PILES
INILED1
TEMPO
ROTDR
CONT1
INILED2
TEMPO
ROTGA
CONT2
CONT

Champ oprateur
(code mnmonique
ou directive
d'assemblage)

*
*
*
*
*
*
*
*
*
*
*
*

Directive d'assemblage: mettre ce qui


suit l'adresse $F000
Initialisation pile systme
Appel au S/prg initialisation LED1
Appel au S/prg temporisation 0,5s
Appel au S/prg rotation droite LEDs
Z=0? Si oui, branchement CONT1
Appel au S/prg initialisation LED2
Appel au S/prg temporisation 0,5s
Appel au S/prg rotation gauche LEDs
Z=0? Si oui, branchement CONT2
Branchement inconditionnel CONT

Champ oprande

On remarque que l'cran se dcoupe en 4 champs :


Champ tiquette
Champ oprateur (code mnmonique) ou directive d'assemblage
Champ oprande
Champ commentaire
Pour passer d'un champ un autre, il suffit de mettre un espace avec la touche espace ou
TAB. Plusieurs espaces accols correspond un seul et mme espace. Attention on ne peut sauter
des champs, c'est dire passer du champ tiquette au champ oprande. Seul le champ commentaire
est un peu particulier. Si un champ quelconque est rempli, on peut aller directement au champ
commentaire. Il y a une exception, lorsqu'aucun champ n'est rempli, l'diteur considre que toute la
ligne est un champ commentaire, d'o la condition de mettre * en dbut de ligne.
On n'utilisera pas d'tiquette comportant plus de 8 caractres du code ASCII standard.
B) Directives d'assemblage :
END

Fin du fichier contenant le programme.

EQU

Permet de donner des quivalences.


Ex: PORTB EQU $1004.

ORG

Dtermine o le compilateur dot mettre les codes qui suivent cette


commande.
Ex: ORG
$1000.

RMB

Rserve une quantit de mmoire (octet).


Ex: RMB
8
Permet de mettre des valeurs d'octets fixes dans des zones mmoire.
Permet de mettre des valeurs de mots de 16 bits dans des zones mmoire
Permet de mettre des caractres de la table ASCII dans des zones mmoire
FCB, FCD, FCC et RMB s'utilisent avec la commande ORG afin de spcifier
les zones mmoires affectes.

FCB
FCD
FCC
Remarque :

Page n17/17

Vous aimerez peut-être aussi