Digital Clock Using Microcontroller (AT89S52 Without RTC Circuit)
by Abhrodeep Chanda in Circuits > Microcontrollers
13138 Views, 19 Favorites, 0 Comments
Digital Clock Using Microcontroller (AT89S52 Without RTC Circuit)
Lets describe a clock... "Clock is a device that counts and shows time(relative)"!!!
Guess I said it right so lets make a CLOCK with ALARM feature.
NOTE: it will take 2-3 minutes in reading please read the whole project or else I will not be responsible for any part damage.
COMPONENTS REQUIRED
6 components needed :
1. Microcontroller (I have used AT89S52-8051 family), any programmable microcontroller can be used.
2.7 segment display
3.Crystal oscillator (12MHz)
4.Capacitor (10uF, 33pF/22pF)
5.LEDs
6.resistances (330 Ohm)
7.buzzer (piezo)
8.push switches
And I'm not including soldering iron, wire, flux..... electricity !!! help me out :)
Circuit Diagram
This is the circuit diagram of the digital clock using 8051 microcontroller.
As we can see the microcontroller is connected to three 7 segment display with distinct ports not multiplexed and the last hour digit is only connected to a pin as it only shows 1.
LED and buzzer are self explanatory according to the code.
1 of the LED is for AM and I have connected another LED not shown in the figure for alarm.
Crystal Oscillator of 12MHz is connected to clock speed and attaining the exact 1second counting using the interrupt property of the microcontroller.
THE MIDDLE LEDS DENOTING SECOND ARE CONNECTED TO "28TH AND 32ND" PIN.
Please pardon me, 3 LEDs aren't shown in the circuit diagram for my laziness.
28th pin LED: first 30 second blink
32nd pin LED: rest 30 second blink
****contributing to a whole minute!!*** i'm sure after this project I came to know 60 second makes a minute!!! WOW
Coding
I have used keil software to built a C code for the RTC using microcontroller and getting hex file.
REFER TO CODING PORTION ON THIS TO KNOW MORE!!
The fundamental thing in the coding part is, when the pin of each port will toggle for showing the digit related to each 7segment display.
The interrupt property of 8051 is used to count and reload per second. for example only, Just like creating a delay function with argument 1 causing 1second delay. (TMOD,TL0,TH0,IE every value contributes to the time making)
The LED for AM is programmed for alternate 12 hour.
As well as alarm can also be set for AM or PM specifically and the buzzer pin is passed with frequency code to buzz on the alarm time. Alarm button with min, hour & save switch is used for setting alarm. On twice clicking alarm disables alarm feature.
CODE: C code for getting the idea only (hex file is the exact one of the project)
https://github.com/abhrodeep/Arduino_projs/blob/master/digitalclock.c
Finally...
ALL done !!! Now iT'S time to enjoy the clock that's bright and exact.
NO DISCREPANCIES WITH REAL TIME...
IF you liked it "make it" and "make it your favorite"...
Thanks for reading ...