#include <16f877.h> #fuses hs,nowdt,noprotect,put,brownout,nolvp #use delay(clock = 20000000) #use rs232(baud = 19200, xmit = pin_c6, rcv = pin_c7) #define led1 pin_e0 #define led2 pin_e1 #define sw1 pin_b0 #define sw2 pin_b1 static char data; static char buffer[20]; static int sw1dt=0; static int sw2dt=0; #int_rda void isr_rcv(){ data = getc(); } main(){ int i=0; enable_interrupts(int_rda); enable_interrupts(global); while(1){ if(data == 0x31){ output_bit(led1,1); output_bit(led2,0); }else if(data == 0x32){ output_bit(led1,0); output_bit(led2,1); }else{ output_bit(led1,0); output_bit(led2,0); } if(!input(sw1)){ if(sw1dt == 0){ delay_ms(10); if(!input(sw1)){ i++; printf("%x\r\n",i); sw1dt = 1; } } }else{ sw1dt = 0; } if(!input(sw2)){ if(sw2dt == 0){ delay_ms(10); if(!input(sw2)){ i--; printf("%x\r\n",i); sw2dt = 1; } } }else{ sw2dt = 0; } } }