Estoy intentando realizar el siguiente programa que consiste en:
Se necesita de dos pulsadores.
Primero tengo que pulsar el pulsador 1 y luego el pulsador 2 para hacer que los led se prendan del 1 al 3 y se queden encendidos.
Después sería a la inversa, es decir, tengo que pulsar primero el pulsador 2 y luego el pulsador 1
Esto haría que mis led se vayan apagando del led3 al led1.
He intentado hacer este programa pero solo he conseguido hacer que los led enciendan, pero la otra parte del apagado no he podido.
¿Alguien con conocimiento que me ayude con el código?
Aquí les dejo el código que realicé:
Se necesita de dos pulsadores.
Primero tengo que pulsar el pulsador 1 y luego el pulsador 2 para hacer que los led se prendan del 1 al 3 y se queden encendidos.
Después sería a la inversa, es decir, tengo que pulsar primero el pulsador 2 y luego el pulsador 1
Esto haría que mis led se vayan apagando del led3 al led1.
He intentado hacer este programa pero solo he conseguido hacer que los led enciendan, pero la otra parte del apagado no he podido.
¿Alguien con conocimiento que me ayude con el código?
Aquí les dejo el código que realicé:
C:
#include <16f628.h>
#use DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT, NOWDT,NOBROWNOUT,PUT,NOLVP
#DEFINE LED1 PORTB,0
#DEFINE LED2 PORTB,1
#DEFINE LED3 PORTB,2
#DEFINE LED4 PORTB,3
#DEFINE LED5 PORTB,4
#DEFINE LED6 PORTB,5
#BYTE PORTB=6
#BYTE PORTA=5
#define pulsante2 porta,2
#define pulsante portb,7
int i=0;
int b;
int a;
int pulsos=0;
int pulsos2=0;
void main()
{
set_tris_b(0b10000000);
set_tris_a(0b00000100);
while(1)
{
//..............................
if(bit_test(pulsante))
{
pulsos++;
delay_ms(150);
if(pulsos>1){
pulsos=0;
}
}
if(pulsos==1)//pregunta si pulsos2 es igual a 1 para ejecutar lo siguiente
{
if(bit_test(pulsante2))
{
b=1;
delay_ms(150);
while(b==1)
{
for(i=0;i<=2;i++)//prende los leds del 1 al 3
{
bit_set(portb,i);
delay_ms(100);
if(bit_test(pulsante2))//apaga los leds y sale del while
{
b=0;
delay_ms(150);
break;
}
}
}
}
}
}
}
Última edición por un moderador: