王洪麗
(福州職業(yè)技術(shù)學(xué)院 電子信息工程系,福州 350108)
基于STC12C5A60S2臥室智能控制系統(tǒng)設(shè)計(jì)*
王洪麗
(福州職業(yè)技術(shù)學(xué)院 電子信息工程系,福州 350108)
系統(tǒng)采用兩塊STC12C5A60S2芯片作為系統(tǒng)控制核心,由主機(jī)控制和從機(jī)控制兩部分組成.主機(jī)對從機(jī)發(fā)出信息,可對窗簾開度、燈光進(jìn)行定時(shí)和自動(dòng)模式選擇控制,同時(shí)亦可用遙控控制.遙控器除了發(fā)射主控信號的操作外,還可對燈光的亮度進(jìn)行調(diào)節(jié),窗簾的開度進(jìn)行調(diào)節(jié)和關(guān)閉鬧鈴等功能,從而使臥室實(shí)現(xiàn)智能化、高效化、便捷化.使我們的生活更加舒適、溫馨,讓人們享受更加先進(jìn)的現(xiàn)代化生活.
單片機(jī),智能家居,燈光,窗簾,臥室
由于經(jīng)濟(jì)迅猛發(fā)展,人們生活水平的提高,一個(gè)低成本、高效率的智能家居系統(tǒng),特別是臥室控制系統(tǒng)已成為當(dāng)今世界的一個(gè)討論話題,深受人們青睞.智能家居是以智能為核心,為人類提供一種智能化的,自動(dòng)化的建筑風(fēng)格,為人類提供一種安全、舒適、便捷的生活場景.各國出現(xiàn)了不同的智能家居類的智能產(chǎn)品,其中以燈光和窗簾控制類居多.本文設(shè)計(jì)一采用兩塊STC12C5A60S2芯片作為系統(tǒng)控制核心的臥室智能控制系統(tǒng),該系統(tǒng)可對窗簾開度、燈光進(jìn)行定時(shí)和自動(dòng)模式選擇控制,同時(shí)亦可用遙控控制.對燈光和窗簾實(shí)現(xiàn)自動(dòng)化控制可以極大的節(jié)省時(shí)間,讓人們享受更加先進(jìn)的現(xiàn)代化生活.
采用STC12C5A60S2芯片作為最小系統(tǒng),其內(nèi)部自帶的A/D轉(zhuǎn)化器實(shí)現(xiàn)模數(shù)轉(zhuǎn)化,可判斷光的亮暗程度;采用12864LCD液晶顯示器作為時(shí)間、窗簾和燈光的動(dòng)作顯示;采用24L01無線通信模塊實(shí)現(xiàn)主機(jī)對從機(jī)的控制;采用24C02芯片存儲信息,DS1302時(shí)鐘芯片計(jì)時(shí), ULN2803達(dá)林頓管驅(qū)動(dòng)步進(jìn)電機(jī),HC595作為窗簾動(dòng)作左右停止信號輸入;蜂鳴器作為報(bào)警信號提示,熱敏電阻作為光信號采樣;采用遙控接收頭LBST0038A作為遙控信號輸入,遙控器采用通用型遙控器,系統(tǒng)構(gòu)架圖見圖1.
2.1 STC12C5A60S2控制系統(tǒng)設(shè)計(jì)
STC12C5A60S2單片機(jī)功耗低,內(nèi)部自帶A/D轉(zhuǎn)化器,轉(zhuǎn)化穩(wěn)定,其工作在3.3~5.5 V內(nèi),運(yùn)行快,擁有0~35 MHz工作頻率范圍,60 K的ROM,1280字節(jié)的ARM,受干擾小,兼容其他單片機(jī),穩(wěn)定性好,不用專門的編程器,內(nèi)部自帶PWM波接口,可以編程產(chǎn)生PWM波.一般的單片機(jī)定時(shí)器有2個(gè),而STC12系列有4個(gè),全雙工通信.STC12C5A60S2單片機(jī),響應(yīng)速度快,工作穩(wěn)定,I/O口復(fù)用功能多.
2.2 LCD12864顯示電路設(shè)計(jì)
12864液晶屏具有讀狀態(tài),讀數(shù)據(jù),寫指令,寫數(shù)據(jù),四種并行的基本操作時(shí)序,忙標(biāo)志位為1,表示12864 LCD處于忙狀態(tài),數(shù)據(jù)不允許接收,當(dāng)忙標(biāo)志位為0時(shí),可以接收數(shù)據(jù).通過設(shè)置12864液晶的指令使12864按照我們的要求操作.LCD顯示電路見圖2,D0~D7口是數(shù)據(jù)口,VSS電源地,VDD電源正極,RS:數(shù)據(jù)、命令選擇位,WR:讀寫選擇位,LCDE:使能端.
圖1 系統(tǒng)構(gòu)架圖
圖2 LCD顯示電路
2.3 DS1302時(shí)鐘電路設(shè)計(jì)
DS1302是一款實(shí)時(shí)時(shí)鐘芯片.具有高性能、低功耗的特點(diǎn), 2.5~5.5 V的正常電壓供電.另外31個(gè)字節(jié)靜態(tài)RAM,這種時(shí)鐘芯片一次可以傳送好幾個(gè)字節(jié)和一些RAM數(shù)據(jù).可采用兩種外部方式對其供電:一個(gè)是主電源供電,另一個(gè)是備用電源供電,備用電源保證了在主電源斷電情況下DS1302內(nèi)部依然工作,數(shù)據(jù)不會清空.DS1302芯片可以提供年、月、日、星期、小時(shí)、分鐘、秒鐘,可以判斷閏年且對其補(bǔ)償,自動(dòng)的去取調(diào)整每個(gè)月份的天數(shù).為了讓振蕩的更加穩(wěn)定,最好在晶振外部并上兩個(gè)電容,兩電容間要接地晶振為36.768 kHz,因?yàn)橛型獠恐绷鱾溆秒娫矗⒙?lián)電容的目的是濾波.編程時(shí),數(shù)據(jù)要轉(zhuǎn)化為BCD碼的形式.
2.4 步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)
步進(jìn)電機(jī)是純粹的數(shù)字控制電機(jī),只要給一個(gè)脈沖就轉(zhuǎn)動(dòng)一個(gè)特定的角度,是一種執(zhí)行機(jī)構(gòu),精確的實(shí)現(xiàn)角位移和控制脈沖之間的精確轉(zhuǎn)化.要使角位移發(fā)生改變,可以通過改變脈沖的個(gè)數(shù),這樣就能精確的確定位置;于此同時(shí)用戶如果要使步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的更快,就要使輸入的脈沖頻率變大,但是它的頻率也不能一直變大,否則會失步,電機(jī)不轉(zhuǎn).步進(jìn)電機(jī)驅(qū)動(dòng)電路見圖3,ULN2803的1~8腳信號輸入,輸出分別控制兩個(gè)步進(jìn)電機(jī).采用了ULN2803達(dá)林頓管驅(qū)動(dòng)芯片驅(qū)動(dòng)28BYJ-48步進(jìn)電機(jī),因?yàn)樗?個(gè)NPN晶體管,可以同時(shí)驅(qū)動(dòng)2個(gè)步進(jìn)電機(jī).讓步進(jìn)電機(jī)工作在四相八拍的方式,也就是說施加脈沖信號,讓其依次通一相然后通兩相,步進(jìn)電機(jī)就會一個(gè)角度穩(wěn)定運(yùn)行下去,不斷的循環(huán)工作,要注意工作電壓在直流5~12 V.
圖3 步進(jìn)電機(jī)驅(qū)動(dòng)電路
2.5 光電信號輸入電路設(shè)計(jì)
選擇隨著光度的增強(qiáng),內(nèi)部的阻值相應(yīng)減小的光敏電阻.一般的光敏電阻都做成梳狀,其目的是增加它的靈敏度.為了不影響靈敏度,把它封裝在密封的殼體內(nèi),將很薄的光敏電阻和歐姆電極做在絕緣層上,導(dǎo)線引出.如果沒有光線照射在它的表面,內(nèi)部的電子和空穴會被光子所激發(fā),內(nèi)部阻值將會變得很大,反之,阻值會變得很小.如果將光敏電阻一端提高電壓,另一端和一個(gè)10 k的電阻相互串聯(lián),電阻一端和光敏電阻相連,另一端接地,在兩者相連處為采樣輸入口.由于光電信號處理用到的了單片機(jī)內(nèi)部的A/D轉(zhuǎn)換,所以只需要在外部的光電信號采樣到單片機(jī)的A/D口即可.
2.6 燈光控制電路設(shè)計(jì)
SR501是一種運(yùn)用紅外技術(shù)制作而成的能夠自動(dòng)控制的模塊,SR501的靈敏度很高,工作的時(shí)候具有超低的電壓,運(yùn)行可靠.如果有人從SR501所能感應(yīng)到的位置經(jīng)過時(shí),會輸出高電平,走開的時(shí)候,模塊內(nèi)部會先自動(dòng)的延時(shí)一段時(shí)間,過后,關(guān)閉高電平,取而代之的是低電平電位,具有光敏控制.如果光線太強(qiáng)就不工作.如果溫度升高到一定的范圍,可以溫度補(bǔ)償.具有不可重復(fù)或者可以重復(fù)觸發(fā)的兩種工作方式.不可重復(fù)觸發(fā)方式就是檢測到了高電位,內(nèi)部進(jìn)行延時(shí)一段時(shí)間,然后將高電平變成低電平自動(dòng)的從輸出端輸出.可重復(fù)觸發(fā)方式就是檢測到了輸出的是高電平,等待一段時(shí)間延時(shí),在模塊所能識別的范圍,輸出一直都是高電平狀態(tài),直到有物體穿過這個(gè)范圍的時(shí)候,內(nèi)部會自動(dòng)的變?yōu)榈碗娖?模塊所能識別的時(shí)間大概在2.5 s,理想工作電壓5~15 V直流電.所損耗的功率也較低,可實(shí)現(xiàn)各種電路對接.
3.1 主機(jī)主程序設(shè)計(jì)
主機(jī)主要是用來顯示時(shí)間,操作和發(fā)送數(shù)據(jù).電路一上電,程序開始執(zhí)行時(shí),首先將LCD 12864、24L01無線模塊行初始化設(shè)置,將24C02存儲器中的數(shù)據(jù)讀取出來,當(dāng)沒有進(jìn)行設(shè)置時(shí),能夠保證主頁面顯示年、月、日、星期、時(shí)、分、秒,窗簾、燈光的設(shè)置.aa中存放的是頁面碼,比如aa=0時(shí),顯示的是主頁面;當(dāng)aa=1的時(shí)候,顯示的是設(shè)置選擇頁面,包括時(shí)間設(shè)置選擇,窗簾燈光設(shè)置選擇,窗簾燈光定時(shí)設(shè)置選擇.bb中存放的是選擇項(xiàng),bb=0,選中時(shí)間設(shè)置,可對時(shí)間的年、月、日、時(shí)、分、秒、星期進(jìn)行設(shè)置; bb=1,選中窗簾燈光定時(shí)設(shè)置選擇,可對窗簾的狀態(tài)(全開,全關(guān),定時(shí),自動(dòng))選擇設(shè)置,可對燈光的狀態(tài)(模式一,模式二,模式三,全關(guān),定時(shí))進(jìn)行選擇設(shè)置;bb=2,選中窗簾燈光定時(shí)設(shè)置選擇,可對窗簾及其燈光進(jìn)行任意一天或者多天的某個(gè)時(shí)刻進(jìn)行定時(shí)開關(guān).dd是查看的選擇,dd=0時(shí)可以顯示時(shí)間、窗簾、燈光的狀態(tài),dd=1時(shí)可以查看窗簾的定時(shí)時(shí)間和開關(guān)狀態(tài),dd=2時(shí)可以查看燈光定時(shí)的時(shí)間和開關(guān)的狀態(tài).因?yàn)楸4婧痛_定是同一個(gè)按鍵,所以每個(gè)流程對bb,aa的值對應(yīng)每個(gè)的操作進(jìn)行保存.當(dāng)處在主頁面狀態(tài)時(shí),通過無線模塊發(fā)射窗簾燈光信息給從機(jī),主機(jī)主程序流程圖見圖4.
圖4 主機(jī)主程序流程圖
3.2 從機(jī)主程序設(shè)計(jì)
從機(jī)也是一個(gè)獨(dú)立的電路板,受單片機(jī)控制,所以開始上電復(fù)位時(shí),也要對無線摸塊24L01初始化設(shè)置,中斷初始化設(shè)置,還要把燈光全關(guān),因?yàn)閺臋C(jī)的LED連接方式是共陽極接法.初始化完后,先對外部的光敏電阻采樣的信號,輸入到單片機(jī)的A/D轉(zhuǎn)化輸入口(本機(jī)采用P1.7口),內(nèi)部A/D處理后可知道輸入的是高電平還是低電平,為后面的自動(dòng)提供依據(jù).對主機(jī)發(fā)送過來的信號進(jìn)行接收,然后對窗簾進(jìn)行控制.緊接著當(dāng)窗簾的定時(shí)信號到來時(shí),可對其進(jìn)行定時(shí)開關(guān).定時(shí)開關(guān)默認(rèn)設(shè)置為開模式一,然后判斷是否是窗簾自動(dòng)模式,當(dāng)天亮?xí)r,光敏電阻電阻很小,通過A/D采樣處理得出高電平,于是窗簾自動(dòng)開直達(dá)接觸到兩邊的左右開關(guān),停止.因?yàn)楸鞠到y(tǒng)設(shè)計(jì)有夜間模式功能,采用紅外人體模塊SR501,夜晚,當(dāng)窗簾關(guān)閉,模式燈全關(guān)狀態(tài),表明進(jìn)入夜間睡眠,當(dāng)半夜有人經(jīng)過時(shí),燈光自動(dòng)開,3 s后滅,這樣既方便夜間行走,又能很好節(jié)約電能.燈光的模式和調(diào)光控制設(shè)在定時(shí)中斷中,當(dāng)中斷信號到來,根據(jù)窗簾的選擇,PWM控制不同模式下的燈光的亮度.因?yàn)楸鞠到y(tǒng)還有遙控控制功能,該功能體現(xiàn)在外部中斷一,紅外接收頭檢測到遙控信號,改變窗簾燈光信號,進(jìn)行新的窗簾和燈光設(shè)置,從機(jī)主程序流程圖見圖5.
圖5 從機(jī)主程序流程圖
3.3 步進(jìn)電機(jī)控制程序設(shè)計(jì)
由于窗簾的工作狀態(tài)較多,以窗簾的全開、自動(dòng)和定時(shí)三種模式為例說明,從機(jī)會接收主機(jī)或者遙控發(fā)送過來的窗簾信息,可知道窗簾的工作狀態(tài).程序會在窗簾工作前設(shè)定各個(gè)狀態(tài)所要執(zhí)行動(dòng)作的數(shù)組表.判斷是否是全開模式的話,判斷左窗簾或者右窗簾是碰到開關(guān)0或者開關(guān)3,如果沒有碰到,左窗簾會向左開,直到碰到開關(guān)0;右窗簾向右開,直到碰到開關(guān)3,窗簾停止工作.如果窗簾不是全開模式,接下來判斷是否是其他正常模式(全關(guān),左開,左關(guān),右開,右關(guān)),若是自動(dòng)模式,判斷光敏電阻的采樣值為高,說明天亮了,窗簾會自動(dòng)將全開,如果窗簾不在自動(dòng)模式,判斷是否定時(shí),若是,并且時(shí)間定時(shí)信號到了,在對窗簾狀態(tài)開還是關(guān)進(jìn)行判斷,然后執(zhí)行開或者關(guān)的操作,步進(jìn)電機(jī)控制程序流程圖見圖6.
圖6 電機(jī)驅(qū)動(dòng)程序流程圖
3.4 遙控控制程序設(shè)計(jì)
本系統(tǒng)的遙控控制程序在外部中斷1中,所以在主程序執(zhí)行前,將定時(shí)器初始化.當(dāng)遙控器發(fā)射信號時(shí),因?yàn)榻邮展芙釉趩纹瑱C(jī)的P3.2,從機(jī)的遙控接收管接收到遙控信號,主程序停止運(yùn)行,進(jìn)入到外部中斷.接收管沒接到信號時(shí)處于高電平狀態(tài),接收到信號變?yōu)榈碗娖?,進(jìn)入中斷時(shí)候,還要進(jìn)一步判斷是否有遙控信號,如果沒有退出中斷.然后要等待9 ms左右,信號拉成低電平.變?yōu)楦唠娖?,又要等待低電平,接收到低電平?zhǔn)備接收數(shù)據(jù),因?yàn)檫b控信號數(shù)據(jù)由四組組成:用戶地址、用戶地址相反、數(shù)據(jù)、數(shù)據(jù)相反這四種數(shù)據(jù)組成,所以要判斷是否接收到了四組的數(shù)據(jù),沒接收一組數(shù)據(jù)需要判斷拉高的時(shí)間是否過長,過長說明數(shù)據(jù)丟失,跳出中斷.四組數(shù)據(jù)接收完成,在判斷數(shù)據(jù)位,數(shù)據(jù)相反是否匹配,不匹配數(shù)據(jù)傳輸失敗,跳出中斷.如果接收到正確數(shù)據(jù),就可以對遙控鍵值對應(yīng)的參數(shù)進(jìn)行設(shè)置,跳出中斷,遙控信號接收程序流程圖見圖7.
圖7 遙控信號接收程序流程圖
3.5 燈光控制程序設(shè)計(jì)
燈光控制具有模式選擇、燈光調(diào)控和定時(shí)功能.因?yàn)檎{(diào)光采用的是PWM調(diào)光,所以燈光控制設(shè)計(jì)在定時(shí)器1,主程序要對定時(shí)器初始化,如果進(jìn)入中斷,對timer1進(jìn)行加1,接著對燈光的工作模式進(jìn)行選擇,因?yàn)楸敬卧O(shè)計(jì)有三種燈光模式,工作方式相同,現(xiàn)在支隊(duì)模式一說明,進(jìn)入模式一工作狀態(tài),讓燈光亮timer1次,滅100減去timer1次,實(shí)現(xiàn)PWM波調(diào)光,退出中斷.如果選擇關(guān)閉時(shí),對燈光進(jìn)行關(guān)閉,退出中斷.如果工作在定時(shí)狀態(tài)時(shí),等待定時(shí)信號到來,定時(shí)一到,判斷燈光定時(shí)狀態(tài)開還是關(guān),如果是開,默認(rèn)開模式一,否則定時(shí)關(guān)閉后直接退出中斷.
本系統(tǒng)系統(tǒng)由主機(jī)和從機(jī)兩個(gè)部分組成,主機(jī)通過無線模塊將所要操作的信息傳遞給從機(jī),從機(jī)執(zhí)行相應(yīng)的動(dòng)作.通過LCD12864進(jìn)行顯示時(shí)間信息和相應(yīng)的操作,時(shí)間通過DS1302實(shí)現(xiàn),帶外部電源,斷電時(shí)間信息依然保存.本系統(tǒng)可對燈光和窗簾實(shí)現(xiàn)定時(shí)功能,將時(shí)間信息和相應(yīng)操作信息存儲在24C02芯片中,可通過查看鍵查看相應(yīng)的定時(shí)信息.主機(jī)可對窗簾進(jìn)行全開、全關(guān)、定時(shí)和自動(dòng)等控制.可對燈光進(jìn)行模式一、模式二、模式三、全關(guān)和定時(shí)功能選擇.系統(tǒng)可對燈光和窗簾在每周的任何時(shí)段進(jìn)行定時(shí)開或關(guān).從機(jī)負(fù)責(zé)系統(tǒng)的執(zhí)行操作,可對主機(jī)或者遙控器發(fā)送過來的信息進(jìn)行操作.從機(jī)由燈光電路、步進(jìn)電機(jī)驅(qū)動(dòng)電路、蜂鳴器驅(qū)動(dòng)電路、輸入輸出擴(kuò)展電路和遙控信號采集電路等組成.遙控器除了發(fā)射主控信號的操作外,還具有燈光的亮度進(jìn)行調(diào)節(jié)、窗簾的開度進(jìn)行調(diào)節(jié)和關(guān)閉鬧鈴等功能.使臥室實(shí)現(xiàn)智能化,高效化,便捷化.
[1] 楊 晶,唐小琦,宋 寶.智能護(hù)理床無線控制軟件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 機(jī)械與電子,2015(2):74-77.
[2] 郭天祥.新概念51單片機(jī)C語言教程[M].電子工業(yè)出版社,2009.
[3] 胡乾斌,李光斌,李 玲,等.單片微型計(jì)算機(jī)原理與應(yīng)用[M].(第二版).武漢:華中科技大學(xué)出版社,2006.
[4] 樊昌信 曹麗娜.通信原理[M].(第六版).北京:國防工業(yè)出版社,2009.
[5] 徐 鵬,郭燕錦. 智能家居控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 科技廣場,2015(1):85-89.
[6] 曾小波,曠永紅.基于自適應(yīng)模糊PID控制的整流器設(shè)計(jì)與實(shí)現(xiàn)[J]. 湖南工程學(xué)院學(xué)報(bào)(自科版),2015,25(3):13-17.
[7] 梁曉梅.智能家居系統(tǒng)設(shè)計(jì)與研究[J].科技風(fēng),2012(18):150-150.
[8] 康祥喆.淺談我國智能家居的現(xiàn)狀及發(fā)展趨勢 [J].中國科技信息,2014(8):121-122.
Design of Bedroom Intelligent Control System Based on STC12C5A60S2
WANG Hong-li
(Department of Electric and Electrical Engineering, Fuzhou Vocational and Technical College, Fuzhou 350108, China)
The system adopts two STC12C5A60S2 chips as the system control core, consisting of the host control and the machine control. The host gives a message to the machine. Timing, curtains opening and lighting for automatic control mode selection can be done. At the same time, the remote control can also berealized. In addition to launching the operation of the main signal, the remote control can adjust the brightness of the light, the opening of the curtain. It can also close the alarm and operate other functions. The intelligence, efficiency and convenience of the bedroom makes our life more comfortable and enjoyable.
single chip microcomputer; intelligent household; light; curtain
2016-05-09
王洪麗(1977-),女,碩士,副教授,研究方向:電子通信工程.
TN916.42
A
1671-119X(2016)04-0018-05