Digital Clock Using 8051 Microcontroller
Digital Clock Using 8051 Microcontroller
Source code :
#include <reg51.h> // Header file for 8051
#include <stdio.h>
// Time variables
unsigned char hours = 0, minutes = 0, seconds = 0;
// LCD Initialization
void LCD_init() {
LCD_command(0x02); // Initialize to 4-bit mode
LCD_command(0x28); // 2 line, 5x7 matrix
LCD_command(0x0C); // Display ON, cursor OFF
LCD_command(0x06); // Auto increment cursor
LCD_command(0x01); // Clear screen
delay(5);
}
seconds++;
if (seconds == 60) {
seconds = 0;
minutes++;
if (minutes == 60) {
minutes = 0;
hours++;
if (hours == 24) {
hours = 0;
}
}
}
display_time(); // Refresh time display on LCD
}
// Main function
void main() {
TMOD = 0x01; // Timer0 Mode 1 (16-bit mode)
TH0 = 0x3C; // Load high byte for 1 second delay
TL0 = 0xB0; // Load low byte for 1 second delay
IE = 0x82; // Enable Timer0 interrupt
TR0 = 1; // Start Timer0