#include <16f877.h>
#device ICD=TRUE
#fuses HS,NOLVP,NOWDT,PUT
#use delay(clock=20000000)
#define GREEN_LED PIN_A5
#define YELLOW_LED PIN_B4
#define RED_LED PIN_B5
#define PUSH_BUTTON PIN_A4
void light_one_led(int led) ;
void wait_for_one_press() ;
void main() {
while(TRUE) {
light_one_led(1);
wait_for_one_press();
light_one_led(2);
wait_for_one_press();
light_one_led(3);
wait_for_one_press();
}
}
//**************************************
void light_one_led(int led) {
output_high(GREEN_LED);
output_high(YELLOW_LED);
output_high(RED_LED);
switch(led) {
case 1 : output_low(GREEN_LED); break;
case 2 : output_low(YELLOW_LED); break;
case 3 : output_low(RED_LED); break;
}
}
//**************************************
void wait_for_one_press() {
while(input(PUSH_BUTTON)) ;
while(!input(PUSH_BUTTON)) ;
}