Académique Documents
Professionnel Documents
Culture Documents
Micro-controleur
68HC11
UPS
IUP TMM - L3
Micro-controleur
Motorola 68HC11
Plan du cours:
de lexecution)
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
IUP TMM - L3
UPS
IUP TMM - L3
I-Introduction
Unite Arithmetique
et logique
Au coeur du processeur, lUAL effectue le traitement des informations.
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,...)
UAL
Ports dE/S
interfaces
entrees/sorties
.......
indicateurs
n
CPU
memoire
donnees
sur ses entrees
(f) et met a`
jour des indicateurs.
IUP TMM - L3
UPS
IUP TMM - L3
I-3 Memoire
en octet. Chaque octet de la memoire
` une adresse
Principe: organisee
possede
II-1 Introduction
sur m bits.
codee
Memoire
vive: (Utilisee
Necessit
e dun codage des informations. Codage des nombres, codage des
`
caracteres.
Memoires
mortes: (utilisee
utilisees
dans un ordinateur: bit, octet (8 bits), multiples doctets (16 bits, 32
Unites
suite de 0 et de 1.
lecture seulement.
`
Notation hexadecimale:
permet de representer
une valeur binaire de maniere
compacte.
ecriture.
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006
IUP TMM - L3
UPS
IUP TMM - L3
II-2 Numeration
positionnelle
ees
`
interfaces paralleles
pour la connection des E/S (signaux logiques).
interfaces serie
pour la communication.
base 10 (decimale)
10 Symboles: { 0, 1, 2, ... , 9}
convertisseurs analogique/numerique
pour le traitement de signaux
analogiques.
erer
Exemple: 127=
rectangulaires).
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}
1 23 + 0 22 + 1 21 + 1 20 (soit 11 en decimal)
IUP TMM - L3
UPS
IUP TMM - L3
Ce mot-code A represente
lentier naturel code sur n bits:
N (A) =
ai 2i
i=0
conversion hexadecimal
binaire:
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
n1
X
+ 23 + 22 =44d
IUP TMM - L3
UPS
IUP TMM - L3
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
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
Codage: soit lentier naturel N (A). Son code A est obtenu par des divisions
successives par 2:
conversion hexadecimal
decimal:
=44d
hexadecimal:
conversion decimal
Exemple: N (A)
= 43
valeur
quotient
reste
bit
43
21
b0
21
10
b1
10
b2
b3
b4
b5
10
IUP TMM - L3
UPS
IUP TMM - L3
Regles
de codage des entiers relatifs:
a un poids negatif.
Soit Z lentier relatif code par A:
Z(A) = a
n1 n1
n2
X
ai 2i
i=0
Consequence:
si an1
Le signe dun entier relatif est donne par la valeur du bit le plus significatif de son
13
UPS
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
IUP TMM - L3
ai 2i = an1 2n + N (A)
e (A).
= 1, Z(A) < 0 et |Z(A)| = 2n N (A) = N
1000
= 0, Z(A) = N (A).
N(A)
i=0
Dou, si an1
16
+ X = 2n .
e(A)
N
Z(A)
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.
IUP TMM - L3
A
0000
14
an1
bn1
sn1
an1 ...a0
IUP TMM - L3
UPS
IUP TMM - L3
`
II-9 Codage des caracteres
code
21 , 22 , ...
cette position un poids en puissance de 2 negative:
0x00
NUL
0x10
DLE
0x20
SP
0x30
0x40
X(A) = a
n1 n1m
n2
X
ai 2
im
i=0
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)
`
Le 8eme
bit peut avoir divers usages:
`
`
Les caracteres
0 a 31 et 127 sont des caracteres
de controle.
22 + 20 + 21 = 4 + 1 + 0.5 = 5.5
IUP TMM - L3
par exemple).
definition
de caracteres
etendus
(accentues
17
UPS
IUP TMM - L3
`
et propriet
es
du code ascii
Caracteres
de controle
II-8 Operations
logiques et masques
operateur
OU
` a` un tri numerique.
alphabetique
se ramene
Ex: xxxx xxxx + 0000 1000 = xxxx 1xxx. Met a` 1 le bit b3.
operateur
ET
Le passage dun chiffre a` son code ASCII consiste a` rajouter $30 a` ce chiffre.
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
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
SYN
synchronisation
CAN
annulation
SUB
substitution
ESC
echappement
FS
separateur
de fichier
GS
separateur
de groupe
RS
separateur
darticle
US
separateur
dunite
DEL
effacer
IUP TMM - L3
UPS
Structure du 68HC11
III-Structure du 68HC11
IUP TMM - L3
Structure du 68HC11
III-1 Presentation
` 14 broches:
ports, il possede
Le 68HC11 serie
E est un micro-controleur
developp
e par Motorola (devenu
`
freescale) construit autour dune unite centrale 8 bits. Il possede:
Un convertisseur analogique/numerique
8 bits multiplexe sur 8 canaux.
dinterruptions externes.
IRQ et XIRQ: entrees
erence
E/S programmable
`
une interface parallele.
IUP TMM - L3
21
UPS
Structure du 68HC11
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
Port E
Port B
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
22
IUP TMM - L3
UPS
Structure du 68HC11
IUP TMM - L3
Structure du 68HC11
$0000
RAM
256 Octets
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
en memoire.
doivent etre
chargees
stockes
$103F
$F800
$FFFF
$F800
$FFC0
$FFFF
EEPROM
2048 Octets
$FFFF
Vecteurs
dIT
64 Octets
registre.
rangement (store): memoire
sequentiellement
dans lordre de rangement en memoire.
`
Les branchements permettent de derouter
un programme de maniere
conditionnelle.
IUP TMM - L3
25
UPS
Structure du 68HC11
IUP TMM - L3
Structure du 68HC11
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).
`
Instructions diverses On range dans cette categorie
les instructions systemes
ou` des instructions inclassables par ailleurs (Exemple: linstruction nop qui ne
fait rien!)
au
S: Stop disable: mis a` 1 pour inactiver linstruction stop (valeur par defaut
reset).
26
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
realis
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
Notation: ldaa
IUP TMM - L3
Instructions de chargement/rangement
29
UPS
IUP TMM - L3
Instructions de chargement
Registres concernes:
sur les
Adressage etendu:
comme ladressage direct mais ladresse est codee
Instructions: ldaa,
Instructions de chargement/rangement
A, B (8 bits)
#valeur
Differentes
manieres
dacceder
a` une valeur (modes dadressage):
immediat,
direct,
ldaa
adresseH
adresseL
PC
etendu,
indexe.
Notation: ldaa
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
tsy Transfere
e de 1 dans le
registre dindex IY. IYSP+1.
txs Transfere
e de 1 dans le
pointeur de pile SP. SPIX-1.
IX
valeur
IX+offset
ldaa
offset
PC
tys Transfere
e de 1 dans le
pointeur de pile SP. SPIY-1.
Notation: ldaa
offset,X
Jean-Michel ENJALBERT - enjalber@laas.fr- 2005/2006
IUP TMM - L3
Instructions de chargement/rangement
33
UPS
IUP TMM - L3
Instructions de chargement/rangement
Instructions de rangement
Registres concernes:
A, B (8 bits)
dadressage implicite.
Modes dadressage:
direct,
indexe.
etendu,
Exemple: std
tsx Transfere
e de 1 dans le
registre dindex IX. IXSP+1.
poids forts et $0011 pour les poids faibles. Equivalent aux deux instructions
ees
en sequence:
staa
execut
34
IUP TMM - L3
Instructions de traitement
UPS
IUP TMM - L3
Instructions de traitement
en memoire.
Effet
Instructions
R R+M
R R+M+C
adca, adcb
Soustraction
RRM
RRMC
sbca, sbcb
Operations
sur deux operandes
dont un en memoire.
Comparaison
RM
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.
R R M
eora, eorb
test bits
RM
bita, bitb
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
IUP TMM - L3
Instructions de traitement
37
UPS
IUP TMM - L3
Instructions de traitement
Exemples:
Operations
sur 2 operandes
dont 1 en memoire
adda #10
Operations
de la forme: registre f(registre,memoire)
dans A.
subb $F0
a` ladresse $00F0. Le resultat
immediat,
stocke dans B.
direct,
etendu,
cpx #$1000
Compare la valeur contenue dans IX avec la valeur $1000. Seul les indicateurs
indexe.
anda 0,X
comparaison.
par X. Le resultat
donnee
est stocke dans A.
38
IUP TMM - L3
Instructions de traitement
UPS
IUP TMM - L3
Instructions de traitement
Operations
a` 2 operandes
entre registres:
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
Operations
de la forme: registre f(registre) ou` memoire
f( memoire)
de IX avec le contenu de B
aby
IY IY + 0:B
SP.
Dans le tableau suivant, on note M le contenu dun registre ou` dun emplacement
de IY avec le contenu de B
memoire.
IUP TMM - L3
Instructions de traitement
41
UPS
Effet
C
b7 b0
Instructions
0
aba
mul
Instructions de traitement
vers la gauche
Dec.
Additionne A et B. Le resultat
est stocke dans A.
IUP TMM - L3
Fonction
Exemples:
b7 b0
b7 b0
b7 b0
b7 b0
Mise a` zero
M0
ementation
Decr
MM1
abx
Incrementation
MM+1
Negation
M0M
Complement
a` 1
M$FFM
Comparaison a` 0
M 0
42
IUP TMM - L3
Instructions de traitement
UPS
IUP TMM - L3
Instructions de traitement
Exemples:
Exemples:
clra
Met 0 dans le registre A.
inx
nega
tst $1000
binaire.
sont affectes.
IUP TMM - L3
Instructions de traitement
45
UPS
IUP TMM - L3
Manipulations de bits
Instructions de traitement
Division
` (non-signe)
sur 16 bits du contenu
Linstruction idiv realise
la division entiere
de D (numerateur)
par le contenu de IX (denominateur).
d
bset Cette instruction permet de mettre a` 1 les bits dune donnee
correspondants aux bits a` 1 dun masque m. Elle supporte ladressage direct (limite
Elle realise
n/d = q d + r.
Le resultat
de la division (quotient q ) est mis dans IX et le reste r dans D.
Syntaxe: bset
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,
inferieur
` la virgule
comme un reel
a` 1 code avec 16 bits apres
46
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
PC+2
` (430=10x40+30)
contiendra la valeur 30 ($1E) reste de la division entiere
Instr. prec.
branch?
Non
saut
Instr. suiv.
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
PC+2+saut
IUP TMM - L3
IV-3
Instructions de branchement
49
UPS
Instr. de saut
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
instruction a` executer.
execution
PC contient ladresse de linstruction suivante en memoire.
Un saut
deuxieme
octet de linstruction represente
un deplacement
(saut) sous forme dun
` a`
En pratique le langage dassemblage permet deviter
tout calcul, grace
lutilisation detiquettes.
Il suufit de mettre une etiquette
devant linstruction ou
a`
Principe: une condition, fonction de linstruction de branchement, est calcul ee
branchement. Exemple:
celle-ci est vrai alors le branchement a lieu et le programme continue a` une adresse
bra suite
...
suite ...
...
resulat
est faux, alors le programmme continue en sequence
a` linstruction suivante.
50
IUP TMM - L3
UPS
Instructions de branchement
IUP TMM - L3
Instructions de branchement
condition
instruction
condition
instruction
C=1
bcs, blo
C=0
bcc, bhs
V=1
bvs
V=0
bvc
N=1
bmi
N=0
bpl
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
bgt
Exemple: brset
bnr
IUP TMM - L3
Instructions de branchement
53
UPS
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,
Organigramme
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
Non
A=10?
Traduction
cmpa
#10
bne
suite
Oui
traitement
traitement
suite
erable
supplementaire.
54
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
IUP TMM - L3
57
UPS
Instructions de branchement
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.
58
IUP TMM - L3
UPS
IUP TMM - L3
Pile
Pour quun sous-programme revienne, quand il se termine, a` linstruction suivant
de la pile.
son appel il faut conserver ladresse de retour. Cest le role
contient ladresse de son sommet. Elle croit vers les adresses basses.
programmation modulaire:
ee
par le registre SP. Elle est stockee
nimporte ou en memoire
sous-programmes
$FFFF
pile
SP
interruptions
SP
(PC+3)l
(PC+3)h
SP
au debut
IUP TMM - L3
61
UPS
IUP TMM - L3
Sous-programmes
recup
erer
(depiler).
empilage:
A,
Registres concernes:
B, IX, IY
$adresse
PC
jsr
addresseH
addresseL
PC+3 Instr. suiv.
Instructions: psha,
depilage:
A,
Registres concernes:
Debut SP
Fin SP
B, IX, IY
Instructions: pula,
62
IUP TMM - L3
UPS
IUP TMM - L3
Sources dinterruptions
Interruptions, principe
ees):
debordement
internes (unites
eriques
integr
interruption temps reel,
executer
un sous-programme traitant linterruption puis a` reprendre lexecution
du
e interrompue.
programme la` ou elle avait et
series
(SCI et SPI). Toutes ces IT sont masquables.
par un ev
enement
Elle possede
avec un sous-programme:
` une entree
specifique
de maniere
` explicite
elle nest pas appelee
elle peut interrompre le programme nimporte ou et doit donc provoquer la
adresse
emplacement pred
de la memoire).
IUP TMM - L3
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
IUP TMM - L3
erale
Autorisation gen
des IT
specifique:
rti qui permet de restaurer les registres du programme interrompu.
Il existe aussi une instruction dattente dune interruption: wai qui sauve les
SP
instruction
effet
description
cli
I0
sei
I1
source
sci
65
UPS
source
$FFD6-D7
` gen
erale
66
IUP TMM - L3
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:
IUP TMM - L3
Entrees/sorties
logiques
69
UPS
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
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
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:
70
$1026
IUP TMM - L3
UPS
Entrees/sorties
logiques
Port B
PB7
PB6
PB5
PB4
PB3
periph
Unites
eriques
periph
IUP TMM - L3
PB2
PB1
PB0
periph
Les unites
eriques
(timer, convertisseur, liaisons series,
...) fonctionnent de
$1004
dans
centrale (i.e. le programme) seffectue par lintermediaire
de registres situes
lespace adressable ($1000 a` $103F).
Port C
de lire ou decrire
eral.
en
Le port C est un port dusage gen
Chaque broche peut etre
programmee
ou en sortie.
entree
enement
Registre de donnees:
PORTC:
PC7
PC6
enement:
PC4
PC3
PC2
PC1
PC0
$1003
lev
attendu. Cest un fonctionnement bloquant.
Registre de controle:
DDRC:
DDRC7
DDRC6
DDRC5
DDRC4
DDRC3
DDRC2
DDRC1
DDRC0
IUP TMM - L3
enement
$1007
lexecution
dun sous-programme de traitement de linterruption.
73
UPS
Entrees/sorties
logiques
IUP TMM - L3
Port D
periph
`
Les unites
eriques
sont capables deffectuer des taches
simples
peuvent etre
utilisees
independamment
de lunite centrale, par exemple:
Registre de donnees:
PORTD:
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)
$1009
`
ces unites
periph
Port E
autorise.
`
La scrutation (attente du passage a` 1 dun drapeau) oblige a` attendre quun tache
pour en executer
soit terminee
une autre.
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
`
Le fonctionnement par interruption permet lui un pseudo-parallelisme,
une tache
$100A
74
IUP TMM - L3
UPS
Timer
IUP TMM - L3
Timer
V-3 Timer
Le compteur/timer TCNT
erale
Presentation
gen
Quartz
frequence Q
Apres
grace aux bits PR1 et PR0 de
/4
Horloge, frequence E
/2
/2
Accumulateur dimpulsions
13
Diviseur
1,2,4,8
RTR10
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
reinitialis
e dans ce sous-programme pour quune nouvelle IT soit possible.
Diviseur
1,4,8,16
PR10
capture/
comparaison
IUP TMM - L3
77
UPS
Timer
IUP TMM - L3
Timer
Registres du timer
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
TOI
TFLG2:
TOF
$1025
Reglage
de la periode
doit etre
reinitialis
e dans la fonction dIT. Ladresse du sous-programme dIT doit etre
Q=4.9152 Mhz
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
78
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
` 4 entrees
de captures: IC1 (broche PA2), IC2 (PA1), IC3 (PA0),
Le 68HC11 possede
TIC4: $101E-$101F.
Drapeaux:
TFLG1:
enement
Lev
provoquant la capture est programmable: front montant, front
IC4F
IC1F
IC2F
IC3F
$1023
IC4I
IC1I
IC2I
IC3I
$1022
Masques dinterruption:
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
IUP TMM - L3
Timer
Mesure de la periode
dun signal. Capture sur front montant, broche PA2 (IC1).
TCNT
$FFFF
TIC1
TIC1
$0000
erer
periode
IC1
5V
0V
evenement
sur IC1
82
IUP TMM - L3
UPS
Timer
IUP TMM - L3
Timer
Programmation de OC1
de
Gen
dun signal periodique
sur la broche PA6 (OC2). Changement detat
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
IUP TMM - L3
85
UPS
Timer
IUP TMM - L3
Timer
Accumulateur dimpulsions
Programmation
` deux fonctions:
Laccumulateur dimpulsions est un registre 8 bits qui possede
enements:
enement
`
Compteur dev
laccumulateur est increment
e a` chaque ev
OC1D3
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
enement
ev
OMx
OLx
non connecte
de OCx
changement detat
mise a` 0 de OCx
mise a` 1 de OCx
PACNT
$FF
$00
OC1F
OC2F
OC3F
OC4F
OC5F
$1023
TMSK1:
OC1I
OC2I
OC3I
OC4I
OC5I
$1022
PA7
t
86
IUP TMM - L3
UPS
Timer
Convertisseur analogique/numerique
Principe
par 64.
E divisee
PACNT
$FF
IUP TMM - L3
e par sa resolution
caracteris
en nombre de bits codant le resultat
de la conversion.
Resultat
conversion
$00
FF
PA7
00
IUP TMM - L3
89
UPS
Timer
Vrh
(5V)
tension
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
2R
enements,
2n1 I
enements:
2R
2n2 I
PAOVI
TFLG2:
PAOVF
PAII
PAIF
2n1 I
2I
$1024
I(A)
an2 0
R
2R
$1025
an1 0
2R
a0
VGN D
90
IUP TMM - L3
UPS
Convertisseur analogique/numerique
IUP TMM - L3
au convertisseur
Registres lies
Convertion Analogique/Numerique
OPTION:
Logique de
commande
Convertisseur analogique/numerique
Declenchement
de
la conversion
ADPU
CSEL
$1039
ADPU:
convertisseur inactif
convertisseur actif.
convertisseur
numerique/
analogique
0: horloge E,
1: circuit RC interne.
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
dans ADR1 a`
0: 4 conversions une seule fois. Les resultats
sont ranges
` quune serie
ADR4.
` chaque conversion.
apres
MULT:
0: les 4 conversions sont faites sur un seul canal (choisi par CC-CA).
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.
94
IUP TMM - L3
Convertisseur analogique/numerique
UPS
IUP TMM - L3
Liaisons series
de
Pour une seule entree
le numero
SCI - UART
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
IUP TMM - L3
Liaisons series
horloge
TxD
RxD
start
d0
d1
d2
d3
d4
d5
d6
d7
d8
stop
Broches utilisees:
PD0 (RxD) et PD1 (TxD)
97
UPS
IUP TMM - L3
Liaisons series
Registres:
Donnees:
SCDR ($102F)
recue ou de la donnee
a` transmettre.
Contient les 8 premiers bits de la donnee
Controle:
de communication serie:
Deux unites
SCCR1 ($102C)
contient le 9ieme
bit eventuel.
programmes.
SCCR2 ($102D)
Activation du recepteur
ou de lemetteur.
Masques dIT.
ou des periph
eriques
synchrones (controleurs LCD, convertisseurs N/A s erie,
SCSR ($102E)
horloges...)
98
IUP TMM - L3
Platine Controlboy
UPS
V-6 Systeme
de developpement
V-6.1
V-6.2
Platine Controlboy
Langage dassemblage
erale
Presentation
gen
ecrirez
vos programmes.
Le systeme
de developpement
utilise en TP est une carte controlboy 1
e Controlord et basee
sur un 68HC11E2.
commercialise par la societ
aux etiquettes.
ed
ee
dun espace ou dune tabulation.
instruction machine doit donc etre
prec
en tete
de ligne permet de faire ref
erence
Une etiquette
placee
a` une adresse
` symbolique.
de maniere
a` un
C, deux relais R1 (relie a` PD4) et R2 (relie a` PC3), une led L1 associee
e comme un commentaire.
consider
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
IUP TMM - L3
IUP TMM - L3
Platine Controlboy
101
UPS
IUP TMM - L3
V-6.3
Platine Controlboy
Directives dassemblage:
equ definit
une constante symbolique. Exemple: porta equ $1000
en memoire.
implement
ees
Exemple: org $F800: debut
du programme
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
ed
ees
dune
partir de la derniere
prec
erence
etiquette
qui fera ensuite ref
a` ladresse en memoire
correspondante.
102
IUP TMM - L3
V-6.4
Platine Controlboy
UPS
Platine Controlboy
IUP TMM - L3
V-6.5
IUP TMM - L3
Platine Controlboy
V-6.6
Fichiers
micro-controleur).
Ce fichier a pour extension .s19.
105
UPS
IUP TMM - L3
V-6.7
0009
0008
0008
0000
0000 A762
F800
F800
F803
F806
F809
F80B
F80D
F80F
F811
F813
106
Platine Controlboy
CE1000
1C0908
18DE00
1809
26FC
A608
9808
A708
20F1