Sie sind auf Seite 1von 28

ISS@T Sousse

2014/2015

Mini Projet : commande


monte-charge
Ralisation
dune carte de
commande du
monte charge
base dun
microcontrleur
16F84A
21/03/2015

Ralise par :

Nadhir brahem
Alaadin bouzwita

Cahier de charge :
Ralisation dune carte de commande du monte
charge base du microcontrleur 16F84A :
Cette carte permet grce un slecteur de raliser :
Une commande manuelle :

- Appel tage 0 partir de nimporte quel autre


tage (Etage1 ou tage 2)
- Appel tage 1 partir de nimporte quel autre
tage (Etage0 ou tage 2)
- Appel tage 2 partir de nimporte quel autre
tage (Etage0 ou tage 1)
21/03/2015

Une commande automatique :


Cycle 0 : qui ralise les taches
suivantes :
Initialement ltage 0

Monte ltage 1
Arrt de 5s
Descente ltage 0
Cycle 1 : qui ralise les taches
suivantes :

Initialement ltage 0
Monte ltage 2
Arrt de 5s
Descente ltage 0

Un bouton RAZ
permet darrter le
moteur de la cabine
quelle que soit la
position de la
cabine ou le cycle
effectu.

Cycle 2 : qui ralise les taches


suivantes :
Initialement ltage 0

Monte ltage 1
Arrt de 5s
Mont ltage 2
Arrt de 5s
21/03/2015

Diffrente possibilits de commande du monte charge :


1re possibilit de la commande : on applique une tension
de commande de 5V :

entre les bornes ( Cmonte et Vrf_retour) pour


commander la
monte de la cabine.
Entre les bornes ( Cdescente et Vrf_retour) pour
commander la descente de la cabine

21/03/2015

1er cas : RL-MON et RL-DES sont non excits

Si RL-MON est non excit alors X02 = -VM


Si RL-DES est non excit alors X03 = -VM
CONCLUSION : Le moteur est en arrt

21/03/2015

2eme cas : RL-MON est excit et RL-DES est non


excit :
Si RL-MON est excit alors X02 = +VM
Si RL-DES non excit alors X03 = -VM
CONCLUSION : Le moteur tourne dans le sens qui
permet de monter la cabine

21/03/2015

3eme cas : RL-MON est non excit et RL-DES est


excit
:
Si RL-MON
est non excit alors X02 = -VM
Si RL-DES est excit alors X03 = +VM
CONCLUSION : Le moteur tourne dans le sens qui
permet la descente de la cabine

21/03/2015

Schma du Cblage
:

Ce montage ncessite une alimentation stabilise externe de


24V.

21/03/2015

Il suffit de relier la borne :


MON Cmonte
DES Cdescente
COM 5V
0V Retour_Vrf
X02 et X03 vers les bornes de moteur
CE0 X11 et CE1 X15 et CE2 EX17 et la borne
commune des capteurs 5V

2me Possibilit de commande : commande


externe :
Commande directe en exploitant le moteur du
monte charge DC (24V)
21/03/2015

Schma du principe :

Ce montage Ncessite 3 alimentations stabilises de


24V
21/03/2015

10

Ce montage Ncessite 3 alimentations stabilises


de 24V
RL-MON est excit : il doit commander le moteur
dans le sens de la mont de la cabine
sinon inverser les bornes COM et COM1 aux bornes
du moteur.
RL-DES est excit : il doit commander le moteur
dans le sens de la descente de la
cabine.

Cblage :

21/03/2015

11

Grafcet du cycle automatique :

21/03/2015

12

Schma simplifi :
Pupitre de commande

Slecteur mode : automatique 1 /


manuel 0
Mode automatique

Cycle 1 (RB1)
Appel tage 0 (RB5) Cycle 2 (RB2)
Appel tage 1 (RB6) Cycle 3 (RB3)
Appel tage 2 (RB7)
Mode manuel

21/03/2015

13

Table daffectation : Cette tape est trs


importante, elle nous donne une ide
claire
sur les diffrentes variables dentre et de
sortie utilises par le microcontrleur
(le
table dans la page suivant)
21/03/2015

14

Cette table nous aide au niveau de la programmation.


Entres

Broches de
microcontrleu
r

Capteur
tage 2

RA2

Capteur
tage 1

RA3

Capteur
tage 0

RA4

Cycle 1

RB1

Cycle 2

RB2

Cycle 3

RB 3

Mode de
fonctionnement
Manuel / automatique

RB 4

Appel tage 0

RB 5

Appel tage 1

RB 6

Appel tage 2

RB 7

21/03/2015

Sorties

Broches de
microcontrleur

monter
KM1

RA0

descendre
RA1
KM2

15

Programmation Graphique :

21/03/2015

16

Mode-manuel :

21/03/2015

17

Mode-automatique :

21/03/2015

18

Programmation textuelle :

Program Monte-charge:
begin
Trisa:=$fc; // RA0, RA1 : entres;
trisb:=$ff;
Porta:=$00;
Portb:=$00;
while (1=1) do
BEGIN

21/03/2015

//******************** cycle-e1 -auto ********//


if((portb.1=1)and(portb.4=1)) then
begin
repeat
begin
if((porta.4=1)and(porta.0=0)and(porta.1=0))
then
begin
porta.0:=1; // monte
porta.1:=0;
end;
if((porta.0=1)and(porta.3=1)) then //cap-e1
begin
porta.0:=0;
delay_ms(5000);
porta.1:=1;
end;
if((porta.1=1)and(porta.4=1)) then
begin
CREFOC DE KAIROUAN ________ Page - 11 - sur
17 __________ Formateur : Hmidi Fredj
porta.0:=0;
porta.1:=0
end;
end;
until ((porta.4=1)and(porta.0=0)
and(porta.1=0)and(portb.1=0))
end;

19

//******************** cycle-e2 -auto ********//


//******************** cycle-e2-e3 -auto
if((portb.2=1)and(portb.4=1)) then
********//
begin
if((portb.3=1)and(portb.4=1)) then
repeat
begin
begin
repeat
if((porta.4=1)and(porta.0=0)and(porta.1=0))
begin
then
if((porta.4=1)and(porta.0=0)and(porta.1=0))
begin
then
porta.0:=1; // monte
begin
porta.1:=0;
porta.0:=1; // monte
end;
porta.1:=0;
if((porta.0=1)and(porta.2=1)) then //cap-e1end;
begin
if((porta.0=1)and(porta.3=1)) then //cap-e1
porta.0:=0;
begin
delay_ms(5000);
porta.0:=0;
porta.1:=1;
delay_ms(5000);
end;
porta.0:=1;
if((porta.1=1)and(porta.4=1)) then
end;
begin
if((porta.0=1)and(porta.2=1)) then
porta.0:=0;
begin
porta.1:=0
porta.0:=0;
end;
delay_ms(5000);
end;
porta.1:=1
until ((porta.4=1)and(porta.0=0)
end;
and(porta.1=0)and(portb.2=0))
if (( porta.0=0)and(porta.1=1)and(porta.4=1))
end;
then
begin
21/03/2015

20

porta.0:=0;
porta.1:=0;
end;
end;
until ((porta.4=1)and(porta.0=0)
and(porta.1=0)and(portb.3=0))
end;

21/03/2015

//*************** appel e2 - man


********************//
if ((portb.7=1)and (portb.4=0)) then
begin
repeat
begin
if porta.4=1 then porta.0:=1;
if porta.3=1 then porta.0:=1;
if porta.2=1 then porta.0:=0
end;
until((porta.2=1)and(porta.0=0))
end;
//*************** appel e1 - man
********************//
if ((portb.6=1)and(portb.4=0)) then
begin
repeat
begin
if porta.4=1 then porta.0:=1;
if porta.2=1 then porta.1:=1;
if porta.3=1 then
begin
porta.0:=0;
porta.1:=0;
end;
end;
until((porta.3=1)and(porta.0=0)and(porta.1=0))
end;

21

//*************** appel e0 - man


********************//
if ((portb.5=1)and(portb.4=0)) then
begin
repeat
begin
if porta.2=1 then porta.1:=1;
if porta.3=1 then porta.1:=1;
if porta.4=1 then porta.1:=0;
end;
until((portb.4=1)and(porta.1=0))
end;
END;
end.

Remarque :
Pour plus de dtailles concernant ces programmes vous
pouvez consulter les programmes sources crits sous
logipic et mikropascal .

21/03/2015

22

Programmation textuelle :
Program Monte-charge: assembleur

montesarge_L_9:
;montesarge.ppas,15 ::

ssembly code generated by mikroVirtualMachine - V. 5.0.0.3


