《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > AT89C2051單片機(jī)制作的六位數(shù)顯多路定時電子鐘
AT89C2051單片機(jī)制作的六位數(shù)顯多路定時電子鐘
摘要: 這里介紹的電子鐘,,電路可稱得上極簡,它僅使用單片的20引腳單片機(jī)完成電子鐘的全部功能,而筆者見到的其它設(shè)計方案均采用二片以上的多片IC實(shí)現(xiàn),。一片20引腳的單片機(jī)STC2032(引腳排列與AT89C2051完全相同)為電
Abstract:
Key words :

   這里介紹的電子鐘,,電路可稱得上極簡,它僅使用單片的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)行主程序, 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。