Digital alarm clock using PIC16F877 microcontroller

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


  • 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…))


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

Current Project / Post can also be found using:

  • pic alarm clock project
  • alarm clock program in pic
  • alarm clock pic microcontroller
  • digital alarm clock using pic microcontroller
READ  PIC16F84A LCD interfacing code (using 3 pins only) + Proteus simulation

Leave a Comment

= 3 + 5

Read previous post:
Internal Oscillator Recalibration
Internal Oscillator Recalibration Utility for PIC12F629

Description The PIC 12F629 and 12F675 devices have an internal 4Mhz oscillator that enables the devices to be used without...

Scroll to top