A digital clock is a type of clock that displays the time digitally (i.e. in numerals or other symbols), as opposed to an analog clock, where the time is indicated by the positions of rotating hands. The clock/calendar provides seconds, minutes, hours information. The clock operates in either the 24-hour or 12-hour format with AM/PM indicator.
In this project, we will learn How to design a DS1307 Real Time Clock(RTC) based digital clock with AVR ATmega32 microcontroller and 7-Segment Displays in 12 hour format. Here, we will read time(Hour, Minute and Second) from the DS1307 RTC and we will display the hour and minute value in 4 7-segment displays. The second value from the DS1307 is used to blink the dot(.) of the middle 7-segment display. The data communication between DS1307 RTC and AVR ATmega32 microcontroller takes place using TWI(Two Wire Interface) communication protocol. But before reading the DS1307 RTC, the DS1307 RTC needs to be initialized with hour, minute and second values. The DS1307 RTC is initialized only once. We will initialize the hour, minute and second value of the DS1307 RTC with of 5, 0 and 0(Clock will start with 5 hour(PM), 0 minute and 0 second). You can change the initialization values according to your need by changing the initialization values in the DS1307 write section of the code. After initialization of DS1307 RTC, the AVR ATmega32 microcontroller will read the second, minute and hour values from the DS1307 continuously through two wire interface communication and it will display those hour and minute values in 4 7-segment displays. The microcontroller will use the second value to blink the dot (.) of the middle 7-segment display.