基于單片機的教室照明智能控制器設計含5張CAD圖
基于單片機的教室照明智能控制器設計含5張CAD圖,基于,單片機,教室,照明,智能,控制器,設計,cad
基于單片機的教室照明智能控制器設計
摘 要
針對教室照明控制的現(xiàn)狀和大浪費的現(xiàn)象,分析了教室照明智能控制的原理和實現(xiàn)方法,提出了基于教室照明的智能控制的設計思路。單片微機。該系統(tǒng)采用AT89C52作為控制裝置的智能部件,利用熱釋光紅外傳感器檢測人體的存在,并采用由光敏三極管組成的電路來檢測環(huán)境光的強度。根據(jù)教室內(nèi)合理的光照情況,通過對人體現(xiàn)有信號和環(huán)境光信號進行識別和判斷,完成系統(tǒng)。教室照明回路的智能控制避免了教室里的電浪費。該系統(tǒng)具有體積小、控制方便、可靠性高、專用性強、性價比高等優(yōu)點。它可以滿足各高校教室照明控制的要求,并在很大程度上節(jié)約了能源。
關(guān)鍵詞:教室燈光控制;熱釋紅外傳感器;光敏電阻;單片機
Design of Intelligent Controller for classroom Lighting based on single Chip Microcomputer
Abstract
This study of intelligent control classroom lamplight, analyzes the current situation of the development of the classroom light of intelligent control principle and method, is proposed based on single-chip microcomputer intelligent control of the classroom lamplight design. This system to AT89C52 single chip computer as control device of intelligent parts, adopts heat release infrared sensor detects the release of human existence and adopts photoconductive resistance constitutes circuit testing environment light intensity.According to the classroom light conditions and the measured the signal of human body system and ambient light, the system can make reasonable and intelligent judgment and then controls the work of classroom lighting circuit .It is a effective way to avoid the classroom of waste electricity. Small volume, convenient control, high reliability, high specificity and price reasonable make this system satisfy the advantages of large, secondary technical schools classroom light control requirements and greatly reach energy-saving purpose.
Key words:heat release infrared sensor ;photoconductive;dynatron;singlechip
II
目 錄
摘要 Ⅰ
Abstract Ⅱ
1. 緒論 2
1.1 研究背景與發(fā)展現(xiàn)狀 2
1.2 研究主要內(nèi)容 3
2. 設計方案的選擇及論證 5
2.1 總體方案論述 5
2.2 方案一的論述 5
2.2.1 方案一的設計框圖 5
2.2.2 方案一的設計方法 5
2.2.3 方案一的優(yōu)缺點 6
2.3 方案二的論述 6
2.3.1 方案二的設計框圖 6
2.3.2 方案二的設計方法 6
2.3.3 方案二的優(yōu)缺點 6
2.4 方案的選擇 7
3. 系統(tǒng)軟件設計 8
3.1 系統(tǒng)流程分析 8
3.2 LCD1602 顯示設計 11
3.3 照明系統(tǒng)開函數(shù)設計 11
3.4 按鍵函數(shù)設計 14
3.5 時鐘函數(shù)設計 14
4. 硬件設計 16
4.1 單片機最小模塊 16
4.2 光照及當前人數(shù)檢測模塊 16
4.2 光照及當前人數(shù)檢測模塊 17
4.3 按鍵模塊 17
4.4 時鐘電路模塊 17
4.5 LCD 顯示模塊 18
4.6 照明模塊 18
4.7 實現(xiàn)結(jié)果 19
5. 總結(jié) 26
5.1 問題與處理 26
5.2 展望 27
參考文獻 28
附錄 29
致 謝 61
1. 緒論
1.1 研究背景與發(fā)展現(xiàn)狀
隨著國民經(jīng)濟建設和社會物質(zhì)文化水平突飛猛進的發(fā)展,人們學習,工作,活動,娛樂空間和場所越來越大,所需要的照明設備種類,數(shù)量和規(guī)模也越來越大了。人民生活水平質(zhì)量近幾年來也取得了快速的提高,人們對照明的需求也越來越高。然而傳統(tǒng)的照明燈具具備耗能高,光照安逸度差, 照明燈具的壽命也較短,也不便于控制等很多缺點,已經(jīng)不能滿足人們的需求,從一開始只供應亮度的基本功能到如今有了很多方面的需要,除供給安逸的環(huán)境亮度以外,還要營建典雅安逸的氣氛; 人們也要求照明控制形式便利靈活,能夠達到按需求配置,并且還能滿足節(jié)能環(huán)保,降低運行費用, 而且要求安裝輕易,維護容易,要求整個體系可以供給人們對照明系統(tǒng)多樣性的需求。需求的變化使得人們對照明系統(tǒng)產(chǎn)生了新的變化。
資源短缺是如今國際面臨的新問題,節(jié)約能源,提高效益也就成為了我們將要研究的問題。自從上世紀年代能源危機爆發(fā)至今以來,世界對于能源安全的關(guān)注度也越來越高。自從改革開放以來, 國家社會經(jīng)濟與日俱增的發(fā)展,對于資源的依賴性也愈來愈高,資源短缺與環(huán)境污染局勢也逐漸嚴峻。因此,節(jié)約能源,保護環(huán)境已成為我們當前的緊要任務。
隨著近年來智能技術(shù)的迅速發(fā)展,智能控制技術(shù)正以突飛猛進的速度向國民經(jīng)濟的各個領(lǐng)域發(fā)展,并逐漸在國民經(jīng)濟中發(fā)揮著重要的作用。智能照明技術(shù)在此環(huán)境下應運而生,利用該技術(shù)我們能夠很好地利用天然資源,提高光環(huán)境舒適度,減少人工照明耗能,并且隨著時間的推移,智能照明技術(shù)將會迅速發(fā)展壯大。
目前,中國的技術(shù)實現(xiàn)企業(yè)用于智能處理的水平已經(jīng)至少達到了三到四成左右。國際從上個世紀就下手智能照明系統(tǒng)的建設研究和應用了,如奇勝的C-BUS 總線,ABB 公司的 I-bus 總線,邦奇 Dynet 總線協(xié)議,日本松下的 HBS 協(xié)議,以及 X-10 的電力線載波協(xié)議。選用無線網(wǎng)絡技術(shù)的智能燈光控制系統(tǒng)的一系列產(chǎn)品最近也將接踵涌現(xiàn)在消費者的眼前。與電力線載波計劃相似,因為沒有專用的網(wǎng)絡線,但安設或擴展非常簡單,這個方案可以使用電池供電,可以不用去連接電源線,其使用非常方便靈活,同時也降低了用戶的總體消費成本。同時,藍牙技術(shù)的發(fā)展也不斷地在智能化家居和智能照明控制中得到了大量的應用[1]。
目前智能化照明仍然處于發(fā)育階段,國內(nèi)外很多知名企業(yè)都很看好這個新性行業(yè),已經(jīng)投入大量人力和財力去著手研發(fā)很具有智能化的照明控制系統(tǒng),將會在住宅照明、道路照明、景觀照明、體育場館、公園照明等等公共場合得到不同程度上的應用。
1.2 研究主要內(nèi)容
利用單片機 AT89C52 作為核心控制器件,設計一種基于單片機的教室照明智能控制器,實現(xiàn)教室光照控制,防止無人時亮燈、天亮時亮燈,節(jié)約能源。當要求自動控制照明系統(tǒng)時,要求通過對教室內(nèi)人數(shù)進行計數(shù)及當前室內(nèi)光照強度的采集,當在開燈時間內(nèi)且室內(nèi)光照強度較暗、教室有人的時候,單片機將發(fā)出指令進行開燈,且隨著教室人數(shù)的變化,光照強度也進行改變。當教室內(nèi)光照強度較強時,燈不可打開。當要求手動控制照明系統(tǒng)時,不計算教室人數(shù)及光照,手動進行開燈、關(guān)燈。在此基礎(chǔ)上,設計系統(tǒng)還具有時鐘功能及當前人數(shù)顯示功能,使工作人員方便調(diào)節(jié)開燈時間,了解當前教室人數(shù)。
82
2. 設計方案的選擇及論證
2.1 總體方案論述
教室照明系統(tǒng)利用單片機 AT89C52 作為信息處理器和核心控制器件。系統(tǒng)利用紅外檢測模塊將進入教室的人數(shù)、光照檢測模塊將室外光照強度、設定的開燈時間及人工開關(guān)的狀態(tài)經(jīng)過處理傳遞給單片機,單片機將得到的信息進行處理,判斷是否需要開燈,達到開燈條件時單片機將發(fā)出指令將燈打開,否則燈滅。
總體的系統(tǒng)框圖如圖 2.1 所示。
圖 2.1 系統(tǒng)框圖
2.2 方案一的論述
2.2.1 方案一的設計框圖
系統(tǒng)由控制模塊、光照強度檢測模塊、人體存在檢測模塊、硬件時鐘模塊和手動開關(guān)模塊組成。方案一的硬件設計框圖如圖 2.2 所示。
圖 2.2 方案一設計框圖
2.2.2 方案一的設計方法
設計系統(tǒng)核心部件為 AT89C52,光照強度信號由光照強度檢測模塊進行采集,教室人數(shù)由人體存在檢測模塊進行采集之后將采集到的信號通過電壓比較電路進行轉(zhuǎn)換并送入單片機中進行處理, 并在處理后,根據(jù)結(jié)果發(fā)送不同的指令進行輸出驅(qū)動。
開機后,所有器件初始化。用光照強度檢測模塊對室外光照強度及教室人數(shù)進行監(jiān)測,將所得到的電壓信號通過電壓比較器進行處理并傳入單片機,再由 AT89C52 對傳入信號進行處理。其中教室人數(shù)不同,亮燈數(shù)量不同。將所得信號與設定的初始光照值相比較,當光照強度低于設定的初始光照強度時且教室有人時,單片機發(fā)出指令打開照明系統(tǒng);當光照強度低于設定值時但教室沒人時, 單片機發(fā)出指令關(guān)照明系統(tǒng)。當光照強度高于設定限額上限,不論教室是否有人,由單片機發(fā)出指令關(guān)閉照明系統(tǒng)。且對教室人數(shù)進行分段處理,每一階段教室燈光強度不同。
2.2.3 方案一的優(yōu)缺點
基于單片機 AT89C52 控制的教室照明智能控制器制造成本低、安裝方便、效率高、實現(xiàn)簡單, 且照明系統(tǒng)的狀態(tài)由光照強度、教室人數(shù)、開燈時間及開關(guān)狀態(tài)共同控制,更加科學、節(jié)能。缺點在于多個模塊全接在主芯片上,不易維修,不適合多個教室共同管理。
2.3 方案二的論述
2.3.1 方案二的設計框圖
系統(tǒng)的結(jié)構(gòu)主要由三部分組成:上位機系統(tǒng)、下位機系統(tǒng)和通信系統(tǒng)。這三部分共同組成了主控制器,通過有線方式和分控制器進行信息交換,以達到控制照明燈具的目的。方案二的硬件設計框圖如圖 2.3 所示。
是,將開燈信號傳入單片機
圖 2.3 方案二設計框圖
2.3.2 方案二的設計方法
系統(tǒng)采用 RS-485 半雙工主從式通信方式,主控制器可以通過發(fā)送數(shù)據(jù)或指令給從控制器,從控制器通過中斷方式來接收主控制發(fā)來的指令或數(shù)據(jù)對分布的照明燈具進行控制。這次照明智能控制系統(tǒng)的設計以AT89C52 單片機作為主控制器和從控制器,來實現(xiàn)有線通信、信息采集和控制與顯示等功能。
2.3.3 方案二的優(yōu)缺點
方案二同時控制多個教室。缺點在于電路復雜、耗能高。
2.4 方案的選擇
通過對方案一和方案二優(yōu)缺點的比較,基于對系統(tǒng)穩(wěn)定性、系統(tǒng)成本及系統(tǒng)節(jié)能方面的考慮, 方案一比方案二更加適合。
首先,方案一采用了多檢測模塊進行當前狀態(tài)檢測,涵蓋的可能性更多,并且對人數(shù)進行分段, 每段采用不用的燈光強度,更加節(jié)能;其次,方案一采用了同步檢測所有狀態(tài)信號的方式,檢測更加快捷、節(jié)能;再次,方案一設有手動開關(guān),可以避免一些意外情況,更加人性化。而方案二電路復雜、耗能高、不易實現(xiàn)。
考慮到以上原因,設計采用方案一。
3. 系統(tǒng)軟件設計
編程軟件采用 keil uvision4 軟件,設計程序采用 C 語言進行編寫。軟件部分可成功編譯,并在 proteus 中仿真實現(xiàn)預期功能。具體函數(shù)模塊由一個主函數(shù)(main.c)文件以及 2 個 h 文件構(gòu)成。這 2 個 h 文件分別為:reg51.h(8051 的相關(guān)參數(shù)初始化),intrins.h(偽本征函數(shù))。
3.1 系統(tǒng)流程分析
主程序的作用是調(diào)用幾個子程序完成總體功能。首先,單片機默認為自動模式;其次,單片機進行初始化,LCD1602、DS1302 分別進行初始化;再次,DS1302 開始工作發(fā)出實時日期/時間,LCD 進行日期/時間以及當前人數(shù)的顯示,通過光線和人數(shù)進行判斷是否開燈;最后,進行鍵盤掃描,根據(jù)不同按鍵,改變當前設置。主程序流程如圖 3.1 所示。
圖 3.1 主程序流程圖
主程序解析:
#include #include #define uchar unsigned char #define uint unsigned int
uchar time_data[7];
uchar code write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; //數(shù)據(jù)的地址
uchar code read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};
uchar code table1[]="Count|2016/00/00";
uchar code table2[]=" 00|00:00:00";
uchar code table3[]=" ";//清屏內(nèi)容
uchar code table4[]=" Set Real Time ";
uchar code table5[]=" SetOpenTime";
uchar code table6[]="Start Time: ";
uchar code table7[]="00:00:00";
uchar code table8[]="End Time:"; ucharcodetable9[]="Date:2016/00/00";
uchar codetable0[]="Time:00:00:00";
bit Adjust;//調(diào)節(jié)標志位,=1 表示進入調(diào)節(jié)模式,=0 是正常模式
bit Auto_flg;//自動模式標志位,=1 表示手動模式,=0 是自動模式
sbit rs=P1^0; //LCD1602
sbit rw=P1^1; //LCD1602
sbit e=P1^2; //LCD1602
sbit sck=P2^5; //時鐘端口
sbit io=P2^6; //時鐘端口
sbit rst=P2^7; //時鐘端口
sbit SELT =P1^6; //選擇鍵
sbit ENTER=P1^7; //確認鍵
sbit UP =P3^0; //加鍵
sbit DOWN =P3^1; //減鍵
sbit MODE =P3^2;//切換按鍵接口
sbit SWITCH=P3^3; //手動開關(guān)
sbit AUTO_LED=P1^3;//自動模式燈接口
sbit HAND_LED=P1^5;//手動燈接口
sbit LAMP1=P3^4; //燈接口
sbit LAMP2=P3^5; //燈接口
sbit LAMP3=P3^6; //燈接口
sbit LAMP4=P3^7; //燈接口
sbit LIGHT1=P2^0; //光線檢測端口sbit IN1=P2^2;
sbit OUT1=P2^1;
uchar Select_num; //選擇按鍵按下次數(shù)
uchar Enter_num; //確認按鍵按下次數(shù)
float Year,Month,Day,Hour,Minute,Second; //時間設置值
float Hour_H,Minute_H,Second_H; //設置開始時間
float Hour_L,Minute_L,Second_L; //設置結(jié)束時間
int Value1; //人數(shù)
uchar IN1_flag=0;
ucharOUT1_flag=0;
void read_rtc();
void delay1(uint z) //延時函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
void main()
{
AUTO_LED=0; //默認自動模式
init(); //液晶初始化
while(1)
{
if(Adjust==0) //非調(diào)節(jié)模式下顯示時間和開鎖
{
Time_Display(); //顯示時間
Open(); //動作判斷,根據(jù)光線和聲響開關(guān)
Count_Value();
}
Keyscan(); //掃描鍵盤
}
}
3.2 LCD1602 顯示設計
LCD1602 顯示函數(shù)先將 LCD1602 進行初始化,之后設置字符的顯示位置,最后進行字符的顯示。
LCD1602 顯示函數(shù)流程如圖 3.2 所示。
圖 3.2 LCD1602 顯示函數(shù)流程圖
3.3 照明系統(tǒng)開函數(shù)設計
照明系統(tǒng)開函數(shù)主要是通過當前教室光照強度及當前人數(shù)來判斷是否開照明系統(tǒng)。首先,根據(jù)學校的作息時間設置開燈時間和關(guān)燈時間;之后,若當前時間在開燈時間和關(guān)燈時間范圍內(nèi),則進行光照強度檢測,如果光照強度不足且教室沒人,照明系統(tǒng)關(guān)閉,若光照強度不足但教室有人,則照明系統(tǒng)打開。照明系統(tǒng)開函數(shù)流程圖如圖 3.3 所示。
否
否
圖 3.3 照明系統(tǒng)開函數(shù)流程圖
照明系統(tǒng)開函數(shù)解析:
設定的上下限時間為 08:00——22:00,當人數(shù)為 1——9 人時開一個燈,當人數(shù)為 10——19時開兩個燈,當人數(shù)為 20——29 時開三個燈,當人數(shù)為 30 以上時開四個燈。
void Open(void)
{
float Now;
float Set_L,Set_H;
Now=Hour+Minute/60+Second/3600; //把實時時間化成小時為單位Set_L=Hour_L+Minute_L/60+Second_L/3600; //把設置下限時間化成小時為單位
Set_H=Hour_H+Minute_H/60+Second_H/3600; //把設置上限時間化成小時為單位
if(Auto_flg==0) //自動模式
{
if((Now>=Set_L)&(Now<=Set_H)) //實時時間在上下限時間范圍內(nèi)
{
if(LIGHT1==0) //光線不足
{
if(Value1==0)
{
LAMP1=1; //全滅
LAMP2=1;
LAMP3=1;
LAMP4=1;
}
if((Value1>0)&(Value1<10))
{
LAMP1=0; //0——9 亮一個燈
LAMP2=1;
LAMP3=1;
LAMP4=1;
}
if((Value1>=10)&(Value1<20))
{
LAMP1=0; //10——19 亮二個燈
LAMP2=0;
LAMP3=1;
LAMP4=1;
}
if((Value1>=20)&(Value1<30))
{
LAMP1=0; //20——29 亮三個
LAMP2=0;
LAMP3=0;
LAMP4=1;
}
if(Value1>=30)
{
LAMP1=0; //30 以上亮四個燈
LAMP2=0;
LAMP3=0;
LAMP4=0;
}
}
if(LIGHT1==1) //光線強烈
{
LAMP1=1; //全滅
LAMP2=1;
LAMP3=1;
LAMP4=1;
}
}
if((NowSet_H)) //實時時間不在范圍內(nèi)
{
LAMP1=1; //全滅
LAMP2=1;
LAMP3=1;
LAMP4=1;
}
}
}
3.4 按鍵函數(shù)設計
通過按鍵設置當前狀態(tài),如:上下限時間,手動模式和自動模式切換。
3.5 時鐘函數(shù)設計
通過 DS1302 產(chǎn)生實時的系統(tǒng)日期和時間。時鐘函數(shù)流程圖如圖 3.4 所示。
4. 硬件設計
整個控制系統(tǒng)由控制模塊、光照及當前人數(shù)檢測模塊、按鍵模塊、時鐘電路模塊、LCD 顯示模塊和照明模塊組成。其中電源由實驗室 5V 電源提供。
4.1 單片機最小模塊
單片機最小模塊是系統(tǒng)能夠運行功能的基礎(chǔ)組成,硬件電路如圖 4.1 所示,包括單片機芯片, 晶振電路和復位電路。
圖 4.1 控制模塊
單片機芯片選擇 ATMEL 公司生產(chǎn)的 AT89C52 單片機。該芯片具有結(jié)構(gòu)簡單、價格低廉、效率高、靈活性高的優(yōu)點。
晶振電路為系統(tǒng)提供基本的時鐘信號。晶振選擇 12MHz,C1,C2 電容大小為 30pF。
復位電路的作用是對于單片機進行復位工作。通電后,C3 電容兩端的電壓由 0V 將慢慢上升, 單片機的 RST 復位引腳的電壓由低電位漸漸升高到高電位,引起 C52 內(nèi)部電路復位工作,RST 引腳電壓漸漸下降,直到降為低電平,AT89C52 開始正常運行工作。當按下復位開關(guān)后,電容兩端進行放電,RST 端變?yōu)楦唠娖?,系統(tǒng)回到剛通電時的狀態(tài)。
4.2 光照及當前人數(shù)檢測模塊
光照及當前人數(shù)檢測模塊模塊如圖 4.2 所示。
4.2 光照及當前人數(shù)檢測模塊
在 proteus 中,由于紅外探頭及光敏電阻無法仿真,所以用按鍵表示。當表示光照的按鍵按下圖時,表示當前處于光照強度弱的狀態(tài),否則表示處于光照強度強的狀態(tài)。當表示外面的按鍵先按下, 表示內(nèi)部的按鍵再按下時,表示當前教室人數(shù)加一;當表示內(nèi)部的按鍵先按下,表示外部的按鍵再按下時,表示當前教室人數(shù)減一。
在實物制作中,采用紅外探頭組進行人體檢測,一共用兩組,一組放在門外,一組放在門里, 進行當前人數(shù)檢測;采用光敏電阻進行當前光照強度檢測。將兩組紅外探頭及光敏電阻分別接在電壓比較器上,輸出接單片機上,進行當前狀態(tài)的檢測。
4.3 按鍵模塊
按鍵模塊如圖 4.3 所示。
圖 4.3 按鍵模塊
此模塊的主要作用是通過按鍵調(diào)節(jié)當前系統(tǒng)的狀態(tài)。如:上下限時間,當前時間,自動手動模式切換及手動模式照明系統(tǒng)開關(guān)。
4.4 時鐘電路模塊
時鐘電路模塊如圖 4.4 所示。
圖 4.4 時鐘電路模塊
該模塊的作用是產(chǎn)生實時的系統(tǒng)日期和時間,通過 LCD1602 進行顯示,以便對當前人數(shù)進行實時記錄。主要芯片為時鐘芯片 DS1302,它含有一個靜態(tài) RAM 和一個實時的日歷/時鐘,通過串口通信與單片機進行連接。設計系統(tǒng)中復位引腳 RST 接 P2.7,數(shù)據(jù)輸入/輸出引腳 I/O 接 P2.6,時鐘引腳 CLK 接 P2.5,X1 與 X2 引腳之間接一個 32.768kHz 的晶振。
4.5 LCD 顯示模塊
LCD 顯示模塊如圖 4.5 所示。
LCD 顯示模塊是采用 LCD1602 顯示日期、時間、當前人數(shù)。LCD1602 的顯示屏為 16*2,即每行可顯示 16 個字符,共有 2 行顯示。
LCD1602 的 D0~D7 引腳接 P0 口,且此時應注意需要接上拉電阻。寄存器選擇引腳,即 RS 引腳接 P1.0;讀寫信號線引腳,即 RW 引腳接 P1.1;使能端引腳,即 E 引腳接 P1.2,達到控制作用。
圖 4.5 LCD 顯示模塊
4.6 照明模塊
照明模塊電路如圖 4.6 所示。
圖 4.6 照明模塊
照明模塊由四個 LED 燈組成,分別接P3.4-P3.7。
當處于上下限范圍內(nèi)且為自動模式時,若當前光照強度弱,照明系統(tǒng)開;當前人數(shù)為 1——9 時,亮一個燈;當前人數(shù)為 10——19 時,亮前兩個燈;當前人數(shù)為 20——29 時,亮前三個燈;當前人數(shù)為 30 以上時,四個燈全亮;若在手動模式下,無論是否在上下限范圍內(nèi),光照強度如何,是否有人,只要按下手動開關(guān),四個燈全亮。
4.7 實現(xiàn)結(jié)果
4.7.1 整體仿真圖
設置開啟時間為 08:00,關(guān)閉時間為 22:00。
(1) 為自動模式,當前光照強度強,教室有人,則此時燈滅。如圖 4.7(a)所示。
圖 4.7(a) 光照強度強,教室有人
(2) 為自動模式,當前光照強度弱,教室有 1——9 人,則此時第一個燈亮。
圖 4.7(b) 光照強度弱,教室有 1—9 人
(3) 為自動模式,當前光照強度弱,教室有 10——19 人,則此時前兩個燈亮。
圖 4.7(c) 光照強度弱,教室有 10—19 人
(4) 為自動模式,當前光照強度弱,教室有 20——29 人,則此時前三個燈亮。
圖 4.7(d) 光照強度弱,教室有 20—29 人
(5) 為自動模式,當前光照強度弱,教室有 30 人以上,則此時四個個燈亮。
圖 4.7(e) 光照強度弱,教室有 30 人以上
(6) 為手動模式,手動開關(guān)開,教室無人,光照強度強。如圖 4.7(f)所示。
圖 4.7(f) 手動模式,手動開關(guān)開,光照強度強,教室無人
5. 總結(jié)
5.1 問題與處理
利用單片機 AT89C52 作為核心控制器件的教室照明智能控制器,實現(xiàn)教室照明系統(tǒng)的智能化, 更加節(jié)約能源。系統(tǒng)主要包括控制模塊,信息采集模塊,顯示模塊和照明模塊。紅外探頭對教室人數(shù)進行檢測,光敏電阻對當前教室光照強度進行檢測,單片機對數(shù)據(jù)進行處理判斷,控制教室照明系統(tǒng)的開關(guān),實現(xiàn)照明系統(tǒng)的自動化、人性化。當光照強度較低時,單片機將發(fā)出指令允許開燈, 再進行教室當前人數(shù)檢測,若在設定時間范圍內(nèi),且光照強度弱,教室有人,則照明系統(tǒng)打開;當光照強度強,或教室沒人,或不在設定范圍內(nèi),由單片機發(fā)出指令,照明系統(tǒng)關(guān)閉。
系統(tǒng)基本上達到了任務書的要求,可在程序中根據(jù)需要進行人數(shù)范圍及開啟時間的設定,之后系統(tǒng)根據(jù)設定自動進行檢測。運行后,也可使用按鍵進行手動自動調(diào)節(jié)、當前時間調(diào)節(jié)和開啟時間、關(guān)閉時間調(diào)節(jié)。系統(tǒng)具有功能豐富、抗干擾能力高、易于操作的優(yōu)點,不同的人數(shù)對應不同的亮度具有一定的科學性,使教室的光照強度更加適合當前環(huán)境,有利于節(jié)約能源。在任務書要求外,設計系統(tǒng)還具有日歷時鐘功能和當前人數(shù)顯示功能,使工作人員更方便了解當前教室內(nèi)人數(shù),在需要時進行手動調(diào)節(jié),更加人性化。
設計系統(tǒng)仍有一定的不足之處,相對于任務書具有一定的差距:
該控制器不能具體的了解到進教室的同學具體坐在教室的什么位置,以至于不能更好的控制哪一部分燈亮,哪一部分燈滅,因此不能很好的節(jié)約資源。
這點的改進需要在以后的研究中需要繼續(xù)探究,對設計系統(tǒng)進行進一步的改進。我認為系統(tǒng)的缺點可以通過將教室的每個燈都用此控制器控制,當人進入教室后,可根據(jù)自己所坐的位置進行開燈。
在本次設計制作中出現(xiàn)了不少問題,后來在不斷的檢查和調(diào)整下解決了問題。主要遇到的困難如下:
在硬件的制作過程中,出現(xiàn)將排阻接反的問題,此時 LCD1602 不能正常工作,后經(jīng)檢查發(fā)現(xiàn)進行改正。
在焊接的工程中,由于自身水平不足,在開始焊的過程中,將紅外接收管燒壞,后經(jīng)過排查,發(fā)現(xiàn)此處問題,經(jīng)過練習以后,最終焊接成功。
在整個制作過程中對于編程軟件和仿真軟件的運用能力以及動手能力都得到了進一步的加強。對于 keil 軟件,能夠使用軟件對多個程序進行編譯,并生成一個 hex 文件。同時意識到,編譯時只能檢查出程序的語法錯誤,不能檢查出程序的邏輯錯誤,即使編譯成功也有可能因為程序邏輯錯誤而不能實現(xiàn)功能。對于 proteus 軟件,能夠熟練的從庫中調(diào)用元器件連接硬件電路,并設定仿真環(huán)境, 實現(xiàn)系統(tǒng)仿真。在硬件的制作過程中,提高了排版和焊接能力,能夠熟練的利用烙鐵和焊錫對元器件通過走錫法進行連接。在剛開始的焊接過程中,會出現(xiàn)虛焊,漏焊以及由于送錫過量而將相鄰的點焊接在一起等現(xiàn)象,后經(jīng)過不斷練習,已經(jīng)可以得到光滑圓潤的焊點,并可以準確的控制送錫量進行走線連接。
5.2 展望
在未來的系統(tǒng)設計中,可在系統(tǒng)的基礎(chǔ)上進行功能拓展,實現(xiàn)系統(tǒng)功能的多樣化和科學化。
(1) 實現(xiàn)智能場景控制,對于不同的場景,產(chǎn)生不同的照明效果,提高其非定量指標(如舒適性和藝術(shù)性等),努力讓其更加智能化、人性化。
(2) 可將照明系統(tǒng)與監(jiān)控系統(tǒng)結(jié)合起來,用攝像來采集教室內(nèi)的光照強度,人數(shù),人員分布等各種實時狀況,讓其操作更方便,功能更完善。
科學技術(shù)的不斷發(fā)展,照明系統(tǒng)的智能化已經(jīng)成為一個不可更改的趨勢?;趩纹瑱C的教室智能照明控制器也會在巨大的市場需求的推動下,不斷出現(xiàn)新的產(chǎn)品,更加優(yōu)化,更加科學,更加人性化
參考文獻
[1] 胡興軍.發(fā)展中的智能照明系統(tǒng)[J].光源與照明,2004,(3):44-46.
[2] 石永生,陳廣盛,趙金龍.基于單片機的智能照明控制系統(tǒng)設計.[J].信息通信. 2013(10):63-64
[3] 孔謀夫,潘銀松. 選用單片機的教室節(jié)能控制器的設計與實現(xiàn).[J].電子技術(shù) 2007, 34(1):27-29
[4] 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2006.
[5] 郭天祥.新概念 51 單片機C 語言教程 入門、提高、開發(fā)、拓展全攻略 [M].北京:電子工業(yè)出版社,2009.
[6] 譚浩強.C 程序設計(第二版)[M].北京:清華大學出版社,1999.
[7] 竇振中. 單片機外圍器件實用手冊[M]. 北京:北京航空航天大學出版社,2003
[8] 李廣弟. 單片機技術(shù)[M]. 北京:航空航天大學出版,2001
[9] 閻石. 數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,2009
[10] Atmel. Atmel 89C51 Microcontrollers Hardware Manual,2010. 35~98.
[11] Pan Tian Fu,Chiu Huang Jen,Cheng Shi Jen,Cheng Shi Yen.An Improved Single-Sage Flyback PFC Converter for High-Luminance Lighting LED Lamps[J].The Eighth International Conference on Electronic Measurement and Instruments,2007:212-215.
[12] 雷道仲,李書成,羅政球.基于單片機定時開關(guān)的設計[J].貴州教育學院報.2005(4):224-225.
[13] 張?zhí)旆玻耆謨?1單片機C語言開發(fā)詳解[M].北京:電子工業(yè)出版社.2008.
[14] 王振宇.基于單片機設計的多功能定時器[J].貴州教育學院報.2005(4):79-81
[15] 劉煥平,李娟.基于5 1單片機的智能定時控制系統(tǒng)設計[J].石家莊職業(yè)技術(shù)學院學報.2010(6):26-28.
[16] 張自聰,金永興.基于AT89S52的奧運倒計時牌的設計[J]:中國計量學院報.2007(4):305-307.
附錄
附錄 A 原理圖
附錄 B 元器件清單
序號
名稱
型號
數(shù)量
1
排阻
8*10k
1 個
2
瓷片電容
104
2 個
3
插件電容
2.2uF/16V
1 個
4
瓷片電容
103
2 個
5
插件電容
100Uf/25V
1 個
6
LED 燈
LED
10 個
7
開關(guān)
SW
1 個
8
XH2pin 座
POWER
1 個
9
液晶屏
LCD1602
1 個
10
紅外接收管
2 個
11
紅外發(fā)射管
2 個
12
光敏電阻
100K
1 個
13
藍白可調(diào)電阻
10k
1 個
14
插件電阻
4.7k
3 個
序號
名稱
型號
數(shù)量
15
插件電阻
150
10 個
16
插件電阻
10k
5 個
17
插件電阻
100k
1 個
18
插件電阻
100
2 個
19
按鍵
7 個
20
時鐘芯片
DS1302
1 個
21
單片機
STC89C52
1 個
22
運放
LM339
1 個
23
晶振
32768Hz
1 個
24
晶振
12M
1 個
附錄 C 源程序
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar time_data[7];
uchar code write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; //數(shù)據(jù)的地址
uchar code read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};
uchar code table1[]="C: 00|2016/00/00";
uchar code table2[]="T: 00|00:00:00 0";
uchar code table3[]=" "; //清屏內(nèi)容
uchar code table4[]=" Set Real Time ";
uchar code table5[]=" Set Open Time ";
uchar code table6[]=" Start Time: ";
uchar code table7[]=" 00:00:00 ";
uchar code table8[]=" End Time: ";
uchar code table9[]="Date: 2016/00/00";
uchar code table0[]="Time: 00:00:00 0";
bit Adjust; //調(diào)節(jié)標志位,=1表示進入調(diào)節(jié)模式,=0是正常模式
bit Auto_flg; //自動模式標志位,=1表示手動模式,=0是自動模式
sbit rs=P1^0; //LCD1602
sbit rw=P1^1; //LCD1602
sbit e=P1^2; //LCD1602
sbit sck=P2^5; //時鐘端口
sbit io=P2^6; //時鐘端口
sbit rst=P2^7; //時鐘端口
sbit SELT =P1^6; //選擇鍵
sbit ENTER=P1^7; //確認鍵
sbit UP =P3^0; //加鍵
sbit DOWN =P3^1; //減鍵
sbit MODE =P3^2; //切換按鍵接口
sbit SWITCH=P3^3; //手動開關(guān)
sbit AUTO_LED=P1^3; //自動模式燈接口
sbit HAND_LED=P1^5; //手動燈接口
sbit LAMP1=P3^4; //燈接口
sbit LAMP2=P3^5; //燈接口
sbit LAMP3=P3^6; //燈接口
sbit LAMP4=P3^7; //燈接口
sbit LIGHT1=P2^0; //光線檢測端口
sbit IN1=P2^2;
sbit OUT1=P2^1;
uchar Select_num; //選擇按鍵按下次數(shù)
uchar Enter_num; //確認按鍵按下次數(shù)
uchar Switch_num; //手動開關(guān)按鍵按下次數(shù)
float Year,Month,Day,Hour,Minute,Second; //時間設置值
uchar Week;
float Hour_H,Minute_H,Second_H; //設置開始時間
float Hour_L,Minute_L,Second_L; //設置結(jié)束時間
int Value1; //人數(shù)
uchar IN1_flag=0;
uchar OUT1_flag=0;
void read_rtc();
/**************************************************LCD1602顯示*******************************************************************/
void delay1(uint z) //延時函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}
void write_com(uchar com) //寫指令函數(shù)
{
rw=0;
delay1(5);
rs=0;
delay1(5);
e=1;
delay1(5);
P0=com;
delay1(5);
e=0;
delay1(5);
}
void write_date(uchar date) //寫數(shù)據(jù)函數(shù)
{
rw=0;
delay1(5);
rs=1;
delay1(5);
e=1;
delay1(5);
P0=date;
delay1(5);
e=0;
delay1(5);
}
void init() //初始化函數(shù)
{
uchar num;
Year=17;
Month=1;
Day=1;
Hour=15;
Minute=30;
Second=50;
Week=1;
Hour_H=22;
Minute_H=0;
Second_H=0;
Hour_L=18;
Minute_L=0;
Second_L=0;
e=0; // 時序表e初始為0
write_com(0x38); //設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口
write_com(0x0c); //設置光標
write_com(0x06); //光標自動加1,光標輸入方式
write_com(0x01); //清屏
write_com(0x80); //設置初始顯示位置
for(num=0;num<16;num++)
{
write_date(table1[num]);
delay1(5);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_date(table2[num]);
delay1(5);
}
}
void SetTime_dispaly(uchar add,uchar dat) //第一個:參數(shù)的地址,第二個:參數(shù)的內(nèi)容
{
uchar shi,ge;
shi=dat/10; //把十位提取出來
ge=dat%10; //把個位提取出來
write_com(add); //要寫的地址
write_date(0x30+shi); //十位的內(nèi)容 1602字符庫
write_date(0x30+ge); //個位的內(nèi)容 1602字符庫
}
void Week_dispaly(uchar add,uchar dat) //第一個:參數(shù)的地址,第二個:參數(shù)的內(nèi)容
{
write_com(add); //要寫的地址
write_date(0x30+dat); //十位的內(nèi)容 1602字符庫
}
void Date_dispaly(uchar add,uchar dat) //第一個:參數(shù)的地址,第二個:參數(shù)的內(nèi)容
{
uchar shi,ge;
shi=dat/16; //把十位提取出來
ge=dat%16; //把個位提取出來
write_com(add+3); //要寫的地址
write_date(0x30+shi); //十位的內(nèi)容 1602字符庫
write_date(0x30+ge); //個位的內(nèi)容 1602字符庫
}
void LCD_Clean(uchar i) //液晶屏清除顯示
{
uchar num;
if(i==1)
{
write_com(0x80); //設置初始顯示位置
for(num=0;num<16;num++) //顯示第一行內(nèi)容
{
write_date(table3[num]);
delay1(1);
}
}
if(i==2)
{
write_com(0x80+0x40);
for(num=0;num<16;num++) //顯示第二行內(nèi)容
{
write_date(table3[num]);
delay1(1);
}
}
}
void LCD_Display_String(unsigned char line,unsigned char *string)
{ //液晶屏顯示內(nèi)容,把要顯示的內(nèi)容寫到對應的位置
unsigned char i;
unsigned char address=0;
if(line==1)
{
address=0x80; //0X80是第1行的第1個位置 ,0x81第2位
}
else if(line==2)
{
address=0x80+0x40; //0X80+0x40是第2行的第1個位置 ,0X80+0x40+1是第2行第2位
}
for(i=0;i<16;i++)
{
write_com(address);
write_date(string[i]);
address++;
}
}
/*********************************DS1302時鐘***************************************/
void Time_Display(void)
{
read_rtc();
Date_dispaly(0x80+0x40+9,time_data[6]); //顯示秒
Date_dispaly(0x80+0x40+6,time_data[5]); //顯示分
Date_dispaly(0x80+0x40+3,time_data[4]); //顯示時
Date_dispaly(0x80+11,time_data[3]); //顯示日
Date_dispaly(0x80+8,time_data[2]); //顯示月
Week_dispaly(0x80+0x40+15,time_data[1]); //顯示周
Date_dispaly(0x80+5,time_data[0]); //顯示年
// Year/10*16+Year%10
Hour=time_data[4]/16*10+time_data[4]%16;;
Minute=time_data[5]/16*10+time_data[5]%16;;
Second=time_data[6]/16*10+time_data[6]%16;;
}
void write_ds1302_byte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
sck=0;
io=dat&0x01; //準備數(shù)據(jù),從最低位開始
dat=dat>>1;
sck=1;
}
}
void write_ds1302(uchar add,uchar dat)
{
rst=0;
_nop_(); //CPU原地踏步
sck=0;
_nop_();
rst=1;
_nop_();
write_ds1302_byte(add); //傳地址
write_ds1302_byte(dat); //傳數(shù)據(jù)
rst=0; //不受其他影響
_nop_();
io=1; //釋放
sck=1;
}
uchar read_ds1302(uchar add)
{
uchar i,value;
rst=0;
_nop_(); //CPU原地踏步
sck=0;
_nop_();
rst=1;
_nop_();
write_ds1302_byte(add);
for(i=0;i<8;i++)
{
value=value>>1;
sck=0;
if(io)
value=value|0x80;
sck=1;
}
rst=0;
_nop_();
sck=0;
_nop_();
sck=1;
io=1;
return value;
}
void set_rtc() //設置時間
{
uchar i,j;
for(i=0;i<7;i++) //轉(zhuǎn)換BCD碼
{
j=time_data[i]/10;
time_data[i]=time_data[i]%10;
time_data[i]=time_data[i]+j*16;
收藏