Advertisement
RuiViana

relogio_Int

May 27th, 2016
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. //LCD Module Connections
  2. #define LCD_RS_PIN PIN_B1
  3. #define LCD_RW_PIN PIN_B2
  4. #define LCD_ENABLE_PIN PIN_B3
  5. #define LCD_DATA4 PIN_B4
  6. #define LCD_DATA5 PIN_B5
  7. #define LCD_DATA6 PIN_B6
  8. #define LCD_DATA7 PIN_B7
  9. //End LCD Module Connections
  10.  
  11. #include <main.h>
  12. #include <lcd.c>
  13.  
  14. #use delay (clock=4000000)
  15.  
  16. //---------------------- tmr0 interrupt
  17. void timer0_isr(void)
  18. {
  19. clear_interrupt(INT_TIMER0); // Clear timer0 interrupt flag bit
  20. contagem++;
  21. set_timer0(6);
  22. }
  23. //--------------------- main
  24. void main()
  25. {
  26. setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_32 ); // timer0 com clock interno e dividido por 64
  27. set_timer0(6); // carrega o valor 5 no registrador do timer
  28. enable_interrupts (global | int_timer0); // habilita interrupções e libera o timer0
  29.  
  30. // t = ciclo de máquina * prescaler * contagem ( 256 - TMR0 );
  31. // ciclo de máquina = 4/4 = 1us.
  32. // t = 1 * 32 * 250 = 8000us = 8ms
  33. // 8ms * 125 = 1 seg
  34. lcd_init();
  35. Delay_ms(100);
  36.  
  37. while(TRUE)
  38. {
  39. if (contagem > 8000)
  40. {
  41. segundos++;
  42. contagem = 0;
  43. if (segundos > 59)
  44. {
  45. minuto++;
  46. segundos = 0;
  47. if (minutos > 59)
  48. {
  49. horas++;
  50. minutos = 0;
  51. if (horas >23)
  52. {
  53. horas = 0;
  54. }
  55. }
  56. }
  57. }
  58. lcd_putc('\f'); //Clear Display
  59. lcd_putc("Hora ");
  60. printf(lcd_putc,"%d:",horas);
  61. lcd_putc("Min ");
  62. printf(lcd_putc,"%d:",minutos);
  63. lcd_putc("Seg ");
  64. printf(lcd_putc,"%d:",segundos);
  65. //lcd_gotoxy(1,2);
  66. }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement