Programmation pic 16f84

Fermé
loulou - 5 juin 2008 à 14:49
 Ros@ - 31 déc. 2009 à 13:15
Bonjour,
voila je dois programmer un pic qui doit allumer 8 leds qui sont connecter sur le port b du pic seulement elle doivent s allumer les unes a la suite des autres mais seulement lorsque que j appuis sur un bouton poussoir connecter sur le port a (une sorte de mode pas a pas) en gros la premiere led s allume et la deuxieme doit attendre que j appuye sur le bouton pour s allumer et ainsi de suite aidez moi c pour mon stage et je galere deja depuis trois jour !!!!merci a vous coordialement loulou
A voir également:

11 réponses

Petit cadeau qui devarit aider !

#include <16F84A.H>
#fuses XT,NOWDT

#byte PORTA =5
#byte PORTB =6
#bit BP1 =PORTA.0
#bit BP2 =PORTA.1
//#bit LED1 =PORTB.0
//#bit LED2 =PORTB.1
//#bit LED3 =PORTB.2
//#bit LED4 =PORTB.3
//#bit LED5 =PORTB.4
//#bit LED6 =PORTB.5
//#bit LED7 =PORTB.6
//#bit LED8 =PORTB.7
#use delay (clock=4000000)
void INIT_UC(void);
main()
{
INIT_UC();
do{

if (BP1==0)

{

PORTB=0X03;
delay_ms(200);
PORTB=0X0C;
delay_ms(200);
PORTB=0X30;
delay_ms(200);
PORTB=0XC0;
delay_ms(200);
PORTB=0X30;
delay_ms(200);
PORTB=0X0C;
delay_ms(200);
PORTB=0X03;
delay_ms(200);
PORTB=0X05;
delay_ms(200);
PORTB=0X0A;
delay_ms(200);
PORTB=0X14;
delay_ms(200);
PORTB=0X28;
delay_ms(200);
PORTB=0X50;
delay_ms(200);
PORTB=0XA0;
delay_ms(200);
PORTB=0X50;
delay_ms(200);
PORTB=0X28;
delay_ms(200);
PORTB=0X14;
delay_ms(200);
PORTB=0X0A;
delay_ms(200);
PORTB=0X05;
}

if (BP1==1)

{

PORTB=0X81;
delay_ms(200);
PORTB=0X42;
delay_ms(200);
PORTB=0X24;
delay_ms(200);
PORTB=0X18;
delay_ms(200);
PORTB=0X24;
delay_ms(200);
PORTB=0X42;
delay_ms(200);
PORTB=0X81;
delay_ms(200);
}

if (BP2==1)

{

PORTB=0X18;
delay_ms(200);
PORTB=0X00;
delay_ms(200);
}
}
while(1);
}
void INIT_UC(void)
{
set_tris_b(0b00000000);
PORTB=0x00;
}
5