資料介紹
普通的家用時鐘一般只能設(shè)置一個鬧鐘時間,但很多人均需為工作日、周末、早晨、午休等不同時段設(shè)置不同的鬧鐘時間。如果是使用普通的鬧鐘,只好每次休息前重新設(shè)置,很不方便,有時甚至?xí)霈F(xiàn)忘記更改鬧鐘設(shè)置而睡過頭的情況。針對這種情況,本人利用89C51 單片機設(shè)計了一款有 8 種鬧鐘設(shè)置的時鐘,通過一段時間的使用,情況良好。
電路圖
功能簡介
該時鐘以 24 小時制顯示時間,并可顯示 2000 年至 2049 年之間的任何日期及星期,日期與時間經(jīng)按鍵可相互切換,可輸入 8 個鬧鐘時間設(shè)置,每個鬧鐘設(shè)置包括響鈴的時間(小時與分鐘)、對工作日有效還是對周末有效的標(biāo)志,以及本項設(shè)置是否啟用的標(biāo)志等三部分。這 8 個鬧鐘設(shè)置均保存在 EEPROM 中,即使掉電也不用重新輸入。當(dāng)然使用者可通過按鈕對任何一個設(shè)置作修改。數(shù)碼管可經(jīng)按鈕關(guān)閉顯示,避免夜間刺眼、影響睡眠。調(diào)節(jié) LM317輸出電壓,可改變數(shù)碼管亮度,但電壓不能低于后備電池的電壓,否則后備電池供電。用四節(jié) 1.25V 電池串聯(lián)作后備電源,保證市電停電時時鐘繼續(xù)走時。時鐘的精度取決于晶振頻率的精度。
本程序用C 語言編寫,經(jīng) Keil C51 編譯成二進制碼后寫入 89C51 內(nèi)的 EPROM 內(nèi)即可。
#include “atmel\at89x51.h”
#include “intrins.h”
unsigned char hour,min,sec,year,month,day,weekday; //當(dāng)前時間、日期、星期
unsigned int count_down; //1 秒鐘計時用
bit led_on; //數(shù)碼管是否點亮的標(biāo)志
unsigned char display[8]; //8 位數(shù)碼管要顯示的數(shù)據(jù)
unsigned char attr; //八個數(shù)碼管的閃爍控制字節(jié),當(dāng)為 0 時,對應(yīng)數(shù)碼管閃
bit flash; //LED 閃爍開關(guān),與 attr 共同決定數(shù)碼管是否閃爍
unsigned char show_status; //LED 顯示狀態(tài)標(biāo)志
// 0:設(shè)置鬧鐘數(shù)據(jù)
// 1:顯示當(dāng)前日期及星期
// 2:顯示當(dāng)前時間
// 3:設(shè)置當(dāng)前日期
// 4:設(shè)置當(dāng)前時間
bit km; //按鍵已去抖動標(biāo)志
bit kp; //按鍵已處理標(biāo)志
bit sound; //蜂鳴器響標(biāo)志
bit alarm_stop; //蜂鳴器響后用戶手工按停標(biāo)志
struct { unsigned char h; //小時
unsigned char m; //分鐘
} alarm[8]; //8 個鬧鐘項
unsigned char alarm_en; //鬧鐘項啟用標(biāo)志
unsigned char alarm_wk; //鬧鐘項周末啟用標(biāo)志
unsigned char cur_alarm_set; //當(dāng)前設(shè)置的鬧鐘項
unsigned char cur_alarm_active; //當(dāng)前到點的鬧鐘項
bit new_alarm_info; //鬧鐘項內(nèi)容已修改標(biāo)志
- 基于89C51單片機的8位LED右移源程序 4次下載
- 基于89C51單片機的8位端口檢測8獨立按鍵源程序 2次下載
- 基于89C51單片機的DS1302時鐘原理源程序 11次下載
- 基于89C51單片機的DS1302可調(diào)時鐘源程序 3次下載
- 基于89C51單片機的DS1302時鐘串口自動更新時間源程序 1次下載
- 基于89C51單片機的定時做普通時鐘可調(diào)源程序 0次下載
- 基于89C51單片機的秒表源程序 13次下載
- 基于89C51單片機的1個獨立按鍵控制LED狀態(tài)轉(zhuǎn)換源程序 2次下載
- 基于89C51單片機的電子琴源程序 4次下載
- 基于89C51單片機的電機速度測試程序 2次下載
- 基于89C51單片機的8位LED左移源程序 1次下載
- 基于89C51單片機的24c02記憶開機次數(shù)源代碼 6次下載
- 基于89c51單片機的時鐘可調(diào)定時器設(shè)計 63次下載
- 89C51單片機課程設(shè)計 136次下載
- 89C51單片機的結(jié)構(gòu)和原理 0次下載
- 基于51單片機的電子鐘鬧鐘溫度顯示設(shè)計 2495次閱讀
- AT與STC單片機的主要區(qū)別 1.1w次閱讀
- 基于51單片機的鬧鐘系統(tǒng)設(shè)計 2269次閱讀
- 基于89C51時鐘電路的設(shè)計與制作 9669次閱讀
- 51單片機的匯編程序庫 9731次閱讀
- 基于89C51和89C52單片機對數(shù)控機床的控制設(shè)計 4756次閱讀
- AT89S51單片機的看門狗功能設(shè)計 4220次閱讀
- 單片機學(xué)習(xí)心得1:89c51單片機定時器應(yīng)用! 9968次閱讀
- 89C51單片機16位數(shù)據(jù)傳送指令的執(zhí)行過程 5341次閱讀
- 基于51單片機直流電機PWM調(diào)速程序 4.8w次閱讀
- 基于AT89C51單片機直流電機PWM調(diào)速程序分享 1.7w次閱讀
- 51單片機超聲波測距程序代碼分享 2.8w次閱讀
- 89C51單片機中斷知識要點 1.7w次閱讀
- 51單片機時鐘電路圖匯總(八款單片機時鐘電路圖) 11.5w次閱讀
- 89C51單片機的步進電動機控制系統(tǒng)設(shè)計 1.4w次閱讀
評論