TODOPIC

Otros Microcontroladores / Dispositivos programables => ** PROYECTOS ** => Mensaje iniciado por: driver en 04 de Julio de 2012, 23:35:10

Título: ayuda con pic 16f628a
Publicado 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 
}