Summary of Digital alarm clock using PIC16F877 microcontroller
This DIY alarm clock uses a PIC16F877 microcontroller to display time on a 4x20 backlit LCD and play an annoying tune via a speaker using PWM. It features timer-based timekeeping, four pushbutton inputs for menu navigation, and a planned computer interface for web synchronization. The project includes dimmable backlighting and was programmed in JAL assembly language, successfully waking the user before the alarm sound played.
Parts used in the Digital Alarm Clock:
- PIC16F877 microcontroller
- 4x20 hd44780 compatible backlit LCD
- Speaker
- PWM modules (CCP1 and CCP2)
- Four pushbuttons on port D
- Battery backup (optional/planned)
This is an alarm clock I built. It was very effective during the sort time I used it, because I programmed it to play a very annoying tune through a speaker. I actually started to wake up before the alarm went of, so other people in the house didn’t wake up from the annoying pitches it played.
The JAL source code is available on my download page
Features
- Timekeeping using the PIC’s timer0 interrupt
- 4×20 hd44780 compatible backlit LCD, displaying the time in big numbers (4×4 and 4×3) * Alarm sound tune using PWM
- computer interface for synchronizing time with the web.
- (maybe battery backup (in case of a power outage…))
Status
| Timekeeping: | Rewritten in assembler. (losing one stack level, previously losing two stack levels, ISR and procedure time…) :Display: Done. Use’s Vasile’s 4-line lcd routines and tables to store the texts. |
|---|---|
| Bignumbers: | Done. Data stored in tables. |
| Backlight: | The backlight is dimmed using the internal CCP1 module of the PIC in PWM mode. :Input: Four pushbuttons on port D, handled by buttons.jal (function keypress(byte in key) return bit). |
| Alarm sound: | Uses CCP2 in PWM mode, inspired by Vasile! |
| Menu code: | Works. Can set time/alarm. |
| Computer link: | (interface code) Nothing yet. |
For more detail: Digital alarm clock using PIC16F877 microcontroller
- How is timekeeping managed?
Timekeeping uses the PIC's timer0 interrupt. - What display is used for the time?
A 4x20 hd44780 compatible backlit LCD displays the time in big numbers. - Can the backlight be adjusted?
Yes, the backlight is dimmed using the internal CCP1 module of the PIC in PWM mode. - How are user inputs handled?
Four pushbuttons on port D handle input through the buttons.jal function keypress. - Does the alarm use a specific sound method?
The alarm sound tune uses PWM with the CCP2 module. - Is there a way to sync the time automatically?
There is a computer interface designed for synchronizing time with the web, though it is not yet complete. - What programming language was used?
The project uses JAL source code, with timekeeping rewritten in assembler. - What happens if power is lost?
There is a plan for battery backup in case of a power outage, but it is marked as maybe.
