#include<16F877A.h>
#fuses HS, NOPUT, NOLVP
#use delay(clock=20Hz)
void main()
{
while(true)
{
//-------------------------------for motor operation
if(!input(PIN_D0))//---------microswitch
{
//-------------------------------switch for reversing
output_high(PIN_B2);//----clockwise mode
if(!input(PIN_D1))
{
output_high(PIN_B0);
output_low(PIN_B1);
}
else if(!input(PIN_D2))//-----counter clockwise mode
{
output_high(PIN_B1);
output_low(PIN_B0);
}
}
else if(input(PIN_D0))
{
output_low(PIN_B2);
}
}
}