TD Intr Micropross
TD Intr Micropross
TD Intr Micropross
RESET
A8
A9
A10
A11 WR
5. On suppose que le programme utilisateur commence au début de la mémoire programme
100nF µP A10 A12 (ROM), et que le vecteur RESET est situé à l’adresse FFFEH.
C2 A11 RD
A12 CS1 Donner le contenu des cases mémoires d’adresses FFFEH et FFFFH (ce microprocesseur a une
A13
architecture litle-endian, c.-à-d. que l’octet le plus faible est placé à l’adresse basse et l’octet le
Oscillateur
2
18pF A14
Y1 A15
C3 12Mhz A0 D0 plus fort est placé à l’adresse haute).
1
WR A1 U3 D1
A2 D2
18pF RD A3 D3 Exercice 3 :
GND A4 D4
A5 D5 On donne ci-après, le schéma électronique d’une carte à base d’un microprocesseur générique à
A6 D6
A7 ROM1 D7 architecture Harvard.
A8
PARTIE A
A9
A10
A11
A12 RD
1. Quel est le rôle du circuit composé de R1 et C1 ?
CS4
2. Donner la capacité de la mémoire de données. Déterminer l’adresse la plus basse et l’adresse
la plus haute.
3. Donner l’adresse de la mémoire de programme en kbits et kmots (1mot = 16 bits).
1. Quelle est l’architecture de ce microprocesseur ? 4. Donner les adresses de bases de deux circuits d’interface U4 et U5.
2. Donner la capacité de chaque mémoire en kbits et en koctets.
PARTIE B
3. On veut adresser la mémoire RAM1 à partir de l’adresse 0000H et la ROM1 à partir de l’adresse
E000H. On donne dans le tableau suivant quelques instructions et le code machine correspondants:
a. Compléter le tableau suivant, en indiquant dans la troisième colonne l’adresse la plus
Code mnémonique Description Code machine
basse et l’adresse la plus haute de chaque mémoire en hexadécimal.
movlw k W k : charger la valeur k dans W 0000 1110 kkkk kkkk
movfw A W (A) : le contenu de la case mémoire d’adresse 0110 1111 AAAA AAAA
A est chargé dans le registre W
1 2
movwf A (A) W : le contenu du registre W est chargé de la 0101 0000 AAAA AAAA
case mémoire d’adresse A Corrigé
andfw A W W and (A), si W = 0 alors le flag Z 1 0001 0100 AAAA AAAA
goto A Saut à l’adresse A (PC A) 1110 0AAA AAAA AAAA Exercice 1 :
JZ déplacement si Z = 1, saut à l’adresse PC=PC+déplacement 1111 0100 AAAA AAAA 1. Les avantages de l’architecture Harvard :
JnZ déplacement si Z = 0, saut à l’adresse PC=PC+déplacement, 1111 1000 AAAA AAAA - Accès simultané aux mémoires programme et données : donc exécution plus rapide des
On connecte à la broche 0 de circuit U5 un interrupteur S1 et huit diodes LEDs à la sorties du circuit instructions.
U4. - Limite le problème de modification accidentelle des programmes
1. Traduire l’algorithme suivant en assembleur - Bien adaptée pour une mise en œuvre sur FPGA
Repeter toujours
De même cette architecture présente inconvénients tels que :
si S1 est fermé alors
Toutes les LEDs allumées
- Plus difficile à mettre en œuvre
sinon
Toutes les LEDs éteintes - Augmentation de nombre des broches du circuit
Finsi 2. Cet emplacement est appelé « le vecteur RESET ».
Fin Repeter
3. Un système à microprocesseur comprend : un microprocesseur, des mémoires RAM et ROM et
des périphériques.
2. Donner la codification en binaire des instructions, si on suppose que ce code commence à 4.
l’adresse 0200H. 38H : 00111000 9FH : 10011111 1BH : 00011011
+ 2FH : 00101111 + 61H : 01100001 – 20H : 00100000
VCC
= 67H : 01100111 = 100H : 100000000 = FBH : 11111011
R1 C = 0 , DC = 1 , Z = 0 C = 1, DC = 1, Z = 1 C = 0, DC = 1, Z = 0
Exercice 2 :
10K
U1 U3
RESET D0 D0
1. Architecture Van Neuman : puisque les mémoires ont le même bus d’adresses et ont le même
. . . .
. . . .
C1
100nF
Dp0
RAM
bus de données.
D7 D7
2. Les deux mémoires ont la même capacité, car elles ont le même nombre de lignes d’adresses.
. . . . . .
µP
C = 213 = 8192Octets = 8koctets = 64kbits
A0 A0 OE RD
GND
. . . .
. . . .
WR WR 3. RAM1 et ROM1
Dp15 A7 A6 a. Détermination des adresses
CS
RD
A7 5 6 Adr. en Hexa A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Adr. basse 0000H 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
RAM1
WR
. . . . . .
330
. . . . . .
Di Qi
b. Vous remarquez bien que la RAM1 est sélectionnée pour la combinaison
H
x8
(A15,A14,A13)=(0,0,0). Donc CS1 A15 A14 A13 d’où CS1 A15 A14 A13 =
.. . . .
ROM
U5 VCC
CS 4 A15. A14. A13 d’où CS 4 A15. A14. A13
.. . . .
Buffer
D0 E0 S1
c. Schéma de décodage
. . . . . .
. . . . . .
x8
Dp15 Di Ei R10 A13 1
1k A14 2 9 CS1
A15 8
.. . . .
D7 E7
RD 1 1
2 9 GND
A0 5 6 8
16 2 CS4
15
3 4
4. Ajout des mémoires
a. Adresses de base des nouvelles mémoires A13 A Y0 CS1
A14 B Y1 CS2
RAM2 est placée juste après, donc son adresse de base est RAM1
Y3
3FFFH. 64ko
La mémoire ROM2 est place avant la ROM1. Donc son 5. Le programme commence au début de la mémoire de programme, c’est-à-dire à l’adresse
adresse de base = adresse de base da la ROM1 – sa C000H
C000H, il faut donc charger cette valeur dans le vecteur RESET.
capacité = E000H – 2000H = C000H. ROM2 On charge donc à l’adresse FFFEH la valeur 00H et à l’adresse FFFFH la valeur C0H.
Pour l’adresse la plus haute = C000H+2000-1=DFFFH DFFFH
Exercice 3 :
E000H
ROM1
FFFFH
PARTIE A
Espace mémoire (Mappind)
b. Equations de sélection des nouvelles mémoires : 1. Ce circuit a pour rôle de générer une impulsion négative à la mise sous tension. Cette impulsion
Pour la RAM2, si on compare les adresses basse et haute : permet d’initialiser le microprocesseur.
2000H = 0010000000000000 et 3FFFH = 0011111111111111. On remarque les 2. La mémoire de données a 7 lignes d’adresse (A0 à A6) d’où C= 27 = 128octets. Cette mémoire
bits qui ne changent pas sont (A15,A14,A13) = (0,0,1) on déduit facilement que est sélectionnée lorsque la ligne d’adresse A7 = 1. D’où l’adresse la plus basse = 80H et
l’adresse la plus haute = FFH.
CS 2 A15 A14 A13 d’où CS 2 A15 A14 A13 3. La mémoire programme comporte 11 lignes d’adresses (Ap0 à Ap10), et chaque case à une
De même pour la ROM2. En comparant les adresses de début et de fin, on remarque largeur de 16 bits (Dp0 à Dp15). D’où Cp = 211=2kmots = 32kbits
que les bits qui ne changent pas sont (A15,A14,A13) = (1,1,0), on déduit alors que 4. Le circuit U4 est sélectionné quand A7 = 0 et A0 = 0 donc son adresse de base = 00H.
CS 3 A15 A14 A13 d’où CS 3 A15 A14 A13 De même le circuit U5 est sélectionné quand A7 = 0 et A0 = 1 donc son adresse de base =
c. Schéma de décodage d’adresse : On donne dans ce tableau les combinaisons de 01H.
sélection des mémoires qu’on a déterminé dans 3.b) et 4.b) PARTIE B
A15 A14 A13 CS1 CS 2 CS 3 CS 4
0 0 0 0 1 1 1 Code assembleur adresse Code machine
0 0 1 1 0 1 1 Boucle : movlw 01H ; Masque 0200H 0000 1110 0000 0001
1 1 0 1 1 0 1 andfw 01H ; 01H : adresse de U5 0201H 0001 0100 0000 0001
1 1 1 1 1 1 0 JZ Led_off ; sauter à Led_off 0202H 1111 0100 0000 0011
Choisissons à partir du tableau de fonctionnement du circuit 74138, les quatre movlw FFH ; LEDs allumées 0203H 0000 1110 1111 1111
combinaisons du tableau précèdent, c-à-d pour (C,B,A)=(0,0,0) et (0,0,1) et (1,1,0) et movwf 00H ; 00H :adresse de U4 0204H 0101 0000 0000 0000
(1,1,1). goto Boucle ; revenir au début 0205H 1110 0010 0000 0000
Led_off : movlw 00H ; LEDs éteintes 0206H 0000 1110 0000 0000
G 2 A G 2 B G1 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
movwf 00H ; 00H :adresse de U4 0207H 0101 0000 0000 0000
1 X X X X X 1 1 1 1 1 1 1 1 goto Boucle ; revenir au début 0208H 1110 0010 0000 0000
X 1 X X X X 1 1 1 1 1 1 1 1 JZ Led_off : c-à-d. on doit sauter à l’adresse 206H = PC + déplacement. A ce moment PC contient
X X 0 X X X 1 1 1 1 1 1 1 1
0 0 1 0 0 0 0 1 1 1 1 1 1 1
la valeur 0203H (0202H +1 : incrémentation de PC lors de décodage). D’où déplacement =
0 0 1 0 0 1 1 0 1 1 1 1 1 1 206H-203H=03H.
0 0 1 0 1 0 1 1 0 1 1 1 1 1
0 0 1 0 1 1 1 1 1 0 1 1 1 1
0 0 1 1 0 0 1 1 1 1 0 1 1 1
0 0 1 1 0 1 1 1 1 1 1 0 1 1
0 0 1 1 1 0 1 1 1 1 1 1 0 1
0 0 1 1 1 1 1 1 1 1 1 1 1 0
En comparant le deux tableaux, il suffit de connecter A15, A14, et A13 aux entrées C, B et A, et les
Ali hmidene
sorties Y 0 , Y 1 , Y 6 et Y 7 aux lignes de sélection CS1 , CS 2 , CS 3 et CS 4 . Il ne faut pas oublier de
connecter les entrées de validation G1 à VCC et G 2 A , G 2 B à la masse. Année : 2014
5 6