You are on page 1of 2

programming a PIC using c language

hai i am very new to pic programming using c language.... i got a few set of lines from the web and am finding it hard to understand them..... i am hoping that someone can explain to me this lines..... i am trying to built a elevator system using pic16f877.... // the push-buttons that request the elevator target floor // we map BUTTON_0=RA4 etc. to keep the schematics simple.. // #define BUTTON_0 RA4 #define BUTTON_1 RA3 #define BUTTON_2 RA2 #define BUTTON_3 RA1 #define BUTTON_4 RA0 // the sensors that indicate which floor the elevator car // has reached. Again we map 0-4 1-3 etc. to avoid signal // crossing in the schematics. // #define SENSOR_0 RB4 #define SENSOR_1 RB3 #define SENSOR_2 RB2 #define SENSOR_3 RB1 #define SENSOR_4 RB0 // two output ports used to control the elevator motor // (on/off) and motor direction (up/ndown). // #define MOTOR_ON RB6 #define UP_NDOWN RB7 // // // // // // the elevator states: parked means waiting (at floor < i >), up_to and down_to imply moving to the corresponding floor. We force an encoding that allows you to watch the state during the simulation (upper nibble=1/2/4: parked/up/down), lower nibble=floor index, 0xff=error

//I DONT UNDERSTAND FROM THIS LINE enum elevator_state { PARKED_0 = 0x10, PARKED_1 = 0x11, PARKED_2 = 0x12, PARKED_3 = 0x13, PARKED_4 = 0x14, UP_TO_1 UP_TO_2 UP_TO_3 UP_TO_4 = = = = 0x21, 0x22, 0x23, 0x24,

DOWN_TO_3 = 0x43,

DOWN_TO_2 = 0x42, DOWN_TO_1 = 0x41, DOWN_TO_0 = 0x40, UNKNOWN = 0xff, }; enum motor_state { STOP = 0x00, MOVE_UP = 0xc0, MOVE_DOWN = 0x80, }; // global variables for state-machine state and motor control // unsigned char state = PARKED_0; unsigned char motor = STOP;

// inidicate an error by lighting the LED on port B.5 // (note that RB5 is also used to reset the SR-flipflops, // but the short strobes should not be visible on a real LED. void error(void) { motor = STOP; for(;;) { RB5 = 1; } }

You might also like