You are on page 1of 15

G.

Pinson - Physique Applique

Codage

B11-TP / 1

----------------------------------------------------------------------------------------------------------------------------------------------------------------

B11&B17 - tude d'un systme numrique


But : exemples de codes binaires et principes de base du traitement numrique de l'information dans un systme microprocesseur. Ralisation d'un gnrateur de signaux programmable. 1re partie : tude gnrale du systme On utilise une carte MC09 (fabricant : SERIElectronique) microprocesseur type 6809, associ une carte d'entre/sortie (ref 003) branche sur le connecteur 1 l'aide d'un cble plat en nappe. Remarque : un microcontrleur intgre en un seul botier l'ensemble des lments de cette carte plus quelques autres (CAN, CNA,...). Le microcontrleur correspondant au P 6809 a pour rfrence C 6811. Toutefois, dans une premire approche des systmes numriques, il est plus commode d'tudier un systme "clat" faisant apparatre chaque sous-ensemble de faon distincte.
connecteur 1

P 6809

PIA 6821

VIA 6822

Timer 6840

connecteur 2

Bus

Adresses

Bus Donnes EPROM 2732 System EPROM 2732 User RAM 6116 PIA 6821 System Clavier Afficheurs Adresses Donnes ACIA 6850

Brochage du 6809 :

Schma fonctionnel du 6809 :


registre dtat CC E F H I N Z V C bus de donnes
8

Acc A UAL Acc B

compteur PC programme

RAM / ROM

bus dadresses
16

registre dinstructions X Y U S

H P

unit de contrle

registres dadresse RESET NMI IRQ FIRQ

R/W

ISBN 978-2-9520781-1-5

http://www.syscope.net

G. Pinson, 2011

G. Pinson - Physique Applique

Codage

B11-TP / 2

----------------------------------------------------------------------------------------------------------------------------------------------------------------

1) Reprer sur la carte (double face) les diffrents composants du systme : - le clavier constitu d'un pav numrique matriciel de 16 touches hexadcimales, de 12 touches de fonction et de deux touches spciales (RST : remise zro ; NMI : interruption). - les afficheurs 7-segments hexadcimaux rpartis en deux groupes : gauche, 4 digits pour les adresses ; droite 2 digits pour les donnes. - le microprocesseur (abrg : P) et le quartz 4MHz qui lui est associ (frquence horloge systme : fP = 1 MHz TP = 1 s). - le bus de donnes et le bus d'adresse. - la mmoire, compose de : - 4 ko de RAM rpartie en deux circuits intgrs type 6116 de 2 ko chacun - plusieurs EPROM type 2732 de 4 ko chacune, dont : - une EPROM marque "MC09" contenant le "systme d'exploitation", qui est un ensemble de programmes grant le clavier, l'affichage, etc. - une EPROM marque "TS2" contenant certains programmes utiliss en TP. - les interfaces d'entre/sortie (abrg : E/S ou IO : Input/Output) : parallle (PIA 6821 : Parallel Interface Adapter), srie (ACIA 6850 : Asynchronous Interface Adapter), temporisateur programmable (PTM : Programmable Timer 6840), etc. - les connecteurs, dont celui de l'alimentation (0/5V). 2) Du point de vue matriel, le P 6809 comprend notamment : - une Unit Arithmtique et Logique (ALU : Arithmetic and Logic Unit) qui excutent les oprations boolennes et les calculs numriques. - deux registres de travail ou "accumulateurs" A et B - un compteur programme (PC : Program Counter) - quatre registres d'adresse (X, Y, S, U) - un registre d'tat (CC : Code Condition register) contenant un ensemble d'indicateurs binaires ou "drapeaux". Les quatre bits de poids faibles sont : - (b3 ) N : indicateur de rsultat ngatif - (b2 ) Z : indicateur de rsultat nul - (b1 ) V : indicateur de dpassement (V : overflow) - (b0 ) C : retenue de calcul (C : carry) - quatre entres d'interruption : RES (RESet), NMI (Non Masquable Interrupt), IRQ (Interrupt Request), FIRQ (Fast IRQ). 3) Utilisation du clavier :
nb entiers base 10 base 2 base 16 NB : notation des nombres : notation "Motorola" 1100 %1100 $1100 notation "Intel" 1100 b1100 h1100 (valeur en base 10) 1100 12 4352

- Brancher l'alimentation de la carte. Faire un RESET. - Examen des registres : observer le contenu des registres (clavier : REG puis INC ou DEC). - Examen de la mmoire : lire la mmoire (clavier : MEM) l'adresse $8000 (clavier : taper 0 0 0 0). Ecrire par exemple $11 cette adresse (les DELs vertes correspondantes s'allument sur la carte d'E/S). Puis incrmenter (INC) jusqu' l'adresse $8002 et crire $48 (DELs rouges). Terminer par clavier : FIN puis RESET. (soit, au clavier : MEM, 8, 0, 0, 0, 1, 1, INC, INC, 4, 8, FIN, RESET) Quelle est la valeur de $11 et de $48 en binaire ?
ISBN 978-2-9520781-1-5 http://www.syscope.net G. Pinson, 2011

G. Pinson - Physique Applique

Codage

B11-TP / 3

----------------------------------------------------------------------------------------------------------------------------------------------------------------

4) Carte mmoire : a) Convertir sous forme hexadcimale les nombres 16 , 2 , 2 1. b) Convertir sous forme dcimale les nombres $A000, $1000, $0FFF c) Quelle est la "largeur" (nb bits) du bus de donnes ? Du bus d'adresse ? d) Quelle est la taille de l'espace adressable total ? Combien de bits sont ncessaires pour adresser 4 ko de mmoire, sachant que : 1 ko = 1024 octets ? e) La RAM dbute l'adresse $0000 . Quelle est l'adresse la plus haute de cette mmoire ? f) L'EPROM systme finit l'adresse $FFFF. Quelle est son adresse la plus basse ? g) Le long d'un axe gradu de $0000 $FFFF (document rponse), dessiner une carte simplifie de l'espace adressable (memory map) en prcisant l'endroit o se trouvent les diffrents composants, sachant que : - l'EPROM "TS2" commence l'adresse $A000 - les I/O (entres/sorties) sont entre les adresses $8000 et $9FFF h) Schma lectrique (partiel) de l'adressage : celui-ci comprend notamment deux CI 74138 dcodeur/dmultiplexeur "1 parmi 8" :
RAM 6116 support Z9

10

12

RAM 6116 support Z10 74138 A13 A14 A15


1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9

74138 libre A10 A11 A12


1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9

EPROM support Z8 (TS2 ) EPROM support Z7 EPROM support Z6 (systme)

Z2 PIA 6821 utilisateur Z3 VIA 6522 Z4 TIMER 6840 Z5 ACIA 6850 Z11 PIA 6821 systme libre

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 fonction 6 CS1 X X 0 1 1 1 1 1 1 1 1 4 CS2 X 1 X 0 0 0 0 0 0 0 0 5 CS3 1 X X 0 0 0 0 0 0 0 0 3 A2 X X X 1 1 1 1 0 0 0 0 2 A1 X X X 1 1 0 0 1 1 0 0 1 A0 X X X 1 0 1 0 1 0 1 0 15 14 13 12 11 10 9 7 Out 0 Out 1 Out 2 Out 3 Out 4 Out 5 Out 6 Out 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 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 LD ST TFR lecture (LOAD) criture (STORE) transfert entre registres Oprateurs CLR ADD SUB MUL NEG INC DEC CMP COM AND OR EOR LSL LSR ROL ROR RAZ addition soustraction multiplication changement de signe incrmentation dcrmentation comparaison NON ET OU OU Exclusif dcalage gauche dcalage droite rotation gauche rotation droite Branchements et sauts BEQ BNE BGT BGE BLE BLT JMP JSR RTS RTI Branchement si = 0 Branchement si 0 branchement si > branchement si branchement si branchement si < saut inconditionnel (GOTO) saut sous-programme fin de sous-programme fin de s-pg d'interruption divers SWI NOP fin (END) tempo 2 s

2me partie : codes binaires I- Un exemple de code binaire alphanumrique : le code 7-segments Lancer le programme "Code 7-segments" (adresse : $AB40). Entrer un octet (qui apparat sur les afficheurs de gauche), en appuyant successivement sur deux touches hxadcimales (poids fort puis poids faible). L'quivalent 7-segments apparat gauche. Entrer un deuxime octet : un deuxime afficheur est activ. Etc. Arrt du programme par RST. Exercice : chaque bit correspond un segment affich ("0" = segment teint ; "1" = segment allum). En dduire le code 7-segments des chiffres 0 9 (cf document rponse). S7 S6 S5 S4 S3 S2 S1
X 7 X X X X X X 0 S6 S3 S5 S7 S2 S4 S1

7-segments

II- Un exemple de code binaire numrique : le code en complment deux 1) Programmation : on considre le programme suivant :
code machine
adresse code op. donne label

assembleur

mnmonique donne

commentaire

0000 0002 0004

86 8B 3F

17 12

pgm21

LDA ADDA SWI

#$17 #$12

chargement de l'acc. A par $17 addition : A + $12 A fin

a) Description : ce programme excute l'addition hexadcimale $17 + $12 = .... Les donnes sont insres dans le programme lui-mme. Le rsultat est conserv dans l'accumulateur A en crasant son contenu antrieur. Ce programme est crit sous deux formes complmentaires :
ISBN 978-2-9520781-1-5 http://www.syscope.net G. Pinson, 2011

G. Pinson - Physique Applique

Codage

B11-TP / 5

----------------------------------------------------------------------------------------------------------------------------------------------------------------

- Code machine : code hexadcimal mis en mmoire vive l'aide du clavier : MEM, 0, 0, 0, 0, 8, 6, INC, 1, 7, INC, 8, B, INC, 1, 2, INC, 3, F, FIN Ce code comprend : - l'adresse de chaque instruction. $0000 est l'adresse de dbut du programme. - le code de l'instruction, qui comprend : - le "code opratoire" (en abrg : code op. ou Op Code), dcod par le P dans son "registre d'instruction" (IR : Instruction Register) - la donne sur laquelle porte l'instruction - Assembleur : fichier texte traduisant "en clair" (?) le code machine, rparti en plusieurs "champs" : - label : nom du progamme (pgm21) - mnmonique : nom abrg de l'instruction : LD, ADD, SWI... - donne - commentaire b) Excution : excuter le programme. Relever le contenu de PC (touche REG) : quelle est l'action de l'instruction SWI ? c) En modifiant les donnes, remplir le tableau (cf document rponse) en considrant que l'addition est excute en code binaire naturel... (le rsultat $r est lire dans A par REG). Quels sont les indicateurs de CC utiles ? quels sont les indicateurs inutiles ? Pourquoi ? d) ... ou en considrant que cette addition est excute en code sign complment 2. Remplir le deuxime tableau (cf document rponse) Quels sont les indicateurs de CC utiles ? quels sont les indicateurs inutiles ? Pourquoi ? Rappel : le code d'un nombre ngatif de valeur absolue N est obtenu en code complment 2 en faisant : N +1
Annexe : code binaire naturel et code en complment 2 en criture hxadcimale
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 40

96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F

128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

-128 -127 -126 -125 -124 -123 -122 -121 -120 -119 -118 -117 -116 -115 -114 -113 -112 -111 -110 -109 -108 -107 -106 -105 -104 -103 -102 -101 -100 -99 -98 -97

80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F

160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

-96 -95 -94 -93 -92 -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF

192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223

-64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33

C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF

224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

-32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

ISBN 978-2-9520781-1-5

http://www.syscope.net

G. Pinson, 2011

G. Pinson - Physique Applique

Codage

B11-TP / 6

----------------------------------------------------------------------------------------------------------------------------------------------------------------

3me partie : mouvements de donnes 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- Adressages immdiat (type "constante") et tendu (type "variable") En mode immdiat, la date est une constante situe l'intrieur du programme lui-mme. Saisir et excuter le code du programme suivant en remplaant les octets marqus ** par le code 7-segment du chiffre voulu (jj/mm/aa) :
0100 0102 0105 0107 010A 010C 010F 0111 0114 0116 0119 011B 011E 0121 0124 86 B7 86 B7 86 B7 86 B7 86 B7 86 B7 8E BD 3F ** 0F ** 0F ** 0F ** 0F ** 0F ** 0F 0F A1 pgm31 51 52 53 54 55 56 51 00 LDA STA LDA STA LDA STA LDA STA LDA STA LDA STA LDX JSR SWI #$** adr. immediat (dizaine jour) affich adr. etendu #$** (unite jour) affich+1 #$** (diz mois) affich+2 #$** (unite mois) affich+3 #$** (diz annee) affich+4 #$** (unit annee) affich+5 #affich appel s-p affichage esclav affichage fin

Description : le programme excute six fois le mme dplacement de donnes : LDA #$** Charge (LOAD) l'accumulateur A par la donne qui suit le code opratoire ($86) (le signe # indiquant le mode immdiat) STA affich Sauvegarde (STORE) le contenu de l'accumulateur A l'adresse qui suit le code opratoire ($B7). Le contenu de cette adresse est donc variable. Le programme fait ensuite appel un sous-programme nomm "esclav" (instruction JSR : Jump to Sub-Routine) qui affiche les 6 codes 7-segments partir de l'adresse charge dans le registre d'adresse X. Complter le croquis (cf doc rponse) en prcisant l'endroit o se trouvent les donnes et le programme d'une part, l'affichage d'autre part. Indiquer par des flches le mouvement d'une donne II- Adressage index (type "pointeur") Inscrire les codes 7-segments de la date (au clavier) dans un tableau partir de l'adresse $0000. Le programme transfert ces donnes aux adresses utilises par le sous-programme d'affichage. Une premire solution consiste travailler uniquement en adressage tendu (ne pas saisir ce programme) :
0200 0203 0206 0209 020C 020F 0212 0215 0218 021B 021E 0221 0224 0227 B6 B7 B6 B7 B6 B7 B6 B7 B6 B7 B6 B7 8E BD 00 0F 00 0F 00 0F 00 0F 00 0F 00 0F 0F A1 00 51 01 52 02 53 03 54 04 55 05 56 51 00 pgm32a LDA STA LDA STA LDA STA LDA STA LDA STA LDA STA LDX JSR SWI >date affich >date+1 affich+1 >date+2 affich+2 >date+3 affich+3 >date+4 affich+4 >date+5 affich+5 #affich esclav adr. etendu adr. etendu

appel s-p affichage affichage fin

022A 3F

Une meilleure solution consiste utiliser l'adressage index, qui est une forme d'adressage prvue
ISBN 978-2-9520781-1-5 http://www.syscope.net G. Pinson, 2011

G. Pinson - Physique Applique

Codage

B11-TP / 7

----------------------------------------------------------------------------------------------------------------------------------------------------------------

pour le traitement des tableaux (ne pas saisir ce programme) :


0300 0303 0306 0308 030A 030C 030E 0310 0312 0314 0316 0318 031A 031C 031E 0321 0324 8E CE A6 A7 A6 A7 A6 A7 A6 A7 A6 A7 A6 A7 8E BD 3F 0F 00 C0 80 C0 80 C0 80 C0 80 C0 80 C0 80 0F A1 51 00 pgm32b LDX LDU LDA STA LDA STA LDA STA LDA STA LDA STA LDA STA LDX JSR SWI #affich #date ,U+ ,X+ ,U+ ,X+ ,U+ ,X+ ,U+ ,X+ ,U+ ,X+ ,U+ ,X+ #affich esclav

51 00

appel s-p affichage affichage fin

