Código:
/*Selector de secuencias*/
int cont=0,sc1,sc2,sc3;
void main()
{
ANSEL=0;
ANSELH=0;
TRISA=1; /*Entrada que cuenta los pulsos con un push button*/
TRISC=0; /*Configurado como salida para hacer la secuencia*/
while(1)
{
if(PORTA==1)
{
cont++;
if(cont>=3)
cont=0;
while(PORTA==1)
{
}
}
switch(cont)
{
case 1:
for(sc1=0;sc1<255;sc1++)
{
PORTC=sc1;
delay_ms(5);
}
break;
case 2:
for(sc1=255;sc1>0;sc1--)
{
PORTC=sc1;
delay_ms(5);
break;
case 3:
sc2=1;
for(sc1=0;sc1<7;sc1++)
{
PORTC=sc2;
delay_ms(5);
sc2=sc2*2;
if(sc2==256)
sc2=1;
break;
case 4:
sc2=128;
for(sc1=0;sc1<7;sc1++)
{
PORTC=sc2;
delay_ms(5);
sc2=sc2/2;
if(sc2==1)
sc2=128;
break;
}
}
}
}
}
}
/*PIC16F690*/
Me recomendarian hacerlo con la sentencia while en vez de for??? int cont=0,sc1,sc2,sc3;
void main()
{
ANSEL=0;
ANSELH=0;
TRISA=1; /*Entrada que cuenta los pulsos con un push button*/
TRISC=0; /*Configurado como salida para hacer la secuencia*/
while(1)
{
if(PORTA==1)
{
cont++;
if(cont>=3)
cont=0;
while(PORTA==1)
{
}
}
switch(cont)
{
case 1:
for(sc1=0;sc1<255;sc1++)
{
PORTC=sc1;
delay_ms(5);
}
break;
case 2:
for(sc1=255;sc1>0;sc1--)
{
PORTC=sc1;
delay_ms(5);
break;
case 3:
sc2=1;
for(sc1=0;sc1<7;sc1++)
{
PORTC=sc2;
delay_ms(5);
sc2=sc2*2;
if(sc2==256)
sc2=1;
break;
case 4:
sc2=128;
for(sc1=0;sc1<7;sc1++)
{
PORTC=sc2;
delay_ms(5);
sc2=sc2/2;
if(sc2==1)
sc2=128;
break;
}
}
}
}
}
}
/*PIC16F690*/











Autor



En línea




