Top Banner
Tous les Cours | Les microcontrôleurs PIC | Les microcontrôleurs ATMEL AVR | Programmation en langage Pascal (Mikropascal) | Application en mikropascal : Porte automatique de garage | Programmation en langage C (Pic C Compiler PCWH) | Le Bus I2C | Mémoires série 24C32 | Tutorial Mikropascal | Tutorial Pic C Compiler | Tutorial Logipic | Tutorial Edit Algo | Tutorial IcProg | Chapitre 2b APPLICATION SUR LA PROGRAMMATION EN MIKROPASCAL PORTE DE GARAGE AUTOMATIQUE Application réalisée par Mr ABIDI Hatem (ISET Nabeul) et introduite dans le manuel de cours pour les élèves du BAC technologie pour plus d'informations contactez moi sur le forum (Administrateur). Les schémas et les programmes sont téléchargeables sur le site sous la page téléchargement. -- >activités 4,5,6 Mise en situation : Présentation du système :Porte automatique L'ouverture et la fermeture automatique de la porte d'un garage d'automobile sont assurées par un système technique comportant les éléments suivants : 1. Télécommande à distance. 2. Moteur à courant continu + réducteur. Equipement Atelier Garage Importateur - Vente directe Livraison rapide - garantie 1an www.directimportfr.com Logiciel: gagnez du temps AGL WinDev 15 : complet et rapide Version Express française gratuite www.pcsoft.fr Gestion programmes - DNC Gérez vos programmes Cn et dossiers de fabrication, transferts Cn. www.lmba.fr 13/04/2010 Application sur la Programmation en … technologuepro.com/…/application_m… 1/15
15

pplication sur la Programmation en mikropascal

Apr 28, 2015

Download

Documents

Omar Medbouh

pplication sur la Programmation en mikropascal
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: pplication sur la Programmation en mikropascal

Tous les Cours | Les microcontrôleurs PIC | Les microcontrôleurs ATMEL AVR | Programmation en langage Pascal (Mikropascal) |Application en mikropascal : Porte automatique de garage | Programmation en langage C (Pic C Compiler PCWH) | Le Bus I2C | Mémoires

série 24C32 |Tutorial Mikropascal | Tutorial Pic C Compiler | Tutorial Logipic | Tutorial Edit Algo | Tutorial IcProg |

Chapitre 2b

APPLICATION SUR LA PROGRAMMATION EN MIKROPASCAL PORTE DE GARAGE AUTOMATIQUE

Application réalisée par Mr ABIDI Hatem(ISET Nabeul) et introduite dans lemanuel de cours pour les élèves du BACtechnologie pour plus d'informationscontactez moi sur le forum(Administrateur). Les schémas et lesprogrammes sont téléchargeables sur lesite sous la page téléchargement. -->activités 4,5,6

Mise en situation :

Présentation du système :Porteautomatique

L'ouverture et la fermeture automatique de la porte d'un garage d'automobile sontassurées par un système technique comportant les éléments suivants :

1. Télécommande à distance.

2. Moteur à courant continu + réducteur.

Equipement Atelier GarageImportateur - Vente directeLivraison rapide - garantie 1anwww.directimportfr.com

Logiciel: gagnez du tempsAGL WinDev 15 : complet et rapideVersion Express française gratuitewww.pcsoft.fr

Gestion programmes - DNCGérez vos programmes Cn etdossiers de fabrication, transfertsCn.www.lmba.fr

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 1/15

Page 2: pplication sur la Programmation en mikropascal

3. Carte de commande + pupitre.

4. Lampe de signalisation.

5. Antenne de réception.

6. Capteurs de fin de course.

Dans une première partie on va s'intéresser à la télécommande qui nous permet decommander la porte à distance, le principe est basé sur l'émission d'un code binairesur dix bits [C0..C9] reconnaissable par la carte de commande de la porte.

Ce code est composé de deux parties :

Ordre d'ouverture /fermeture

Code d'identification de la télécommande

C9 C8 C7 C6 C5 C4 C3 C2 C1 C0

Pour donner la possibilité à l'utilisateur d'adapter une nouvelle télécommande à laporte du garage ou de la remplacer en cas de panne, le constructeur a prévu unmicroswitch sur la télécommande qui nous permet de définir le code d'identification.Celui-ci est généralement inscrit sur la carte de commande ou donné dans le manueld'utilisation de la porte.

Le code correspondant à l'ordre d'ouverture ou de fermeture de la porte (C9,C8) estle suivant : (10 : ordre d'ouverture ; 11 : ordre de fermeture)

Le schéma de la télécommande est le suivant :

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 2/15

Page 3: pplication sur la Programmation en mikropascal

on suppose que le code inscrit sur la carte de commande de la porte est le suivant :

Colorer les positions du microswitch SW1 sur la figure suivante :

Compléter les chronogrammes suivants :

Déterminer le rôle de l'algorithme suivant :

Algorithme test ;

Début

TRISAç $03;

TRISBç $FF;

POUR i variant de 7 jusqu'a 0 FAIRE

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 3/15

Page 4: pplication sur la Programmation en mikropascal

Début

SI PortB.i =1 ALORS Porta.2 ç 1

SINON Porta.2 ç 0;

Attente (10ms);

Fin;

Fin.

Ecrire un algorithme pour la télécommande de la porte automatique de garage.

1- Création d'un projet sur Mikropascal :

Première étape : Edition du projet

Lancer l'application Mikropascal puis cliquer sur l'icône « nouveau projet » ousélectionner le menu « Project ànew Project »

Deuxième étape :

Remplissez la boite de dialogue suivante avec des valeurs désirées.

Troisième étape : Saisie du programme

Lors de la fermeture de la fenêtre précédente on peut écrire notre programme sur l'éditeur de code comme suit :

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 4/15

Page 5: pplication sur la Programmation en mikropascal

Saisir le programme suivant :

program telecommande;

procedure trans_code;

var i : integer;

begin

for i:=7 downto 0 do

begin

if PortB.i =1 then setbit(porta,2) else clearbit(porta,2); delay_ms(10);

end;

end;

begin

trisA:=$03; trisB:=$FF;

while (1=1)

do

begin

PortA.2 :=0;

if portA.0=1 then

begin

PortA.2 :=1; delay_ms(20) ; trans_code;

end;

if portA.1=1 then

begin

PortA.2 :=0; delay_ms(10) ; PortA.2 :=1; delay_ms(10) ;

trans_code;

end;

end;

end.

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 5/15

Page 6: pplication sur la Programmation en mikropascal

· Quatrième étape : Compilation

Après l'edition du programme on clique sur l'icône ou sur le menu« Projectàbuild »

La barre de progrès vous informera au sujet du statut de compilation. S'il y ades erreurs, on vous l'annoncera dans la fenêtre d'erreur

Si aucune erreur n'est produite,le message suivant sera affiché et le fichiertélécommande.hex sera crée dans le répertoire de travail.

· cinquième étape : Simulation

La simulation du programme peut se faire facilement avec le logiciel ISIS.

Charger le programme dans le microcontrôleur

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 6/15

Page 7: pplication sur la Programmation en mikropascal

NB: Si vous fermez l'oscilloscope pendant la simulation il n'apparaîtra pas lorsquevous relancer la simulation une deuxième fois, il faut le supprimer et placer un autreoscilloscope

· sixième étape : Chargement du programme dans le PIC16F84A

Lancer l'application IC-Prog puis sélectionner le type du microcontrôleur et enfin charger le fichier télécommande.hex

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 7/15

Page 8: pplication sur la Programmation en mikropascal

Brancher le programmateur sur le port du PC puis placer le microcontrôleur et lancerle chargement du programme.

· septième étape : Test du fonctionnement.

Sur plaque d'essai câbler le schéma de la télécommande et vérifier le fonctionnementpar un oscilloscope.

I- Application :

La carte de commande de la porte automatique est aussi construite à base dumicrocontrôleur PIC16F84A. Elle contient les éléments suivants :

· Un clavier matriciel 12 touches. Permettant à l'utilisateur d'ouvrir la porte enintroduisant un code de 4 chiffres manuellement.

· Un module récepteur hybride HF. permettant la réception d'ordre d'ouverture oude fermeture de la télécommande à distance.

· Des relais pour la commande du moteur et de la lampe.

Voici le schéma interne de la carte de commande :

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 8/15

Page 9: pplication sur la Programmation en mikropascal

Dans un premier lieu on s'intéressera à la commande par le clavier.

Schéma structurel d'un clavier 12 touches

Le principe de ce type de clavier est simple en effet l'appui sur une touche réalise uncontact direct entre la ligne et la colonne de cette touche.

Pour pouvoir lire une touche appuyée par le microcontrôleur on procède comme suit :

On fait un balayage sur les colonnes c'est-à-dire on envoie les séquences suivantes(100, 010, 001).

On lit l'état des lignes sur 4 bits (A, B, C, D)

On aura le tableau de correspondance suivant :

Séquence A B C D Touche appuyée

100 0 0 0 0 Aucune touche

1 0 0 0 T1

0 1 0 0 T4

0 0 1 0 T7

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 9/15

Page 10: pplication sur la Programmation en mikropascal

0 0 0 1 T10

010 0 0 0 0 Aucune touche

1 0 0 0 T2

0 1 0 0 T5

0 0 1 0 T8

0 0 0 1 T11

001 0 0 0 0 Aucune touche

1 0 0 0 T3

0 1 0 0 T6

0 0 1 0 T9

0 0 0 1 T12

On vous donne l'algorithme de lecture du clavier :

Algorithme clavier ;

Var T : octet ;

Début

Tç0 ; {Initialisation de la variable T}

TRISB ç $F1 ; {RB1, RB2, RB3 : sorties ; RB4, RB5, RB6, RB7 : entrées}

TANQUE (1=1) FAIRE {Boucle infinie}

Début

PortB ç (00000010)2 ; Attente (10ms) ; {Première séquence}

T ç PortB ; Tç T décalé à droite de 4 positions ; {Lecture de RB4, RB5, RB6 et RB7}

SI T=8 ALORS Tç10; SI T=4 ALORS Tç7; SI T=2 ALORS Tç4;

SI T=1 ALORS Tç1; {codage}

SI T<> 0 ALORS Sortie ; {sortie de la boucle si il y a appui sur une touche}

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 10/15

Page 11: pplication sur la Programmation en mikropascal

PortB ç (00000100)2 ; Attente (10ms) ; {Deuxième séquence}

T ç PortB ; Tç T décalé à droite de 4 positions ; {Lecture de RB4, RB5, RB6 et RB7}

SI T=8 ALORS T:=11 ; SI T=4 ALORS T:=8 ; SI T=2 ALORS T:=5 ;

SI T=1 ALORS T:=2 ; {codage}

SI T<> 0 ALORS Sortie ; {sortie de la boucle si il y a appui sur une touche}

PortB ç (00001000)2 ; Attente (10ms) ; {Troisième séquence}

T ç PortB ; Tç T décalé à droite de 4 positions ; {Lecture de RB4, RB5, RB6 et RB7}

SIT=8 ALORS T:=12 ; SI T=4 ALORS T:=9 ; SI T=2 ALORS T:=6 ;

SI T=1 ALORS T:=3 ; {codage}

SI T<> 0 ALORS Sortie ; {sortie de la boucle si il y a appui sur une touche}

Fin ;

Fin.

1) En vue de simuler le fonctionnement du clavier sur le logiciel ISIS, on réalise leschéma suivant :

On vous donne le programme relatif à l'algorithme sous forme de procédure.

Compléter le programme suivant de sorte que le code de la touche appuyée soit sortisur le port A du microcontrôleur.

N'oublier pas de configurer les registres TRISA et TRISB du microcontrôleur.

Compiler le programme avec le logiciel Mikropascal puis simuler le fonctionnementavec le logiciel ISIS. Vous pouvez aussi tester le fonctionnement sur plaque d'essai.

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 11/15

Page 12: pplication sur la Programmation en mikropascal

program Telecommande;

var T: byte;

procedure clavier;

begin

while (true) do

begin

PortB:=%00000010 ; delay_ms(10) ; T :=PortB ; T:=(T shr 4);

if T=8 then T:=10; if T=4 then T:=7; if T=2 then T:=4;

if T<> 0 then exit ;

PortB:=%00000100; delay_ms(10) ; T:=PortB ; T:=(T shr 4);

if T=8 then T:=0 ; if T=4 then T:=8 ; if T=2 then T:=5 ;

if T=1 then T:=2 ; if T<> 0 then exit ;

PortB:=%00001000; delay_ms(10) ; T:=PortB ; T:=(T shr 4);

if T=8 then T:=12; if T=4 then T:=9 ;if T=2 then T:=6 ;

if T=1 then T:=3 ; if T<> 0 then exit ;

end;

end;

begin

T:=0 ;

TRISA:=…………;

TRISB:=………... ;

Porta:=0;

while (true) do

begin

clavier;

if t=11 then t:=0;

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 12/15

Page 13: pplication sur la Programmation en mikropascal

porta:=T;

end;

End.

2) En vue de simuler le fonctionnement de la carte de commande, on simplifie lacommande par le clavier, au lieu que ce soit un code de 4 chiffres pour ouvrir la porteon choisira la touche " * ". La touche " # " aura pour rôle de fermer la porte.

On modifie le schéma de simulation comme suit :

Compléter les modifications apportées au programme principal et simuler lefonctionnement

Begin

T:=0 ;

trisa:=%00011000;

TRISB:=$F1 ;

porta:=0;

while (true) do

begin

porta:=0;

clavier;

if (T=10) then while porta.3=0 do begin porta.0:=1;porta.2:=1; end;

if (T=12) then while porta.4=0 do begin porta.1:=1;porta.2:=1 end;

end;

end.

On remarque que le microcontrôleur se trouve toujours dans une boucle qui est :

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 13/15

Page 14: pplication sur la Programmation en mikropascal

· La boucle de lecture du clavier.

ou

· La boucle de commande de la porte (ouverture ou fermeture)

Alors comment peut-on introduire dans ce programme une procédure qui répond aucode de la télécommande ?

II- Les interruptions

1- D'après le schéma interne de la carte de commande de la porte du garage onremarque que la réception du code transmit par la télécommande se fait sur la brocheRB0 alors :

· Déduire le type de l'interruption utilisée dans le programme.

· Trouver la valeur qu'on doit écrire dans le registre INTCON.

2- Ajouter la procédure d'interruption suivante au programme de la carte decommande. N'oublier pas de déclarer la variable "code" comme variable duprogramme principal et affecter la valeur trouvée précédemment de INTCON justeaprès la configuration des registres TRIS.

Procedure interrupt;

Begin

INTCON: = $00;

For i := 0 to 7 do

Begin

If PortB.0 =1 then setbit(code,i)

else clearbit(code,i);

delay_ms(10);

end;

INTCON := $90;

end;

3- Compiler le programme et simuler le fonctionnement par le logiciel ISIS.

NB: relier la broche RA2 du microcontrôleur de la télécommande à la broche RB0 dumicrocontrôleur de la carte de commande de la porte pour simuler la transmission ducode.

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 14/15

Page 15: pplication sur la Programmation en mikropascal

Application réalisée par Mr ABIDI Hatem (ISET Nabeu)l et introduite dans le manuelde cours pour les élèves du BAC technologie pour plus d'informations contactez moisur le forum (Administrateur). Les schémas et les programmes sont téléchargeablessur le site sous la page téléchargement. -->activités 4,5,6

Révisé le :12-06-2008| © www.technologuepro.com

VPHybridCAD demo gratuitlogiciel de mofication des images vectorisation des plans numériséswww.softelec.com

13/04/2010 Application sur la Programmation en …

technologuepro.com/…/application_m… 15/15