Documente Academic
Documente Profesional
Documente Cultură
8
bus de donnes
registre dtat CC
E F H I N Z V C
compteur RAM
Acc PC programme /
A ROM
UAL
Acc
B bus dadresses
16
registre
dinstructions
X Y U S
unit
H de contrle
P
registres dadresse R/W
D'aprs ce schma, dresser la carte mmoire du systme (cf doc rponse), sachant que :
- les diffrents circuits sont slectionns par un 0 sur leur entre de slection (CS : Chip Select").
- les EPROM ont 12 bits d'adresse internes
- la table de vrit du 74138 est la suivante :
broche 6 4 5 3 2 1 15 14 13 12 11 10 9 7
fonction CS1 CS2 CS3 A2 A1 A0 Out 0 Out 1 Out 2 Out 3 Out 4 Out 5 Out 6 Out 7
X X 1 X X X 1 1 1 1 1 1 1 1
X 1 X X X X 1 1 1 1 1 1 1 1
0 X X X X X 1 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 1 1 1 1 1 0
1 0 0 1 1 0 1 1 1 1 1 1 0 1
1 0 0 1 0 1 1 1 1 1 1 0 1 1
1 0 0 1 0 0 1 1 1 1 0 1 1 1
1 0 0 0 1 1 1 1 1 0 1 1 1 1
1 0 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 0 0 0 0 1 1 1 1 1 1 1
5) Interruptions :
Excuter le programme "chronomtre", adresse $AE97 (clavier : EXC, A, E, 9, 7, EXC).
Ce programme fait appel une technique de programmation dite "par interruptions" matrialise
par une ligne de commande reliant le timer une entre d'interruption du P ( FIRQ ).
Relever l'oscilloscope ce signal (broches 4 du P ou 9 du timer). Quelle est sa priode ?
ISBN 978-2-9520781-1-5 http://www.syscope.net G. Pinson, 2011
G. Pinson - Physique Applique Codage B11-TP / 4
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Puis, en agissant sur les touches RST et NMI, indiquer dans quel ordre de priorit sont
excutes les interruptions FIRQ, RESET et NMI.
6) Pour information : quelques instructions courantes du P 6809 (NB : pour plus de dtails, cf
la table de programmation fournie par le constructeur) :
Mouvements de donnes Oprateurs Branchements et sauts divers
LD lecture (LOAD) CLR RAZ BEQ Branchement si = 0 SWI fin (END)
ST criture (STORE) ADD addition BNE Branchement si 0 NOP tempo 2 s
TFR transfert entre registres SUB soustraction BGT branchement si >
MUL multiplication BGE branchement si
NEG changement de signe BLE branchement si
INC incrmentation BLT branchement si <
DEC dcrmentation JMP saut inconditionnel (GOTO)
CMP comparaison JSR saut sous-programme
COM NON RTS fin de sous-programme
AND ET RTI fin de s-pg d'interruption
OR OU
EOR OU Exclusif
LSL dcalage gauche
LSR dcalage droite
ROL rotation gauche
ROR rotation droite
But : crire un programme qui affiche la date du jour sous la forme de 6 chiffres au format
jj/mm/aa. Les afficheurs sont aux adresses $0F51, ..., $0F56.
I- Programmation du timer
Documentation : datasheet du PTM 6840
Ce PTM comprend trois timers (x = 1, 2 ou 3), chacun muni :
- d'une sortie Ox,
- d'une entre d'horloge externe Cx,
- d'une entre de dclenchement Gx (il faut Gx = 0 pour que le
PTM fonctionne en compteur, ce qui est le cas ici).
- d'un registre de contrle CRx
7 6 5 4 3 2 1 0
CR1 1 0 0 0 0 x 1 0
LTP
dclenchement du compteur par G , R ou W
mode astable
interruptions masques
sortie O1 valide
Au pralable, faire une RAZ matrielle en dbranchant le kit MC09 pendant quelques secondes.
Connecter une sonde d'oscilloscope sur la broche 27 du PTM. Relever le signal obtenu.
$B000 1111111111
Z11 OOOOOOOOOO
$A000
1111111111
$9000
Z5 OOOOOOOOOO
$8000 1111111111
$7000 Z4 OOOOOOOOOO
$6000 1111111111
$5000 Z3 OOOOOOOOOO
$4000 1111111111
Z2 OOOOOOOOOO
$3000
X 1 1111111111
$2000
Z9 X 0 OOOOOOOOOO
$1000 X 1 1111111111
$0000 Z10 X 0 OOOOOOOOOO
2me PARTIE
I) nb dcimal
code 7-segments
II.c) interprtation de
opration en code l'opration conclusion : rsultat
hexadcimal en code dcimal examen du registre CC exact (V) ou faux (F) ?
$x $y $r x y r %N %Z %V %C V/F?
$17 $12
$7B $12
$7B $FE
$83 $FE
$83 $F6
II.d) $x $y $r x y r %N %Z %V %C V/F?
$17 $12
$7B $12
$7B $FE
$83 $FE
$83 $F6
P 0F56
0F55
0F54
0F53
A 0F52
0F51
51 0103
0F 0103
B7 0102
** 0101
86 0100
0000
II)
espace mmoire
FFFF
P X 0F56
0F55
U 0F54
0F53
A 0F52
0F51
00 0303
CE 0303
51 0302
0F 0301
8E 0300
** 0005
** 0004
** 0003
** 0002
** 0001
** 0000
4) Carte mmoire :
3 10 12
a) 16 = 4096 = $1000, 2 = 1024 = $0400, 2 1 = 4095 = $0FFF
16
d) 16 bits d'adresse 2 = 65536 octets (64 ko)
Rciproquement, pour dcoder 4 ko de mmoire, soit 4096 octets, il faut 12 bits d'adresse.
e) Remarque prliminaire : la taille L d'un segment mmoire compris entre l'adresse basse B
et l'adresse haute H incluses vaut : L = H B + 1.
Exemple : segment compris entre B = 4 et H = 7 L = 7 4 + 1 = 4 (le segment contient les
adresses 4, 5, 6 et 7)
Donc, la RAM de 4 ko, soit 4096 positions mmoires, est comprises entre les adresses :
B = $0000 = 0
H = L + B 1 = 4096 + 0 1 = 4095 = $0FFF
On peut aussi faire ce calcul directement en hexadcimal :
H = L + B 1 = $1000 + 0 1 = $0FFF
g)
0 1 2 3 4 5 6 7 8 9 A B C D E F
h) Les circuits EPROM (supports Z6, Z7 et Z8) ont par construction 12 bits d'adresse
internes (de A0 A11 ) et sont slectionns par les bits A15 A14 A13 . Le bit A 12 est donc inutilis et
est marqu X dans le tableau. Il s'ensuit que l'EPROM systme Z6 par exemple est aussi bien
ISBN 2-9520781-1-4 http://www.syscope.net EAN 9782952078115
G. Pinson - Physique Applique Document rponse B11-TP / 12
----------------------------------------------------------------------------------------------------------------------------------------------------------------
adresse par les adresses $F000 $FFFF que par les adresses $E000 $EFFF. Il en est de mme de
la RAM (4 ko au total), comprise indiffremment entre les adresses $0000 et $0FFF ou entre $1000
et $1FFF.
Dans la pratique, on calcule les adresses dans le tableau ci-dessous en prenant arbitrairement X
= 1 pour l'EPROM sytme (Z6) et X = 0 pour les autres :
5) Le signal FIRQ a une priode de 10 ms (soit un centime de seconde), et est actif l'tat bas :
le P, ds qu'il reoit un 0 sur cette entre, excute le sous-programme d'interruption qui consiste
incrmenter les centimes de seconde et afficher le temps coul.
FIRQ
5V
0
10 ms
Lorsqu'on appuie sur l'interruption NMI, on constate que le programme s'arrte : NMI est donc
prioritaire sur FIRQ.
Par contre, faire un reset pendant cet arrt de programme remet le systme zro : RST est
donc prioritaire sur NMI.
d)
$x $y $r x y r %N %Z %V %C Comp 2
$17 $12 $29 23 18 41 0 0 0 0 V
$7B $12 $8D 123 18 -115 1 0 1 0 F
$7B $FE $79 123 -2 121 0 0 0 1 V
$83 $FE $81 -125 -2 -127 1 0 0 1 V
$83 $F6 $79 -125 -10 121 0 0 1 1 F
L' indicateur inutile est C car le rsultat d'une addtion de nombres entiers relatifs cods en code
complment 2 doit ncessairement tre contenu dans le mme format (8 bits : 128 N +127).
Dans le cas contraire il y a dpassement et le bit V est positionn 1.
P 0F56 x6
0F55
0F54
STA affich Afficheurs
0F53
A Affichage
0F52
0F51
Fin
51 0103
: le transfert de
LDA #$** 0F 0103 Programme donne s'effectue toujours
B7 0102
0101
& donnes par l'intermdiaire de
** l'accumulateur. Le transfert
86 0100
direct d'une adresse une
autre - DMA (Direct
Memory Access) - n'est pas
autoris sur ce type de
0000 microprocesseur.
Adresse $0000 U
P X 0F56
0F51 0F55
U 0000 0F54
Afficheurs
Donne Acc
0F53 U U + 1
A 0F52
STA ,X+ 0F51 Donne Afficheur
X X+ 1
00 0303
Programme
CE 0303
0302
x6
51
0F 0301
8E 0300
LDA ,U+ Affichage
Fin
** 0005
** 0004
** 0003 : aprs l'excution des
0002
Donnes
** instructions Load et Store,
** 0001 les registres X et U sont
** 0000 incrments d'une unit.
Programme :
86 86
CR1 = %10000110 = $86 8E 02 42
L = 67 = $43 (arrondi l'entier suprieur) ; M = 2 = $02 BD A8 80
3F
67
= = 0,328
(67 +1)(2 + 1)
(67+1)(2+1)s
1
f = = 4975 Hz
(67 +1)(2 + 1)106
67s