發(fā)一個(gè)自己原創(chuàng)小玩意,多功能電子時(shí)鐘。
功能:年,月,日,星期,時(shí),分,秒,溫度大屏幕實(shí)時(shí)顯示;帶鬧鐘功能(最多支持3個(gè)獨(dú)立鬧鐘,鬧鐘支持和弦可選);帶3路獨(dú)立定時(shí)開關(guān);斷電記憶,掉電后時(shí)間會(huì)繼續(xù)走。
方案:STC89C54+LCD12864(ST7920控制器)+DS1302+DS18B20
編程語言:C
開發(fā)環(huán)境:keil
電路設(shè)計(jì)軟件:Protel 99se
此小制作是本人在大二時(shí)所作,本人原創(chuàng)。初衷是制作一個(gè)電子鐘,放在工作臺(tái)上,方便自己看時(shí)間,看溫度,使用鬧鐘。3路定時(shí)開關(guān)可以拿來控制一些小電器,比如定時(shí)控制臺(tái)燈的開關(guān)。這個(gè)小玩意制作成功時(shí),還引起了不少師弟師妹的好奇,他們覺得特神奇,原來單片機(jī)這么有趣。
廢話不多說了,上圖吧
實(shí)物圖:LCD12864白字藍(lán)背光,時(shí)鐘采用了自定義的大字符顯示,看起來感覺好些。背光可長(zhǎng)亮,也可短亮,可以人為設(shè)置。在背光熄滅狀態(tài)時(shí)按任意一個(gè)按鍵背光就會(huì)亮起。主界面右上角那個(gè)“T”下面一個(gè)開關(guān)是指示自動(dòng)控制開關(guān)是否開啟,右下角的小喇叭是鬧鐘指示,鬧鐘沒打開的時(shí)候小喇叭會(huì)消失。
液晶旁邊的三個(gè)繼電器可實(shí)現(xiàn)自動(dòng)定時(shí)控制作用。在設(shè)置里面可以分別調(diào)整三個(gè)繼電器吸合、斷開時(shí)間,比如用于定時(shí)控制臺(tái)燈開關(guān),還是很實(shí)用的。
液晶下面是4個(gè)按鍵,分別是設(shè)置,+,-,OK;由于板子尺寸限制,按鍵較少,操作起來會(huì)稍微麻煩一點(diǎn)。
按鍵的右邊是電源輸入,只需接一個(gè)5V0.8A左右的直流電源即可。
液晶下面是STC單片機(jī)、DS1302、DS18B20、備份電池和蜂鳴器。
DS1302實(shí)時(shí)時(shí)鐘,外接備份電池,可以實(shí)現(xiàn)斷電時(shí)鐘仍繼續(xù)走的功能,并且將用戶設(shè)置存于DS1302的RAM中,避免斷電之后需要重新設(shè)置的麻煩。DS18B20測(cè)量溫度,精度很高,很好用,蜂鳴器用于按鍵聲和鬧鐘,單片機(jī)內(nèi)部集成了兩首和弦,避免單調(diào)的滴滴聲,該制作里面有三個(gè)鬧鐘,一般夠用了。
原理圖:
PCB:
部分程序截圖:
程序均采用了模塊化編寫,每個(gè)程序有對(duì)應(yīng)的輸入輸出參數(shù)說明,便于調(diào)用,有較多注釋,讀程序比較容易
主函數(shù)程序比較簡(jiǎn)單,就包含了液晶、IO、DS1302、DS18B20還有定時(shí)器的初始化。主循環(huán)里面主要執(zhí)行液晶顯示、按鍵掃描、定時(shí)開關(guān)控制、鬧鐘處理、備份電池充電程序。
這個(gè)DS1302讀數(shù)據(jù)的子程序,SPI三線串口
這個(gè)是鬧鐘和弦的數(shù)據(jù)表,可以根據(jù)個(gè)人喜好更改。
附件是這個(gè)小制作的所有文件,包含99格式的原理圖、PCB;源代碼及HEX文件,還有一張實(shí)物照片,喜歡的朋友可以直接動(dòng)手做,直接把程序燒好就可工作,只要焊接無誤,一般不需要調(diào)試。注意:LCD12864需要用ST7920控制器帶字庫的,不帶字庫的話會(huì)出現(xiàn)亂碼。