Compte Rendu TP1 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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