In this project, I will show you how to design a simple Digital Clock Circuit using 8051 and DS12C887 as well as DS1307 RTC Modules.
Outline
ToggleIntroduction
A digital clock displays the time using numbers and it has many applications like cars, railway stations, houses, offices, etc. in order to provide accurate time and date. In this type of applications, normally we use RTC (Real Time Clock) ICs to display the time and date accurately.
The circuit displays the time on LCD. For this clock, we can set the time at any instant. Here, the clock can work in either 24 hour mode or 12 hour mode and the RTC chip is configured by programming 8051 controller.
I will demonstrate two circuits of Digital Clocks using 8051 Microcontroller: one uses the RTC DS12C887 and the other uses the RTC DS1307.
Circuit Principle
The main principle of both the circuits is the 8051 controller continuously reads the data from Real time clock IC’s and process it in correct order to display the time on LCD.
Related Post: [Digital Stopwatch Circuit]
Circuit Diagram Digital Clock Circuit using 8051 and DS12C887
Circuit Components
- 8051 microcontroller
- Project PCB
- Programming cable
- DC Battery or 12V, 1A adaptor
- DS12C887 RTC IC
- 16*2 alphanumeric LCD
- Push buttons – 4
- Slide switches – 3
- 2 ceramic capacitors – 33pF
- 12 MHz crystal
- Electrolytic capacitor – 10uF, 16V
- Resistor (1/4 watt) – 10k
- Pot – 10k
- 5V DC power supply circuit
- Single pin connecting wires
Circuit Design
The circuit shows you how interface RTC IC to the 8051 controller. Port P0 is used as a data port of Real time clock. Port P2 of controller is connected to the data pins of LCD. Pins P1.1, P1.2 and P1.3 of controller are connected to the RS, RW, EN pins respectively. P1.0 is connected to the RESET of RTC. Push buttons are connected to the P1.4 and P1.5. These are used set the time. P1.6 is configured as START pin used to run the clock with time set by the user. P3.3 is connected to the push button used to call the set_time function.
DS12C887 Real Time Clock
This IC is used most of the applications to provide accurate time and date. This IC provides the time in both 12 hour mode and 24 hour mode. This IC also provides calendar components day, month and year. This RTC uses internal lithium battery to keep the time and date updated when power is failed. This IC has 128 bytes of RAM memory. In these 128 bytes of RAM 14 bytes are used for time, date and registers. Remaining 114 bytes are used to store general purpose data.
The control registers of RTC are accessible only when the power is applied from external source. This IC requires more than 4.25V power supply and the control registers are accessible after 200ms when external power is supplied.
Pin Description
- MOT: It is a bus type selection pin used to select between Intel and Motorolabus types. This pin is connected to VCC to select Motorola bus type and connected to GND or unconnected to select Intel bus type.
- 2, 3: Unused pins
- 4 – 11 (AD0 – AD7): These pins are bidirectional address and data lines of RTC. On these pins address is present in the first portion of cycle and data is present in the second portion of bus cycle.
- 12 (GND): This pin is connected to Ground.
- 13 (CS): This pin must be low to access the chip during read and write operations.
- 14 (AS): The high pulse on this pin is used to demultiplex the data and address.
- 15 (R/W): This pin is used for read or writes operations.
- 16: Unused pin
- 17 (DS): This is a Data Strobe pin.
- 18 (RESET): The low pulse on this pin resets all the flags and interrupts but it does not affects time and date.
- 19 (IRQ): Thisis active low pin used as an interrupt input to the controller.
- 20 – 22: Unused pins
- 23 (SQW): Used to generate square wave with predefined frequencies
- 24 (VCC): This pin is connected 5V supply
RTC Address Map
This RTC has 128 bytes of RAM with addresses 00H – 07H. The first ten locations (00 – 09) are used for clock, calendar and alarm data. 0A – 0D address locations are used for status and control registers. Remaining address locations are used to for general data. The following table shows the address locations for clock, calendar and alarm.
This IC has 4 control and status registers namely register A, register B, Register C, register D. We need to configure all these registers to get the accurate time and date. In order to configure these registers go through the DS12C887 Datasheet
Code
Circuit Diagram Digital Clock Circuit using 8051 and DS1307
Components Required
- 8051 Microcontroller
- 8051 Development Board (Optional)
- 8051 Programmer
- DS1307 RTC Module
- 11.0592MHz Crystal (for 8051)
- 32.768 KHz Crystal (for DS1307 RTC)
- Capacitors – 33pF x 2, 10µF
- Resistors – 1KΩ x 2, 10KΩ x 2, 8 x 1KΩ Pull-up, 10KΩ POT
- 3V Lithium Battery
- Push Button
- 16×2 LCD Display
Code
How to Operate?
- Initially burn the program to the 8051 microcontroller
- Now give the connections as per the circuit diagram
- Switch on the board supply
- Now you can observe the time on LCD. If you want to set the time make the start pin low and press the push button connected to the P3.3
- LCD shows set time message. Now use push button which is connected to P1.4 to set hours and use other push button to set minutes.
- Now make start pin high to run the clock.
Circuit Applications
- This project is used in offices, houses, hotels and auto mobiles to display the time and date.
- We can also set the alarm in this project with a little modification.
24 Responses
I want to construct the project
I want to construct this project
Why you need this project code?
because RTC is part of my project
Are you trying to make the same project or different one.
No I am trying different project , basically my project is about weather station
Give us more details about your project
My project is about weather station , at which it is required to take sensors value(temperature, humidity,wind speed and direction) and display it along with time and date on LCD ,
its is great project for hobby
its shiw working of rtc clock
i want to do it my self
iam interested to do this as my mini project., i want to do same project
I want to construct this project
Hello!
Thank u for this!
Am interested in this project, i prefer to try it my self.
Hello!
I want to try it.
Since I’m doing electronics engineering, I wanted to learn how 8051 micro-controller projects are done. I am making this project for self analysis and to gain knowledge. hence I want to start from basic digital clock.
It is a part of my project
I am trying same project.
Download the code from article itself.
because i need a project based on microcontroller
Different
Searching
code is uploaded in the project
Why you need this project code?
because RTC is part of my project
Are you trying to make the same project or different one.
yes
I tried the same project with same details from electronicshub but its not working! On proteus it shows logic contentions on net AD0, AD1 ….AD7. I checked the connections several times and there is no fault in the connections. Please HELP!!
Not working!! PLz help!
I want simple construction of this project
Program is not working properly.
i m having issue with start switch ,when i press the start switch push button it does display lcd data but in 00:00:00, even after setting the time ,the timer doesnt start,,,,,,,need help guysss
no working
i’m trying to make a similar project but with atmega128 micro controllers. will the codes work for atmega128 ?
i m also having issue with start switch ,when i press the start switch push button it does display lcd data but in 00:00:00, even after setting the time ,the timer doesnt start,,,,,,,need help guysss
i want to do this project…..please guide me
l love ur project,pls can u guide me to do my.