摘 要:給出了一種采用C8051F020單片機實現紅外遙控電風扇的系統方案。將紅外接收模塊、溫度采集電路、實時時鐘電路、報警電路和風速控制電路置于電風扇中,通過C8051F020單片機實現電風扇風速控制、定時功能和運行模式切換功能,采用4×4鍵盤或者遙控器完成數據和控制指令的輸入,并通過TS1602 LCD完成基本的狀態數據和控制指令實時顯示等。實驗結果表明:本系統能夠成功實現電風扇的運行模式切換、風速控制和定時功能,自動運行模式下,風速由環境溫度決定,溫度控制精度為±1 ℃。
關鍵詞:C8051F020單片機; 紅外遙控; 模式切換; 風速控制; 定時功能
中圖分類號:
TN911-34; TP75
文獻標識碼:A
文章編號:1004-373X(2011)19
-0119
-02
Design of Infrared Remote-control Fanner Based on C8051F020
CHEN Hong-min, YANG Ben-quan, WU Miao-qing, SHI Bao-cong
(Taizhou University, Taizhou 318000, China)
Abstract: A new method based on C8051F020 MCU is proposed to design infrared remote-control fanner. The control system consists of infrared receiver module, temperature collection module, clock circuit, alarm circuit and wind speed control circuit. C8051F020 MCU is used to realize wind speed control, timing and work mode switch. Control instruction and data are input by 4×4 keyboards and displayed by TS1602 LCD. Experiments show that the designed system can realize work mode switch, wind speed control and timing function. Wind speed is decided by environmental temperature and control precision is ±1℃ under self-work mode.
Keywords: C8051F020 MCU; infrared remote-control; work mode switch; wind speed control; timing function
目前市場上的風扇多為機械方式控制和定時,功能少,噪聲大,且不能根據實時的環境溫度改變風速。本文介紹了一種基于C8051F020單片機的紅外遙控風扇系統的設計,巧妙利用紅外控制技術,結合實時時鐘DS1302、溫度傳感器DS18B20和單片機C8051F020實現電風扇的智能控制,運行模式可切換。自動運行模式下,實時調整風速有利于節能控制,符合現代電子產品自動化、智能化、人性化的設計要求,可移植性強,人機界面友好。
1 整體方案設計
方案的主要任務是實現電風扇的智能控制,運行模式可切換。手動運行模式下,遙控器或者鍵盤輸入數據和控制指令的輸入,單片機解碼成對應的控制指令來完成對風扇電路的智能控制。自動運行模式下,C8051F020單片機通過DS18B20測得實時環境溫度值,將溫度與風速檔位設定值進行比較后驅動電風扇相應檔位工作。
2 硬件電路設計
2.1 硬件總體設計
整個系統主要由紅外遙控發射接收電路、鍵盤電路、實時時鐘電路、溫度采集電路、LCD顯示器、繼電器控制電路和單片機控制電路組成。其中,紅外發射電路和鍵盤電路(與遙控器命令匹配)用來輸入控制信號;LCD是用來顯示控制命令、狀態信息、實時時間和實時溫度值;實時時鐘電路用于讀取實時時間;溫度采集電路用于實時監測環境溫度,方便電風扇在自動運行模式下工作;單片機是整個控制系統的核心,控制繼電器工作和電風扇運行。系統總體電路設計框圖如圖1所示。
圖1 系統框圖
2.2 紅外發射接收
紅外遙控有發送和接收兩個部分組成[1-2]。發射電路采用專用紅外發射IC SC6122和按鍵(與鍵盤輸入電路完全匹配)完成。接收部分采用一體化紅外遙控接收頭HS0038,將接收到的紅外信號送入C8051F020單片機外部中斷0,由單片機完成紅外數據的解碼。C8051F020內置增強型數字交叉開關,通過配置交叉開關控制寄存器XBR0和XBR2[3-4],將INT0配置在C8051F020的P0.2(INT0),完成串行數據的接收。
2.3 控制電路
MCU控制電路包括三個部分:控制信號輸入、繼電器控制電路和數據顯示部分。
控制信號輸入部分主要由C8051F020 I/O端口P1控制矩陣式4×4鍵盤完成。使用矩陣式鍵盤,具有占用I/O資源少,程序編制簡單等特點。鍵盤控制電路主要完成風速、定時、運行模式等控制命令的輸入。采用4×4矩陣鍵盤,用于非遙控工作時,按鍵驅動電扇工作,即機械方式驅動,按鍵功能如圖2所示。自動/手動為功能切換按鍵,在自動和手動之間進行切換,定時時間和風速控制根據需要選擇相應檔位。
圖2 4×4鍵盤說明
SET定時60min4檔開/關+定時90min導風1檔-定時120min定時20min2檔NC自動/手動定時40min3檔
繼電器控制電路主要由MCU I/O端口P3口控制7個繼電器完成。繼電器分別控制系統開關、定時時間、導風和風速檔位選擇。
顯示部分通過C8051F020的端口P2作為與LCD1602通信的8位數據線,主要完成通信數據和狀態信息的顯示。
2.4 溫度采集和實時時鐘電路
環境溫度檢測部分是控制風扇自動工作的關鍵。系統在自動運行模式下,根據實時采樣的溫度值,選擇相應的控制繼電器驅動相應的風速檔位[5-6]。采用Dallas公司的DS18B20 1-wire數字溫度傳感器,使用一根信號線實現信號的雙向傳輸,接口簡單,便于擴展和維護[7]。溫度設定范圍為25~36 ℃,每3 ℃一個風速控制檔位,溫度設定值超過范圍報警指示。
實時時鐘電路實時刷新電風扇的當前時間。采用Dallas的高性能、低功耗、帶RAM的I2C總線的串行時鐘/日歷芯片DS1302[8]。I2C總線通過使能交叉開關配置在C8051F020的P0.0(SDA)和P0.1(SCL),完成DS1302的初始化和時間數據的傳輸。
2.5 系統供電
系統正常工作需要+5 V和+3.3 V電壓供電。將市電220 V/50 Hz通過9 V/10 W變壓器降壓變換后,經過電橋整流和濾波產生直流電9 V,通過LM7805穩壓芯片輸出穩定+5 V給LCD1602顯示模塊和繼電器供電,C8051F020,DS1302和DS18B20由+5 V經過ASM1117-3.3 V供電,電風扇電機部分直接由市電220 V/50 Hz供給。遙控器發射部分供電由3 V紐扣電池提供,DS1302采用3 V紐扣電池做備用供電電源,確保時間的準確。
3 軟件設計
系統軟件主要包括單片機控制部分軟件設計。單片機控制部分軟件設計主要完成以下功能:當有紅外信號被接收或者按鍵輸入時,觸發中斷或者進行鍵盤掃描處理,單片機內部進行解碼,產生控制命令或者溫度數據設定參數[9-10]。單片機通過產生的控制命令和數據參數,控制各個繼電器的動作、溫度設定、超限報警指示和狀態顯示等功能。
基于C8051F020單片機控制遙控電風扇系統控制流程圖如圖3所示。
圖3 系統控制流程圖
電風扇在自動運行模式下,單片機采集當前環境溫度,并與溫度設定值進行比較,選擇相應的風速檔位,驅動某一個或者幾個繼電器工作。例如,通過遙控器或者鍵盤按鍵SET,+,-鍵設定規定下限溫度為25 ℃,以3 ℃為一檔風速檔位遞增,實際溫度為29 ℃,額定值與實際值之間溫差為4 ℃,溫差3 ℃內為1檔,所以判定后風扇工作在2檔位置。
上述紅外遙控編碼解碼后,通過C8051F020單片機指令控制繼電器,并對電風扇和單片機接口電路調試。通過對系統進行實際驗證效果如圖4所示。