#include <16F877.h>
#use delay(clock=1000000)
#fuses NOWDT,NOPROTECT,NOLVP,NODEBUG,PUT
int retardo;
void main()
{ retardo=300; //CON ESTE VALOR SE CAMBIA LA VELOCIDAD DE GIRO DEL MOTOR
WHILE(input(PIN_C0)) // INICIALIZO LOS PINES EN VALOR BAJO, PARA QUE EL MOTOR NO SE MUEVA
{
OUTPUT_LOW(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_LOW(PIN_B3);
}
do{
if(!input(pin_C0)&&(input(pin_c1))) // GIRO EN UN SENTIDO (GIRO 1)
{
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_LOW(PIN_B3);
delay_ms(retardo); }if(!input(pin_C0)&&(input(pin_c1))) // GIRO EN UN SENTIDO (GIRO 1)
{
OUTPUT_LOW(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
delay_ms(retardo); }if(!input(pin_C0)&&(input(pin_c1))) // GIRO EN UN SENTIDO (GIRO 1)
{
OUTPUT_LOW(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
delay_ms(retardo); }if(!input(pin_C0)&&(input(pin_c1))) // GIRO EN UN SENTIDO (GIRO 1)
{
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_LOW(PIN_B3);
delay_ms(retardo); }if(input(pin_C0)&&(!input(pin_c1)))// GIRO EN UN SENTIDO (GIRO 2)
{
OUTPUT_HIGH(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_LOW(PIN_B3);
delay_ms(retardo); }if(input(pin_C0)&&(!input(pin_c1))) // GIRO EN UN SENTIDO (GIRO 2)
{
OUTPUT_LOW(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_HIGH(PIN_B3);
delay_ms(retardo); }if(input(pin_C0)&&(!input(pin_c1))) // GIRO EN UN SENTIDO (GIRO 2)
{
OUTPUT_LOW(PIN_B0);
OUTPUT_LOW(PIN_B1);
OUTPUT_HIGH(PIN_B2);
OUTPUT_LOW(PIN_B3);
delay_ms(retardo); }if(input(pin_C0)&&(!input(pin_c1))) // GIRO EN UN SENTIDO (GIRO 2)
{
OUTPUT_LOW(PIN_B0);
OUTPUT_HIGH(PIN_B1);
OUTPUT_LOW(PIN_B2);
OUTPUT_LOW(PIN_B3);
delay_ms(retardo); }}while(true);
}