Está en la página 1de 3

PROGRAMA3 #include <16F876.h> #fuses XT,NOWDT #use delay(clock= 4000000) #include <lcd.

c> #use standard_io(C) #use standard_io(A) enum funciones {med,cal,ini}; //Asigna un valor a cada elemento //med=0, cal=1 e ini=2 void medir(void){ //Funcin de medir //algoritmo correspondiente output_toggle(pin_C0); } void calibrar(void){ //Funcin de calibrar //algoritmo correspondiente output_toggle(pin_C1); } void inicializar(void){ //Funcin de inicializar //algoritmo correspondiente output_toggle(pin_C2); }

void run_func(int numfunc){ //Asignacin de la funcin a realizar //viene dada por la variable "item" switch(numfunc) { case med: medir(); break; case cal: calibrar(); break; case ini: inicializar(); break; } }

void main() { char item; //Variables de funciones char n_menus = 3; //Nmero de funciones // bit_set(TRISA,0); lcd_init(); while (1) { if (input(PIN_A0) == 1) { //Detecta botn de seleccin item++; //Si pulsa aumenta la variable delay_ms(300); //Para evitar rebotes lcd_putc('\f'); } if (item > (n_menus-1)) { //Si la variable supera el nmero de... item = 0; } //funciones la inicializa switch (item) { case 0: lcd_gotoxy(1,1); printf(lcd_putc, "MEDIR"); lcd_gotoxy(1,1); break; case 1: printf(lcd_putc, "CALIBRAR"); lcd_gotoxy(1,1); break; case 2: printf(lcd_putc, "INICIALIZAR"); lcd_gotoxy(1,1); break; } if (input(PIN_A1) == 1) //Si se pulsa el botn de seleccin {delay_ms(200); run_func(item);} //se llama a la funcin correspondiente } }

También podría gustarte