Vous êtes sur la page 1sur 3

TP Microprocesseur

IMA1 2008/09

TP n°2 : ports parallèles, utilisation avancée


But du TP :
Ce second TP a pour but d'approfondir la gestion des ports parallèles en développant des
programmes plus complexes que lors du TP précédent, et ce avec l'aide éventuelle d'un
mini-compilateur.

Travail demandé :
Il s’agit de développer les 3 applications décrites ci-après (TP21, TP22 et TP23) et de les
tester sur un simulateur :

Utilisation d'un mini-compilateur (TP20):


La transposition en assembleur des algorithmes que vous aurez conçus pourra être faite, à
l'aide d'un mini-compilateur dont la prise en main fait l'objet d'une première manipulation en
séance.

Le fonctionnement du mini-compilateur est le suivant. Il lit un programme contenu dans un


fichier avec l'extension ".txt". A chaque fois qu'une ligne est reconnue comme étant une expression
arithmétique ou un instruction conditionnelle (si … saut …), elle est traduite en assembleur. Le
résultat final est mis dans un fichier avec l'extension ".asm" en vue de son assemblage. Attention, ce
compilateur considère toutes les variables comme des données non-signées 8 bits.

Après avoir étudié l'algorithme ci-dessous et déterminé ce qu'il fait, saisir et compiler son
fichier source (TP20.txt) pour ensuite le tester en étudiant les fichiers ".asm" et ".lst" obtenus.

PortA EQU $0000


DDRA EQU $0002
PortB EQU $0001
DDRB EQU $0003

var1 EQU $0800

ORG $FFFE
DW debut

ORG $8000

table: DB $01,$03,$07,$0F,$1F,$3F,$7F,$FF
debut: LDS #$0C00
DDRA=$FF
DDRB=$FF
PortA=$01
var1=0
PortB=table[var1]
boucle:
PortA=PortA*2+1
var1=var1+1
PortB=table[var1]
si var1<7 saut boucle
JMP debut

L'étude de cet algorithme et déterminer sa fonction, fait partie de la préparation ce TP.

1
Comptage pour parking : (TP21)
Il s'agit de réaliser une application destinée au comptage des voitures entrantes et sortantes
d'un parking afin d'afficher le nombre de véhicules présents dans le parking. Les caractéristiques de
cette application sont les suivantes :
- le port A est connecté à un afficheur 7-segments destiné à afficher le nombre de voitures
présentes dans le parking
- le parking possède 2 entrées et 2 sorties équipées chacune d'un détecteur de présence de
voiture. Ces détecteurs sont connectés aux broches PB0, PB1, PB2 et PB3 du port B.
Chaque fois qu'une voiture passe devant un de ces détecteurs, un signal logique 1 est émis
sur la broche associée et doit permettre d'incrémenter ou de décrémenter le compteur des
voitures
- un bouton RAZ (remise à zéro) doit permettre au gestionnaire du parking de remettre
l'afficheur à 0
Voici un schéma de synthèse de ce circuit :
0
RAZ
Port A PB7 5V
5 6 1 R 0V
PB0 Capteur entrée 1
68H912 4 2
PB1 Capteur entrée 2
3
PB2 Capteur sortie 1
Port B PB3 Capteur sortie 2

Afficheur numérique (TP22)


Il s'agit de réaliser le code pour un système comprenant un clavier 16 touches et un afficheur
7-segments. Les caractéristiques de cette application sont les suivantes :
- lorsque l'utilisateur appuie sur une touche numérique du clavier, la valeur de cette touche est
affichée sur l'afficheur 7 segments,
- les boutons '+' et '-' permettent d'incrémenter ou de décrémenter la valeur affichée,
- les touches restantes (F1, F2, F3 et F4) sont inutilisées,
- le port A est connecté à l'afficheur 7-segment,
- le port B est connecté au clavier 16-touches de type matriciel,
Voici un schéma de synthèse de ce circuit :
7 8 9 F1
PB4 R 0V
4 5 6 F2
0 PB5 R 0V

1 2 3 F3
Port A 5 1
6 PB6 R 0V
+ 0 - F4
68H912 4 2 PB7 R 0V
3 PB0 R 0V
PB1 R 0V
Port B PB2 R 0V
PB3 R 0V

2
Afficheur numérique sur 2 digits (TP23)
Il s'agit de réaliser une application similaire à la précédente mais utilisant cette fois deux
afficheurs 7-segments. Les modifications par rapport au système précédent sont les suivantes :
- les broches 0 à 6 port A sont connectées à deux registres de bascules D, dont la broche 7 du
port A gère la mémorisation des bascules
- chaque registre est connecté à un afficheur,
- initialement la valeur 00 est affichée,
- l'appui d'une touche numérique entraîne l'affichage de sa valeur sur l'afficheur des unités,
tandis que la précédente valeur des unités est reportée sur l'afficheur des dizaines.
- comme précédemment, les touches '+' et '-' permettent d'incrémenter ou de décrémenter le
nombre affiché.
Voici un schéma de synthèse de ce circuit :

0 0

5 6 1 5 6 1

4 2 4 2
3 3 7 8 9 F1
PB4
registre 7bits registre 7bits 4 5 6 F2
PB5
PA7 1 2 3 F3
Port A
PB6
+ 0 - F4
68H912 PB7
PB0
PB1
Port B PB2
PB3

Nota : les résistances 'pull-down' associées au clavier n'ont pas été représentées

La préparation des TP est très importante et est prise en compte dans la notation.
Elle consiste à avoir pris connaissance du sujet et à avoir préparé un algorithme (en
pseudo-langage ou dans un autre représentation) de chaque application.
Le codage en assembleur n'est pas à préparer et est fait lors de la séance de TP.