Chers amis salut j'ai un pic 16f84 a programmer pour gérer le cycle suivant: le cycle ne commence que lorsque on appuis simultanément sur 2 boutons poussoirs ou bien si on appuis sur un seul bouton et le deuxième dans un temps ne dépassant pas une seconde si le temps passe le cycle ne démarre pas et il faut recommencer. voila merci d'avance de votre aide ps:si c'est possible en mickropascale.
voici la méthode pour réaliser cette fonction. bouton 1 --> RB0 bouton 2 --> RB1 sortie --> RA0
Code : program bouton; var i : integer; begin trisB:=$FF; trisA:=0; portA:=0; while (true) do begin if portb.0=1 then begin for i:=0 to 1000 do begin if portb.1=1 then portA.0:=1; delay_ms(1); end; end; if portb.1=1 then begin for i:=0 to 1000 do begin if portb.0=1 then portA.0:=1; delay_ms(1); end; end; end; end.
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres...
cher administrateur j'ai testé le programme mais le probleme et que meme si je reste appuie sur l'un des bouttons le cycle marche meme si je faits un retard de plus de 1s or le cycle ne doit commencer que si j'appuie simultanement sur les deux ou bien avec un retard qui ne depasse pas 1s.au dela de 1s l'utilisateur doit appuie de nouveaux
c'est simple il fallait modifier le programme comme ça :
Code : program button2; var i : integer; begin trisB:=$FF; trisA:=0; portA:=0; while (true) do begin if portb.0=1 then begin for i:=0 to 1000 do begin if ((portb.1=1) AND (portb.0=1)) then portA.0:=1; delay_ms(1); end; end; if portb.1=1 then begin for i:=0 to 1000 do begin if ((portb.0=1) AND (portb.1=1)) then portA.0:=1; delay_ms(1); end; end; end; end.
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres...
je suis vraiment désole mais voila la simulation que j'ai fait avec ISIS j'ai toujours le meme probleme si je bloque un boutton meme si je faits un retard de plus de 1s et j'appuie sur le deuxieme le cycle commence or il faut que le cycle commence que lorsque on appuie simutanement ou avec un retard qui ne depasse pas 1s j'espere que je suis clair
Voila j'ai compris exactement ce que tu veux et j'ai simuler aussi le montage donc je pense que cette fois c'est la bonne
Code : program button3; var i,A,H : integer; begin trisB:=$FF; trisA:=0; portA:=0; A:=1; H:=1; while (true) do begin if ((portb.0=1) AND (A=1)) then begin for i:=0 to 1000 do begin if ((portb.1=1) AND (portb.0=1)) then portA.0:=1; delay_ms(1); A:=0; H:=0; end;
end; if ((portb.1=1) AND (H=1)) then begin for i:=0 to 1000 do begin if ((portb.0=1) AND (portb.1=1)) then portA.0:=1; delay_ms(1); A:=0;H:=0; end;
end; if ((portb.1=0) AND (portb.0=0)) then begin A:=1; H:=1; end; end; end.
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres...
Technologue pro: Cours en électricité, électronique, informatique industrielle et mécanique pour l'enseignement technologique en Tunisie et offre des cours en génie électrique, informatique, mécanique, une base de données de plusieurs TP, projets fin d'études et un annuaire de ressources pédagogiques.