Vous êtes sur la page 1sur 15

13/04/2010

Tous les Cours

Application sur la Programmation en

| Les microcontrleurs PIC | Les microcontrleurs 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 | Mmoires srie 24C32 | Tutorial Mikropascal | Tutorial Pic C Compiler | Tutorial Logipic | Tutorial Edit Algo | Tutorial IcProg | Chapitre 2b
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 franaise gratuite
www.pcsoft.fr

Gestion programmes - DNC Grez vos programmes Cn et dossiers de fabrication, transferts Cn.
www.lmba.fr

APPLICATION SUR LA PROGRAMMATION EN MIKROPASCAL PORTE DE GARAGE AUTOMATIQUE


Application ralise par Mr ABIDI Hatem (ISET Nabeul) et introduite dans le manuel de cours pour les lves du BAC technologie pour plus d'informations contactez moi sur le forum (Administrateur). Les schmas et les programmes sont tlchargeables sur le site sous la page tlchargement. ->activits 4,5,6

Mise en situation :
Prsentation du systme :Porte automatique

L'ouverture et la fermeture automatique de la porte d'un garage d'automobile sont assures par un systme technique comportant les lments suivants : 1. Tlcommande distance. 2. Moteur courant continu + rducteur.
technologuepro.com//application_m 1/15

13/04/2010

Application sur la Programmation en

3. Carte de commande + pupitre. 4. Lampe de signalisation. 5. Antenne de rception. 6. Capteurs de fin de course. Dans une premire partie on va s'intresser la tlcommande qui nous permet de commander la porte distance, le principe est bas sur l'mission d'un code binaire sur dix bits [C0..C9] reconnaissable par la carte de commande de la porte. Ce code est compos de deux parties : Ordre d'ouverture / fermeture C9 C8 Code d'identification de la tlcommande

C7

C6

C5

C4

C3

C2

C1

C0

Pour donner la possibilit l'utilisateur d'adapter une nouvelle tlcommande la porte du garage ou de la remplacer en cas de panne, le constructeur a prvu un microswitch sur la tlcommande qui nous permet de dfinir le code d'identification. Celui-ci est gnralement inscrit sur la carte de commande ou donn dans le manuel d'utilisation de la porte. Le code correspondant l'ordre d'ouverture ou de fermeture de la porte (C9,C8) est le suivant : (10 : ordre d'ouverture ; 11 : ordre de fermeture)

Le schma de la tlcommande est le suivant :

technologuepro.com//application_m

2/15

13/04/2010

Application sur la Programmation en

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 :

Complter les chronogrammes suivants :

Dterminer le rle de l'algorithme suivant : Algorithme test ; Dbut TRISA $03; TRISB $FF; POUR i variant de 7 jusqu'a 0 FAIRE
technologuepro.com//application_m 3/15

13/04/2010

Application sur la Programmation en

Dbut SI PortB.i =1 ALORS Porta.2 1 SINON Porta.2 0; Attente (10ms); Fin; Fin. Ecrire un algorithme pour la tlcommande de la porte automatique de garage. 1- Cration d'un projet sur Mikropascal : Premire tape : Edition du projet Lancer l'application Mikropascal puis cliquer sur l'icne nouveau projet slectionner le menu Project new Project ou

Deuxime tape : Remplissez la boite de dialogue suivante avec des valeurs dsires.

Troisime tape : Saisie du programme Lors de la fermeture de la fentre prcdente on peut crire notre programme sur l'diteur de code comme suit :

technologuepro.com//application_m

4/15

13/04/2010

Application sur la Programmation en

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.
technologuepro.com//application_m 5/15

13/04/2010

Application sur la Programmation en

Quatrime tape : Compilation ou sur le menu

Aprs l'edition du programme on clique sur l'icne Projectbuild

La barre de progrs vous informera au sujet du statut de compilation. S'il y a des erreurs, on vous l'annoncera dans la fentre d'erreur Si aucune erreur n'est produite,le message suivant sera affich et le fichier tlcommande.hex sera cre dans le rpertoire de travail.

cinquime tape : Simulation

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

Charger le programme dans le microcontrleur

technologuepro.com//application_m

6/15

13/04/2010

Application sur la Programmation en

NB: Si vous fermez l'oscilloscope pendant la simulation il n'apparatra pas lorsque vous relancer la simulation une deuxime fois, il faut le supprimer et placer un autre oscilloscope
sixime tape : Chargement du programme dans le PIC16F84A

Lancer l'application IC-Prog puis slectionner le type du microcontrleur et enfin charger le fichier tlcommande.hex

technologuepro.com//application_m

7/15

13/04/2010

Application sur la Programmation en

Brancher le programmateur sur le port du PC puis placer le microcontrleur et lancer le chargement du programme.

septime tape : Test du fonctionnement.

Sur plaque d'essai cbler le schma de la tlcommande et vrifier le fonctionnement par un oscilloscope.

I-

Application :

La carte de commande de la porte automatique est aussi construite base du microcontrleur PIC16F84A. Elle contient les lments suivants : Un clavier matriciel 12 touches. Permettant l'utilisateur d'ouvrir la porte en introduisant un code de 4 chiffres manuellement. Un module rcepteur hybride HF. permettant la rception d'ordre d'ouverture ou de fermeture de la tlcommande distance. Des relais pour la commande du moteur et de la lampe.

Voici le schma interne de la carte de commande :

technologuepro.com//application_m

8/15

13/04/2010

Application sur la Programmation en

Dans un premier lieu on s'intressera la commande par le clavier.

Schma structurel d'un clavier 12 touches Le principe de ce type de clavier est simple en effet l'appui sur une touche ralise un contact direct entre la ligne et la colonne de cette touche. Pour pouvoir lire une touche appuye par le microcontrleur on procde comme suit : On fait un balayage sur les colonnes c'est--dire on envoie les squences suivantes (100, 010, 001). On lit l'tat des lignes sur 4 bits (A, B, C, D) On aura le tableau de correspondance suivant : Squence 100 A 0 1 0 0
technologuepro.com//application_m

B 0 0 1 0

C 0 0 0 1

D 0 0 0 0

Touche appuye Aucune touche T1 T4 T7


9/15

13/04/2010

Application sur la Programmation en

0 010 0 1 0 0 0 001 0 1 0 0 0

0 0 0 1 0 0 0 0 1 0 0

0 0 0 0 1 0 0 0 0 1 0

1 0 0 0 0 1 0 0 0 0 1

T10 Aucune touche T2 T5 T8 T11 Aucune touche T3 T6 T9 T12

On vous donne l'algorithme de lecture du clavier : Algorithme clavier ; Var T : octet ; Dbut T0 ; TRISB $F1 ;

{Initialisation de la variable T} {RB1, RB2, RB3 : sorties ; RB4, RB5, RB6, RB7 : entres} {Boucle infinie}

TANQUE (1=1) FAIRE Dbut PortB (00000010)2 ; Attente (10ms) ;

{Premire squence}

T PortB ; T T dcal droite de 4 positions ; {Lecture de RB4, RB5, RB6 et RB7} SI T=8 ALORS T10; SI T=4 ALORS T7; SI T=2 ALORS T4; SI T=1 ALORS T1; SI T<> 0 ALORS Sortie ;
technologuepro.com//application_m

{codage}

{sortie de la boucle si il y a appui sur une touche}


10/15

13/04/2010

Application sur la Programmation en

PortB (00000100)2 ; Attente (10ms) ;

{Deuxime squence}

T PortB ; T T dcal 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 ; SI T<> 0 ALORS Sortie ; {codage}

{sortie de la boucle si il y a appui sur une touche} {Troisime squence}

PortB (00001000)2 ; Attente (10ms) ;

T PortB ; T T dcal 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 ; SI T<> 0 ALORS Sortie ; Fin ; Fin. 1) En vue de simuler le fonctionnement du clavier sur le logiciel ISIS, on ralise le schma suivant : {codage}

{sortie de la boucle si il y a appui sur une touche}

On vous donne le programme relatif l'algorithme sous forme de procdure.

Complter le programme suivant de sorte que le code de la touche appuye soit sorti sur le port A du microcontrleur. N'oublier pas de configurer les registres TRISA et TRISB du microcontrleur. Compiler le programme avec le logiciel Mikropascal puis simuler le fonctionnement avec le logiciel ISIS. Vous pouvez aussi tester le fonctionnement sur plaque d'essai.

technologuepro.com//application_m

11/15

13/04/2010

Application sur la Programmation en

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;
technologuepro.com//application_m 12/15

13/04/2010

Application sur la Programmation en

porta:=T; end; End. 2) En vue de simuler le fonctionnement de la carte de commande, on simplifie la commande par le clavier, au lieu que ce soit un code de 4 chiffres pour ouvrir la porte on choisira la touche " * ". La touche " # " aura pour rle de fermer la porte. On modifie le schma de simulation comme suit :

Complter les modifications apportes au programme principal et simuler le fonctionnement 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 microcontrleur se trouve toujours dans une boucle qui est :
technologuepro.com//application_m 13/15

13/04/2010

Application sur la Programmation en

ou

La boucle de lecture du clavier.

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

Alors comment peut-on introduire dans ce programme une procdure qui rpond au code de la tlcommande ?
IILes interruptions

1D'aprs le schma interne de la carte de commande de la porte du garage on remarque que la rception du code transmit par la tlcommande se fait sur la broche RB0 alors : Dduire le type de l'interruption utilise dans le programme. Trouver la valeur qu'on doit crire dans le registre INTCON.

2Ajouter la procdure d'interruption suivante au programme de la carte de commande. N'oublier pas de dclarer la variable "code" comme variable du programme principal et affecter la valeur trouve prcdemment de INTCON juste aprs 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; 3Compiler le programme et simuler le fonctionnement par le logiciel ISIS.

NB: relier la broche RA2 du microcontrleur de la tlcommande la broche RB0 du microcontrleur de la carte de commande de la porte pour simuler la transmission du code.

technologuepro.com//application_m

14/15

13/04/2010

Application sur la Programmation en

Application ralise par Mr ABIDI Hatem (ISET Nabeu)l et introduite dans le manuel de cours pour les lves du BAC technologie pour plus d'informations contactez moi sur le forum (Administrateur). Les schmas et les programmes sont tlchargeables sur le site sous la page tlchargement. -->activits 4,5,6
VPHybridCAD demo gratuit logiciel de mofication des images vectorisation des plans numriss
www.softelec.com

Rvis le :12-06-2008| www.technologuepro.com

technologuepro.com//application_m

15/15

Vous aimerez peut-être aussi