Advertisement
Guest User

Untitled

a guest
Oct 16th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. #include <16F877A.h>
  2. #fuses XT,NOWDT
  3. #use delay(clock= 4000000)
  4. #include <lcd.c>
  5. #use standard_io(C)
  6. #use standard_io(A)
  7. #use standard_io(B)
  8. #use standard_io(D)
  9. enum funciones {med,cal,ini}; //Asigna un valor a cada elemento
  10. //med=0, cal=1 e ini=2
  11.  
  12. void medir(void){ //Función de medir
  13. //algoritmo correspondiente
  14. output_toggle(pin_C0);
  15. }
  16.  
  17. void calibrar(void){ //Función de calibrar
  18. //algoritmo correspondiente
  19. output_toggle(pin_C1);
  20. }
  21.  
  22. void inicializar(void){ //Función de inicializar
  23. //algoritmo correspondiente
  24. output_toggle(pin_C2);
  25. }
  26.  
  27.  
  28. void run_func(int numfunc){ //Asignación de la función a realizar
  29. //viene dada por la variable "item"
  30. switch(numfunc) {
  31. case med:
  32. medir();
  33. break;
  34. case cal:
  35. calibrar();
  36. break;
  37. case ini:
  38. inicializar();
  39. break;
  40. }
  41. }
  42.  
  43.  
  44. void main() {
  45. char item = 0; //Variables de funciones
  46. char n_menus = 3; //Número de funciones
  47.  
  48. // bit_set(TRISA,0);
  49. lcd_init();
  50.  
  51. while(1) {
  52. if (input(PIN_A0) == 1) { //Detecta botón de selección
  53. item++; //Si pulsa aumenta la variable
  54. delay_ms(300); //Para evitar rebotes
  55. lcd_putc('\f'); }
  56.  
  57. if (item > (n_menus-1)) { //Si la variable supera el número de...
  58. item = 0; } //funciones la inicializa
  59.  
  60. switch (item) {
  61. case 0:
  62. lcd_gotoxy(1,1);
  63. printf(lcd_putc, "MEDIR");
  64. lcd_gotoxy(1,1);
  65. break;
  66. case 1:
  67. printf(lcd_putc, "CALIBRAR");
  68. lcd_gotoxy(1,1);
  69. break;
  70. case 2:
  71. printf(lcd_putc, "INICIALIZAR");
  72. lcd_gotoxy(1,1);
  73. break;
  74. }
  75. if (input(PIN_A1) == 1) //Si se pulsa el botón de selección
  76. {delay_ms(200);
  77. run_func(item);} //se llama a la función correspondiente
  78. }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement