Pesquisar neste blog

21/07/2022

Menu com PIC 16F877A

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);
      }
   }
}








Nenhum comentário: