Objetivo: Executar um menu de controle por meio de um botão. O programa deve mostrar um menu de 3 funções. Por meio do botão, um dos os 3 elementos e com outro executar a função (neste caso acender um led).
Código feito em CCS C Compiler
#include <16F877A.h>
#fuses XT, NOWDT
#use delay(clock = 20M)
#include <lcd.c>
#use standard_io(C)
#use standard_io(A)
enum funciones {med, cal, ini }; // atribui um valor a cada elemento: med = 0, cal = 1, ini = 2
void medir(void){
output_toggle(PIN_C0);
}
void calibrar(void){
output_toggle(PIN_C3);
}
void inicializar(void){
output_toggle(PIN_C6);
}
void run_func(int numfunc){
switch(numfunc){
case med:
medir();
break;
case cal:
calibrar();
break;
case ini:
inicializar();
break;
}
}
void main(){
char item;
char n_menus = 3;
//bit_set(TRISA, 0);
lcd_init();
while(TRUE){
if(input(PIN_A0) == 1){
item++;
delay_ms(300);
lcd_putc('\f');
if(item > (n_menus - 1)) {item = 0;
}
}
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_A4) == 1){
delay_ms(200);
run_func(item);
}
}
}