摘 要: 介紹一種以STC89C52單片機、DS1302,1602液晶顯示為核心,具備調(diào)節(jié)時間,設(shè)置開啟時間與關(guān)閉時間的定時開關(guān)的實現(xiàn)過程。采用C語言編寫,與匯編語言相比具有更好的移植性和可讀性,便于修改和增減功能,并通過Protues成功仿真。
關(guān)鍵詞: STC89C52; 定時開關(guān); C語言; Protues
中圖分類號: TN710?34; TP39 文獻標識碼: A 文章編號: 1004?373X(2013)08?0004?03
0 引 言
定時開關(guān)[1]在人們生活中扮演著重要的角色,給人們的生活帶來了很大的方便。早在我國的古代采用滴水方式計時,當(dāng)水滴到一定量時就引發(fā)機關(guān)報時。隨著電子信息的快速發(fā)展, 如今的電視機,電風(fēng)扇等電器產(chǎn)品都附帶了定時器,但是電子產(chǎn)品附帶的定時器只適用于該用電器,并不能擴展使用到其他用電器上。
本文所介紹的定時開關(guān)目的在于控制主電源,從而適用于能瞬間斷電的一切電子產(chǎn)品,不僅能在規(guī)定的時間準時斷開同時能在設(shè)定的時間內(nèi)準時開啟,給人們?nèi)粘I顜砹藰O大的方便,如能通過應(yīng)用此定時開關(guān)在上班期間定時煮飯,手機充電在適當(dāng)時間將電源斷開。
該定時器具備以下幾個特點:采用C語言[2]編寫程序,與匯編語[3]言相比便于修改和增減功能;所采用的芯片STC89C52單片機、1602液晶顯示器,DS1302時鐘芯片功耗低、可靠性高;與機械定時器相比不僅消除了噪聲,更加準確,且使用壽命要長;采用Protues仿真,方便直觀。
1 系統(tǒng)設(shè)計方案
以STC89C52[4]單片機為核心,通過DS1302時鐘芯片進行時間控制,使用1×4鍵盤作為數(shù)據(jù)輸入方式,驅(qū)動1602顯示器提示程序運行過程和開鎖的步驟。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)硬件組成
使用的元器件有:核心芯片STC89C52、時鐘芯DS1302、液晶顯示1602、繼電器、蜂鳴器、1×4鍵盤[5]、發(fā)光二極管和三極管。
2.2 系統(tǒng)軟件設(shè)計
本文采用單片機的C語言編寫程序?qū)φ麄€系統(tǒng)的硬件進行管控,實現(xiàn)了對DS1302的控制,1602的顯示,時間管控。其中時間管控包括:系統(tǒng)時間以及開啟與關(guān)閉時間的設(shè)定,系統(tǒng)時間與開啟或關(guān)閉時間相同時繼電器、蜂鳴器和指示燈工作狀態(tài)的管控 。系統(tǒng)程序流程如圖2所示。
2.2.1 DS1302的控制[6]
DS1302的RST,SCLK和I/O分別與單片機的P2.0,P2.1和P2.2相連。單片機與DS1302進行數(shù)據(jù)交換時,首先要將RST變?yōu)楦唠娢唬簿褪菃纹瑱CP2.0必須為邏輯1。在RST保持為高電位時,SCLK時鐘由低電位變?yōu)楦唠娢坏纳仙貢r,數(shù)據(jù)被寫入DS1302中,數(shù)據(jù)從最低位通過I/O開始寫入。在RST保持高電位,SCLK時鐘由高電位變?yōu)榈碗娢坏南陆笛貢r,從DS1302讀取數(shù)據(jù),數(shù)據(jù)也是從DS1302的最低位通過I/O讀取。
DS1302讀取數(shù)據(jù)子程序
unsigned char read( unsigned char addr )
{
unsigned char j,temp,value;
CE=0;
SCLK=0;
CE = 1;
//發(fā)送地址
for ( j=8; j>0; j-- )
{
SCLK = 0;
temp = addr;
IO = (bit)(temp0x01);
addr >>= 1;
SCLK = 1;
}
//讀取數(shù)據(jù)
for ( j=8; j>0; j?? )
{
ACC_7=IO;
SCLK = 1;
ACC>>=1;
SCLK = 0;
}
CE=0;
value=ACC;
value=value/16*10+value%16;
return (value);
}
2.2.2 1602的顯示[7]
通過單片機指令控制1602光標是否閃爍,是否清除原來數(shù)據(jù)以及顯示的具體位置,并不停地對數(shù)據(jù)顯示進行刷新,從而顯示了準確的時間,并為系統(tǒng)提供了智能的人機對話模式。
2.2.3 時間的管控
當(dāng)系統(tǒng)啟動時,STC89C52單片機立即從DS1302時鐘芯片獲取時間,并通過鍵盤和1602顯示器配合完成對當(dāng)系統(tǒng)時間、啟動時間和關(guān)閉時間的設(shè)定。當(dāng)系統(tǒng)時間與啟動時間相同,從而控制繼電器閉合,直到系統(tǒng)時間與關(guān)閉時間相同時斷開。
3 系統(tǒng)仿真
本文采用具有強大的EDA仿真功能的Protues[8]軟件進行仿真,仿真圖如圖3所示。
3.1 系統(tǒng)介紹
系統(tǒng)仿真圖中的STC89C52為真?zhèn)€系統(tǒng)的控制核心,將其編寫的程序以二進制的形式燒入后,它將按照編寫的指令運行。通過P2.0,P2.1和P2.2與右上方的DS1302時鐘芯片的聯(lián)系在一起,從而控制DS1302的執(zhí)行方式。在STC89C52的控制下,1602液晶顯示器能顯示當(dāng)前時間,提示用戶修改時間;左下方的繼電器能在設(shè)定的開啟時間閉合,在設(shè)定的關(guān)閉時間斷開;中間的藍色信號燈在繼電器閉合是點亮;四個獨立鍵盤在1602液晶顯示器配合下完成系統(tǒng)時間、開啟時間和關(guān)閉時間的設(shè)置;右下方整個模塊為系統(tǒng)提示模塊,當(dāng)系統(tǒng)時間與設(shè)定的開啟或者關(guān)閉時間相同時,D1將閃爍3次同時蜂鳴器響3聲;D2用于模擬用電器,當(dāng)繼電器閉合時,將會被點亮。
3.2 系統(tǒng)時間的設(shè)置
當(dāng)電源開啟時,1602將顯示系統(tǒng)初始化時間,按下FUC鍵后,時間停止走動并且顯示秒的數(shù)字將會閃爍,此時可以通過ADD和SUB鍵調(diào)節(jié)。其中每按下一次ADD鍵數(shù)字將加1,每按下SUB鍵數(shù)字將減1。調(diào)節(jié)完秒后,再次按下FUC鍵,閃爍的光標將轉(zhuǎn)移到分鐘位置,同樣通過調(diào)節(jié)ADD和SUB鍵盤調(diào)節(jié)當(dāng)前的時間。同樣的原理調(diào)節(jié)小時與日期。當(dāng)調(diào)節(jié)星期時候,按下ADD和SUB將按照星期的英文縮寫變化顯示。調(diào)節(jié)完星期后在此按下FUN鍵后,閃爍光標將消除,同時時間開始在調(diào)節(jié)完畢的基礎(chǔ)上開始運行。
3.3 開啟與關(guān)閉時間的設(shè)置
在1602顯示器正常顯示時間的期間,按下CHOOSE鍵一次,液晶顯示器顯示當(dāng)前設(shè)置的開啟時間,如圖4所示。按下FUC鍵后,光標在秒位閃爍,同樣通過ADD和SUB鍵進行調(diào)節(jié)。再次按下CHOOSE鍵后,液晶顯示器顯示當(dāng)前關(guān)閉時間。同樣按下FUC鍵配合ADD與SUB鍵調(diào)節(jié)關(guān)閉時間。再次按下CHOOSE鍵,顯示器回到系統(tǒng)時間顯示界面。當(dāng)系統(tǒng)時間與設(shè)定的啟動時間相同時,繼電器閉合,蜂鳴器[9]響3聲,D1閃爍3次,信號燈變藍,同時D2被點亮。直到系統(tǒng)時間與設(shè)定的關(guān)閉時間相同,蜂鳴器再次響3聲,D1閃爍3次,信號燈和D2都熄滅。
4 結(jié) 語
該智能定時開關(guān)系統(tǒng)采用C語言編寫,以STC89C52和DS1302為核心,具備時間準確,功耗低,增加功能方便。通過Protues的仿真,直觀展示了系統(tǒng)的運行界面,證明了此設(shè)計方案的可行性。
參考文獻
[1] 雷道仲,李書成,羅政球.基于單片機定時開關(guān)的設(shè)計[J].貴州教育學(xué)院學(xué)報,2005(4):224?225.
[2] 張?zhí)旆?完全手冊:51單片機C語言開發(fā)詳解[M].北京:電子工業(yè)出版社,2008.
[3] 王振宇.基于單片機設(shè)計的多功能定時器[J].貴州教育學(xué)院學(xué)報,2005(4):79?81.
[4] 劉煥平,李娟.基于51單片機的智能定時控制系統(tǒng)設(shè)計[J].石家莊職業(yè)技術(shù)學(xué)院學(xué)報,2010(6):26?28.
[5] 張自聰,金永興.基于AT89S52的奧運倒計時牌的設(shè)計[J].中國計量學(xué)院學(xué)報,2007(4):305?307.
[6] 曹暉,彭小軍.DS1320的C51編程[J].新余高專學(xué)報,2001(2):28?29.
[7] 于志贛,劉國平,張旭斌.液顯LCD1602模塊的應(yīng)用[J].機電技術(shù),2009(3):21?23.
[8] 李娜,劉雅舉.Proteus在單片機仿真中的應(yīng)用[J].現(xiàn)代電子技術(shù),2007,30(4):181?182.
[9] 金桂,向國梁.基于C語言STC89C52單片機電子密碼鎖的設(shè)計與仿真[J].現(xiàn)代電子技術(shù),2010,33(19):176?178.