PROGRAMACION
#include <16f877a.h> //IDENTIFICA EL TIPO DE MICROCONTROLADOR A USAR
#fuses hs, nowdt //INDICAMOS QUE NO QUEREMOS USAR EL WATCH DOG TIMER
#use delay (clock = 8M) // INDICAMOS LA FRECUENCIA DEL OSCILADOR CON EL QUE TRABAJAREMOS
void main()
{
int x;
int y;
set_tris_b(0b00000000); //ACTIVA EL BLOQUE B Y TODOS LOS PINES DE ESE PUERTO SON DE SALIDA
set_tris_a(0b000011);//ACTIVA EL BLOQUE A Y ACTIVO DOS PINES
while(true)//INICIALIZACION DEL BUCLE
{
x=input(pin_a0);//DECLARA COMO ENTRADA EL PRIMER PIN DEL BLOQUE A
y=input(pin_a1);//DECLARA COMO ENTRADA EL SEGUNDO PIN DEL BLOQUE A
if(x!=y)//SI LA ENTRADA X ES DISTINTA A LA ENTRADA Y CUMPLE CON LAS CONDICIONES QUE PONDREMOS ACONTINUACION
{
if(x==1)//SE ACTIVA LA SECUENCIA DESCENDENTE SI LA PRIMER ENTRADA ESTA ACTIVA
{
output_b(0x01);//SE ACTIVA LA PRIMERA SALIDA DEL BLOQUE BNENCENDIENDO EL LED
delay_ms(100);//TIEMPO DE ENCENDIDO
output_b(0x00);//SE DESACTIVA LA SALIDA DEL BLOQUE B APAGANDO EL LED
delay_ms(100);// TIEMPO DE APAGADO
output_b(0x02);
delay_ms(100);
output_b(0x00);
delay_ms(100);
output_b(0x04);
delay_ms(100);
output_b(0x00);
delay_ms(100);
output_b(0x08);
delay_ms(100);
output_b(0x00);
delay_ms(100);
output_b(0x10);
delay_ms(100);
output_b(0x00);
delay_ms(100);
}
16