Vous êtes sur la page 1sur 27

IUP TMM - L3

Micro-controleur
68HC11

UPS

IUP TMM - L3

Architecture dun micro-controleur

I-2 Unite centrale

Micro-controleur
Motorola 68HC11

Une unite centrale est constituee:

Dune unite arithmetique


et logique (UAL).
De registres internes

Plan du cours:

de lexecution)

Dune unite de commande (decodage


et controle

De bus (adresses, donnees,


commandes)

I-Introduction - Architecture dun micro-controleur

II-Codage des informations

bus de donnees

III-Structure du 68HC11

Memoire
Reg dInst.

IV-Jeu dinstructions

UAL

V-Entrees/Sorties

bus de commande

Accu.

VI-Systeme
de developpement.
Platine Controlboy

Programme

Unite de
commande

Donnees

Reg detat
PC

bus dadresses

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Architecture dun micro-controleur

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Architecture dun micro-controleur

I-Introduction

Unite Arithmetique
et logique
Au coeur du processeur, lUAL effectue le traitement des informations.

I-1 Architecture dun micro-controleur

E1

E2
n

Un micro-controleur
integre
sur un meme
circuit:
Une unite centrale ou micro-processeur (CPU)

De la memoire
(RAM, ROM, EPROM, EEPROM,...)

Des interfaces dentrees/sorties

UAL

Ports dE/S

interfaces
entrees/sorties

.......
indicateurs

n
CPU

memoire

Cest un circuit combinatoire qui produit un resultat


(S) sur n bits fonction des
presentes

(E1 et E2) et de la fonction a` realiser

donnees
sur ses entrees
(f) et met a`
jour des indicateurs.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Architecture dun micro-controleur

UPS

IUP TMM - L3

Codage des informations

II-Codage des informations

I-3 Memoire
en octet. Chaque octet de la memoire

` une adresse
Principe: organisee
possede

II-1 Introduction

sur m bits.
codee

Espace adressable: Nombre dadresses disponibles egal


a` 2 .
m

Un ordinateur ne manipule que des informations binaires.

pour les donnees)

Memoire
vive: (Utilisee

Necessit
e dun codage des informations. Codage des nombres, codage des

RAM, DRAM, SRAM,...: Utilisable en lecture et ecriture.


Volatile.

`
caracteres.

pour les programmes)

Memoires
mortes: (utilisee

utilisees
dans un ordinateur: bit, octet (8 bits), multiples doctets (16 bits, 32
Unites

par le fabricant (ROM) ou` par lutilisateur mais


ROM, PROM: memoire
programmee

bits, 64 bits, ...)

une seule fois (PROM). Non volatile. Accessible seulement en lecture.

Codage: convention qui permet de representer


une information sous forme dune

EPROM: reprogrammable par exposition a` des UV. Non-volatile. Accessible en

suite de 0 et de 1.

lecture seulement.

`
Notation hexadecimale:
permet de representer
une valeur binaire de maniere

EEPROM: effacable electriquement.


Non-volatile. Rapide en lecture mais lente en

compacte.

ecriture.
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Architecture dun micro-controleur

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Codage des informations

II-2 Numeration
positionnelle

ees

I-4 Interfaces dE/S integr

Principe: Une quantite est represent


e par une suite de symboles. Le poids de

`
interfaces paralleles
pour la connection des E/S (signaux logiques).

chacun des symboles depend


de sa position dans la suite.

interfaces serie
pour la communication.

base 10 (decimale)
10 Symboles: { 0, 1, 2, ... , 9}

convertisseurs analogique/numerique
pour le traitement de signaux
analogiques.

Poids: puissances de 10 en partant de 0, de la gauche vers la droite.

erer

timers pour gen


ou mesurer des signaux periodiques
(signaux

Exemple: 127=

rectangulaires).

1 102 + 2 101 + 7 100

base 2 (binaire) 2 symboles {0, 1}

Accessibles sur des broches du circuit (ports).

Poids: puissances de 2 en partant de 0, de la gauche vers la droite.

situes
dans lespace adressable (pas dinstructions
Des registres specialis
es

Exemple: 1011b=

speciales)
permettent de lire ou` decrire
des valeurs sur les ports et de programmer

base 16 (hexadecimale)
16 symboles {0,...,9 , 1, A,..., F}

les interfaces (par exemple la cadence de transmission de la ligne s erie).

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

1 23 + 0 22 + 1 21 + 1 20 (soit 11 en decimal)

Poids: puissance de 16. Exemple: 3Ah=

3 161 + 10 160 (soit 58 en decimal)

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Codage des informations

UPS

IUP TMM - L3

Codage des informations

II-4 Entiers naturels

II-3 Changement de base

Soit A=an1 an2 ...a2 a1 a0 un mot-code de n bits en binaire.

conversion binaire hexadecimal:

Ce mot-code A represente
lentier naturel code sur n bits:

on regroupe les bits par groupes de 4 et on cherche le symbole hexad ecimal


de
chaque groupe.

N (A) =

Ex: 0010 1100b 2Ch

ai 2i

i=0

conversion hexadecimal
binaire:

Dans un ordinateur n est un multiple de 8 bits.

il faut decomposer
chaque symbole hexadecimal
en groupe de 4 bits.
Ex: 2Ch 0010 1100b

plage decimal

hexadecimal

0 a` 255

00h a` FFh

16

0 a` 65535

0000h a` FFFFh

24

0 a` 16 777 215

000000 a` FFFFFF

conversion binaire decimal:

chaque bit doit etre


multiplie par son poids (puissance de 2).
Ex: 0010 1100b 25

n1
X

+ 23 + 22 =44d

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Codage des informations

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Codage des informations

Decodage
dun entier naturel: soit A le mot-code representant
lentier N (A).

La valeur decimale
de N (A) est obtenue en appliquant la definition:

conversion decimal
binaire:
On effectue des divisions successives par 2

Exemple (codage sur 8 bits): A=0010 1011

Ex: 44/2=22, r=b0=0, 22/2=11, r=b1=0, 11/2=5, r=b2=1, 5/2=2, r=b3=1, 2/2=1,

N (A) = 20 + 21 + 23 + 25 = 1 + 2 + 8 + 32 = 43

r=b4=0, 1/2=0, r=b5=1 donc 44d b5b4b3b2b1b0=101100b

Codage: soit lentier naturel N (A). Son code A est obtenu par des divisions
successives par 2:

conversion hexadecimal
decimal:

chaque symbole doit etre


multiplie par son poids (puissance de 16).
Ex: 2Ch 2 16 + 12

=44d

hexadecimal:
conversion decimal

Exemple: N (A)

= 43

On effectue des divisions successives par 16.


Ex: 44/16=2, r=12, 2/16=0, r=2 donc 44d 2Ch

valeur

quotient

reste

bit

43

21

b0

21

10

b1

10

b2

b3

b4

b5

Dou: A=0010 1011

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

10

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Codage des informations

IUP TMM - L3

Codage des informations

Regles
de codage des entiers relatifs:

II-5 Entiers relatifs

Soit Z un entier relatif a` coder, soit A son code.

Principe: codage en complement


a` 2. Le bit le plus a` gauche (bit le plus significatif)

Si Z0, le code de Z est le meme


que celui de lentier naturel N=Z.

a un poids negatif.
Soit Z lentier relatif code par A:

Si Z<0, il faut chercher le complement


a` 2 du code de sa valeur absolue (codee
comme un entier naturel).

Z(A) = a

n1 n1

n2
X

ai 2i

i=0

Consequence:
si an1

= 1, Z(A) est un nombre negatif


quel que soient les
valeurs des autres bits (a0 a` an2 ). Inversement, si an1 = 0, Z(A) est positif.

Le signe dun entier relatif est donne par la valeur du bit le plus significatif de son

code (0: positif, 1: negatif)

Exemple: 1001 1111b represente


un entier negatif.

13

UPS

Codage des informations

Z(A) = an1 2n +

e(A)
N

0001

15

1001

-7

0010

14

1010

10

-6

0011

13

1011

11

-5

0100

12

1100

12

-4

0101

11

1101

13

-3

0110

10

1110

14

-2

0111

1111

15

-1

Z(A)

-8

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Codage des informations

avec B= bn1 ...b0 . Lexactitude du resultat


depend
du contexte:
non signe indicateur C, ou signe indicateur V.

ai 2i = an1 2n + N (A)

Le code dun entier positif Z(A) est le meme


que celui de lentier naturel N (A)

e (A).
= 1, Z(A) < 0 et |Z(A)| = 2n N (A) = N

Le code dun entier negatif


Z(A) est le meme
que celui du complement
a` 2 de

lentier naturel egal


a` sa valeur absolue.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

1000

Soit S= sn1 ...s0 le code du resultat


de laddition sur n bits de A=

= 0, Z(A) = N (A).

Si, par contre, an1

N(A)

processeur doit detecter


si une le resultat
dune operation
est representable
ou pas.

i=0

Dou, si an1

16

Les valeurs representables


dependent
du nombre de bits choisi pour le codage. Le

+ X = 2n .

On peut encore ecrire


Z(A) sous la forme:
n1
X

e(A)
N

Z(A)

II-6 Addition et debordement

Complement
a` 2
e le complement
e est tel que X
e

X
soit X
a` 2 de X , par definition,

N(A)

le complement
a` 2 dun nombre est obtenu en rajoutant 1 a` son complement
vrai.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

A
0000

14

an1

bn1

sn1

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

an1 ...a0

IUP TMM - L3

UPS

Codage des informations

IUP TMM - L3

`
II-9 Codage des caracteres

II-7 Codage des reels


en virgule fixe
Le principe consiste a` fixer la position de la virgule et a` donner aux bits a` droite de

code

21 , 22 , ...
cette position un poids en puissance de 2 negative:

0x00

NUL

0x10

DLE

0x20

SP

0x30

0x40

X(A) sur n bits dont m apres


` la virgule:
Soit A le mot code representant
le reel

X(A) = a

n1 n1m

n2
X

ai 2

im

i=0

Exemple avec n=8 et m=3: le code 00101 100b represente


le reel:

SOH

STX

ETX

EOT

ENQ

ACK

BEL

BS

HT

LF

VT

NP

CR

SO

DC1

DC2

DC3

DC4

NAK

SYN

ETB

CAN

EM

SUB

ESC

FS

GS

RS

&

<

>

0x50

0x60

0x70

de parite
controle

X(A) = 2m Z(A)

Codage des informations

`
Le 8eme
bit peut avoir divers usages:

On peut aussi ecrire:

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

`
`

Les caracteres
0 a 31 et 127 sont des caracteres
de controle.

22 + 20 + 21 = 4 + 1 + 0.5 = 5.5

IUP TMM - L3

Codage des informations

par exemple).
definition
de caracteres
etendus
(accentues

17

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Codage des informations

`
et propriet
es
du code ascii
Caracteres
de controle

II-8 Operations
logiques et masques

Les lettres de lalphabet sont dans lordre croissant et se suivent: Un tri

operateur
OU

` a` un tri numerique.

alphabetique
se ramene

Permet de mettre a` 1 un bit ou un groupe de bits sans modifier les autres.

Le passage de minuscule en majuscule et vice-versa se fait simplement en

Ex: xxxx xxxx + 0000 1000 = xxxx 1xxx. Met a` 1 le bit b3.

inversant le bit 5 du code (soit + ou - $20)

operateur
ET

Le passage dun chiffre a` son code ASCII consiste a` rajouter $30 a` ce chiffre.

Permet disoler un bit ou un groupe de bits.

Quelques caracteres
de controles:

Ex: xxxx xxxx & 0000 1000 = 0000 x000. Isole le bit b3.
Permet aussi de mettre a` 0 un bit ou un groupe de bits.
le bit b3.
Ex: xxxx xxxx & 1111 0111 = xxxx 0xxx. Met a` zero

operateur
OU EXCLUSIF
Permet dinverser la valeur dun bit ou dun groupe de bits.
Ex: xxxx xxxx 0000 1000 = xxxx x xxx

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

18

NUL

`
absence de caractere

SOH

`
debut
dentete

STX

debut
de texte

ETX

fin de texte

EOT

fin de transmission

ENQ

interrogation

ACQ

accuse reception

BEL

sonnette

BS

`
retour arriere

HT

tabulation horizontale

LF

ligne suivante

VT

tabulation verticale

FF

page suivante

CR

retour chariot

NAK

recu avec erreur

SYN

synchronisation

CAN

annulation

SUB

substitution

ESC

echappement

FS

separateur
de fichier

GS

separateur
de groupe

RS

separateur
darticle

US

separateur
dunite

DEL

effacer

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Structure du 68HC11

III-Structure du 68HC11

IUP TMM - L3

Structure du 68HC11

III-3 Brochage du 68HC11E2


Le 68HC11E2 est inclus dans un boitier a` 52 broches. En plus des 38 E/S des

III-1 Presentation

` 14 broches:
ports, il possede

Le 68HC11 serie
E est un micro-controleur
developp
e par Motorola (devenu

VSS et VDD: alimentation VDD=5V, VSS=0.

`
freescale) construit autour dune unite centrale 8 bits. Il possede:

XTAL et EXTAL: connection dun quartz ou dune horloge externe.

un espace adressable de 64 Ko (bus dadresses de 16 bits).

E et 4XOUT: sorties dhorloge.

Un convertisseur analogique/numerique
8 bits multiplexe sur 8 canaux.

dinterruptions externes.
IRQ et XIRQ: entrees

Une interface de communication serie


asynchrone (RS232)

erence

VRH et VRL: tension de ref


pour la conversion A/N. VRH<VDD.

Une interface de communication serie


synchrone

MODA et MODB: mode de fonctionnement.

de capture et 4 sorties de comparaison plus 1


Un timer 16 bits avec 3 entrees

RESET signal dinitialisation.

E/S programmable

STRA et STRB: en mode normal (monopuce), signaux de communication avec

22 sources dinterruptions (internes et externes)

`
une interface parallele.

38 broches dE/S polyvalentes reparties


sur 5 ports.
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

21

UPS

Structure du 68HC11

III-2 Ports du 68HC811E2

3 entrees
1 E/S
3 sorties
1 E/S

8 sorties

0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7

Port A

Port D
Port C
0 1 2 3 4 5 6 7

IUP TMM - L3

Structure du 68HC11

III-4 Registres internes

Port E

Port B

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7

7
8 entrees

0 7

15

15

IX

15

IY

15

SP

15

PC

ou C A/N

6 E/S

CCR

8 E/S

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

22

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Structure du 68HC11

IUP TMM - L3

Structure du 68HC11

III-7 Jeu dinstructions

III-5 Plan memoire

Classement en 5 grandes familles:


$0000

$0000

RAM
256 Octets

Instructions de traitement: regroupent les operations


arithmetiques
et

ees
entre registres ou` entre registre et
logiques sur les donnees.
execut

$1000

$1000

$00FF

memoire,
le resultat
etant
stocke dans un registre.

Registres
64 Octets

Instructions de chargement/rangement Pour etre


traitees,
les donnees

dans les registres et les resultats

en memoire.

doivent etre
chargees
stockes

$103F

$F800

$FFFF

$F800

$FFC0

$FFFF
EEPROM
2048 Octets

$FFFF

chargement (load): registre memoire.

Vecteurs
dIT
64 Octets

registre.
rangement (store): memoire

Instructions de branchement Par defaut


les instructions sexecutent

sequentiellement
dans lordre de rangement en memoire.

`
Les branchements permettent de derouter
un programme de maniere
conditionnelle.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

25

UPS

Structure du 68HC11

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Structure du 68HC11

III-6 Registre detat


(CCR)
S

Sous-programmes, pile et interruptions Les instructions de cette categorie


permettent

C: Carry: Mis a` 1 en cas de retenue lors dune operation


arithmetique.
Indique

de gerer
des sous-programmes (instructions dappel et de retour)

un debordement
en contexte non-signe.

V: Overflow: Debordement
en contexe signe.

de gerer
des interruptions (sous-programmes particuliers).

Z: Zero: Mis a` 1 si le resultat


dune operation
vaut zero.

de type pile (utilisee


de
de gerer
explicitement une structure de donnees

soit bit b7=1.


N: Negative: Mis a` 1 pour un resultat
negatif
(contexte signe)

` implicite par les sous-programmes).


maniere

I: Interrupt mask: Mis a` 1 pour interdire les interruptions masquables.

`
Instructions diverses On range dans cette categorie
les instructions systemes
ou` des instructions inclassables par ailleurs (Exemple: linstruction nop qui ne

pour les operations

H: Half-Carry: Demi-retenue. Utilisee


en DCB.
XIRQ). Une fois mis a`
X: X interrupt mask: Interruption non-masquable (entree

fait rien!)

0, ne peut plus etre


mis a` 1.

au
S: Stop disable: mis a` 1 pour inactiver linstruction stop (valeur par defaut
reset).

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

26

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de chargement/rangement

UPS

IUP TMM - L3

Instructions de chargement/rangement

IV-Jeu dinstructions

Adressage immediat
a` la suite de linstruction dans le programme.
la valeur est codee

IV-1 Instructions de chargement/rangement

realis

par lUAL du 68HC11 necessitent

Les operations
sur les donnees
ees
en
eral
2 operandes

gen
dont 1 au moins doit etre
contenu dans un registre interne du

ldaa
valeur

micro-controleur.

PC

en memoire

Les instructions de chargement permettent de transferer


des donnees
vers un registre.
Inversement, les instructions de rangement permettent deffectuer le transfert

Notation: ldaa

inverse (copie en memoire


du contenu dun registre).

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de chargement/rangement

29

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de chargement

Adressage direct: loctet suivant linstruction represente


ladresse memoire
ou est
la valeur. Lacces
` est limitee
aux adresses $0000 a` $00FF.
stockee

Registres concernes:

sur les
Adressage etendu:
comme ladressage direct mais ladresse est codee

D, IX, IY, SP (16 bits)

Instructions: ldaa,

Instructions de chargement/rangement

Adressage direct et etendu

Objectif: charger un registre avec une valeur.

A, B (8 bits)

#valeur

deux octets suivant linstruction (poids fort dabord).

ldab, ldd, ldx, ldy, lds


valeur

sur un octet, pour un registe 16 bits, elle


Pour un regitre 8 bits la valeur est codee
sur deux octets en commencant par les poids forts.
est codee

Differentes
manieres
dacceder
a` une valeur (modes dadressage):

immediat,

direct,

ldaa
adresseH
adresseL

PC

etendu,

indexe.

Notation: ldaa

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

30

$adresse
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de chargement/rangement

UPS

IUP TMM - L3

Instructions de chargement/rangement

Adressage indirect ou indexe


ladresse est obtenue en additionnant la valeur contenue dans un regitre dindex
(IX ou IY) avec un offset code dans le programme sous forme dun entier

` le contenu du pointeur de pile SP increment

tsy Transfere
e de 1 dans le
registre dindex IY. IYSP+1.

non-signe sur 8 bits.

` le contenu du registre dindex IX decr


ement

txs Transfere
e de 1 dans le
pointeur de pile SP. SPIX-1.

IX
valeur

IX+offset

ldaa
offset

PC

` le contenu du registre dindex IY decr


ement

tys Transfere
e de 1 dans le
pointeur de pile SP. SPIY-1.

xgdx Echange le contenu de D avec IX. DIX.


A

Notation: ldaa

xgdy Echange le contenu de D avec IY. DIY

offset,X
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de chargement/rangement

33

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de chargement/rangement

Instructions de rangement

Transferts entre registres


` des instructions de transferts entre registres que lon peut
Le 68HC11 possede

Objectif: ranger le contenu dun registre en memoire.

classer dans les instructions de chargement/rangement.

Registres concernes:

sur 1 octet). On parle


Ce sont des instructions sans arguments (codees

A, B (8 bits)

dadressage implicite.

D, IX, IY, SP (16 bits)


Instructions: staa,

` le contenu de laccumulateur A dans laccumulateur B. BA.


tab Transfere

Modes dadressage:

` le contenu de laccumulateur B dans laccumulateur A. AB.


tba Transfere
` le contenu de laccumulateur A dans le registre de condition
tap Transfere
CCR. CCRA.

direct,

` le contenu du registre de condition CCR dans laccumulateur A.


tpa Transfere
ACCR.

indexe.

etendu,
Exemple: std

` le contenu du pointeur de pile SP increment

tsx Transfere
e de 1 dans le
registre dindex IX. IXSP+1.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

stab, std, stx, sty, sts

$10: copie la valeur contenue dans D a ladresse $0010 pour les

poids forts et $0011 pour les poids faibles. Equivalent aux deux instructions
ees
en sequence:

staa
execut
34

$10, stab $11.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

UPS

IUP TMM - L3

Instructions de traitement

en memoire.

On note R un registre et M une valeur stockee

IV-2 Instructions de traitement


Fonction

Effet

Instructions

Addition sans retenue

R R+M

adda, addb, addd

Addition avec retenue

R R+M+C

adca, adcb

Soustraction

RRM

suba, subb, subd

Soustraction avec retenue

RRMC

sbca, sbcb

Operations
sur deux operandes
dont un en memoire.

Comparaison

RM

cmpa, cmpb, cpd, cpx,

Operations
sur deux operandes
entre registres.

ET bit a` bit

R R M

anda, andb

Operations
sur un seul operande.

OU bit a` bit

R R+ M

oraa, orab

Operations
diverses.

OU exclusif bit a` bit

R R M

eora, eorb

test bits

RM

bita, bitb

Le traitement des informations est effectue par lUnite Arithmetique


et Logique. Il

sagit doperations
arithmetiques
et logiques.

de differentes

`
Les instructions de traitement peuvent etre
classees
manieres.
La
e choisie pour ce cours est la suivante:
classification qui a et

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

37

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

Exemples:

Operations
sur 2 operandes
dont 1 en memoire

adda #10

Additionne le contenu de A avec la valeur decimale


10. Le resultat
est stocke

Operations
de la forme: registre f(registre,memoire)

dans A.

Modes dadressage possibles (pour loperande


en memoire):

subb $F0
a` ladresse $00F0. Le resultat

Soustrait au contenu de B la valeur stockee


est

immediat,

stocke dans B.

direct,

etendu,

cpx #$1000
Compare la valeur contenue dans IX avec la valeur $1000. Seul les indicateurs

indexe.

sont mis a` jour (N, Z, V et C). Le resultat


nest pas stocke.

Registres: accumulateurs A,B et D et registres IX et IY pour linstruction de

anda 0,X

Effectue un ET bit a` bit entre le contenu de A et celui de ladresse memoire

comparaison.

par X. Le resultat

donnee
est stocke dans A.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

38

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

UPS

IUP TMM - L3

Instructions de traitement

Operations
a` 2 operandes
entre registres:

Instructions a` un seul operande


Instruction

Effet

fonction

aba

A A+B

additionne A et B

sba

A AB

soustrait B de A

cba

AB

compare A a` B

etendu,

mul

D AB

multiplie A par B

indexe.

abx

IX IX + 0:B

additionne les poids faibles

Operations
de la forme: registre f(registre) ou` memoire
f( memoire)

Modes dadressage possibles (pour loperande


en memoire):

Registres: accumulateurs A,B et D et pour certaines instructions registres IX, IY et

de IX avec le contenu de B

aby

IY IY + 0:B

SP.

additionne les poids faibles

Dans le tableau suivant, on note M le contenu dun registre ou` dun emplacement

de IY avec le contenu de B

memoire.

Remarque: Ces instructions utilisent un adressage implicite.


Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

41

UPS

Effet
C

b7 b0

Instructions
0

asla, aslb, asl, asld


lsla, lslb, lsl, lsld

aba

arith. vers la droite


Dec.
log. vers la droite
Dec.

mul

Rotation vers la gauche

Multiplie A par B. Le resultat


sur 16 bits est stocke dans D. Soit les poids forts

Rotation vers la droite

dans A et les poids faibles dans B.

Instructions de traitement

vers la gauche
Dec.

Additionne A et B. Le resultat
est stocke dans A.

IUP TMM - L3
Fonction

Exemples:

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

b7 b0

asra, asrb, asr

b7 b0

lsra, lsrb, lsr, lsrd


rola, rolb, rol

b7 b0
b7 b0

rora, rorb, ror

` linstruction mul D contiendra


Exemple: si A contient $14 et B $03, apres

Mise a` zero

M0

clra, clrb, clr

$003C soit $00 dans A et $3C dans B.

ementation

Decr

MM1

deca, decb, dec, des, dex,

abx

Incrementation

MM+1

inca, incb, inc, ins, inx,

Additionne a` IX (registre 16 bits) le contenu de B (registre 8 bits). Le resultat


est

Negation

M0M

nega, negb, neg

stocke dans IX.

Complement
a` 1

M$FFM

coma, comb, com

Comparaison a` 0

M 0

tsta, tstb, tst

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

42

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

UPS

IUP TMM - L3

Instructions de traitement

Exemples:

Exemples:

clra
Met 0 dans le registre A.

inx

Met a` 1 le bit 3 de ladresse memoire


$00FD.

Ajoute 1 au contenu de IX.

nega

bclr 0.X %00001000

Met a` 0 le bit 3 de ladresse memoire


contenue dans le registre IX.

Remplace A par son complement


a` 2.

bset $FD %00001000

tst $1000

Remarque: la notation %xxxxxxxx permet de representer


un nombre sous forme

Compare le contenu de ladresse $1000 avec 0. Seuls les indicateurs Z et N

binaire.

sont affectes.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

45

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Manipulations de bits

Instructions de traitement

Division

Deux instructions du 68HC11 permettent de modifier la valeur dun ou plusieurs bits

` (non-signe)
sur 16 bits du contenu
Linstruction idiv realise
la division entiere

(en plus des fonctions logiques).


dune donnee

de D (numerateur)
par le contenu de IX (denominateur).

d
bset Cette instruction permet de mettre a` 1 les bits dune donnee

` de n par d produit un quotient q et un reste r tels que:


Rappel: la division entiere

correspondants aux bits a` 1 dun masque m. Elle supporte ladressage direct (limite

Elle realise

aux adresse $00 a` $FF) et indexe.


la fonction d + m. Elle necessite

n/d = q d + r.

et le masque (sur 8 bits).


deux operandes:
ladresse de la donnee

Le resultat
de la division (quotient q ) est mis dans IX et le reste r dans D.

Syntaxe: bset

adresse masque ou bset offset,X masque

Linstruction fdiv permet de determiner


la valeur fractionnaire de D/IX.

d
bclr Cette instruction permet de mettre a` 0 les bits dune donnee

` loperation,

D doit etre
inferieur
a` IX. Apres
le resultat
dans IX est interpretable

edente,

correspondants aux bits a` 1 dun masque m. Comme linstruction prec


elle

inferieur

` la virgule
comme un reel
a` 1 code avec 16 bits apres

supporte ladressage direct et indexe et necessite


deux operandes.
Elle realise
la
fonction d.m.
Syntaxe: bclr

Ces deux instructions utilisent un adressage implicite.

adresse masque ou bclr offset,X masque


Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

46

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de traitement

UPS

IUP TMM - L3

Instructions de branchement

Branchement conditionnel

Exemples:

idiv
Soit 430 le contenu de D (soit $01AE) et soit 40 le contenu de IX (soit $0028).

PC

` idiv, IX contiendra 10 (soit $000A) qui est le quotient de 430/40 et D


Apres

PC+2

` (430=10x40+30)
contiendra la valeur 30 ($1E) reste de la division entiere

Instr. prec.
branch?
Non
saut
Instr. suiv.

Mise a jour indicateurs


Z, N, C, V
Oui

fdiv
edente)

