Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LCD Module Connections
- #define LCD_RS_PIN PIN_B1
- #define LCD_RW_PIN PIN_B2
- #define LCD_ENABLE_PIN PIN_B3
- #define LCD_DATA4 PIN_B4
- #define LCD_DATA5 PIN_B5
- #define LCD_DATA6 PIN_B6
- #define LCD_DATA7 PIN_B7
- //End LCD Module Connections
- #include <main.h>
- #include <lcd.c>
- #use delay (clock=4000000)
- //---------------------- tmr0 interrupt
- void timer0_isr(void)
- {
- clear_interrupt(INT_TIMER0); // Clear timer0 interrupt flag bit
- contagem++;
- set_timer0(6);
- }
- //--------------------- main
- void main()
- {
- setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_32 ); // timer0 com clock interno e dividido por 64
- set_timer0(6); // carrega o valor 5 no registrador do timer
- enable_interrupts (global | int_timer0); // habilita interrupções e libera o timer0
- // t = ciclo de máquina * prescaler * contagem ( 256 - TMR0 );
- // ciclo de máquina = 4/4 = 1us.
- // t = 1 * 32 * 250 = 8000us = 8ms
- // 8ms * 125 = 1 seg
- lcd_init();
- Delay_ms(100);
- while(TRUE)
- {
- if (contagem > 8000)
- {
- segundos++;
- contagem = 0;
- if (segundos > 59)
- {
- minuto++;
- segundos = 0;
- if (minutos > 59)
- {
- horas++;
- minutos = 0;
- if (horas >23)
- {
- horas = 0;
- }
- }
- }
- }
- lcd_putc('\f'); //Clear Display
- lcd_putc("Hora ");
- printf(lcd_putc,"%d:",horas);
- lcd_putc("Min ");
- printf(lcd_putc,"%d:",minutos);
- lcd_putc("Seg ");
- printf(lcd_putc,"%d:",segundos);
- //lcd_gotoxy(1,2);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement