TODOPIC
Otros Microcontroladores / Dispositivos programables => ** PROYECTOS ** => Mensaje iniciado por: driver en 04 de Julio de 2012, 23:35:10
-
Hola tengo una duda.
Quiero reemplazar el selector en el que ocupo en A0, A1, A2, A3 Y A4 como entradas. Y usar un pulsador en A0 hacia delante y un pulsador en A1 para retroceder por cada " if ".
No sé si me explico pero les dejo los códigos para que le den un vistazo, gracias…
#include <16f628a.h> //PIC utilizado
#fuses INTRC,NOWDT,NOPROTECT,PUT //Configuramos los fuses
#use delay (clock=4000000) //Oscilador a 4Mhz
#use fast_io(b) //Optimizamos E/S del PORTB
//------Programa principal-----
void main()
{
set_tris_a(011011); //porta como entrada
set_tris_b(0b00000000);
do{
output_b(0b00000000);
if (input(pin_a0)){
output_high(pin_b0);
delay_ms(100);
output_high(pin_b1);
delay_ms(100);
output_high(pin_b2);
delay_ms(100);
output_high(pin_b3);
delay_ms(100);
output_high(pin_b4);
delay_ms(100);
output_high(pin_b5);
delay_ms(100);
output_high(pin_b6);
delay_ms(100);
output_high(pin_b7);
delay_ms(100);
output_low(pin_b0);
delay_ms(100);
output_low(pin_b1);
delay_ms(100);
output_low(pin_b2);
delay_ms(100);
output_low(pin_b3);
delay_ms(100);
output_low(pin_b4);
delay_ms(100);
output_low(pin_b5);
delay_ms(100);
output_low(pin_b6);
delay_ms(100);
output_low(pin_b7);
delay_ms(100);
}
if (input(pin_a1)){
output_high(pin_b7);
delay_ms(100);
output_high(pin_b6);
delay_ms(100);
output_high(pin_b5);
delay_ms(100);
output_high(pin_b4);
delay_ms(100);
output_high(pin_b3);
delay_ms(100);
output_high(pin_b2);
delay_ms(100);
output_high(pin_b1);
delay_ms(100);
output_high(pin_b0);
delay_ms(100);
output_low(pin_b7);
delay_ms(100);
output_low(pin_b6);
delay_ms(100);
output_low(pin_b5);
delay_ms(100);
output_low(pin_b4);
delay_ms(100);
output_low(pin_b3);
delay_ms(100);
output_low(pin_b2);
delay_ms(100);
output_low(pin_b1);
delay_ms(100);
output_low(pin_b0);
delay_ms(100);
}
if (input(pin_a2)){
output_high(pin_b3);
output_high(pin_b4);
delay_ms(150);
output_high(pin_b2);
output_high(pin_b5);
delay_ms(150);
output_high(pin_b1);
output_high(pin_b6);
delay_ms(150);
output_high(pin_b0);
output_high(pin_b7);
delay_ms(150);
output_low(pin_b3);
output_low(pin_b4);
delay_ms(150);
output_low(pin_b2);
output_low(pin_b5);
delay_ms(150);
output_low(pin_b1);
output_low(pin_b6);
delay_ms(150);
output_low(pin_b0);
output_low(pin_b7);
delay_ms(150);
}
if (input(pin_a3)){
output_high(PIN_B0);
delay_ms(50);
output_high(PIN_B1);
output_low(PIN_B0);
delay_ms(50);
output_high(PIN_B2);
output_low(PIN_B1);
delay_ms(50);
output_high(PIN_B3);
output_low(PIN_B2);
delay_ms(50);
output_high(PIN_B4);
output_low(PIN_B3);
delay_ms(50);
output_high(PIN_B5);
output_low(PIN_B4);
delay_ms(50);
output_high(PIN_B6);
output_low(PIN_B5);
delay_ms(50);
output_high(PIN_B7);
output_low(PIN_B6);
delay_ms(50);
output_low(PIN_B7);
delay_ms(50); //
output_high(PIN_B7);
delay_ms(50);
output_high(PIN_B6);
output_low(PIN_B7);
delay_ms(50);
output_high(PIN_B5);
output_low(PIN_B6);
delay_ms(50);
output_high(PIN_B4);
output_low(PIN_B5);
delay_ms(50);
output_high(PIN_B3);
output_low(PIN_B4);
delay_ms(50);
output_high(PIN_B2);
output_low(PIN_B3);
delay_ms(50);
output_high(PIN_B1);
output_low(PIN_B2);
delay_ms(50);
output_high(PIN_B0);
output_low(PIN_B1);
delay_ms(50);
output_low(PIN_B0);
delay_ms(50);
output_high(PIN_B0);
delay_ms(50);
output_high(PIN_B1);
output_low(PIN_B0);
delay_ms(50);
output_high(PIN_B2);
output_low(PIN_B1);
delay_ms(50);
output_high(PIN_B3);
output_low(PIN_B2);
delay_ms(50);
output_high(PIN_B4);
output_low(PIN_B3);
delay_ms(50);
output_high(PIN_B5);
output_low(PIN_B4);
delay_ms(50);
output_high(PIN_B6);
output_low(PIN_B5);
delay_ms(50);
output_high(PIN_B7);
output_low(PIN_B6);
delay_ms(50);
output_low(PIN_B7);
delay_ms(50); //
output_high(PIN_B7);
delay_ms(50);
output_high(PIN_B6);
output_low(PIN_B7);
delay_ms(50);
output_high(PIN_B5);
output_low(PIN_B6);
delay_ms(50);
output_high(PIN_B4);
output_low(PIN_B5);
delay_ms(50);
output_high(PIN_B3);
output_low(PIN_B4);
delay_ms(50);
output_high(PIN_B2);
output_low(PIN_B3);
delay_ms(50);
output_high(PIN_B1);
output_low(PIN_B2);
delay_ms(50);
output_high(PIN_B0);
output_low(PIN_B1);
delay_ms(50);
output_low(PIN_B0);
delay_ms(50);
}
if (input(pin_a4)){
output_high(pin_b2); ////funcion strobo espscial
output_high(pin_b3);
output_high(pin_b4);
output_high(pin_b5);
delay_ms(50);
output_low(pin_b2);
output_low(pin_b3);
output_low(pin_b4);
output_low(pin_b5);
delay_ms(50);
output_high(pin_b2); //
output_high(pin_b3);
output_high(pin_b4);
output_high(pin_b5);
delay_ms(50);
output_low(pin_b2);
output_low(pin_b3);
output_low(pin_b4);
output_low(pin_b5);
delay_ms(50);
output_high(pin_b2); //
output_high(pin_b3);
output_high(pin_b4);
output_high(pin_b5);
delay_ms(50);
output_low(pin_b2);
output_low(pin_b3);
output_low(pin_b4);
output_low(pin_b5);
delay_ms(50);
output_high(pin_b2); //
output_high(pin_b3);
output_high(pin_b4);
output_high(pin_b5);
delay_ms(50);
output_low(pin_b2);
output_low(pin_b3);
output_low(pin_b4);
output_low(pin_b5);
delay_ms(50);
output_high(pin_b2); //
output_high(pin_b3);
output_high(pin_b4);
output_high(pin_b5);
delay_ms(50);
output_low(pin_b2);
output_low(pin_b3);
output_low(pin_b4);
output_low(pin_b5);
delay_ms(50);
output_high(pin_b0); ////otra mitad
output_high(pin_b1);
output_high(pin_b6);
output_high(pin_b7);
delay_ms(50);
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b6);
output_low(pin_b7);
delay_ms(50);
output_high(pin_b0); //
output_high(pin_b1);
output_high(pin_b6);
output_high(pin_b7);
delay_ms(50);
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b6);
output_low(pin_b7);
delay_ms(50);
output_high(pin_b0); //
output_high(pin_b1);
output_high(pin_b6);
output_high(pin_b7);
delay_ms(50);
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b6);
output_low(pin_b7);
delay_ms(50);
output_high(pin_b0); //
output_high(pin_b1);
output_high(pin_b6);
output_high(pin_b7);
delay_ms(50);
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b6);
output_low(pin_b7);
delay_ms(50);
output_high(pin_b0); //
output_high(pin_b1);
output_high(pin_b6);
output_high(pin_b7);
delay_ms(50);
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b6);
output_low(pin_b7);
delay_ms(50); ///////
}
}while(true);//Bucle infinito
}