Description : on commence par charger le registre X par l'adresse du dbut du tableau d'affichage et le registre U par l'adresse du dbut du tableau de donnes. Le programme excute ensuite six fois le mme dplacement de donnes : LDA ,U+ Charge l'accumulateur A par la donne contenue l'adresse pointe par U puis incrmente U d'une unit (pour la prochaine excution) STA ,X+ Sauvegarde le contenu de A l'adresse pointe par X puis incrmente X. Complter le croquis (cf doc rponse) en prcisant l'endroit o se trouvent les donnes, le programme et l'affichage. Indiquer par des flches le mouvement d'une donne. Indiquer par des flches de couleur diffrente les adresses pointes par les registres X et U au dbut de l'excution du programme. III- Adressage relatif Le programme prcdent peut aisment tre compress en remplaant la suite des six groupes d'instructions identiques par une boucle de type IF... THEN... ELSE... excute six fois. L'octet marqu ** situ l'adresse $040F indique le nombre d'octets dont doit tre incrment ou dcrment le compteur programme pour retourner au dbut de la boucle (adresse $0406). Calculer cet octet (exprim en code en complment deux sous forme hexadcimale) en s'aidant de l'exemple ci-contre. Saisir et excuter le code du programme.
0400 0403 0406 0408 040A 040E 0410 0413 0416 8E CE A6 A7 11 26 8E BD 3F 0F 00 C0 80 83 ** 0F A1 51 00 pgm33 boucle 00 06 51 00 LDX LDU LDA STA CMPU BNE LDX JSR SWI #affich #date ,U+ ,X+ #date+1 boucle #affich esclav
adres. saut saut boucle (dec) hexa .... $040B $040C $040D $040E $040F $0410 $0411 $0412 $0413 $0414 .... .... -5 -4 -3 -2 -1 0 1 2 3 4 .... .... $FB $FC $FD $FE $FF $00 $01 $02 $03 $04 ....

test retour si FAUX s-p affichage affichage fin

Description : CMPU date + 1

BNE boucle

Pour savoir s'il faut sortir de la boucle, on compare U la quantit $0006 L'instruction CMP (Compare) positionne l'indicateur Z de CC : - 1 si U = $0006 - 0 si U $0006 Si U $0006, alors on recommence la boucle. L'instruction BNE (Branch if Not Equal) teste l'indicateur Z.

ISBN 978-2-9520781-1-5

http://www.syscope.net

G. Pinson, 2011

G. Pinson - Physique Applique

Codage

B11-TP / 8

----------------------------------------------------------------------------------------------------------------------------------------------------------------

4me partie : ralisation d'un gnrateur de signaux programmable But : crire un programme pour gnrer un signal de frquence 5 kHz et de rapport cyclique 1/3 par le timer1 du PTM 6840. 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 CR1 est l'octet de contrle du timer 1 :
7 CR1 1 6 0 5 0 4 0 3 0 2 x 1 1 0 0

tous les timers fonctionnent horloge = horloge interne (MC09) TP = 1 s 0 : fonctionnement en 16 bits (N) (N+1)TP (N+1)TP

1 : fonctionnement en 2 x 8 bits (M:L) (L+1)(M+1)TP LTP dclenchement du compteur par G mode astable interruptions masques sortie O1 valide Les valeurs de comptage N, ou L et M, seront entres dans le programme (variable LMN). Calculer l'octet de programmation du timer 1 et la valeur (en hexa) de la variable LMN. II- Saisie et excution du programme Au pralable, faire une RAZ matrielle en dbranchant le kit MC09 pendant quelques secondes.
essai1 LDA LDX JSR SWI #$CR1 #$M:L $A880 chargt de l'acc. A par octet contrle timer1 chargement du compteur par valeur de comptage dbut du comptage (saut sp init timer1) fin

, R ou W

Connecter une sonde d'oscilloscope sur la broche 27 du PTM. Relever le signal obtenu.

ISBN 978-2-9520781-1-5

http://www.syscope.net

G. Pinson, 2011

G. Pinson - Physique Applique

Document rponse

B11-TP / 9

----------------------------------------------------------------------------------------------------------------------------------------------------------------

1re PARTIE 4.g) carte mmoire simplifie :

4.h) carte mmoire dtaille (extrait) :


bits d'adresse X 1 0 1 0 1 0 1 0 1 0 1 0 1111111111
OOOOOOOOOO

adresse hexa haute taille

circuits A14 A13 A12 A11 A10 A9A8A7...A0 adresse hexa basse A15 segment $FFFF $F000 $E000 $D000 $C000 $B000 $A000 $9000 $8000 $7000 $6000 $5000 $4000 $3000 $2000 $1000 $0000 Z10 Z2 X Z9 X X X 1 0 1 0 Z3 Z4 Z11 Z5 Z8 Z7 Z6 X X X X X

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

1111111111
OOOOOOOOOO

2me PARTIE I) nb dcimal code 7-segments II.c)


opration en code hexadcimal interprtation de l'opration en code dcimal conclusion : rsultat exact (V) ou faux (F) ?

examen du registre CC

$x $17 $7B $7B $83 $83 II.d)

$y $12 $12 $FE $FE $F6

$r

%N

%Z

%V %C

V/F?

$x $17 $7B $7B $83 $83

$y $12 $12 $FE $FE $F6

$r

%N

%Z

%V %C

V/F?

ISBN 2-9520781-1-4

http://www.syscope.net

EAN 9782952078115

G. Pinson - Physique Applique

Document rponse

B11-TP / 10

----------------------------------------------------------------------------------------------------------------------------------------------------------------

3me PARTIE I) espace mmoire


FFFF

0F56 0F55 0F54 0F53 0F52 0F51

51 0F B7 ** 86

0103 0103 0102 0101 0100

0000

II) espace mmoire


FFFF

X U A

0F56 0F55 0F54 0F53 0F52 0F51

00 CE 51 0F 8E

0303 0303 0302 0301 0300

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

0005 0004 0003 0002 0001 0000

ISBN 2-9520781-1-4

http://www.syscope.net

EAN 9782952078115

G. Pinson - Physique Applique

Document rponse

B11-TP / 11

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Commentaires
1re partie : tude gnrale du systme 2) Remarque : la carte MC09 consomme un courant d'environ 0,7 A , soit une puissance 3,5 W 3) $11 = % 0001 0001 (soit 1 x 16 + 1 = 17 en dcimal) ; $48 = % 0100 1000 (soit 4 x 16 + 8 = 72 en dcimal)

4) Carte mmoire : a) 16 = 4096 = $1000, 2


3 10

= 1024 = $0400, 2 1 = 4095 = $0FFF

12

b) $A000 = 40960 ; $1000 = 4096 ; $0FFF = 4095. c) bus de donnes 8 bits ; bus d'adresse 16 bits 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 f) De mme, l'EPROM de 4 ko est comprises entre les adresses : H = $FFFF = 65535 B = H + 1 L = 65535 + 1 4096 = 61440 = $F000 On peut aussi faire ce calcul directement en hexadcimal : B = H + 1 L = $FFFF + 1 $1000 =$FFFF $0FFF = $F000 g)
16

RAM

IO EPROM TS2

EPROM MC09

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 :
bits d'adresse circuitsA15 A14 A13 A12 A11 A10 A9A8A7A6A5A4A3A2A1A0 adr hexa haute adr hexa basse taille (ko) segment

Z6 Z7 Z8 Z11 Z5 Z4 Z3 Z2 Z9 Z10

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

X X X X X X 1 1 0 0 0 0 0 0 0 0 X X X X

1 0 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0

1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

FFFF F000 CFFF C000 AFFF A000 93FF 9OOO 8FFF 8COO 8BFF 88OO 87FF 84OO 83FF 8OOO OFFF O8OO O7FF OOOO

4 4 4 1 1 1 1 1 2 2

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.

ISBN 2-9520781-1-4

http://www.syscope.net

EAN 9782952078115

G. Pinson - Physique Applique

Document rponse

B11-TP / 13

----------------------------------------------------------------------------------------------------------------------------------------------------------------

2me partie : codes binaires I- Un exemple de code binaire alphanumrique : le code 7-segments nb hexa : code 7-s : 7E 12 BC B6 D2 E6 EE 32 FE F6

II- Un exemple de code binaire numrique : le code en complment deux b) Quand on lance l'excution du programme (touche EXC), le compteur programme (PC) est prcharg la valeur de l'adresse de dbut de programme puis s'incrmente jusqu' l'excution de l'instruction SWI (Software Interrupt) qui bloque ce processus. Le compteur programme contient alors l'adresse de cette instruction. Ici, PC est prcharg par la quantit $0000 au dmarrage du programme, puis, aprs excution de ce programme, on vrifie (par action sur les touches REG puis INC) que PC contient la valeur $0004. c) $x $17 $y $12 $r $29 x 23 123 131 131 y 18 18 254 254 246 r 41 141 377 385 377 %N 0 1 0 1 0 %Z 0 0 0 0 0 %V %C 0 1 0 0 1 0 0 1 1 1 Bin Nat V V V V V 377 = $179 385 = $181 377 = $179

$7B $12 $8D 123 $7B $FE $79 $83 $FE $81 $83 $F6 $79

Les indicateurs inutiles sont N et V : - N car le rsultat d'une addtion de nombres entiers naturels ne peut tre ngatif (que ces nombres soient cods en dcimal ou en binaire) - V car il n'y a jamais de dpassement : sur 8 bits, la plus grande addition ralisable est : $FF + $FF = 255 + 255 = 510 = $1FE. Le "1" de la retenue est mmoris par le bit C. Cela revient dire que le rsultat de l'addition de deux entiers naturels cods sur 8 bits s'crit au plus avec 9 bits (8 bits + la retenue). d) $x $17 $y $12 $r $29 x 23 123 y 18 18 -2 -2 r 41 -115 121 -127 121 %N 0 1 0 1 0 %Z 0 0 0 0 0 %V %C Comp 2 0 1 0 0 1 0 0 1 1 1 V F V V F

$7B $12 $8D 123 $7B $FE $79 $83 $F6 $83 $FE $81 -125

$79 -125 -10

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.

ISBN 2-9520781-1-4

http://www.syscope.net

EAN 9782952078115

G. Pinson - Physique Applique

Document rponse

B11-TP / 14

----------------------------------------------------------------------------------------------------------------------------------------------------------------

3me partie : mouvements de donnes I- Adressages immdiat et tendu espace mmoire


FFFF Donne Acc Acc Afficheur

P STA affich
A

0F56 0F55 0F54 0F53 0F52 0F51

x6
Afficheurs
Affichage Fin

LDA #$**

51 0F B7 ** 86

0103 0103 0102 0101 0100

Programme donne s'effectue toujours & donnes par l'intermdiaire de


l'accumulateur. Le transfert direct d'une adresse une autre - DMA (Direct Memory Access) - n'est pas autoris sur ce type de microprocesseur.

: le transfert de

0000

II- Adressage index (type "pointeur") espace mmoire


FFFF Adresse $0F51 X Adresse $0000 U

X U

0F51 0000 A

STA ,X+

0F56 0F55 0F54 0F53 0F52 0F51

Afficheurs

Donne Acc U U + 1 Donne Afficheur X X+ 1

LDA ,U+

00 CE 51 0F 8E

0303 0303 0302 0301 0300

Programme

x6
Affichage Fin

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

0005 0004 0003 0002 0001 0000

Donnes

: aprs l'excution des instructions Load et Store, les registres X et U sont incrments d'une unit.

ISBN 2-9520781-1-4

http://www.syscope.net

EAN 9782952078115

G. Pinson - Physique Applique

Document rponse

B11-TP / 15

----------------------------------------------------------------------------------------------------------------------------------------------------------------

III- Adressage relatif


adresse s Code prog 8E $0F $51 $CE $00 $00 $A6 $C0 $A7 $80 $11 $83 $00 $06 $26 $F6 $8E $0F $51 $BD $A1 $00 $3F axe de calcul du saut -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 .... $F0 $F1 $F2 $F3 $F4 $F5 $F6 $F7 $F8 $F9 $FA CMPU $FB $FC $FD $FE $FF $00 $01 $02 $03 $04 $05 $06 .... SWI JSR esclav Fin LDX #affich BNE boucle U= U +6 ? OUI Affichage #date+1 STA ,X+ LDA ,U+ Adresse basse afficheurs X Adresse basse donnes U Donne Acc U U + 1 Donne Afficheur X X+ 1 NON LDU #date Programme

dbut du programme

$0400 $0401 $0402 $0403 $0404 $0405

LDX

#affich

boucle

$0406 $0407 $0408 $0409 $040A $040B $040C $040D $040E $040F

suite du programme si pas de saut

$0410 $0411 $0412 $0413 $0414 $0415

fin

$0416 ....

Valeur hexadcimale du saut = $F6 (= 10)

4me partie : ralisation d'un gnrateur de signaux programmable Programme : 86 86 8E 02 42 BD A8 80 3F

CR1 = %10000110 = $86 L = 67 = $43 (arrondi l'entier suprieur) ; M = 2 = $02 = 67 = 0,328 (67 +1)(2 + 1)

(67+1)(2+1)s f = 1 (67 +1)(2 + 1)106 = 4975 Hz 67s


http://www.syscope.net EAN 9782952078115

ISBN 2-9520781-1-4

You might also like