#include <16f88.h> int ones_digit=0, tens_digit=0, total=0; char num[10]={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; #use delay(clock=8000000) #INT_EXT void ext_isr(void) { ones_digit++; total++; } void main(void) { set_tris_a(0x00); // Port A: All outputs set_tris_b(0x03); // Port B: B0 input enable_interrupts(global); while(true) { if(ones_digit == 10) //Check for ones digit carry over { tens_digit++; ones_digit=0; } if(tens_digit == 10) //Check for tens digit carry over { tens_digit=0; } if(total > 10 && total < 30) //Turn fan 1 on output_bit(PIN_B3, 1); if(total > 30 && total < 60) //Turn fan 2 on output_bit(PIN_B4, 1); if(total > 60 && total < 99) //Turn fan 3 on output_bit(PIN_B5, 1); output_a(num[ones_digit]); output_bit(PIN_B1, 1); delay_ms(5); output_bit(PIN_B1, 0); output_a(num[tens_digit]); output_bit(PIN_B2, 1); delay_ms(5); output_bit(PIN_B2, 0); } }