Skip to content

A PIC16F876A clock and thermometer project including PCB design

Notifications You must be signed in to change notification settings

willpferr/pic_clock_thermometer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

PIC_CLOCK_THERMOMETER

This project involves creating a digital clock and thermometer using a PIC16F876A microcontroller. The project includes the design for two printed circuit boards (PCBs): one for the main board and one for the push buttons.

The system is implemented using MPLAB X IDE and XC8 v2.46 compiler.

Features:

  • 7-segment display with 4 digits to display time and/or temperature in Celsius;
  • Programmable time-of-day alarm with a buzzer;
  • 2 LEDs: one indicating the alarm state (on/off) and one indicating temperature signal (on for negative temperature, off for positive temperature).
  • PCB: Two power supply possibility: 5V DC (VCC_USB) or DC up to 20V regulated by a LM7805. The power supply is selected via VCC_SEL pin header. In-Circuit Serial Programming (ICSP) compatible.

Peripherals:

  • Temperature sensor: DS18B20;
  • Real-time clock (RTC): DS3231;
  • 7-segment display: TM1637.

Interaction: The system can be interacted using 3 push buttons:

  • STEP: Press STEP button during running mode to activate the updating mode, which blinks the selected field. Each press cycles through different fields in the following sequence:
    • 1: Clock hour (range: 0-23);
    • 2: Clock minute (range: 0-59);
    • 3: Alarm mode ('A' at first digit) (states: on/off);
    • 4: Alarm hour (range: 0-23);
    • 5: Alarm minute (range: 0-59);
    • 6: Temperature mode ('t' at first digit) (states: F(float)/I(integer));
    • 7: Display Brightness ('b' at first digit) (range: 0-7).
  • INC: Changes the selected field's value to its next value;
  • SET: Press SET button during updating mode to apply the current value to its corresponding field. In running mode, pressing SET will change the displayed data (clock, temperature, alternating clock/temperature). When the buzzer is active due to an alarm, pressing SET will disable it. Otherwise, the buzzer will be disabled automatically after about 30 seconds.

About

A PIC16F876A clock and thermometer project including PCB design

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages