Digital alarm clock using PIC16F877 microcontroller

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.

Digital alarm clock

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

Quick Solutions to Questions related to Digital Alarm Clock:

  • 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.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter