JecarDatha Electronics MICROCONTROLADOR 16F877A | Page 19

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