#include <16F877.h> #fuses XT,NOLVP,NOWDT,NOPROTECT #use delay(clock = 4000000) #use fast_io(A) #use fast_io(B) byte num[5] = {0x00,0x01,0x02,0x04,0x08}; int8 disp,i; void Forward(){ for(i=0; i<=4;i++){ disp =num[i]; output_b(disp); delay_ms(200); } } void Backward(){ for(i=4;i>0;i--){ disp =num[i]; output_b(disp); delay_ms(200); } } void Stop(){ disp =0; output_b(disp); delay_ms(50); } void main(){ setup_adc(adc_off); set_tris_a(0xFF); set_tris_b(0B00000000); stop(); while(true){ if(!input(pin_a0)){ do{ Forward(); } while(input(pin_a2)); } else if(!input(pin_a1)){ do{ Backward(); } while(input(pin_a2)); } else if(!input(pin_a2)){ Stop(); } else{} } }