摘 要: 日常生活中,電動玩具、電動車、手機電池等電子產品的充電電池壽命都是有限的,充電時間過長容易損壞電池,而且長時間充電浪費電力。而有些功能單一的電器又沒有定時開關功能。利用定時插座充電可以節約電力,也可以防止由于充電過久而影響電池壽命;使用定時插座控制功能單一的電器,可以為其提供定時功能,更大程度地滿足人們生活需要。設計了一個以STC89C52單片機為控制核心的定時開關插座,可以控制220 V/10 A的插座,在24 h內可預先設定定時范圍,同時還能通過紅外遙控遠距離控制插座的開關。
關鍵詞: 定時插座;單片機;遙控;繼電器
0 引言
如果把每件電器都做成智能型電器顯然會大大提高產品成本,而有些本來價格就低的簡單電器更是沒有必要增加智能功能。另一方面隨著人們生活水平的提高,對電器的智能化要求卻越來越高。為此,本文設計了一個通用的智能定時插座,從而在不增加簡單電器成本的基礎上為它們提供一定的定時功能。該插座基于單片機設計,具有成本低、效益高、智能化等優點。一個插座可以供許多電器使用,可實現定時、預設、遙控等功能。
1 系統方案設計
定時插座系統在未做任何操作時顯示當前時間。按下設置鍵會進入設置界面,每按一下設置鍵就進入下一個功能界面,然后可以進行相應設置。依次可進行時間、定時、預約的設置??蓪崿F24 h內定時開關機,或一定時間段的開關,從而控制電器的工作狀態。也可以通過紅外遙控實現對系統的設置和對開關的通斷。
總體硬件電路框圖如圖1所示[1]。
1.1 單片機芯片的選擇
本設計采用STC89C52主控芯片。STC89C52是宏晶公司生產的40引腳雙列直插芯片,具有體積小、重量輕、單一電源、功耗低、功能強、價格低廉、運算速度快、抗干擾能力強、可靠性高等優點,特別適用于實時測控系統,應用領域很廣,已成為傳統工業技術改造、各類產品更新換代、實現自動化智能化的理想控制核心。
1.2 顯示模塊
本設計采用LCD1602液晶顯示模塊[2]。LCD1602能夠同時顯示16×2即32個字符。LCD1602液晶顯示模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,包括阿拉伯數字、大小寫英文字母、常用的符號和日文假名等。
1.3 時鐘模塊
時鐘模塊采用DS1302時鐘芯片實現計時[3]。DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償的年進行計數,而且精度高,用于高速數據暫存的31×8 RAM,工作電壓在2.5 V~5.5 V范圍內,2.5 V時耗電小于300 nA。采用這種專用時鐘芯片可以更精確地實現定時插座的定時目的,定時準確又不占用太多系統資源。
系統采用DS1302作為計時器,從而實現定時插座在24小時內任意時間的可變定時和一小時內的固定模式定時。這樣可以使得定時準確、方便,節約系統資源,同時程序編寫上也能相對簡單。DS1302電路連接如圖2所示。
1.4 繼電器模塊
繼電器是一種電子控制器件,通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”[4]。故在電路中起著自動調節、安全保護、轉換電路等作用。
根據家用電器的一般要求,本定時插座采用SONGLE SRD-05VDC-SL-C繼電器。該繼電器的最大耐壓為交流250 V,最大可通過10 A的交流電流。在本系統中,繼電器主要用于控制插座的開關狀態,通過單片機I/O輸出信號控制繼電器的工作是否已經完成從而達到控制插座開關的目的。繼電器電路連接圖如圖3所示。
同時,為了防止倒流,實驗電路中加入了光電耦合器4N25[5]。4N25器件由砷化鎵紅外發光二極管和硅光電晶體管檢測器光電耦合構成,是一種發光二極管與光電晶體管面對面封裝的單回路、內光路光電耦合器,也是一種晶體管輸出6引腳DIP封裝光電耦合器。
1.5 按鍵模塊
本定時插座占用I/O口少,有足夠的I/O口來作為按鍵接口,所以按鍵模塊設計成獨立按鍵。獨立式按鍵電路配置靈活,軟件結構簡單。本定時插座共5個按鍵,每個按鍵占用一個I/O口,工作狀態互不影響,通過檢測輸入線的電平狀態可以很容易判斷哪個按鍵被按下了。
1.6 電源模塊
單片機、繼電器需要5 V供電,為了使產品機構更簡單,使用更方便,設計中不再另加5 V電源,而是直接利用接到插座里的市電,這里采用開關電源。開關電源具有體積小、效率高、輸出電壓穩定、輸出功率大等優點。圖4所示為開關電源設計電路圖。
1.7 紅外遙控模塊
現在的紅外遙控技術已經很成熟,應用也很廣泛,本系統采用已編碼的38 kHz紅外遙控器發射接收模塊,系統框圖如圖5所示。
遙控器的每個按鍵都已經經過編碼,當發射器撥鍵開關撥到“ON”檔時,即有遙控碼發出(可以發送任意數字),暫定為發送0AAH(二進制:10101010B),這種遙控碼具有以下特征:采用脈寬調制的串行碼,在最初5 ms內發送38K碼并以此作為發射碼開始的標志,以脈寬為1.5 ms、間隔0.5 ms、周期為2 ms的組合表示二進制的“1”;以脈寬為0.5 ms、間隔1.5 ms、周期為2 ms的組合表示二進制的“0”。
解碼的關鍵是如何識別“0”和“1”,從位的定義可以發現接收判定“0”、“1”就是判定每個周期開始時低電平(注意發射與接收碼正好反相)出現時間的長短,如果接收到“0”的時間為1.5 ms,則接收到的值為1,如果接收到“0”的時間為0.5 ms,則接收到的值為0。
2 系統軟件設計
主程序主要是在單片機的控制下建立人機操作界面,對設定時間進行儲存分析,驅動液晶顯示出相關信息,并通過對比分析定時時間與時鐘,控制繼電器的通、斷,從而達到控制插座的通、斷電。在這個過程中,單片機首先進行初始化,包括設置單片機各個端口的方向、各個變量的初始化、液晶顯示初始化、繼電器斷開以及單片機振蕩頻率的校準等。整個系統軟件設計的流程圖如圖6所示。
軟件設計部分包括液晶顯示程序、DS1302計時程序、獨立式按鍵處理程序、紅外遙控處理程序等。由于定時設置是通過獨立式按鍵或者紅外遙控器進行設置的,程序在按鍵掃描部分和紅外信號的解碼部分相對重要。在檢測到被設置了定時任務時,系統要檢測是否到達定時時間,進而執行相應的動作。
編程過程中需要注意的主要有DS1302計時程序、LCD1602顯示程序、按鍵處理程序和紅外信號解碼以及處理的相關程序,整合在一起的主函數程序如下所示[6-7]:
void main() //主函數
{sysinit();
//系統初始化(紅外初始化、LCD初始化和1302初始化)
while(1)
{
EA=0;
keyscan(); //獨立式按鍵掃描及處理
if(flag==0)
{
display(); //顯示時間
}
dingshi(); // 定時處理
EA=1;
Key_Handle(); //紅外按鍵處理
} }
3 結論
該定時插座可以設置在一天24小時內的任意定時開關時間和任意時間段的固定模式定時。同時,通過紅外遙控的電源鍵可以一鍵控制插座的工作狀態,而遙控器的數字鍵則同樣可以實現無線設置相應數字對應的任意時間段的固定模式定時。當時鐘走到定時開始時間時,繼電器接通,插座給負載供電;時鐘走到定時結束時間時,繼電器斷開,插座停止給負載供電。當定時插座變換工作狀態時,蜂鳴器發出短暫的蜂鳴。定時插座工作時紅色指示燈亮,不工作時指示燈不亮。
參考文獻
[1] 李華. MCS-51系列單片機實用接口技術[M]. 北京:北京航空航天大學出版社, 1993.
[2] 趙亮. 跟我學51單片機(七)——LCD1602液晶顯示模塊[J]. 電子制作,2011(7):78-81.
[3] 馮大捷. 基于DS1302電子時鐘的設計[J]. 科技視界, 2012(3):119-121.
[4] Hambley A R.電子技術基礎(第2版)[M]. 李春茂, 改編. 北京: 電子工業出版社, 2005.
[5] 于增安,周春陽. 光電耦合器4N25非線性與線性應用[J]. 沈陽工程學院學報(自然科學版), 2006,2(2):147-148.
[6] 譚浩強. C語言程序設計(第3版)[M]. 北京:清華大學出版社, 2005.
[7] 戴仙金. 51單片機及其C語言程序開發實例[M]. 北京:清華大學出版社,2008.