; Date/Time: 07/01/2015 21:55:38
; Info: http://www.mikroe.com
; ADDRESS OPCODE
ASM
; ---------------------------------------------LIST p=16F84a
#include<p16F84a.inc>
STACK_1
STACK_2
STACK_0
_main
STACK_10
STACK_11
STACK_12
GOTO
_main
;montesarge.ppas,3 ::
;montesarge.ppas,4 ::

begin
Trisa:=$fc; // RA0, RA1 : entres;
MOVLW 252
BCF
STATUS,RP1
BSF
STATUS,RP0
MOVWF TRISA
;montesarge.ppas,5 ::
trisb:=$ff;
MOVLW
255
MOVWF
TRISB
BCF
STATUS,RP0
CLRF PORTA
CLRF PORTB
montesarge_L_2:
;montesarge.ppas,11 ::
if((portb.1=1)and(portb.4=1)) then
MOVLW
0
BTFSC
PORTB,1
MOVLW
1
MOVWF
STACK_1
MOVF
STACK_1, 0
XORLW
1
MOVLW
255
BTFSS
STATUS, Z
MOVLW
0
MOVWF
STACK_2
MOVLW
0
BTFSC
PORTB, 4
MOVLW
1
MOVWF
STACK_1
MOVF
STACK_1, 0
XORLW
1
MOVLW
255
BTFSS
STATUS, Z
MOVLW
0
MOVWF
STACK_0
MOVF
STACK_2, 0
ANDWF
STACK_0, 1
BTFSC
STATUS, Z
GOTO
montesarge_L_7
montesarge_L_6:
;montesarge.ppas,13 ::
repeat

21/03/2015

MOVLW
BTFSC
MOVLW
MOVWF
MOVF
XORLW
MOVLW
BTFSS
MOVLW
MOVWF
MOVLW
ANDWF
MOVWF
MOVF
STACK_1,
XORLW
MOVLW
BTFSS
MOVLW
MOVWF
MOVF
STACK_0,
ANDWF
MOVLW 0
BTFSC
MOVLW
MOVWF
MOVF
XORLW
MOVLW
BTFSS
MOVLW
MOVWF
MOVF
STACK_2,
ANDWF
MOVLW
1
ANDWF
PORTA, 0
MOVWF
MOVF
XORLW
MOVLW
255
BTFSS
MOVLW
MOVWF
MOVLW
0
BTFSC
MOVLW
1
MOVWF
MOVF
STACK_1,
XORLW
1
MOVLW
255
BTFSS
MOVLW
MOVWF
MOVF
ANDWF
BTFSC
GOTO
montesarge_L_21:
;montesarge.ppas,22 ::
BCF

if((porta.4=1)and(porta.0=0)and(porta.1=0)) then
0
PORTA, 4
1
STACK_1
STACK_1, 0
1
255
STATUS, Z
0
STACK_2
1
PORTA, 0
STACK_1
0
0
255
STATUS, Z
0
STACK_0
0
STACK_2, 1
PORTA, 1
1
STACK_1
STACK_1, 0
0
255
STATUS, Z
0
STACK_0
0
STACK_0, 1
STACK_1
STACK_1, 0
1
STATUS, Z
0
STACK_2
PORTA, 3
STACK_1
0
STATUS, Z
0
STACK_0
STACK_2, 0
STACK_0, 1
STATUS, Z
montesarge_L_22
porta.0:=0;
PORTA, 0

23

Schma de routage sous Isis 7.1 sp4 :

21/03/2015

24

Schma de simulation sous ISIS7.1SP4

21/03/2015

25

Schma de routage sous Ares 7.1 sp4


1re Possibilit :

2me Possibilit :

Remarque :
Vous pouvez consulter le schma de routage saisi sous ARES
7.1sp4 et imprimer le typon.
21/03/2015

26

Liste des
composants :
PIC 16F84A. Circuit ULN 2003A. Support de circuit intgre DIL
18 et DIL16.
2 relais de commande de 24V DC.
6 boutons poussoirs.
2 diodes LED.
12 rsistors de 1KM. 1 rsistor de 10KM.
1 interrupteur 2 positions.
9 bornes DYNA .
Quartez 4 MHZ.
2 condensateurs (non polariss) de valeurs entre 15 pF et 30
pF.

21/03/2015

27

Merci pour votre


attention

21/03/2015

28

Das könnte Ihnen auch gefallen