` linstruction fdiv,
Avec D=30 (reste de la division prec
et IX=40 apres
D contiendra la valeur 0 et IX la valeur $C000 soit en binaire %1100 0000 0000

0000 quil faut interpreter


comme un nombre en virgule fixe egal
a`

21 + 22 = 0.5 + 0.25 = 0.75. Cela` correspond a` la partie fractionnaire

PC+2+saut

de la division de 30 par 40 (30/40=0.75).

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

IV-3

Instructions de branchement

49

UPS

Instr. de saut

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de branchement

Calcul du saut

Instructions de branchement

Le saut represente
le nombre, code en complement
a` 2, a` rajouter au pointeur
de programme PC pour que celui-ci contienne ladresse de la prochaine

Les instructions de branchement permettent de realiser


des traitements

instruction a` executer.

conditionnels (du type si condition alors faire) et dimplementer


des structures de

sur 2 octets et au moment de son


Linstruction de branchement est codee

boucles (faire tant que...).

execution
PC contient ladresse de linstruction suivante en memoire.
Un saut

sur deux octets et utilisent un mode dadressage dit relatif. Le


Elles sont codees

de 0 revient donc a` executer


linstruction suivante (donc a` ne pas faire de saut!)

deuxieme
octet de linstruction represente
un deplacement
(saut) sous forme dun

` a`
En pratique le langage dassemblage permet deviter
tout calcul, grace

entier signe sur 8 bits (-128 a` +127).

lutilisation detiquettes.
Il suufit de mettre une etiquette
devant linstruction ou

lon souhaite se brancher et dindiquer cette etiquette


dans linstruction de

a`
Principe: une condition, fonction de linstruction de branchement, est calcul ee

partir des indicateurs du CCR: N, V, C et Z. Il sagit dune expression bool eenne.


Si

branchement. Exemple:

celle-ci est vrai alors le branchement a lieu et le programme continue a` une adresse

bra suite
...
suite ...
...

a` partir de loctet qui suit le code de linstruction de branchement. Si le


calculee

resulat
est faux, alors le programmme continue en sequence
a` linstruction suivante.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

50

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Instructions de branchement

IUP TMM - L3

Instructions de branchement

Autres instructions de branchement

Instruction fonction de la condition de branchement

Deux autres instructions de branchement conditionnel existent. Elles utilisent les

condition

instruction

condition

instruction

C=1

bcs, blo

C=0

bcc, bhs

V=1

bvs

V=0

bvc

masque, saut (adressage relatif).


direct et offset,X en adressage indexe),

N=1

bmi

N=0

bpl

brset Effectue loperation


Mmasque et le saut si le resultat
est different
de 0.

Z=1

beq

Z=0

bne

C+Z=1

bls

C+Z=0

bhi

NV=1

blt

NV=0

bge

Z+(NV)

=1

ble
bra

Z+(NV)

=0

modes dadressage direct et indexe.


sur 4 octets: code operatoire,

Elles sont codees


adresse ($adresse en adressage

brclr Effectue loperation


Mmasque et le saut si le resultat
vaut 0.
Ces deux insructions permettent de tester un bit et deffectuer un branchement si
celui-ci vaut 1 (brset) ou` 0 (brclr).

bgt

Exemple: brset

bnr

$10 %00001000 saut Effectue le branchement si le bit 3

de la valeur contenue a` ladresse $0010 vaut 1.

jmp Saut inconditionnel en adressage etendu


ou indexe.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de branchement

53

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Comparaisons et branchements

Instructions de branchement

Implementation
de lalternative simple

ede
` linstruction de branchement est une comparaison
Si linstruction qui prec

"faire si A=10"

(cmpa,

cmpb, cpd, cpx, cpy) ou une soustraction (suba, subb,


subd, sba) de type RM, on peut utiliser les instructions suivantes en fonction

Organigramme

du contexte, signe ou non-signe:


instruction

instruction

test

nombre signes

nombres non-signes

R=M

beq

beq

R6=M

bne

bne

R>M

bgt

bhi

RM

bge

bhs

R<M

blt

blo

RM

ble

bls

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

Non

A=10?

Traduction
cmpa
#10
bne
suite

Oui

traitement
traitement

suite
erable

Remarque: Il est pref


dinverser la condition, cela` evite
un branchement

supplementaire.

54

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Instructions de branchement

IUP TMM - L3

Instructions de branchement

Double alternative
"si A=10, faire, sinon faire"

Organigramme
Non

Traduction
cmpa
#10
beq
trait1

Oui

A=10?

trait. 2

trait. 1

trait. 2
bra
suite

trait1

trait. 1

suite

Remarque: Dans ce cas, on peut conserver la condition originale.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

57

UPS

Instructions de branchement

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Instructions de branchement

Structure de boucle
"faire tant que A=10"

Organigramme
Non

A=10?

Traduction
cmpa
#10
bne
suite

Oui

traitement

encore

traitement
bra
encore
suite
Remarque: comme pour lalternative simple, il est mieux dinverser la condition.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

58

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Sous-programmes, pile, IT et autres

UPS

IUP TMM - L3

Sous-programmes, pile, IT et autres

Pile
Pour quun sous-programme revienne, quand il se termine, a` linstruction suivant

IV-4 Sous-programmes, Pile, IT, ...

de la pile.
son appel il faut conserver ladresse de retour. Cest le role

Les autres instructions du micro-controleur


integrent
les instructions permettant la

contient ladresse de son sommet. Elle croit vers les adresses basses.

programmation modulaire:

Exemple pour un sous-programme (instruction jsr)

ee
par le registre SP. Elle est stockee
nimporte ou en memoire

La pile est ger


et SP

sous-programmes

$FFFF

pile

SP

interruptions

SP

(PC+3)l
(PC+3)h

SP

ainsi que diverses instructions.


$0000
pile avant jsr

pile apres jsr

pile apres rts

au debut

Rem: ladresse de la pile doit etre


fixee
du programme (instruction lds).
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Sous-programmes, pile, IT et autres

61

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Sous-programmes, pile, IT et autres

Manipulation explicite de la pile

Sous-programmes

Deux instructions pour executer


un sous-programme:

dans la pile (empiler) ou` den


Deux instructions permettent de mettre des donnees

bsr (adressage relatif)

recup
erer
(depiler).

jsr (adressage direct, etendu


ou indexe)

empilage:

Et une instruction pour le terminer:

A,
Registres concernes:

rts (adressage implicite)


Exemple: jsr

B, IX, IY

Adressage implicite (codage sur 1 octet de linstruction)

$adresse
PC

jsr
addresseH
addresseL
PC+3 Instr. suiv.

Instructions: psha,

pshb, pshx, pshy

depilage:
A,
Registres concernes:

Debut SP
Fin SP

B, IX, IY

Adressage implicite (codage sur 1 octet de linstruction)


rts

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

Instructions: pula,

62

pulb, pulx, puly

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Sous-programmes, pile, IT et autres

UPS

IUP TMM - L3

Sous-programmes, pile, IT et autres

Sources dinterruptions

Interruptions, principe

IRQ, XIRQ et RESET (non masquables sauf IRQ).


externes: entrees

logicielles: instruction swi et code operation


illegal
(non masquables)
periph

ees):

debordement

