You are on page 1of 2

#include <18F4550.

h>
#fuses xt,nolvp,nowdt,noprotect
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
#use fast_io(c)
#byte control=0XF83
#byte motor=0XF81
#bit act=0XF82.0
int avance[4]={0x08,0x04,0x02,0x01};
int retroceso[4]={0x01,0x02,0x04,0x08};
int i,r;
//Habilitacin de entradas y salidas
inicializar(){
motor=0x00;
Set_tris_b(0x00);
output_b(0);
act=0x00;
set_tris_c(0x01);
control=0x00;
Set_tris_d(0x01);
return 0;
}
//Subfunciones
derecha()
{
for(i=0;i<4;i++)
{
motor=avance[i];
delay_ms(200);
}
return 0;
}
izquierda()
{
for(r=0;r<4;r++)
{
motor=retroceso[r];
delay_ms(200);
}
return 0;
}
//Programa Principal
int main(){
inicializar();
while(true){
if(act==1)
{
switch(control)
{
case(0x00):
derecha();
delay_ms(2000000);
break;

case (0x01):
izquierda();
delay_ms(2000000);
break;
}
}
else
{
motor=0x00;
}
}
return 0;
}

You might also like