Vous êtes sur la page 1sur 13

UNIVERSITE HASSAN II

ECOLE NATIONALE SUPERIEURE


D’ELECTRICITE ET DE MECANIQUE

Département Génie Electrique

Filière A.I.I.

TRAVAUX DIRIGES

MICROPROCESSEURS ET PERIPHERIQUES

1ère G.E : FILIERE AUTOMATIQUE ET


INFORMATIQUE INDUSTRIELLE

Par : M. CHAOUI.

Année Universitaire 2018 / 2019


UNIVERSITE HASSAN II Année académique 2018/2019
E.N.S.E.M
CASABLANCA

T.D. n°1 de Microprocesseurs et périphériques.

1ère année G.E : Filière Automatique et Informatique Industrielle

Exercice n°1 :

Réaliser un bloc mémoire de 2 Koctets à partir de deux boîtiers de 1 Koctet.

Exercice n°2 :

On considère une mémoire EPROM 2716 reliée à un microprocesseur 68000 selon le


schéma de la figure ci-dessus.

1/ A quelle partie du bus de données D0 – D15 du microprocesseur 68000, sera relié le


bus de données de l’EPROM et pourquoi.

2/ Donner les adresses limites de l’EPROM, en justifiant votre réponse.

3/ Donner le schéma de liaison entre les signaux de lecture et d’écriture de l’EPROM


et ceux du microprocesseur 68000 (seulement ces signaux).

4/ Si on désire faire une extension de la mémoire sur les sorties 1 et 3 du décodeur


d’adresse, quelle serait les adresses limites de cette extension mémoire (pour des boitiers
mémoire de 2 Ko), justifier votre réponse.
D0 D7
D8 D15

A1 A11 EPROM
2Kx8
A0
A1
A2
74LS138 A3
O0 A4 D0
O1 A5 D1
A12 A6 D2
A O2 D3
A13 A7
B O3 D4
A14 A8
C O4 D5
A9
A16 . O5 D6
ET E3
A23 . A10 D7
E2 O6
A15 E1 O7 CS
OU
LDS RD

-1 -
Exercice n°3 :

Ecrire un programme en assembleur 68000 permettant de mettre les 4 bits de poids


forts de la case mémoire d’adresse $0100 à 0 et de conserver les 4 bits de poids faibles.

Exercice n°4 : Longueur d’une suite.

Ecrire un programme en assembleur 68000 qui permet de déterminer la longueur


d’une suite de nombres hexadécimaux. L’adresse du début de la suite est $0200. La fin d’une
suite est marquée par le nombre $0D. La longueur de la suite sera sauvegardée à l’adresse
$0300.

Exercice n°5 :

On désire calculer une distance définie par :

d = sup( x , y )

x et y sont deux entiers signés de 1 octet se trouvant respectivement aux adresses $0120 et
$0121.

1/ Ecrire le programme correspondant en assembleur 68000. Le résultat est déposé à


l’adresse $0130.

2/ Si le résultat est supérieur à $20 on met ce résultat à l’adresse $0140. Si le résultat


est inférieur ou égal à $20 on arrête.

Exercice n°6 : Plus grand élément et plus petit élément d’un tableau.

Soit une zone mémoire commençant à partir de l’adresse $0100 et contenant les
valeurs suivantes :

$06, $03, $01, $07, $08, $02, $00, $04, $09, $05

La taille de cette zone est contenue dans la case mémoire $0200 ( ($0200) = $0A )

1/ Donner l’organigramme qui permet de déterminer le plus grand élément et le plus


petit élément du tableau de la zone mémoire $0100. Le résultat doit être stocké dans les
registres D0 et D1, respectivement.

2/ Traduire cet organigramme en assembleur 68000.

-2 -
Exercice n°7 : Tri.

Soit une zone mémoire commençant à partir de l’adresse $0100 et contenant les
valeurs suivantes :

$06, $03, $01, $07, $08, $02, $00, $04, $09, $05

1/ Donner un organigramme qui réalise le tri par ordre décroissant sur la zone
mémoire ci-dessus.

2/ Traduire cet organigramme en assembleur 68000.

Exercice n°8 : Transfert de données d’une zone A vers une zone B

On désire effectuer un transfert de données d’une zone A dont l’adresse de base est
$0100 vers la zone B qui a pour adresse de base $0300. Le nombre de données à transférer est
de 50 données (5010 = $32).

1/ Représenter l’organigramme correspondant.

2/ Ecrire le programme en Assembleur 68000.

3/ Maintenant on veut réaliser un transfert des mêmes données de la zone A mais cette
fois dans l’ordre inverse. Ecrire le programme correspondant.

-3 -
UNIVERSITE HASSAN II Année académique 2018/2019
E.N.S.E.M
CASABLANCA

T.D. n°2 de Microprocesseurs et périphériques.

1ère année G.E : Filière Automatique et Informatique Industrielle

Exercice n°1 :

Donner le programme permettant :

• d’initialiser un PIA 6821 comme suit : le port A en entrée, le port B en sortie.


• de lire le contenu du port A et de le charger à l’adresse $1000.
• et d’écrire la valeur $00 dans le port B.

On suppose que le PIA est placé à l’adresse de base $007091, préciser alors les
adresses des registres internes du PIA.

Exercice n°2 :

Soient 8 leds reliées au port A d’un PIA 6821. On veut réaliser la configuration
suivante :

• Etape 1 : leds reliées aux PA7 et PA6 sont allumées pendant une seconde, les autres
sont éteintes.
• Etape 2 : leds reliées aux PA5 et PA4 sont allumées pendant une seconde, les autres
sont éteintes.
• Etape 3 : leds reliées aux PA3 et PA2 sont allumées pendant une seconde, les autres
sont éteintes.
• Etape 4 : leds reliées aux PA1 et PA0 sont allumées pendant une seconde, les autres
sont éteintes.
• On revient à l’étape 1 et ainsi de suite.

On suppose que :

+ ces 8 leds sont reliées à la masse.

+ on dispose d’un sous-programme de temporisation d’une seconde. Ce sous-


programme est appelé par : BSR TEMP.

-1 -
1/ Donner le câblage µP68000-PIA (préciser le décodage d’adresses) et PIA-leds
sachant que l’adresse de base du PIA est $00EF11 :

$00EF11 ORA et DDRA.


$00EF13 CRA.

2/ Donner le sous-programme (INIT) d’initialisation du PIA.

3/ Ecrire le programme d’allumage des leds.

Exercice n°3 :

On désire visualiser sur deux afficheurs 7 segments avec décodeur intégré la valeur
obtenue par un appareil de mesure après l’avoir multipliée par 10 décimal (= $0A).

Le principe de fonctionnement d’un afficheur 7 segments avec décodeur intégré est le


suivant :

E = 1 : Afficheur allumé.
E = 0 : Afficheur éteint.
A
B
C DCBA = 0000 : affichage de .
D DCBA = 0001 : affichage de .
... ...
E
... ...
DCBA = 1111 : affichage de .

Nous représentons ci-dessous les liaisons PIA-Appareil de mesure-Afficheurs.


PIA 6821

PB0
.
• les afficheurs sont toujours actifs (E=1).
.
PB3
PB PB4
.
A
B
C
A
B
C
• Exemple : si l’appareil de mesure envoie
.
PB7 D D
0001000 (16 en décimal) les afficheurs
E E 5V
doivent alors visualisés . En effet $A0
PA0
.
correspond à 160 décimal.
. Appareil
PA .
. de
.
.
PA7
mesure

Hypothèse : La valeur donnée par un appareil de mesure est inférieure ou égale à 25 décimal :
la valeur à afficher sera alors inférieure ou égale à 250 décimal et tiendra ainsi sur un octet.

1/ Sachant que l’adresse de base du PIA est $000301,

a- Donner le schéma de liaison µP68000-PIA(Préciser le décodage d’adresses).


b- Donner les adresses des registres internes du PIA.

-2 -
2/ Représenter un organigramme détaillé et bien commenté du sous-programme (INIT)
d’initialisation du PIA. Ecrire ce sous-programme.

3/ Représenter un organigramme détaillé et bien commenté du sous-programme de


multiplication par 10 en utilisant des décalages et des additions. Ecrire ce sous-
programme.

4/ Représenter un organigramme détaillé et bien commenté du programme principal.


Ecrire ce programme.

Exercice n°4 :

On désire commander les déplacements d’un chariot (C) par un système basé sur le
microprocesseur 68000.

Cahier des charges :

P1 P2
D
m a b D : marche droite.
C
G G : marche gauche

α- Si au début (C) n’est pas en P1, (C) se déplace à gauche jusqu’à P1.

β- Si (C) en P1 et si m = 1 : (C) fait le trajet P1 → P2 → P1

Interfaçage :

Port A :

PA7 PA0

b a m
Port B :

PB 7 PB0

bornes non
exploitées
G D

-3 -
1/ Donner le câblage µP68000-PIA (préciser le décodage d’adresses) sachant que
l’adresse de base du PIA est $000901 :

$000901 ORA et DDRA.


$000903 CRA.
$000905 ORB et DDRB.
$000907 CRB.

2/ Donner le sous-programme (INIT) d’initialisation du PIA.

3/ Donner l’organigramme d’un programme permettant de réaliser le cahier des


charges ci-dessus. Ecrire ce programme.

-4 -
UNIVERSITE HASSAN II Année académique 2018/2019
E.N.S.E.M
CASABLANCA

T.D. n°3 de Microprocesseurs et périphériques.

1ère année G.E : Filière Automatique et Informatique Industrielle

Exercice n°1 :

Soit un CNA (Convertisseur Numérique Analogique) qui permet de convertir un mot


binaire de 8 bits à une tension analogique comprise entre 0 et 5V comme suit :

E 7 ...E 0 = $00 → s( t ) = 0V
E0
. .
.
C.N.A s(t) E 7 ...E 0 = $80 → s( t ) = 2.5V
.
. .
E7 E 7 ...E 0 = $FF → s( t ) = (5 − 5 / 256) V = s max

On désire générer une tension en forme de dents de scie variant de 0 à smax à l’aide de
ce CNA. Un microprocesseur 68000 et un PIA 6821 sont utilisés à cet effet. Le CNA est relié
au port A du PIA. L’adresse de base du PIA est $008001.

1/ Donner le schéma de liaison microprocesseur–PIA (préciser le décodage d’adresses)


et de liaison PIA-CNA.

2/ Donner les adresses des registres internes du PIA.

3/ Donner l’organigramme et le programme permettant de réaliser cette fonction de


dents de scie.

-1 -
Exercice n°2 :

On dispose de 4 ko de données placées à partir de l’adresse $2000. Ces


données sont transmises à une imprimante afin qu’elles soient imprimées. L’imprimante est
configurée comme suit :

B.D CB 2 start
CB1 busy
µP 68000 PIA 6821
6 Imprimante
Port B

A la détection d’une transition active( )sur busy et d’un front montant( )sur start,
le PIA présente les données à imprimer. Lorsque le buffer de l’imprimante est rempli de 256
octets, le PIA arrête l’envoi des données et attend un autre front actif sur busy et un autre front
montant sur start et ainsi de suite jusqu’à ce qu’il termine les 4 ko de données à imprimer.

1/ Sachant que l’adresse de base du PIA est $00F001,

a- Donner le schéma de liaison µP-PIA (Préciser le décodage d’adresses).


b- Donner les adresses des registres internes du PIA.

2/ Sachant que le PIA travaille en mode programmé,

a- Présenter en concordance dans le temps les signaux CB1 et CB2.


b- Proposer un organigramme et un programme réagissant le système.

3/ Sachant que le PIA travaille en mode dialogue,

a- Présenter en concordance dans le temps les signaux CB1 et CB2.


b- Quelles sont les différences essentielles entre le mode dialogue et le mode
programmé.

Déduire le programme réagissant le système.

Exercice n°3 :

On dispose de 32 caractères ASCII placés à partir de l’adresse $1000. On


désire écrire le programme de transmission de ces 32 caractères à envoyer vers une
imprimante série ayant les caractéristiques suivantes : 2 bits de stop, parité paire, vitesse de
réception 4800 bauds. L’imprimante est relié indirectement à un µP 68000 via une interface
série ACIA 6850.

-2 -
1/ Sachant que l’adresse de base de l’ACIA est $00E001,

a- Donner le schéma de liaison µP-ACIA (Préciser le décodage d’adresses).


b- Donner les adresses des registres internes de l’ACIA.

2/ Donner l’organigramme et le programme en mode normal.

3/ En mode interruptible, donner le l’organigramme et le programme du Programme


Principal, ainsi que ceux du Sous-programme d’Interruption. .

Exercice n°4 :

On désire générer à l’aide d’un temporisateur programmable PTM 6840 la


forme des signaux suivants :

• sur la sortie O1, un signal carré périodique de période T1 = 40 s.


• sur la sortie O2, un signal décalé de 10 s et dont la période reste la même.
• sur la sortie O3, un signal qui permettra de déclencher O2 au bon moment.

N.B : On utilisera une horloge externe H de période 1 ms.

1/ Sachant que l’adresse de base du PTM est $00D001,

a- Donner le schéma de liaison µP-PTM (Préciser le décodage d’adresses).


b- Donner les adresses des registres internes du PTM.

2/ Donner le schéma de câblage du PTM 6840 (Entrées horloges ( C1 , C 2 , C3 ) ,


Entrées de déclenchement ( G 1 , G 2 , G 3 ) , Sorties des temporisateurs (O1, O2 , O3) et H) afin
de réaliser ces signaux.

3/ Donner les mots de commande et les mots à mettre dans les différents registres
tampons du PTM 6840.

4/ Proposer un programme pour la génération des différents signaux proposés.

-3 -
www.easy68k.com Copyright © 2004-2009 By: Chuck Kelly

