Vous êtes sur la page 1sur 11

Semestre : 3

Elément de module : Microcontrôleurs et DSP

Compte Rendu du TP1

Microcontrôleur

Rédigé par :AZIZ DAMOUH


Classe : 2ème année GE-SEER
Encadré par : Mr.Abdelhadi RAIHANI
Année universitaire : 2020/2021
I. Objectifs de TP N°1 :

• Se familiariser à la programmation des microcontrôleurs afin de répondre à un problème;


• Savoir utiliser le logiciel THRSim11, le simulateur du microcontrôleur Motorola 68HC11.

II. Qu’est-ce que le logiciel THRSIM11:

Le microcontrôleur Motorola 68HC11 est un microcontrôleur populaire utilisé dans de nombreuses


applications. Avec le programme THRSim11, vous pouvez éditer, assembler, simuler et déboguer des
programmes pour le 68HC11 sur votre PC Windows. Vous pouvez également utiliser THRSim11 pour
déboguer le programme sur votre carte compatible EVM ou EVB cible. Le simulateur simule le
processeur, la ROM, la RAM et tous les ports d'E / S mappés en mémoire. Il simule également les
périphériques embarqués tels que:

• timer (including pulse accumulator),


• analog to digital converter,
• parallel ports (including handshake),
• serial port,
• I/O pins (including analog and interrupt
pins).

THRSim11 peut communiquer avec les cartes Motorola


EVM et EVB ou avec toute autre carte exécutant le
programme de surveillance BUFFALO. Ce programme de
surveillance peut être téléchargé (gratuitement) à partir du site Web de Motorola. Lorsque votre
programme d'assemblage est chargé dans la carte cible, l'interface utilisateur graphique permet de
visualiser et de contrôler chaque registre (registres CPU et registres d'E / S) et l'emplacement de la
mémoire (données, programme et pile) du véritable microcontrôleur. Il est possible d'arrêter
l'exécution à n'importe quelle adresse et d'inspecter ou de modifier les registres et la mémoire.

Exercice1 :
L’objectif est d’écrire un programme pour afficher le chiffre hexadécimal (0-F) placé à la case
mémoire d’adresse $0300(data) sur un afficheur 7 segments à cathode commune. Le schéma de

0 a a
f b
Port B g
g e c
7 AC
d

câblage est donné par la figure ci-contre :

1
1. La condition pour allumer un segment est d’envoyer un ‘1’car il s’agit d’un afficheur à
cathode commune.
2. La table de correspondance entre les codes binaires et les codes hexadécimal de tous les
chiffres qu’on désire allumer (0-F) :
3.h g f e d c b a
0 0 0 1 1 1 1 1 1 $3F
1 0 0 0 0 0 1 1 0 $06
2 0 1 0 1 1 0 1 1 $5B
3 0 1 0 0 1 1 1 1 $4F
4 0 1 1 0 0 1 1 0 $66
5 0 1 1 0 1 1 0 1 $6D
6 0 1 1 1 1 1 0 1 $7D
7 0 0 0 0 0 1 1 1 $07
8 0 1 1 1 1 1 1 1 $7F
9 0 1 1 0 1 1 1 1 $6F
A 0 1 1 1 0 1 1 1 $77
B 0 1 1 1 1 1 0 0 $7C
C 0 0 1 1 1 0 0 1 $39
D 0 1 0 1 1 1 1 0 $5E
E 0 1 1 1 1 0 0 1 $79
F 0 1 1 1 0 0 0 1 $71

3. La directive pour placer les codes hexadécimal dans une table commençant à
l’adresse

CODE EQU $0000 : $3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F,$77,$7C,$39,$5E,$79,$71

4. Le programme complet :

DATA EQU $0300

PORTB EQU $1004

CODE EQU $0000

PRG EQU $C000

ORG CODE

2
FCB $3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F,$77,$7C,$39,$5E,$79,$71

ORG PRG

LDX #0

LDAB DATA

ABX

LDAB 0,X

STAB PORTB

Loop bra loop

END

5. Le programme affichant tous les chiffres de la table (avec


temporisation) :
DATA EQU $0300

PORTB EQU $1004

CODE EQU $0000

PRG EQU $C000

TMP EQU $0050

ORG CODE

FCB $3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F,$77,$7C,$39,$5E,$79,$71

ORG PRG

CLRB

RETOUR LDX #0

ABX

LDAA 0,X

STAA PORTB

JSR TMP

INCB

CMPB #$10

BNE RETOUR

Loop bra loop

3
ORG TMP

LDY #$0100

BOUCLE DEY

BNE BOUCLE

RTS

END

6. Application :

4
Exercice 2 :

1. Description :
Le modèle d’un système d’alarme dans un bâtiment comprend :

• Un interrupteur principal pour activer le système d’alarme,


• Un interrupteur de porte et deux interrupteurs de fenêtre,
• Un capteur de surveillance de l’environnement,
• Respectivement une LED pour l’état de l’installation et pour ‘amorçage de
l’alarme, et
• Un vibreur comme sirène d’alarme.

Avec l’interrupteur principal(Q1), on active le système d’alarme et tous les capteurs et contacts
sont alors surveillés. Une LED de contrôle verte(I3) indique la « disponibilité ».

Lorsqu’un (ou plusieurs) des contacts à la porte(Q2) et aux fenêtres (Q3 et Q4) sont activés, la
LED rouge(I1) doit clignoter et l’alarme (I2) doit retenir. Le système d’alarme reste activé jusqu’à
ce que vous ayez acquitté le signal, c’est-à-dire jusqu’à ce que le système d’alarme soit désactiva
avec l’interrupteur principal .L’alarme acoustique se désactive cependant au bout de 10
secondes.

Dès que le capteur d’environnement (Q5) est activé, la diode LED rouge d’alarme doit clignoter.

Une alarme d’environnement se termine quand vous la désactivez avec c l’interrupteur principal
ou quand l’intrus s’éloigne.

5
2. Montage :
Il serait possible de Q1 à tous les autres ports comme il s’agit de l’interrupteur principal qui
active le système en entier. I1 et I2 seront connectés à Q2, Q3 et Q4. En effet si un des 3
capteurs détecte une présence I1 et I2 s’activeront. Q2, Q3 et Q4 seront connectés en parallèles.
I3 sera connecté à Q5, car dès la détection d’un objet la LED I1 clignotera.

3. Programme et sous-programme :
Le programme de gestion d’alarme sera constitué de trois parties :
-SP clignote : Allume la LED alarme pendant 0.5s et l’éteint pendant 0.5s. Ce sousprogramme
sera appelé par clignote.

-SP alarme : réalise une temporisation de 0.5s sera appelé par Tempo.
-Programme principal : main

▪ SP Alarme
LDAB #$00FF
TEMP1 LDAA #$00FF
TEMP2 DECA
BNE TEMP2
DECB
BNE TEMP1
RTS
SWI

Il est nécessaire de faire un petit calcul pour la temporisation.


Le programme nous donne : 9T+10TN
Avec T : temps par cycle et N : le nombre qui doit être chargé en A et B
Pour 5s et en négligeant 9T (qui est égal à 4,5 s) 5*10-6 *N= 5 Donc théoriquement : N= 106
Pratiquement nous allons prendre un nombre arbitraire à mettre sur le logiciel :

6
▪ SP Clignote
LDAA #$05
ORAA PORTB
STAA PORTB
JSR TEMPO
LDAA PORTB
ANDA #$06
STAA PORTB
JSR TEMPO
RTS

▪ Programme principal
MAIN EQU $C000
PORTB EQU $0004
PORTA EQU $0000
PACTL EQU $0003
CLIGN EQU $0100
TEMPO EQU $0200

ORG MAIN
CLR PACTL
PRINPAL LDX #PORTA
BRSET 0,X $01 GO

7
CLR PORTB
BRA PRINCPL
GO LDAA #$04
STAA PORTB
LDX #PORTA
BRSET 0,X $03 ALARME
BRSET 0,X $05 ALARME
BRSET 0,X $09 ALARME
BRSET 0,X $07 ALARME
BRSET 0,X $0D ALARME
BRSET 0,X $0F ALARME
BRA BOUCLE

ALARME LDAA #$07

8
STAA PORTB
LDY #$00015
LOOP DEY
JSR CLIGN
LDX #PORTA
BRCLR 0,X $01 DES
CPY #$0000
BNE LOOP
DES LDAA #$05
STAA PORTB
BRCLR 0,X $01 PRIN PA L
CLGNT JSR
CLIGN BRCLR 0,X $01 PRINCP AL
BRA CLGNT
BOUCLE LDX #PORTA
BRSET 0,X $81 EXISTE
BRA PRINCP A L
EXI STE JSR CLIGN
LDX #PORTA
BRCLR 0,X $01 PRINCP AL
BRCLR 0,X $80 PRINCP AL
BRCLR 0,X $81 PRINCP AL
BRA EXISTE

ORG CLIGN

LDAA #$05 ORAA PORTB


STAA PORTB
JSR TEMPO
LDAA PORTB
ANDA #$06
STAA PORTB
JSR TEMPO
RTS

ORG TEMPO

9
Conclusion

Le but de ce TP est de vous familiariser avec le logiciel THRSIM11 qui sert a la programmation du
microcontrôleur 68hc11 Motorola. en effet la simulation avec des logiciels montre l’importance de
prise en considération de syntaxe et le jeu d’instruction, donc partant du cahier de charge on peut
résoudre n’importe qu’il problème qui a un cahier de charge bien défini.

10

Vous aimerez peut-être aussi