Microcontrôleur
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
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
4. Le programme complet :
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
END
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
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 :
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
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
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
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