34 1 454KB
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 : • •
II.
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. 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
Port B 7
g
AC
g
e d
câblage est donné par la figure ci-contre :
1
b c
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
Loop
LDAB
0,X
STAB
PORTB
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
Loop
BNE
RETOUR
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