internes (unites
eriques
integr
interruption temps reel,

Une interruption consiste a` interrompre un programme en cours dexecution


pour

executer
un sous-programme traitant linterruption puis a` reprendre lexecution
du
e interrompue.
programme la` ou elle avait et

capture, sorties comparaison, accumulateur dimpulsions, lignes


timer, entrees

series
(SCI et SPI). Toutes ces IT sont masquables.

par un ev
enement

Une interruption est provoquee


interne ou externe.
` deux differences

Elle possede
avec un sous-programme:

` une entree
specifique

Chaque source dinterruption possede


dans le vecteur
dinterruptions.

de maniere
` explicite
elle nest pas appelee
elle peut interrompre le programme nimporte ou et doit donc provoquer la

adresse

sauvegarde des registres dans la pile et leur restauration au retour de


linterruption.
dans un vecteur dinterruption (tableau a` un
son adresse est stockee
efini

emplacement pred
de la memoire).

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Sous-programmes, pile, IT et autres

adresse

source

adresse

$FFD8-D9

spi

$FFDA-DB

accu. entree

$FFDC-DE

accu. deb.

$FFDE-DF

deb. timer

$FFE0-E1

IC4/TOC5

$FFE2-E3

TOC4

$FFE4-E5

TOC3

$FFE6-E7

TOC2

$FFE8-E9

TOC1

$FFEA-EB

TIC3

$FFEB-EC

TIC2

$FFEE-EF

TIC1

$FFF0-F1

Int. T.R.

$FFF2-F3

IRQ

$FFF4-F5

XIRQ

$FFF6-F7

swi

$FFF8-F9

code op. ill.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Sous-programmes, pile, IT et autres

Instructions de gestion des IT

erale

Autorisation gen
des IT

Un sous-programme dinterruption doit se terminer par une instruction

Le bit I du CCR permet de gerer


les interruptions masquables.

specifique:
rti qui permet de restaurer les registres du programme interrompu.

Deux instructions permettent de manipuler ce bit:

Linstruction swi permet de provoquer une interruption dite logicielle. Elle

sauvegarde les registres du 68HC11 puis execute


le code a` partir de ladresse
correspondant du vecteur dIT ($FFF6-$FFF7).
contenue dans lentree

Il existe aussi une instruction dattente dune interruption: wai qui sauve les

SP

instruction

effet

description

cli

I0

de I, autorise les IT masquables


mise a` zero

sei

I1

mise a` un de I, interdit les IT masquables

Mise en place dune IT

registres dans la pile puis attend quun interruption arrive.


RTNl
RTNh
IYl
IYh
IXl
IXh
A
B
CCR

source

sci

65

UPS

source

$FFD6-D7

Sauvegarde des registres


dans la pile au moment
dun depart en IT

` gen
erale

autoriser les interruptions de maniere


(cli)
(bit xxxI dun registre particulier a` mettre a` 1)
autoriser linterruption souhaitee
correspondante du vecteur dIT.
mettre ladresse du SP dIT dans lentree

dans le SP dIT, forcer a` 1 le drapeau de lIT pour le reinitialiser.

RTN: adresse de retour

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

terminer le S.P. dIT par linstruction rti.

66

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Sous-programmes, pile, IT et autres

UPS

IUP TMM - L3

Entrees/sorties
logiques

Instructions diverses
Manipulation directe des indicateurs C et V (adressage implicite):
instruction

effet

description

clc

C0

de C
mise a` zero

clv

V0

de V
mise a` zero

sec

C1

mise a` un de C

sev

V1

mise a` un de V

Broches programmables:
Pour programmer une broche en sortie, il faut mettre a` 1 le bit correspondant du
Sil est a` 0,la broche est en entree.

registre de controle.

Autres instructions:

stop Permet darreter


lhorloge du micro-controleur
si le bit S du CCR est a` 0
uniquement en mode test.
test Utilisee

nop Instruction sans action.

daa Ajustement en decimal


code binaire.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Entrees/sorties
logiques

69

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Entrees/sorties
logiques

V-Entrees/Sorties

Port A
3 entrees
(PA0 a` PA2), 3 sorties (PA4 a` PA6) et deux broches
Le port A possede

V-1 Entrees/Sorties
logiques

ou en sortie (PA3 et PA7).


dE/S programmables en entree

E/S paralleles,
`
Les entrees/sorties
logiques sont aussi appelees
digitales ou`

Registre de donnees:

38.
numeriques.
Elles correspondent aux ports A a` E du 68HC11E2 qui en possede

PORTA:

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

$1000

Chaque broche est independante.

Broche en entree:

Registre de controle:

vaut 1.
5V sur une broche: bit correspondant du registre de donnees

PACTL:

DDRA7

DDRA3

vaut 0.
0V sur une broche: bit correspondant du registre de donnees
DDRx=0, en sortie: DDRx=1
Programmation en entree:

Broche en sortie:

bit du registre de donnees=0


0V sur la broche correspondante

avec les fonctions du timer.


Les broches du port A sont partagees

5V sur la broche correspondante


bit du registre de donnees=1

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

70

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

$1026

IUP TMM - L3

UPS

Entrees/sorties
logiques

Port B
PB7

PB6

PB5

PB4

PB3

periph

Unites
eriques

periph

V-2 Gestion des unites


eriques

Le port B est utilisable uniquement en sortie. Registre de donnees:


PORTB:

IUP TMM - L3

PB2

PB1

PB0

periph

Les unites
eriques
(timer, convertisseur, liaisons series,
...) fonctionnent de

$1004

` autonome vis a` vis de lunite centrale. La communication avec lunite


maniere

dans
centrale (i.e. le programme) seffectue par lintermediaire
de registres situes
lespace adressable ($1000 a` $103F).

Port C

de lire ou decrire

Ces registres permettent de programmer ces unites,


des donnees

eral.

en
Le port C est un port dusage gen
Chaque broche peut etre
programmee

et de tester des drapeaux.

ou en sortie.
entree

enement

Un drapeau est un bit qui passe a` 1 si un ev


survient.

Registre de donnees:
PORTC:

PC7

PC6

enement:

Il existe deux manieres


de gerer
un ev
PC5

PC4

PC3

PC2

PC1

PC0

$1003

par scrutation: on attend le passage a` 1 du drapeau correspondant a`


enement

lev
attendu. Cest un fonctionnement bloquant.

Registre de controle:
DDRC:

DDRC7

DDRC6

DDRC5

DDRC4

DDRC3

DDRC2

DDRC1

DDRC0

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

enement

par interruption: lev


provoque une interruption du programme et

$1007

lexecution
dun sous-programme de traitement de linterruption.

73

UPS

Entrees/sorties
logiques

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Port D

Interruption v.s. scrutation

` 6 broches programmables en entree


ou en sortie. Ces broches
Le port D possede

periph

`
Les unites
eriques
sont capables deffectuer des taches
simples

par les unites


de communication serie.

peuvent etre
utilisees

independamment
de lunite centrale, par exemple:

Registre de donnees:
PORTD:

variable, quelques ms)


fonction timer: attendre un certain temps (duree
PD5

PD4

PD3

PD2

PD1

PD0

DDRD5

DDRD4

DDRD3

DDRD2

DDRD1

DDRD0

$1008

quelques s)
fonction convertisseur: convertir une tension analogique (dur ee

Registre de controle:
DDRD:

periph

Unites
eriques

imprevisible)

fonction capture: attendre le front dun signal (duree

$1009

`
ces unites
periph

Une fois leur tache


effectuee,
eriques
mettent a` 1 un indicateur
`
(levent
un drapeau) et peuvent interrompre le programme en cours si on les y

Port E

autorise.
`
La scrutation (attente du passage a` 1 dun drapeau) oblige a` attendre quun tache

Il partage ses broches avec le


Le port E est utilisable uniquement en entree.

pour en executer

soit terminee
une autre.

convertisseur A/N. Registre de donnees:


PORTE:

PE7

PE6

PE5

PE4

PE3

PE2

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

PE1

PE0

`
Le fonctionnement par interruption permet lui un pseudo-parallelisme,
une tache

$100A

nutilisant les ressources de lunite centrale que quand elle se termine.

74

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Timer

IUP TMM - L3

Timer

V-3 Timer
Le compteur/timer TCNT

erale

Presentation
gen
Quartz
frequence Q

division par 4 et par une valeur reglable

Apres
grace aux bits PR1 et PR0 de

TMSK2 (1,4,8 ou 16), le signal resultant


incremente
le compteur 16 bits TCNT a`

/4

que pendant les


chaque periode.
(Remarque: PR0 et PR1 ne peuvent etre
modifies

Horloge, frequence E
/2

/2

64 cycles machine qui suivent le Reset).

Accumulateur dimpulsions

13

Diviseur
1,2,4,8
RTR10

Interruption Temps Reel

TCNT

Debordement Timer

Au debordement
de TCNT (passage de 65535 a` 0), le drapeau TOF (bit de TFLG2)
passe a` 1 et, si le masque dIT TOI (bit de TMSK2) est a` 1, le sous-programme dIT
en $FFDE-DF est execut
e.
Le drapeau TOF doit etre

dont ladresse est stockee

reinitialis
e dans ce sous-programme pour quune nouvelle IT soit possible.

Diviseur
1,4,8,16
PR10

Ce timer TCNT est utilise pour les fonctions de capture et de comparaison.

capture/
comparaison

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

77

UPS

Timer

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Timer

Registres du timer

Interruption Temps Reel


erer

Permet de gen
une interruption periodique.

TCNT(h):

15

14

13

12

11

10

$100E

La periode
se regle
avec les bits RTR1 et RTR0 de PACTL Elle depend
de la

frequence
dhorloge E=Q/4.

TCNT(l):

$100F

PR1

PR0

$1024

RTR1

RTR0

periode

Q=4.9152 Mhz

213 /E

6.7ms

214 /E

13.3ms

215 /E

26.7ms

216 /E

53.3ms

Remarque: Le registre TCNT est a` lecture seule.


TMSK2:

TOI

TFLG2:

TOF

$1025

Reglage
de la periode

Le bit RTII de TMASK2 doit etre


mis a` 1 pour autoriser lIT et le bit RTIF de TFLG2

doit etre
reinitialis
e dans la fonction dIT. Ladresse du sous-programme dIT doit etre

Q=4.9152 Mhz

en: $FFF0-$FFF1 (vecteur dIT).


stockee
PACTL:

RTR1

RTR0

$1026

PR1

PR0

diviseur

resolution

0.813 s

debordement
53.3ms

3.25 s

213.3 ms

TMASK2:

RTII

$1024

6.52 s

426.6 ms

TFLG2:

RTIF

$1025

16

13 s

853.2 ms

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

78

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Timer

IUP TMM - L3

Timer

Programmation
enement:
`
Choix du type dev

Fonction capture

TCTL2:

EDG4B

EDG4A

EDG3B

EDG3A

EDG2B

EDG2A

EDGxA

inactif

recopie du contenu du timer TCNT dans un registre. Ceci permet de dater des

front montant

front descendant

front quelconque

interruption.

EDG1A

$1021

enement

ev

EDGxB

enement

Principe: Un ev
(front dun signal) sur une broche externe provoque la
enements.

enement

erer

ev
Cet ev
met par ailleurs un drapeau a` 1 et peut gen
une

EDG1B

Registres de capture: TIC1: $1010-$1011, TIC2: $1012-$1013, TIC3: $1014-$1015,

` 4 entrees
de captures: IC1 (broche PA2), IC2 (PA1), IC3 (PA0),
Le 68HC11 possede

TIC4: $101E-$101F.

correspond un registre 16 bits TICx, x de 1 a` 4.


IC4 (PA3). A chaque entree

Drapeaux:
TFLG1:

enement

Lev
provoquant la capture est programmable: front montant, front

IC4F

IC1F

IC2F

IC3F

$1023

IC4I

IC1I

IC2I

IC3I

$1022

Masques dinterruption:

descendant ou front quelconque.

TMSK1:

Autres registres: bit 3 de PACTL a` 0 pour utiliser IC4 et TMSK2 pour regler
la

resolution
du timer TCNT.
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

81

UPS

Timer

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Timer

Illustration de la fonction capture


Fonction comparaison

Mesure de la periode
dun signal. Capture sur front montant, broche PA2 (IC1).

Principe: Quand la valeur du timer TCNT devient egale


a` la valeur dun registre

TCNT

sur la broche OCx. Cette action peut-etre

TOCx, une action est effectuee


une mise

$FFFF
TIC1

a` 0, une mise a` 1 ou un changement detat.


erer

Ceci permet de gen


des signaux periodiques
sur certaines broches du 68HC11.

TIC1
$0000

dun drapeau (OCxF) qui


Par ailleurs, laction sur la sortie saccompagne de la levee

erer

(bit OCxI a` 1).


peut gen
une interruption si celle-ci est autorisee

periode

IC1

` 5 sorties de comparaisons: OC1 (PA7), OC2 (PA6), OC3


Le 68HC11 possede

5V
0V

(PA5), OC4 (PA4) et OC5(PA3). Le fonctionnement de TOC1 est un peu particulier.


evenement
sur IC1

Il permet de daffecter les 5 broches de sortie (PA3 a` PA7) a` chaque comparaison.

evenement
sur IC1

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

82

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Timer

IUP TMM - L3

Timer

Programmation de OC1

Illustration de la fonction comparaison


eration

de
Gen
dun signal periodique
sur la broche PA6 (OC2). Changement detat

Choix des broches affectees:


pour affecter la broche PAx, il faut mettre a` 1 le bit

la sortie a` chaque comparaison.

OC1Mx.
OC1M:

TCNT

OC1M7

OC1M6

OC1M5

OC1M4

OC1M3

$100C

$FFFF

Choix de la valeux mise sur PAx (si OC1Mx=1) a` chaque comparaison valide de
TOC1 avec TCNT:

TOC2
$0000

OC1D:

OC2

OC1D7

OC1D6

$100D

TMSK2 pour regler


la resolution
du timer TCNT.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

85

UPS

Timer

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Timer

Accumulateur dimpulsions

Programmation

` deux fonctions:
Laccumulateur dimpulsions est un registre 8 bits qui possede

Registres de comparaison (16 bits): TOC1: $1016-17, TOC2: $1018-19, TOC3:


$101A-1B, TOC4: $101C-1D et TOC5: $101E-1F.

enements:

enement
`
Compteur dev
laccumulateur est increment
e a` chaque ev

Choix de laction sur la sortie (TOC2 a` TOC5):


OL2

OC1D3

bit 3 de PACTL a` 1 pour utiliser OC5 (PA3 en sortie)

0V

OM2

OC1D4

Autres registres:

5V

TCLT1:

OC1D5

OM3

OL3

OM4

OL4

OM5

OL5

er
ee
lorsque
du signal relie a` la broche PAI (PA7). Une interruption peut etre
gen

$1020

laccumulateur est plein. La frequence


maximale du signal externe est de E/2.

enement

ev

OMx

OLx

non connecte

de OCx
changement detat

mise a` 0 de OCx

mise a` 1 de OCx

PACNT
$FF

Incrementations sur fronts montants

$00

Drapeaux et masques dinterruption:


TFLG1:

OC1F

OC2F

OC3F

OC4F

OC5F

$1023

TMSK1:

OC1I

OC2I

OC3I

OC4I

OC5I

$1022

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

PA7
t

86

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Timer

Convertisseur analogique/numerique

V-4 Convertisseur Analogique/Numerique

tant que le signal dentree

Accumulation dimpulsions: PACNT est increment


e,
par les impulsions de lhorloge interne
sur la broche PAI est a` un niveau donne,

Principe

par 64.
E divisee

Convertir une tension analogique en une valeur numerique.


Un convertisseur est

Incrementation active sur niveau haut

PACNT
$FF

IUP TMM - L3

e par sa resolution

caracteris
en nombre de bits codant le resultat
de la conversion.
Resultat
conversion

$00

FF

horloge interne, f=E/64

PA7

00

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

89

UPS

Timer

Vrh
(5V)

tension

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Convertisseur analogique/numerique

Registres de programmation

Registre de donnees:
PACNT en $1027
PACTL:

DDRA7

PAEN

PAMOD

PEDGE

Conversion Numerique/Analogique
$1026

VREF

DDRA7: direction de PA7, a mettre a` 0 (en entree).


PAEN: mettre a` 1 pour activer

2R

enements,

les fonctions de laccumulateur. PAMOD: 0 en compteur dev


1 en

2n1 I

enements:

accumulateur dimpulsions. PEDGE: en compteur dev


0: compte les

2R

fronts descendants, 1 les fronts montants. En accu. dimpulsions: 0 compteur actif

2n2 I

sur niveau haut, 1 actif sur niveau bas.


TMSK2:

PAOVI

TFLG2:

PAOVF

PAII
PAIF

2n1 I

2I

$1024

PAOVI et PAOVF: masque et drapeau dinterruption sur le debordement


de PACNT.
Vecteur dIT: $FFDC-DD.

I(A)

an2 0

R
2R

$1025

an1 0

2R

a0

VGN D

par les fronts de PA7


PAII et PAIF: masque et drapeau dIT declench
ee
(fonctionnement en accumulateur dimpulsions). Vecteur dIT: $FFDA-DB.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

90

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

UPS

Convertisseur analogique/numerique

IUP TMM - L3

au convertisseur
Registres lies

Convertion Analogique/Numerique
OPTION:

Conversion par approximations successives.

Logique de
commande

Convertisseur analogique/numerique

Declenchement
de
la conversion

ADPU

CSEL

$1039

ADPU:
convertisseur inactif
convertisseur actif.

Registre des poids

CSEL: choix de lhorloge pour la conversion:

convertisseur

numerique/
analogique

0: horloge E,
1: circuit RC interne.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Convertisseur analogique/numerique

93

UPS

Fonctionnement du convertisseur

IUP TMM - L3
ADCTL:

` 8 entrees
de conversion (PE0 a` PE7).
Le 68HC11 possede

CCF

Convertisseur analogique/numerique
-

SCAN

MULT

CD

CC

CB

CA

$1030

CCF: drapeau fin de conversion, mis a` 1 lorsque les 4 registres de conversion

Les conversions seffectuent par groupe de quatre:

ADR1 a` ADR4 contiennent des resultats


valides.
SCAN:

soit sur un groupe de 4 entrees

soit sur une seule entree,

dans ADR1 a`
0: 4 conversions une seule fois. Les resultats
sont ranges

` quune serie

le drapeau de fin de conversion


des
de conversion est terminee,

ADR4.

passe a` 1 (bit CCF de ADCTL)

en permanence. ADR1 a` ADR4 sont mis a` jour


1: Conversions effectuees

dans les registres 8 bits ADR1 a`


les resultats
des 4 conversions sont stockes

` chaque conversion.
apres

ADR4 (adresses: $1031 a` $1034).

MULT:

le convertisseur doit etre


active par mise a` 1 du bit ADPU du registre OPTION

0: les 4 conversions sont faites sur un seul canal (choisi par CC-CA).

avant toute conversion

1: une conversion sur chacun des 4 canaux dun groupe. Le groupe est fix e

les series
de conversions peuvent se faire en continu ou pas

par CC.

lecriture
dune valeur dans le registre ADCTL initialise le drapeau de fin de

ou du groupe dentrees.

CD, CC, CB, CA: choix de lentree

conversion (CCF) a` 0 et redemarre


une nouvelle serie
de conversion.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

94

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Convertisseur analogique/numerique

UPS

IUP TMM - L3

Liaisons series

(MUL=0), CD=0 et CC.CB.CA represente

de
Pour une seule entree
le numero

SCI - UART

(Ex: CC=1, CB=0, CA=1 pour PE5)


lentree
(MUL=1): CC=0 pour PE0 a` PE3, CC=1 pour PE4 a` PE7.
Pour 4 entrees
CC

CB

CA

Entree

Resultat
(MULT=1)

AN0 (PE0)

ADR1

AN1 (PE1)

ADR2

AN2 (PE2)

ADR3

AN3 (PE3)

ADR4

AN4 (PE4)

ADR1

AN5 (PE5)

ADR2

AN6 (PE6)

ADR3

AN7 (PE7)

ADR4

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Liaisons series

Format des donnees:


8 bits ou 9 bits.

horloge
TxD

RxD
start

d0

d1

d2

d3

d4

d5

d6

d7

d8

stop

Broches utilisees:
PD0 (RxD) et PD1 (TxD)

97

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Liaisons series

Registres:

Donnees:
SCDR ($102F)

V-5 Communication serie


et 68HC11

recue ou de la donnee
a` transmettre.
Contient les 8 premiers bits de la donnee

Controle:

de communication serie:

Deux unites

SCCR1 ($102C)

Fixe le mode de tranmission (nombre de bits), le mode de reveil


en reception
et

SCI Serial Comunication Interface.

pour le chargement des


Communication serie
de type RS232. Utilisee

contient le 9ieme
bit eventuel.

programmes.

SCCR2 ($102D)

SPI Serial Peripheral Interface. Communication synchrone entres des 68HC11

Activation du recepteur
ou de lemetteur.
Masques dIT.

ou des periph
eriques
synchrones (controleurs LCD, convertisseurs N/A s erie,

SCSR ($102E)

horloges...)

Registre de statut (drapeaux).


BAUD ($102B)
Fixe la cadence de transmission en bauds.
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

98

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

Platine Controlboy

UPS

V-6 Systeme
de developpement
V-6.1

V-6.2

Platine Controlboy

Langage dassemblage

Le langage dassemblage (ou assembleur) est le langage dans lequel vous

erale

Presentation
gen

ecrirez
vos programmes.

Chaque instruction machine est represent


e par un memmonique
qui sera traduit

Le systeme
de developpement
utilise en TP est une carte controlboy 1

en code machine par lassembleur.

e Controlord et basee
sur un 68HC11E2.
commercialise par la societ

aux etiquettes.

Les premiers caracteres


dune ligne sont reserv
ees
Une

La carte comporte, en complement


dun micro-controleur
68HC11E2:

ed
ee
dun espace ou dune tabulation.
instruction machine doit donc etre
prec

(LM7805), un quartz a` 4,9152 MHz et un circuit de


Une alimentation stabilisee

en tete
de ligne permet de faire ref
erence

Une etiquette
placee
a` une adresse

mise en forme des signaux pour la communication serie


(Max 232).

` symbolique.
de maniere

A disposition du programmeur, on trouve: un afficheur 7 segments reli e aux port

Commentaires: tout ce qui suit un point-virgule (jusqua` la fin de la ligne) est

a` un
C, deux relais R1 (relie a` PD4) et R2 (relie a` PC3), une led L1 associee

e comme un commentaire.
consider

a` PD3, un bouton poussoir


bouton poussoir T1 (relie a` PD5), une led L2 reliee

Representation
des constantes: On peut representer
des constantes sous

T2 relie a` PD2.

`
differentes
formes: decimal,
hexadecimal,
binaire, caractere...

Differents
connecteurs et borniers completent
la carte permettant dacceder
a` la

`
Exemples: decimal:
97, hexadecimal
$61, binaire: %01100001, caractere:
a

plupart des E/S du micro-controleur.


Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3

IUP TMM - L3

Platine Controlboy

101

UPS

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3
V-6.3

Platine Controlboy

Directives dassemblage:

equ definit
une constante symbolique. Exemple: porta equ $1000

qui suivent seront


org precise
ladresse a` partir de laquelle les donnees

en memoire.

implement
ees
Exemple: org $F800: debut
du programme

fcb initialise des octets en memoire


avec des valeurs. Exemple: fcb
a,b ou encore fcb ab

fdb initialise des mots de 16 bits avec des valeurs. Exemple: fdb $1000

rmb reserve
des octets en memoire.
Exemple: rmb 10 reserve
10 octets en

memoire

end indique la fin de programme pour lassembleur

Remarque: les directives fcb, fdb et rmb initialisent ou reservent


la memoire
a`
` directive org rencontree.
Elles peuvent etre

ed
ees
dune
partir de la derniere
prec

erence

etiquette
qui fera ensuite ref
a` ladresse en memoire
correspondante.

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

102

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3
V-6.4

Platine Controlboy

UPS

Platine Controlboy

Exemple de programme (exemp.a11)

;----------------- constantes symboliques


ddrd
equ $09
portd
equ $08
bit3
equ %00001000
;----------------- variables -----------org 0
compt
fdb 42850
;----------------- programme -----------org $F800
ldx #$1000
bset ddrd,x bit3 ; PD3 en sortie
encore ldy compt
tempo
dey
; boucle 300ms
bne tempo
ldaa portd,x
; changement
eora bit3
; etat PD3
staa portd,x
bra encore
end

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3
V-6.5

IUP TMM - L3

Platine Controlboy

V-6.6

Fichiers

Le programme est un fichier texte dextension .a11.


Il est traduit en langage machine ce qui fournit un fichier listing dextension
.lst.
echargement

Il est enfin traduit sous un format qui permet son tel


sur la cible (le

micro-controleur).
Ce fichier a pour extension .s19.

105

UPS

Mise au point des programmes

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

IUP TMM - L3
V-6.7

Exemple de listing (exemp.lst)

0009
0008
0008
0000
0000 A762
F800
F800
F803
F806
F809
F80B
F80D
F80F
F811
F813

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

106

Platine Controlboy

CE1000
1C0908
18DE00
1809
26FC
A608
9808
A708
20F1

;----------------- constantes symboliques


ddrd
equ $09
portd
equ $08
bit3
equ %00001000
;----------------- variables -----------org 0
compt
fdb 42850
;----------------- programme -----------org $F800
ldx #$1000
bset ddrd,x bit3 ; PD3 en sortie
encore ldy compt
tempo
dey
; boucle 300ms
bne tempo
ldaa portd,x
; changement
eora bit3
; etat PD3
staa portd,x
bra encore
end

Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006

Vous aimerez peut-être aussi