XNZVC !
" # *U*U* "$% #$% & #$% &
" # " $% # $% & # $% ' ( % ) *
+ +
***** " , - *
+
! . -* !
+ ----- ) #
,+ ! ***** !
-+ ! ***** ! / 0 ! ) 1$ 2
& " # ***** " # & # &
" # " # & #
+ +
3 -**00 3 ) 3
3 3 , * !
3 ,+ ! -**00 ! 3 ) 3
3 ,+ ! ! 3 ) 3
3 ,+ ! 4 ! 3 4 4 ) 3 4 . )
4 # " ***** ( " " # (5 )
4 ! " ( "! 5 ! 1$ 2
( $ (5 ) "
6 7 ----- ( " 0
2 $8 9 ((
$
:; --*-- 3<= ( ' 4 '* ( ( .
$
! 3<= ( (
$
--*-- 3<= ( ' 4 '* ( (
$
! % (
?
> :; @ 1*A -**00 3<= ( ( (
?
> @ 1*A -**00 % ( ( (
?
>B&=4 @ 1*A -**00 ( ( # 67 (
( ) # 67
?
>B&=C @ 1*A -**00 ( ( ) (
( D # 67
?
>>>< @ 1*A -**00 ($ $ ( $ $ (( *
?
>,34 @ 1*A -**00 * ( , * ( (
?
>4B= @ 1*A -**00 $ ( ( 4 ( (
?
>=4= @ 1*A -**00 * ( ( 3 ) ( ( ' ( %
6 7 ----- * " 2 $8 9 ((
$
4B= --*-- 3<= ( ' 4 '* ( (
$
! $ (
6 7
4 ----- 4 E 2 $8 9 ((
$
=4= --*-- 3<= ( ' 4 '* ( (
$
! 3<= ! ( ' . )
:F -*UUU ( G% H = * % IJ
-0100 % D
K + -**** + +
* L
K + -**** * L
K ,+ ! -**** * ! !
K K+ " # -**** * # " # "E, # "
7
----- ( ( @ $ =
( GH $ A $8 9 ((
,M4 -***0 967 5 9$8 9 I $8 $8 / J
,MC -***0 67 5 $8 I $8 $8 / J
B< + -**00 +
&< ) # . <
B< , + ! -**00 ! &< ) # . < !
B< , + ! ! &< ) # . < !
B< , + ! 4 ! &< 4 4 ) # . < ! 4 . )
B&; # " ----- ) ) B# ) ) 67 "
B&= -**00 N 4) # )
, B; ----- 44 E 4 44 ; , ) , #
OK ----- ↑ O (( . (
O4 ----- 4 E↑ P
B ----- ↑ (( . (
,3F ! ----- 4 E4 E * 0 0
4 ! 4 ) .
4 # " ***0* ) ( " # (5 )
4 ! " ) ( "! 5 ! 1$ 2
) ( $ (5 ) "
K<MB + -**00 + +
K . (
K<MB K . )
K<MB 4 4 K . 4 ) . )
K<MB 4 ----- 4 K . 4 )
XNZVC !
XNZVC !
K<MB C4 ----- C4 K . C 4 0 . )
C4 C4 K . C 4 0 . )
K<MB + ----- K . K<MB K<MB
K<MBK+ ----- ) K . ( ) 5( "
) ) # (
K<MB ----- S 7 S + K . 5( " "
S 7 S + " .
K<MB-+ ! -**00 ! K . ) # 2 !
KC 4 -**00 9$8 T 9$8 9 K " ) $8 E 1 ) 67
KC C -**00 $8 T $8 K " )U $8 E 1 )U 67
3 *U*U* % $% & 3 ) * &
3B; ***** % 3 ) 7U
3B;& ***** % & 3 ) * &
3< ----- 3 3
3<= -**00 3<= ) 3<= $U
< + -**00 +
< ) <
< < , * !
< ,+ ! -**00 ! < ) < !
< ,+ ! ! < ) < !
< ,+ ! 4 ! < 4 4 ) < ! 4 . )
B ----- ↑ 4 (( . ( 0
B4B= ----- B4B= , * B4B= . )
< # " -**0* " # (5 ) * &
< ! " "! (5 ) ! 1$ 2
$ (5 ) "
<& # " ***0* " # 5 &
<& ! " "! (5 ) ! 1$ 2
$ (5 ) "
=B 4 4 E 4 ( # . )
= 4 4 (
=4 ----- 4 (
4 " # *U*U* #$% "$% & #$% L & L
" # # $% " $%L & # $% ' % ( ) *
4 ----- ,( $V ,( 11111111
%V 00000000
4=< ! ! 4 E 4=< K . ! 4 . )
4C + ***** +
4 " 4C , 4C - *
+
! . 4C - * !
4C + ----- 4 ) #
4C , + ! ***** ! 4 (
4C - + ! ***** ! 4 / 0 ! ) 1$ 2
4C & " # ***** # " & # 4 & (
" # # " L& #
4 -**00 I6$1$8J I$?1%J B# ) $8 . (
=4 -**00 E$ Q ( 3 ' ( Q ( $
= ! ----- 44 E4 44 E 4 ". !
. " ! ) 1 % $?
= M ----- ,( M = !Q ,( . ( * # <. ( * =
=4= -**00 3 ' (
C3 F ----- 4 E 4 . * 0 ( 0
XNZVC !
/ 5 < 6 3<= ⊕ &< E , C ) ) $8567 %Q 4
4 ) $8
/ / ) 25$8567 %Q
) * 2 (4
= $ M . ( * !M " ) B
7 ) . 8D 9 . ( * " #
> ( % M4 . ( * M "
U : " "
) 7+ . ↑ B((
:, ) ! +' !3 ! ; (( (
, (( 1* ( (
4 * ' K, 3
. 4 0 Q 4 . 4 0 67 C 4 0 67
:4 ) ! ;B ) / W 3⊕M ! "
) "E " " ((
< 4 * = 3⊕M #
D 1$ $ $72 $7Q " $% $& 67Q82 67Q8Q " ;3C )
3B / !' ;= ) WI 3 ⊕ M + 'J '
" , - K( ( C ! . - 0 D
B- / ' B / 3⊕M +' (
( D 3 " 82%%% B 4"82F " ( ( 82%7%
)) *+ ),* - ,. , , / 0 = !$? 0 0 ) %4 : ( ( . 0 )
" ( ) $ $ ! " ( ) $ $ " ( 0" 4 $ # " $ )
3C # 7?? * > 3C # 7?? * > 3 $ ) # 2%
' ( 0" $ ( ) ( 0" $ 1 " $ 4 ,, 2 4 $ $ (0 " ) %
3 $5$%% ) $ 4 = ) : ! ) $ ( !! * $ R>>%%
!# " ) $ * > !' " ) $ * > !( " ) $ 7 !2 " ) $ " $
!3 " ) $ $ !4 (0 " 4 " "9 $ ( 7 * "! 4 ( 4 (

Vous aimerez peut-être aussi