2 Abdelaoui
2 Abdelaoui
2 Abdelaoui
Mise en situation :
1
Dans une première partie on va s'intéresser à la télécommande 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.
2
on suppose que le code inscrit sur la carte de commande de la porte est le
suivant :
3
Algorithme test ;
Début
TRISAç $03;
TRISBç $FF;
Début
SINON Porta.2 ç 0;
Fin;
Fin.
Lancer l'application Mikropascal puis cliquer sur l'icône « nouveau projet » ou
sélectionner le menu « Project ànew Project »
Deuxième étape :
4
program telecommande;
procedure trans_code;
var i : integer;
begin
begin
end;
end;
begin
5
trisA:=$03; trisB:=$FF;
while (1=1)
do
begin
begin
end;
begin
trans_code;
end;
end;
end.
La barre de progrès vous informera au sujet du statut de compilation. S'il y
a des erreurs, on vous l'annoncera dans la fenêtre d'erreur
Si aucune erreur n'est produite,le message suivant sera affiché et le fichier
télécommande.hex sera crée dans le répertoire de travail.
6
· cinquième étape : Simulation
7
NB: Si vous fermez l'oscilloscope pendant la simulation il n'apparaîtra pas lorsque
vous relancer la simulation une deuxième fois, il faut le supprimer et placer un
autre oscilloscope
8
Brancher le programmateur sur le port du PC puis placer le microcontrôleur et
lancer le chargement du programme.
I- Application :
9
La carte de commande de la porte automatique est aussi construite à base du
microcontrôleur PIC16F84A. Elle contient les éléments suivants :
Le principe de ce type de clavier est simple en effet l'appui sur une touche réalise
un contact direct entre la ligne et la colonne de cette touche.
10
Pour pouvoir lire une touche appuyée par le microcontrôleur on procède comme
suit :
Algorithme clavier ;
Début
TRISB ç $F1 ; {RB1, RB2, RB3 : sorties ; RB4, RB5, RB6, RB7 : entrées}
Début
11
SI T=8 ALORS Tç10; SI T=4 ALORS Tç7; SI T=2 ALORS Tç4;
Fin ;
Fin.
12
On vous donne le programme relatif à l'algorithme sous forme de procédure.
program Telecommande;
var T: byte;
procedure clavier;
begin
while (true) do
13
begin
if T=8 then T:=10; if T=4 then T:=7; if T=2 then T:=4;
if T=8 then T:=0 ; if T=4 then T:=8 ; if T=2 then T:=5 ;
if T=8 then T:=12; if T=4 then T:=9 ;if T=2 then T:=6 ;
end;
end;
begin
T:=0 ;
TRISA:=…………;
TRISB:=………... ;
Porta:=0;
while (true) do
begin
clavier;
porta:=T;
end;
End.
14
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 rôle de fermer la porte.
Begin
T:=0 ;
trisa:=%00011000;
TRISB:=$F1 ;
porta:=0;
while (true) do
begin
porta:=0;
clavier;
end;
end.
On remarque que le microcontrôleur se trouve toujours dans une boucle qui est :
15
ou
Alors comment peut-on introduire dans ce programme une procédure qui répond
au code de la télécommande ?
II- Les interruptions
Procedure interrupt;
Begin
INTCON: = $00;
For i := 0 to 7 do
Begin
delay_ms(10);
end;
INTCON := $90;
end;
16
NB: relier la broche RA2 du microcontrôleur de la télécommande à la broche RB0
du microcontrôleur de la carte de commande de la porte pour simuler la
transmission du code.
17