新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)制作的六位數(shù)顯多路定時電子鐘

51單片機(jī)制作的六位數(shù)顯多路定時電子鐘

作者: 時間:2011-10-17 來源:網(wǎng)絡(luò) 收藏

這里介紹的電子鐘,電路可稱得上極簡,它僅使用單片的20引腳單片機(jī)完成電子鐘的全部功能,而筆者見到的其它設(shè)計方案均采用二片以上的多片IC實(shí)現(xiàn)。
一片20引腳的單片機(jī)STC2032(引腳排列與AT89C2051完全相同)為電子鐘主體,其顯示筆畫數(shù)據(jù)從P1口分時輸出,P3口則輸出對應(yīng)的六位選通信號。由于LED數(shù)碼管點(diǎn)亮?xí)r耗電較大,故不能使用AT89C2051單片來完成,但是可以可以用STC89C2032來完成。另外,本站制作時用超高亮的發(fā)光二極管代替昂貴的大數(shù)碼管,成本低,效果獨(dú)特。

本電子鐘設(shè)計有三個輕觸式按鍵,這里我們分別命名為:模式設(shè)定鍵K1、加調(diào)整鍵K2、減調(diào)整鍵K3。由于STC89C2032內(nèi)部已經(jīng)集成有復(fù)位電阻,所以,復(fù)位腳只需要接一只電容即可。本電子鐘采用了一只NPN型的三極管及蜂鳴器為鬧時訊響電路。本圖采用電池供電,電路板上有橋式整流、濾波和三端穩(wěn)壓器7805的安裝位置,可以用交流電壓供整個系統(tǒng)工作。此電子鐘可與任何6~12V/100mA的交直流電源適配器配合工作,適應(yīng)性強(qiáng)。

電子鐘功能

1.走時:默認(rèn)為走時狀態(tài),按24小時制分別顯示“時時:分分:秒秒”,有四個秒點(diǎn)動態(tài)顯示,時間會按實(shí)際時間以秒為最少單位變化。

2.走時調(diào)整:長按K1(或K2、K3)兩秒鐘以上,時位、分位、秒位會有其一快速閃動,按K1會循環(huán),按K2和K3可以分別對閃動的數(shù)字進(jìn)行加或者減,從而達(dá)到快速設(shè)定時間的目的。20秒以上長時間沒有任何按鍵操作時,自動按變?yōu)檎W邥r狀態(tài)。

3.鬧時調(diào)整:再次長按K1(或K2、K3)兩秒鐘以上,時位、分位、秒位會有其一慢速閃動,按K1會循環(huán),按K2和K3可以分別對閃動的數(shù)字進(jìn)行加或者減,從而達(dá)到快速設(shè)定鬧時的目的。20秒以上長時間沒有任何按鍵操作時,自動按變?yōu)檎W邥r狀態(tài)。
注意:鬧時狀態(tài)下時位會在01-64變化,表示64路定時時間;分位只能在00-24變化,表示24個小時,其中默認(rèn)顯示為24,表示不鬧;秒位在00-59變化,表示60個分鐘。因此,本電子鐘以分鐘為最小單位可以設(shè)定多路鬧時。(由于64路太多,基本上沒有什么用,用起來反而不方便,所以,本站出售的是16路定時的。)

4.誤差修正狀態(tài):大家知道,即便是世界上最優(yōu)良正統(tǒng)的石英晶振,頻率也會有偏差,需要電容微調(diào)校正頻率,不同的電容和負(fù)載會影響到頻率偏移。這種情況可能會使日誤差達(dá)到幾十秒。當(dāng)然,配備優(yōu)質(zhì)正品元件會使走時誤差小到幾秒,如果設(shè)計微調(diào)電容的話,就可以使每天的走時誤差小到1秒以內(nèi)。
但是,對于業(yè)余制作來說,沒有更標(biāo)準(zhǔn)的測量設(shè)備來證明你的調(diào)試是剛剛好,不能測周期,不能測頻率(普通的測量會改變電路工作參數(shù)帶來更大的測量誤差)。而我們一般都會按電視臺的時間來做對比,經(jīng)過了24小時,我的電子鐘究竟是快了??還是慢了??
現(xiàn)在不用怕了,本電子鐘設(shè)計了誤差校正程序:如果你的電子鐘走一天會快1.6秒(或者慢0.8秒),那么,通過本電子鐘的誤差校正設(shè)置,可以在一天中不知不覺的減慢1.6秒(或者加快0.8秒)。因此,本電子鐘理論上可以做到日誤差小于0.2秒,當(dāng)然,具體的過程和效果還需要大家去操作和證明。
誤差校正方法:在鬧時調(diào)整狀態(tài)下,再長按K1(或K2、K3)兩秒鐘以上,時位、分位會變成“一一一一”或者“三三三三”,表示變慢或者變快的意思,按K1選擇;秒位會變成00,按K2、K3會在00-80中變化,數(shù)字越大,表示校正越大,00等于即不校正變快也不校正變慢,例如2+0=2-0這樣的情況。20秒以上長時間沒有任何按鍵操作時,自動按變?yōu)檎W邥r狀態(tài)。
其它功能:
1、如果是在走時狀態(tài),正逢到在鬧鈴響(會長響20秒)中,按K1、K2、K3任意鍵停止發(fā)聲。
2、在走時狀態(tài),按K3可以讓電子鐘每秒都發(fā)出短短的“嘀”聲,這有點(diǎn)類似機(jī)械指針式的電子鐘(或者機(jī)械手表)的聲音,當(dāng)然,聲音要大得多。這個功能很有用,例如,我們有些特殊情況時不能去看著鐘,但是可以閉上眼睛聽聲音在心中默默數(shù)數(shù)經(jīng)過了多少秒再去操作某某。再按可以關(guān)掉秒發(fā)聲。
3、整點(diǎn)報時功能:按K2可以開啟和關(guān)閉整點(diǎn)報時功能。開啟后每逢整點(diǎn)就會聽到長響兩秒“嘀”聲。
4、鬧時開關(guān)功能:按K1可以開啟和關(guān)閉定時鬧鈴功能。關(guān)閉鬧鈴后,以前設(shè)置的數(shù)據(jù)不會丟失。


由于電路設(shè)計得極其簡單,因此豐富的功能只能由軟件完成,這里軟件設(shè)計成為了關(guān)鍵。下面介紹軟件設(shè)計中采用的一些要點(diǎn)。

本電子鐘程序設(shè)計時只使用了一個定時數(shù)T0,其它的中斷全部關(guān)斷,定時器工作在兩個8位自動加載初始值狀態(tài)。這是保證走時精確穩(wěn)定的重要方法。站長看到很多書本教材上都讓大家用定時器中斷來執(zhí)行動態(tài)顯示程序和按鍵掃描程序,這是一種很不好的方法,除了浪費(fèi)硬件資源以外,還會增加程序復(fù)雜性,還會影響其它程序運(yùn)行。
站長認(rèn)為,越是中斷程序,就要越寫得簡短,最好幾條指令就立即結(jié)束,對于動態(tài)掃描顯示、按鍵功能等等可以寫在主程序中讓程序不停的反復(fù)運(yùn)行,如果中斷多,最大的壞處就是影響到主程序運(yùn)行時間不夠,掃描顯示會出現(xiàn)閃爍,或者按鍵反應(yīng)變慢(一般覺察不出),可是,這又有另一好處,你可以隨時改良程序并且立即看到結(jié)果。
LED動態(tài)掃描顯示是分時點(diǎn)亮各個LED,利用人的視覺暫留特性,讓人覺得是連續(xù)點(diǎn)亮。當(dāng)點(diǎn)亮的頻率高時,說明單片機(jī)有充足的時間運(yùn)行主程序,




關(guān)鍵詞: 51單片機(jī) 定時電子鐘

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