要:本文主要分析了以STC89C51單片機為控制核心雙色無表針鐘表,該設計通過采用74LS154擴展I/O口進行控制鐘表的顯示,并采用雙色LED燈進行小時、分鐘分別顯示。
關鍵詞:單片機;無表針鐘表;譯碼器
1、引言
在日常生活中,數字鐘很常見,而且應用十分廣泛。以往的數字鐘用數字電路制作和控制。而單片機體積小、重量輕、抗干擾能力強,以及靈活性、可靠性好和很高的性價比等這些特點在做鐘表方面更有優勢。基于人們對于個性化和耗電低等方面的需求,本設計的鐘表以STC89C51單片機為控制核心,采用74LS154(4—16線譯碼器)擴展I/O口以控制鐘表的顯示,并采用雙色LED燈進行小時分鐘顯示:12個紅色LED燈表示小時,12個綠色LED燈表示分鐘,每隔5分鐘變化一次。同一時刻僅有兩個LED燈亮,更富有個性、更節能、更易識別。(對于普通的用戶鐘表誤差在5分鐘完全可以接受,所以這樣的設計還是用一定使用性的)
2、主體結構模塊
本設計分為核心控制、顯示控制和時間調整三大模塊,主體結構如圖1所示:
圖1 主體結構模塊
3、硬件電路設計
3.1 主控電路
主控電路由STC89C51單片機控制,74LS154(4—16線譯碼器)進行I/O擴展,采用12MHz晶振。STC89C51有P0、P1、P2和P3四組I/O口線,每組8個端口,本設計采用P1、P2和P3三組線,P1.0~P1.3口與74LS154輸入口相連,74LS154(0~11)輸入口各自與一個紅色LED燈相連,控制小時顯示,P2.0~P2.3口與74LS154輸入口相連,74LS154(0~11)輸入口各自與一個綠色LED燈相連,控制分鐘顯示。在程序的控制下實現同一時間僅有兩個燈亮的雙色無表針鐘表,其中紅色表示小時,綠色表示分鐘,例如,當1:10時,1處紅色LED燈亮,2處綠色LED燈亮。
3.2驅動與LED顯示電路
用74LS154(2個)24個端口控制24只LED發光二極管的亮滅,當端口輸出低電平時,LED燈亮,反之,LED燈滅。用直流5V電源給STC89C51和24只LED燈供電,通過程序控制各個LED燈的亮滅,從而實現時間的顯示。
3.3電源部分
方案a:
為獲得足夠大的電流,采用兩片7809將電壓穩壓至9V后給直流電機供電,然后采用一片7805將電壓穩至5V,給單片機系統和其他芯片供電。
方案b:
9V的干電池經過7805轉出5V
此處由于方案a電路連線較為復雜,而方案b線路簡單而有穩定,故選擇了方案b。
4、軟件設計
STC89C51的T0工作在定時狀態,P1口控制小時顯示,P2口控制分鐘顯示,T0每次定時60ms,循環5000次,即定時5min,P2口輸出值加1,分鐘顯示跳一格(與此同時P0.0輸出1驅動蜂鳴器發聲),P2口送入0,重新開始循環。當小時顯示12格時(12小時),P1口送入0,重新開始循環。INT0、INT1中斷分別用于小時、分鐘調整,發出中斷請求后,每給一個脈沖對應的小時和分鐘跳一格,直到指定的時間。
5、總結
本設計是基于單片機的雙色無表針鐘表,實際測試表明此鐘表適合在廣場等地方粗略指示時間,設計符合實際應用要求。另外,同一時間近保持兩個LED燈亮,耗電極低,更節能,更適于提倡低碳世界的今天,而且雙色顯示更易辨認。
參考文獻:
[1]C語言程序設計教程.譚浩強.清華大學出版社.2001
[2]單片機原理及其接口技術.胡漢才.清華大學出版社.2004
[3]開關電源設計,蘇厚和.電子工業出版社.2001