




關(guān)鍵詞:STC89C52;單片機;定時;插座;繼電器
中圖分類號:TM503+.5;TP368.1 文獻(xiàn)標(biāo)識碼:A
0 引言
0 引言
日常生活和工業(yè)生產(chǎn)控制過程中, 經(jīng)常會使用各種各樣的定時控制[1]。在家用電器中,定時插座可以對各種家用電器進行定時控制,使人們的日常生活更加便捷。例如,如果飲水器24 h 不停地工作,不僅浪費電能,還會縮短飲水器的使用壽命。針對類似的問題,定時插座能夠提供較好的解決辦法。在日常生活中使用定時插座,可以實現(xiàn)當(dāng)有人在家時,飲水機定時開啟;反之,則關(guān)閉飲水機,這在節(jié)約用電的同時可以對飲水機起到保護作用。定時插座可以幫助用戶合理安排家電的使用時間,避免不必要的能源浪費;可以提供更加智能化的能源管理解決方案,降低對環(huán)境的影響;還可以消除安全隱患、延長家用電器的壽命等[2]。綜上,定時插座系統(tǒng)研究具有重要的實際意義和應(yīng)用價值。它能夠根據(jù)用戶的需要設(shè)置定時開關(guān),實現(xiàn)自動化控制,提高用戶的生活便利性。通過研究和開發(fā)定時插座系統(tǒng),可以推動智能家居技術(shù)的發(fā)展,為人們創(chuàng)造更加智能、便捷和環(huán)保的生活環(huán)境。
基于此,本文設(shè)計了一個定時插座控制系統(tǒng),其基于單片機STC89C52,選用獨立式的按鍵,使用5 V 電壓穩(wěn)壓器進行供電。該系統(tǒng)可通過控制插座在24 h 內(nèi)定時開關(guān),控制電器,以實現(xiàn)節(jié)能的目的。
1 硬件系統(tǒng)設(shè)計
硬件系統(tǒng)由如圖1 所示的各電路模塊組成。
單片機輸入電源為5 V,其讀取計時參數(shù)后會將其顯示在液晶顯示器上。由于該硬件系統(tǒng)可以利用繼電器來控制定時插座的工作狀態(tài),所以在開機時各個模塊將會初始化。初始時繼電器處于非工作狀態(tài),只有當(dāng)外部按鍵發(fā)送信號時,系統(tǒng)才會轉(zhuǎn)換為工作狀態(tài)并且開始工作[3]。當(dāng)系統(tǒng)到達(dá)定時時刻時,紅色指示燈亮、蜂鳴器發(fā)出鳴叫。本系統(tǒng)的控制核心是STC89C52 單片機,同時協(xié)同DS1302 計時模塊、蜂鳴器模塊、LCD1602 顯示模塊以及繼電器模塊等部分進行設(shè)計[4]。
1.1 主控制器STC89C52
硬件系統(tǒng)設(shè)計所用的主控芯片為STC89C52,主要用于驅(qū)動和控制各個模塊。
1.2 DS1302計時模塊
系統(tǒng)使用DS1302 作為定時器,可以滿足定時插座的各種定時設(shè)置需求,包括用戶自定義的任意時間定時和預(yù)設(shè)的固定模式定時。對于任意時間定時,用戶可以根據(jù)實際需求,通過簡單的按鍵設(shè)置來指定插座在特定時間開關(guān),同時用戶也可自行預(yù)設(shè)各種常見的定時模式。
1.3 LCD1602 顯示模塊
在該系統(tǒng)中,為了確保用戶能夠清晰看到定時時間段以及實時顯示時間,系統(tǒng)選用了LCD1602。其可以一次顯示32 個字符,這些字符包含在160 個符號中。
1.4 繼電器模塊本設(shè)計采用了SONGLE SRD-05VDC-SL-C 繼電器。在電路設(shè)計中,確保電流的穩(wěn)定性和防止電流的反向流動是至關(guān)重要的,因為這直接影響電路的安全性和穩(wěn)定性,任何小的電流波動都可能引發(fā)嚴(yán)重的問題。因此,該系統(tǒng)添加了4N25 型光電耦合器,以防止電流的反向。光電耦合器的內(nèi)部結(jié)構(gòu)只允許電流在一個方向上流動,當(dāng)電路中的電流試圖反向流動時,光電耦合器能夠迅速切斷這個反向電流,從而保護電路不受損害。
1.5 蜂鳴器模塊
為實現(xiàn)定時時刻的聲音提醒,本設(shè)計中還加入了蜂鳴器。
1.6 按鍵模塊
為了更好地滿足按需定時的具體要求,本系統(tǒng)設(shè)置了按鍵模塊,用戶可根據(jù)實際情況通過按鍵進行定時,以達(dá)到定時開關(guān)的效果。基于不同按鍵之間較強的獨立性,以及定時插座系統(tǒng)對按鍵的要求,本設(shè)計選用獨立式按鍵。
2 軟件系統(tǒng)設(shè)計
本系統(tǒng)以STC89C52單片機為控制核心,采用 C語言作為編程語言[5],選擇Keil 軟件進行編譯,利用STC-ISP軟件來完成數(shù)據(jù)的下載。此系統(tǒng)的DS1302計時模塊、蜂鳴器模塊、LCD1602顯示模塊以及繼電器模塊等各系統(tǒng)的正常運作都需要通過程序來控制。單片機可以判斷系統(tǒng)是否受到定時控制以及控制蜂鳴器和紅燈的工作狀態(tài)。系統(tǒng)主程序流程如圖2所示。
2.1 DS1302計時程序編寫
軟件系統(tǒng)設(shè)計涉及DS1302 串行時鐘芯片中的幾個主要部件:移位寄存控制邏輯電路、振蕩器、實時時鐘電路和隨機存取存儲器(random accessmemory,RAM)。DS1302 工作時為了對數(shù)據(jù)傳送進行初始化,需要將復(fù)位腳設(shè)置為高電平且將 8 位地址和命令信息存入移位寄存器。時鐘脈沖的個數(shù)在單字節(jié)方式下為8+8(8 位地址+8 位數(shù)據(jù));在多字節(jié)方式下為8 + 最多可達(dá)248 的數(shù)據(jù)[6]。
通過DS1302 命令字節(jié),初始化傳輸數(shù)據(jù),并且最大位元的有效位元只能是1。若為0,則不能寫入DS1302,而DS1302 命令字節(jié)第6 比特(簡稱“比特6”)則用于邏輯0 的時鐘日程表數(shù)據(jù);邏輯1 規(guī)定了RAM 中的數(shù)據(jù)。比特1 和5 規(guī)定了一個具體的寄存器,在該寄存器中執(zhí)行輸入或輸出。最低位對邏輯0 進行寫操作;邏輯1 規(guī)定了讀取的執(zhí)行,其中,命令字節(jié)始終從最低有效位(leastsignificant bit,LSB)的最小有效值開始。在RAM以多字節(jié)寫入的情況下,一般無須寫入所有字節(jié),系統(tǒng)也能正常運行,但無論是否寫入所有字節(jié),為了能夠?qū)?shù)據(jù)進行傳輸,每個寫入的字節(jié)都會被傳輸?shù)?RAM。
2.2 LCD1602顯示程序編寫
LCD1602顯示模塊主要負(fù)責(zé)顯示從DS1302串行時鐘芯片中讀出的數(shù)值,并能夠在外部獨立式按鍵被按下時,使系統(tǒng)實時顯示對應(yīng)的設(shè)置菜單等。DS1302的基本運算順序如表1所示。
3 整體調(diào)試
系統(tǒng)實物圖如圖3 所示。當(dāng)繼電器正常工作、電源接通且系統(tǒng)并未到達(dá)定時時間時,顯示屏正常顯示實時時間,但插座不接通電源,通過插座控制的電器也處于非工作狀態(tài)。
當(dāng)執(zhí)行定時開關(guān)操作時,可同時設(shè)定多組定時模式,若定時后顯示為“N”,則說明定時無效;若定時后顯示為“Y”,則說明定時有效。
當(dāng)系統(tǒng)到達(dá)定時時刻時,紅色指示燈亮起,蜂鳴器發(fā)出鳴叫,同時插座接通電源,插座控制的用電器處于工作狀態(tài),到達(dá)設(shè)定關(guān)閉時刻時繼電器則停止工作,電源斷開。
4 結(jié)語
本文設(shè)計的定時插座控制系統(tǒng)采用STC89C52單片機,通過編程控制繼電器模塊,實現(xiàn)外部按鍵定時,從而控制插座,以達(dá)到方便和節(jié)能的目的。硬件和軟件系統(tǒng)的設(shè)計均可以滿足前期設(shè)計要求,使系統(tǒng)達(dá)到正常的工作狀態(tài)。