DUT 1 Informatique, CNAM Paris TP n°1 Microcontrôleurs 1/22
TP 1 : ASSEMBLEUR 68HC11
Le but de ce TP sur machine est de mettre en œuvre le jeu d’instruction et les modes
d’adressage du processeur 68HC11 de Motorola (une documentation détaillée sur les
instructions proposées par ce processeur sont en annexe).
1. Matériel utilisé (kit "68HC11EVBU2 68HC11E9")
Vous utiliserez le kit d’évaluation 68HC11EVBU2 de Motorola, avec un quartz 8 MHz
produisant une fréquence d'horloge à 2 MHz et un microcontrôleur 68HC11E9 dont le détail
est donné ci-après.
Fig 1 : KIT HC11EVBU2 utilisé
Fig 2 : Schéma interne du 68HC11 et caractéristiques de ses différentes versions
Important : Le microcontrôleur de la carte d’évaluation fonctionne en mode étendu. Ce qui
veut dire qu’il sort son bus d’adresses 16 bits (A15-A0) et son bus de données 8 bits (D7-D0)
vers l’extérieur par l’intermédiaire des ports B et C. Puisqu’il ne dispose avec ces 2 ports que
de 16 broches, un multiplexage temporel est réalisé sur les 8 bits de données et les 8 bits de
poids faible du bus d’adresses (Port C = A7/D7-A0/D0) comme le montre le chronogramme
suivant : adresses basses puis données sur le Port C, adresses hautes sur le port B.
Liaison série
Alimentation
5V
68HC11
E
A0/D0
AS
R/W
ORDINATEUR
DE
TYPE PC
R
A
M
Reset
Points test
Masses
DUT 1 Informatique, CNAM Paris TP n°1 Microcontrôleurs 2/22
A15-A8
Fig 3 : Chronogramme du 68HC11 pour fonctionnement en mode étendu
Fig 4 :Mapping mémoire et mémoire interne au 68HC11
RAM Interne de 0000 à 01FF libre à l'utilisateur (pas
d’accès à la mémoire externe via le bus de données)
REGISTRES internes de 1000 à 103F
EEPROM interne de B600 à B7FF
ROM Interne (on chip ROM) de D000 à FFFF
ROM test pattern (4ko) de D000 à DFFF
Moniteur Buffalo de E000 à FFFF
RAM externe (32 ko) de 8000 à B5FF et de B800 à CFFF
Le fonctionnement en mode développement d’une application avec une carte d’évaluation
implique la présence d’un programme « moniteur » (Buffalo monitor). Ce programme
moniteur est généralement présent dans une mémoire morte. Il permet de faire fonctionner le
microcontrôleur en pas à pas et ainsi de vérifier dans le détail le bon fonctionnement de
DUT 1 Informatique, CNAM Paris TP n°1 Microcontrôleurs 3/22
l’application développée. Il assure la communication entre l’ordinateur PC et la carte de
développement, via une liaison série de type RS232C.
En ce qui concerne la carte 68HC11EVBU2, ce programme « moniteur » est fournit par
Motorola et présent dans la ROM du microcontrôleur de la carte. Il s’appelle « BUFFALO
3.4 », son code source est fourni.
1.1. REGISTRES DE TRAVAIL DU 68HC11
Le microcontrôleur 68HC11E9 utilisé en travaux pratiques dispose en tout et pour tout de 8
registres de travail accessibles par programmation à l’aide du jeu d’instruction :
Deux accumulateurs 8 bits A et B (l’ensemble formant un accumulateur 16 bits D),
Deux registres d'index 16 bits X et Y,
Pointeur de pile 16 bits SP,
Compteur de Programme 16 bits PC (ou compteur ordinal),
Code Condition Register 8 bits CCR (équivalent au registre d'état vu en cours).
7 A 0
7 B 0
accumulateurs 8 bits A et B
15 D 0
ou accumulateur 16 bits D
15 X 0
registre d'index X
15 Y 0
registre d'index Y
15 SP 0
pointeur de pile
15 PC 0
compteur ordinal (ou de programme)
7 CCR 0
registre de code condition
Les 8 registres de l’unité centrale du 68HC11
Chaque bit du Registre Code Condition (CCR) à une signification propre :
S
X
H
I
N
Z
V
C
Retenue/
Borrow
Dépassement
Zéro
Négatif
7
6
5
4
3
2
1
0
Validation
Stop
masque XIRQ
Demi-retenue
masque IRQ
Registre CCR des indicateurs et des masques d’interruption
DUT 1 Informatique, CNAM Paris TP n°1 Microcontrôleurs 4/22
Les indicateurs du registre CCR sont de deux catégories : les bits 0, 1, 2, 3 et 5 positionnés en
fonction du résultat des instructions qui manipulent les données, et les bits 4, 6 et 7 dont le
rôle est lié au fonctionnement du microcontrôleur en interruption :
Bit 0 (C/B) : retenue issue de l'UAL (Carry) ou dépassement en non signé,
Bit 1 (V) : dépassement de capacité (oVerflow) lors d'une opération en signé,
Bit 2 (Z) : résultat de l'opération précédente est nul,
Bit 3 (N) : résultat de l'opération précédente est négatif,
Bit 5 (H) : retenue du bit 3 dans l'UAL pour les opérations en BCD,
Bit 4 (I) : masque général d'interruption IRQ et périphériques internes,
Bit 6 (X) : masque d'interruption rapide XIRQ,
Bit 7 (S) : instruction Stop validée ou non.
2. Introduction du programme en code machine
Le programme que vous allez exécuter est le suivant :
adresse code objet mnémoniques du programme
ORG $8000
8000 86 05 BOU LDAA #$05
8002 B7 80 07 STAA DATA
8005 20 F9 BRA BOU
8007 XX DATA RMB 1
C’est une petite boucle qui écrit en permanence la valeur 05h (5 en hexadécimale) dans la case
mémoire appelée DATA (adresse 8007h, les adresses sont indiquées en hexadécimale).
Vous disposez de 2 manières pour inscrire le programme dans la mémoire RAM du
microcontrôleur :
1) en écrivant le code objet dans la RAM du microcontrôleur,
2) en téléchargeant tout le code objet dans la RAM via la liaison série du PC.
Nous allons décrire ci-dessous la procédure à suivre pour télécharger tout le code objet dans
la RAM du microcontrôleur via la liaison série.
a) Téléchargement du code objet via la liaison série du PC
L’environnement de développement minimal pour utiliser le kit "68HC11EVBU2
68HC11E9" est dans le répertoire se trouve ce sujet de TP (en principe
barracuda/temp/GEII_2).
Il contient les fichiers suivants :
AS11.EXE : l’assembleur 68hc11,
Invite de comnande .lnk : pour lancer une fenêtre DOS,
68HC11.htt : HyperTerminal pour liaison série RS232C avec le PC,
Chrono.asm : un exemple de fichier source en assembleur,
CHRONO.S19 : fichier objet résultat de l'assemblage d'un programme source.
DUT 1 Informatique, CNAM Paris TP n°1 Microcontrôleurs 5/22
Création du programme source :
Créez (dans le répertoire de travail) un fichier que vos appellerez chrono.asm à l’aide du
Bloc note de Windows et écrivez les mnémoniques du programme indiqué pécédemment,
puis enregistrez le fichier.
Assemblage du programme (traduction en code objet) :
Lancez l’invite de commandes (dans le répertoire de travail) puis tapez la commande suivante
suivie de la touche <Entrée> :
as11 chrono.asm l
Le programme est assemblé, vous devez obtenir ceci.
L’assembleur a créé un fichier appelé chrono.s19, qui est un fichier texte au format s19 de
Motorola (fichier en caractères ASCII, téléchargeable via une liaison série).
Téléchargement du programme dans la RAM du microcontrôleur via la liaison
série à l’aide de l’HyperTerminal :
Lancez l’HyperTerminal (dans le répertoire de travail) en double-cliquant sur 68HC11.HT, la
fenêtre suivante doit s’ouvrir (attendre quelques secondes).
Appuyez sur le bouton reset de la carte HC11EVBU2 (petit switch entre le connecteur de la
liaison série et celui de l’alimentation). Vous devez obtenir le message suivant dans la fenêtre
de l’HyperTerminal :
« BUFFALO 3.4 (ext) - Bit User Fast Friendly Aid to Logical Operation ».
Appuyez une fois sur la touche <Entrée>.
Pour télécharger le fichier chrono.s19 dans la RAM du microcontrôleur, tapez la commande
suivante suivie de la touche <Entrée> :
LOAD T
Puis choisissez dans le menu transfert « envoyer un fichier texte » et sélectionnez votre fichier
chrono.s19.
1 / 22 100%