Polycopie-Tp-68hc11 2023 VFF
Polycopie-Tp-68hc11 2023 VFF
Polycopie-Tp-68hc11 2023 VFF
Travaux Pratiques
Système à Microcontrôleur
Filière : GEM-CMI
Hafiane Morad
1/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
Année 2022-2023
TP N°1
Commande d’un moteur à Courant Continu avec un
signal PWM par microcontrôleur 68HC11
Objectif :
- Commander un moteur à Courant Continu par un signal PWM au lieu
d’un signal analogique.
- Apprendre à générer un signal PWM sur les broches du microcontrôleur
pour commander un pont H.
- Apprendre à modifier le rapport cyclique du signal PWM et la tension
moyenne de commande en utilisant les sorties des comparateurs et le
Timer
- Commande du moteur à travers un profil du rapport cyclique variable et
une fréquence variable
Pont H L298N
UC
68HC11 Commande Moteur
Entrée interruption
IC3 : BP5
Adresse relais
$01
2/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
- Le départ cycle est donné par le bouton poussoir BP4 (valeur $0a sur l’adresse
ADR_bouton)
- Allumer le voyant vert (valeur $10 sur l’adresse Adr_relais) indiquant le système est en
marche.
- Générer un signal Ton sur la broche PA5 avec une temporisation qui décrémente la valeur
$FF jusqu’au la valeur 0.
- Générer un signal Tof sur la broche PA5 avec une temporisation qui décrémente la valeur
$FF jusqu’au la valeur 0.
- Calculer le temps du signal Ton et Tof en se basant sur le temps de cycle pour chaque
instruction utilisée dans la boucle de temporisation. (voir jeu d’instruction).
Structure du programme :
Adr_bouton equ $1D00
PortA equ $1000
Adr_relais equ $1A00
PACTL equ $1026
DDRA equ
org $9103
- Initialiser la bascule D (impulsion 0 puis 1 sur l’entrée CLR « broche pA4 ») en
utilisant jsr
Boucle ……..
……….
jsr tempoTon
….…….
jsr tempoTof
jsr init_bascule
Bra Boucle
TempTon …
rts
tempoTof
3/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
rts
init_bascule …
rts
END
- Le départ cycle est donné par le bouton poussoir BP4 (valeur $0a sur l’adresse
ADR_bouton)
- Allumer le voyant vert (valeur $10 sur l’adresse Adr_relais) indiquant le système est en
marche.
- Générer un signal Ton du PWM sur la broche PA5 avec le temps déjà calculé dans la
manipulation 1 en utilisant le Timer et le registre de comparaison TOC1.
- Générer un signal Tof du PWM sur la broche PA5 avec le temps déjà calculé dans la
manipulation 1 en utilisant le Timer et le registre de comparaison TOC4.
- Exécuter ce cycle du signal PWM sur une base de temps de 10 secondes en incrémentant
uniquement un compteur après les deux boucles de temporisations.
- pour créer les temporisations souhaitées, on veut rappel que la fréquence d’horloge de
microcontrôleur est de 8 Mhz avec un temps de cycle de 32,768 ms.
Structure du programme :
Adr_bouton equ $1D00
PortA equ $1000
Adr_relais equ $1A00
PACTL equ $1026
TOC1 equ
TOC2 equ
TFLG1 equ
org $9103
- Initialiser la bascule D (impulsion 0 puis 1 sur l’entrée CLR « broche pA4 ») en
utilisant jsr
BaseTemps ……..
……….
jsr tempoTon
….…….
4/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
jsr tempoTof
jsr init-bascule
……..
BNE BaseTemps
Bra fin
TempTon …
rts
tempoTof
rts
init_bascule …
rts
fin END
- Le départ cycle est donné par le bouton poussoir BP4 (valeur $0a sur l’adresse
ADR_bouton)
- Allumer le voyant vert (valeur $10 sur l’adresse Adr_relais) indiquant le système est en
marche.
- Commander le moteur selon le rapport cyclique 50% du signal PWM avec une période
T du signal PWM de 2 ms (voir l’algorithme ci-dessous)
- pour créer les temporisations souhaitées, on veut rappel que la fréquence d’horloge de
microcontrôleur est de 8 Mhz avec un temps de cycle de 32,768 ms.
5/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
Structure du programme :
Adr_bouton equ $1D00
PortA equ $1000
Adr_relais equ $1A00
Adr_7seg1 equ $1900
Adr_7seg2 equ $1B00
PACTL equ $1026
TOC1 equ
TOC2 equ
TFLG1 equ
OC1M equ
OC1D equ
TCTL1 equ
org $9103
- Initialiser la bascule D (impulsion 0 puis 1 sur l’entrée CLR) en utilisant jsr
- Attente départ cycle
- Algorithme du signal PWM
- Afficher le rapport cyclique PWM sur les deux afficheurs
Init_bascul …..
RTS
6/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
END
Travail demander :
Développer le programme en assembleur 68HC11 qui réalise les tâches suivantes :
- Le départ cycle est donné par le bouton poussoir BP4 (valeur $0a sur l’adresse
ADR_bouton)
- Allumer le voyant vert (valeur $10 sur l’adresse Adr_relais) indiquant le système est en
marche.
7/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
OC1D equ
TCTL1 equ
org $9103
- Initialiser la bascule D (impulsion 0 puis 1 sur l’entrée CLR) en utilisant jsr
- Attente départ cycle
- Algorithme du signal PWM 10%
- Afficher le rapport cyclique
- Algorithme du signal PWM 30%
- Afficher le rapport cyclique
- Algorithme du signal PWM 50%
- Afficher le rapport cyclique
- Algorithme du signal PWM 90%
- Afficher le rapport cyclique
Init_bascul …..
RTS
END
-
- Manipulation N° 5 : Commande d’un moteur à Courant Continu avec
un profil variable du signal PWM généré via le Timer par deux
comparateurs OC1&OC3
- Le départ cycle est donné par le bouton poussoir BP4 (valeur $0a sur l’adresse
ADR_bouton)
- Allumer le voyant vert (valeur $10 sur l’adresse Adr_relais) indiquant le système est en
marche.
8/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
Structure du programme :
Adr_bouton equ $1D00
PortA equ $1000
Adr_relais equ $1A00
Adr_7seg1 equ $1900
Adr_7seg2 equ $1B00
PACTL equ $1026
TOC1 equ
TOC2 equ
TFLG1 equ
OC1M equ
OC1D equ
TCTL1 equ
org $9103
- Initialiser la bascule D (impulsion 0 puis 1 sur l’entrée CLR) en utilisant jsr
- Attente départ cycle
- Algorithme du signal PWM 10%
- Afficher le rapport cyclique
- Algorithme du signal PWM 30%
- Afficher le rapport cyclique
- Algorithme du signal PWM 50%
- Afficher le rapport cyclique
- Algorithme du signal PWM 90%
Afficher le rapport cyclique
- Algorithme du signal PWM 75%
- Afficher le rapport cyclique
- Algorithme du signal PWM 30%
- Afficher le rapport cyclique
- Algorithme du signal PWM 10%
Afficher le rapport cyclique
Init_bascul …..
RTS
9/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
END
TPN°2
Gestion d’interruption par microcontrôleur
Objectif :
- Gestion du mode de sécurité et de réarmement d’un moteur à courant
Continu par mode d’interruption
- Commande d’un système de ventilation en mode d’interruption
- Apprendre à changer le profil de vitesse d’un moteur par mode
d’interruption
org $9103
jsr init_regis
jsr init_bascul
cli
- Charger l’étiquette du sous programme d’interruption INTER dans le vecteur $01E9
- INTER Arrêt moteur (agir sur les bits des registres OC1M et OC1D)
Clignotement led
Attente bouton de réarmement
………………
Jsr init_bascul
jsr init_regis
Activer la sortie de comparaison OC1 (bits OC1M et OC1D)
RTI
init-bascule
….
rts
init_regis ;sous routine de configuration des registres des interruptions
jsr init-bascule ;reset des bascules
lda #masque_int
sta TMSK1 ;valide les interruptions sur IC1
lda #$20
staa TCTL2 ;interruptions sur front descendant
bset TFLG1 #$04 ;mise à 0 des interruption précédentes
rts
END
On veut gérer le mode surchauffe du moteur simulé via un bouton poussoir, ainsi une
demande d’interruption sera générer au niveau de la ligne IC1 du portA (PA2) du
microcontrôleur 68HC11.
Mode de fonctionnement :
Le fonctionnement normal du moteur est celui de la manipulation 3 du TP1. Une fois on appui
sur le bouton d’arrêt d’urgence BP5, une demande d’interruption est régénérée sur la ligne
d’entrée de comparaison IC1, le microcontrôleur quitte le programme principale pour se
brancher au sous programme d’interruption stocké dans le vecteur l’adresse mémoire $01E9.
Dans ce sous-programme on va arrêter le moteur et commander un ventilateur à travers la
sortie Adr_relais (valeur $01)
Changer le profil du signal PWM à 20% jusqu’au l’appui sur le bouton de réarmement
BP10 (valeur $13 dans l’adresse Adr_bouton) pour reprendre le fonctionnement normal .
L’interruption est active sur front descendant.
org $9103
jsr init_regis
jsr init_bascul
cli
- Charger l’étiquette du sous programme d’interruption INTER dans le vecteur $01E9
- INTER Arrêter le moteur (agir sur les bits des registres OC1M et OC1D)
Commander le ventilateur
Changer le rapport cyclique à 20% du PWM
Afficher le rapport en cours sur les deux afficheurs
Attente bouton de réarmement BP10
Arrêter la commande ventilateur
………………
12/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
Jsr init_bascul
jsr init_regis
Activer la sortie de comparaison OC1 (bits OC1M et OC1D)
RTI
init-bascule
….
rts
init_regis ;sous routine de configuration des registres des interruptions
jsr init-bascule ;reset des bascules
lda #masque_int
sta TMSK1 ;valide les interruptions sur IC1
lda #$20
staa TCTL2 ;interruptions sur front descendant
ldx #TFLG1
bset 0,X $04 ;mise à 0 des interruption précédentes
rts
END
org $9103
jsr init_regis
jsr init_bascul
cli
- Charger l’étiquette du sous programme d’interruption INTER dans le vecteur $01E9
- INTER Arrêt moteur (agir sur les bits des registres OC1M et OC1D)
Commander le ventilateur
Changer le rapport cyclique à 70% du PWM
Changer le rapport cyclique à 90% du PWM
Afficher le rapport en cours sur les deux afficheurs
rts
init_regis ;sous routine de configuration des registres des interruptions
jsr init-bascule ;reset des bascules
lda #masque_int
sta TMSK1 ;valide les interruptions sur IC1
lda #$20
staa TCTL2 ;interruptions sur front descendant
ldx #TFLG1
bset 0,x $04 ;mise à 0 des interruption précédentes
rts
END
14/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
org $9103
jsr init_regis
jsr init_bascul
cli
- Charger l’étiquette du sous-programme d’interruption INTER dans le vecteur $01E9
- INTER Arrêter le moteur (agir sur les bits des registres OC1M et OC1D)
Commander le ventilateur
15/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
rts
init_regis ;sous routine de configuration des registres des interruptions
jsr init-bascule ;reset des bascules
lda #masque_int
sta TMSK1 ;valide les interruptions sur IC1
lda #$20
staa TCTL2 ;interruptions sur front descendant
ldx #TFLG1
bset 0,x $04 ;mise à 0 des interruption précédentes
rts
END
16/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
- 12 Koctets de EPROM
▪ 1 écran LCD
17/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
Schéma de la
carte :
18/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
19/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
20/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
21/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
22/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
23/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
24/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
25/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
26/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
27/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
28/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
29/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
30/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
31/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
32/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
33/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
34/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
35/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
36/37
Sabor /Hafiane
TP système à microcontrôleur ENSAM-MEKNES
37/37
Sabor /Hafiane