智能窗簾報告綜述_第1頁
智能窗簾報告綜述_第2頁
智能窗簾報告綜述_第3頁
智能窗簾報告綜述_第4頁
智能窗簾報告綜述_第5頁
免費預覽已結束,剩余36頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、徐解騫發Hefei University2015年合肥學院電子設計競賽項目報告項目名稱:智能臥室窗簾系統作者姓名:梁波 1205022039 12 通信(二)班毛會磊 1205022002 12通信(二)班朱春松 13050110松13電子(一)班指導教師:完成時間:2015 年3月16日摘要本電路根據辦公和生活環境需要,采用AT89C51單片機控制系統,利用P3 口的特殊功能與 P1 口的空閑模式和掉電模式,根據其不同控制模式,實現半自動控制、自動控制、定時控制的相互轉換控制窗簾機。該設計包括光電開關電路、系統主控模塊、電源轉換電路、保護電路等組成,可實現窗簾自動升降。關鍵詞單片機;定時控制

2、;光電開關;步進電機21 引言 41.1 系統設計的背景及意義 41.2 設計的基本內容 41.3 設計思想及基本功能 52總體電路設計與原理說明 62.1 方案選取 62.2 方案介紹 72.2.1 自動控制窗簾基本功能 82.2.2 控制器總體結構設計 83系統硬件設計 103.1 89C51 單片機及相關電路 103.1.1 89C51單片機概述 103.1.2 晶振電路 103.1.3 復位電路 113.1.4 顯示電路 123.2 光敏傳感器電路 143.3 A/D 轉換電路 153.4 步進電機電路 153.5 鍵盤接口電路 163.6 紅外控制電路 174系統軟件設計 204.1

3、 主程序軟件設計 204.2 光控電機程序設計 214.3 LCD1602 顯示程序設計 224.4 光照采集程序設計 225總結 24參考文獻 25附錄 1 :原理圖 26附錄2:部分子程序 271引言1.1 系統設計的背景及意義當今時代,科技的發展和人們生活水平顯著提高,人們對居住環境方便快捷的要求越來越高,智能家居系統應運而生。智能家居是現代電子技術、 通訊技術及自動化技術相結合的產物。隨著高新技術及電子器件的發展,光控、溫控及遙控窗簾應運而生,給人們生活帶來很多方便。同時,也為人們的生活環境及智能家居的實現提供了依據,為此,研究和設計智能窗簾控制系統具有深遠的現實意義。窗簾機的控制方式

4、大體上有三種:聲 控、光控、時控,聲控和遙控屬于半自動類而光控雖屬全自動式,但因光 敏器件的靈敏度,冬夏等不同季節的光照度的不同,以及人們對開閉窗簾 在時間上的要求不同,而難以實施和普及。因此,設計一款價格低廉,結 構簡單,靈敏度高,抗干擾能力強,實現紅外線遙控控制、時間控制、手 動控制三種功能的為一體的智能窗簾,具有十分重要的意義。在歐美等發達國家,電動窗簾已經廣泛應用。在十多 年前,電動窗簾就已經進入我國,可一直沒有大的推廣,這兩年,隨著電控技術的不斷提高及價格的不斷下降,電動窗簾熱才又卷土重來。據了解,全國共有170多種電動窗簾器獲得 了國家專利,但就其技術本身而言,還是大同小異,但銷價

5、卻有了很大的差別,貴的要數千元,便宜的只有幾百元。盡管遙控自動窗簾系 統在國內是一個新興的行業,但是,它也正以不可抵擋之勢迅速崛起。遙 控自動窗簾系統走進中國以來,再短短四年的時間里,遙控自動窗簾系統 生產商由最初的幾家公司增加到如今的百余家企業,其行業發展之迅速是目前國內任何其他行業所無法比擬的。目前,我國遙控自動窗簾系統生產廠商、分銷商、集成商與裝飾公司都形成了相當規模,不少國內知名企 業紛紛涉足遙控自動窗簾系統行業。隨著自動窗簾熱潮在世界范圍內的日漸興起,隨著中國電子技術的飛速發展、人們生活水平的不斷提高以及智 能電子技術在生活中的廣泛應用,自動窗簾已經成為未來家居裝飾潮流發展的最新方向

6、。從目前的發展趨勢來看,在未來的 20年時間里,自動窗 簾行業將成為中國的主流行業之一,其市場的發展前景是非常廣闊的。1.2 設計的基本內容本設計通過分析電動窗簾的發展和現狀來規劃電動窗簾的智能功能,從而對電動窗簾控制器進行設計。采用步進電機作為執行元件,以光敏電 阻作為傳感元件的傳感器作為檢測元件,89C51單片機作為控制芯片,輔助鍵盤和顯示,最終實現了電動窗簾控制器的多項智能項目。主要章節分為:(1)引言:介紹系統設計的背景及意義,設計的基本內容。(2)總體設計方案:給出了電動窗簾控制器的總體方案設想,智能 項目,和設計結構規劃。(3)軟件設計:選用選用匯編語言作為本次軟件設計的編程語言。

7、(4)總結與展望。1.3設計思想及基本功能該器具有一般的窗簾控制器的最基本的功能,即通過電動按鈕來開閉 窗簾,在此基本功能的前提下,本設計根據需求還設計了可以根據光照強 度和設定時間自動開閉窗簾的功能,在選取設計方案和采用元器件方面, 該器本著簡單實用經濟的思想,盡量簡化電路設計,用最簡單的電路布線 和選用最經濟實用的器件來達到設計要求。自動窗簾控制器具有以下幾個基本功能:1 .手動控制該功能使電動窗簾具有手動正傳、手動反轉和手動停止的功能。用戶可以通過遙控器對窗簾的開合進行控制,避免了手動拉動窗簾的 麻煩。2 .半自動手動控制半自動手動控制是在需要關閉或打開窗簾的時候,只需要人工按一下 “正

8、轉”或“反轉”按鍵后,窗簾到位自動停止。3 .光控調節功能當用戶無暇顧及窗簾的開合程度時可以打開光控調節功能,窗簾的 關閉和開啟通過環境亮度自動完成窗簾的開啟或關閉操作控制,“天黑關 閉,天亮打開”單片機會自動獲取信息調節室內光照強度,使室內一直處 于舒適的光照環境。具有智能管理,不產生誤動作。4 .定時控制功能根據設置輸入的開啟或關閉時間,來控制窗簾的關閉和打開。窗簾的 正轉、反轉和停止功能可由單片機輸出電平來控制步進電機的運轉以實 現。環境亮度的控制通過光敏電阻和運放組成的電路來控制單片機輸出電 平繼而控制電機的正轉和反轉。時間自動控制可以由定時器來控制。2總體電路設計與原理說明2.1方案

9、選取單片機在各種電子產品中的應用已經越來越廣泛,很多的電子產品利用單片機所取得的便利性得到了人們的好評,針對單片機控制的自動窗簾控制器的智能化要求,實現其自動控制的方案有兩種:方案(一)基于溫度檢測以及聲控檢測器件的自動控制方案(二)基于光照強度器件的自動控制這二個方案都是 基于單片機控制的,采用步進 電機控制以及液晶 顯 示,不同的設計部分在于檢測器件的選取上。方案一的原理圖如圖一:圖1 方案(一)的原理框圜方案(二)的器框圖如圖2:37圖2方案(二)的原理框圖方案(一)與方案(二)的區別主要在于檢測器件的應用,方案(一) 采用溫度采集和聲音檢測元件,通過設定的溫度來控制窗簾的開閉,以減 少

10、光照對室內的溫度影響,利用聲音控制雖然方便性有所提高,但是其誤 差較大。方案(二)采用的時鐘模塊實用性更強。綜合考慮以上因素,器 設計采用方案(二)。2.2方案介紹方案:基于選 原理框圖如下紅外遙控模塊( 7,鍵盤i照檢測的自動控制。光控模塊)L蜂鳴器單片機系統( 、LCLCD顯示屏2.2.1 自動控制窗簾基本功能(1)手動控制:該功能使電動窗簾具有手動正傳、手動反轉和手動停止的功能。而且增加了工作狀態指示,電機工作在正傳、反轉和停止狀態 的時候,數碼管均有不同工作狀態指示。(2)半自動手動控制:半自動手動控制是在需要關閉或打開窗簾的時候,只需要人工按一下“正轉”或“反轉”按鍵后,窗簾到位自動

11、停止。(3)環境亮度控制:窗簾的關閉和開啟通過環境亮度自動完成窗簾的開啟或關閉操作控制,“天黑關閉,天亮打開”具有智能管理,不產生誤動作。(4)時間自動控制:根據設置輸入的開啟或關閉時間,來控制窗簾的關閉和打開。窗簾的正轉、反轉和停止功能可由單片機輸出電平來控制步進電機的 運轉以實現。環境亮度的控制通過光敏電阻和運放組成的電路來控制單片 機輸出電平繼而控制電機的正轉和反轉。時間自動控制可以由定時器來控 制。2.2.2 控制器總體結構設計自動窗簾控制器設計的總體框圖如圖3所示:圖I 3電動窗簾控制器結構框圖由光電傳感器來探測外界的光強,從傳感器出來的信號經過信號調理 電路的放大,濾波調理后輸入到

12、A/D轉換器,A/D轉換器件完成一個轉換過程需要一定時間,如果在這段時間內信號的幅度發生變化,轉換結果將會 受到影響,所以期間要用到采樣保持電路。轉換后的信號由單片機控制器,來實現電機的運行與停止。顯示部件用來顯示電動窗簾控制器的各種狀態 信息。鍵盤是主要的輸入設備,控制單片機的各種參量。RST 4Hxm P3 o (T P3 tP3 2 :H NT 門 KJ 3 p».« q(T r > P3 3 W1T> pie:: 4口口i P3 TXTAL2 X TAL fQ1MDVCCP0.0 (AO &> ,(AO 1 )P0 3 I AD J) PO

13、 J 1AD3) 4 4AC4) j PO 3 4 AC B) 口 P0 A 4 AO«) 11 T (AO?) 1 f A1*PPALEPROG PSEN :F J JF f A 1 5 >PZ 0 (A 14 > P才 » 1A1 J|>PZ 01”PN 31>:P2 1 (At &) :P2 1 (Afi> :常0 IASI單片機發出時鐘信號。圖4是單片機的晶振電路。電AT89C513系統硬件設計3.1 89C51單片機及相關電路3.1.1 89C51單片機概述AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器的低電壓,性能

14、CMOS骯微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用 ATMEH密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且 價廉的方案。3.1.2 晶振電路電路中的晶振即石英晶體震 蕩器。由于石英晶體震蕩器具有非 常好的頻率穩定性和抗外界干擾 的能力,所以,石英晶體震蕩器是 用來產生基準頻率的。通過基準頻率來控制電路中的頻率的準確性。 同時,它還可以產生振蕩電流,向路中的電容 C1和C2

15、的典型值通常選擇為30PF左右,該電容的大小會影 響振蕩電路頻率的高低、振蕩器的穩定性和起振的快速性。晶體振蕩頻率的范圍通常在1.212MHz。晶體的頻率越高,系統的時鐘頻率越快,單片 機的運行速度越快。但反過來,運行速度對于存儲器的速度要求就越高, 對印刷電路板的工藝要求也就越高,即要求線間的寄生電容要小。晶體和 電容應該盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證 振蕩器穩定、可靠地工作。89C51常選擇振蕩頻率 12MHz的石英晶體。PI2PIO85C51PllPOO P01 P02 PO3P04 PO5 PO6 P07RESETRD WRRXDTXDALE 5PESEX39

16、38 豆 363534 亙3221 77232425262SioTT30圖4.晶振電路7P3 4 5 61Lp p p P234 |567號12?U15143119ts9LLINTIP20INTOP2IP22T1P23TOP24_P25EAXTP26P27XIX23.1.3 復位電路復位是單片機的初始化操作,只需要給89C51的復位引腳 RST加上大于2個機器周期(即 24個時鐘振蕩周期)的高電平就可以使89C51復位。復位時,單片機初始化為0000H,從0000H單元開始執行程序。除了進入系統的正常初始化之外,當程序運行錯誤(如程序跑飛)或操作錯誤使系統處于鎖死狀態時,也需要復位鍵使RST腳

17、為高電平,使 89C51擺脫“跑飛”或“死鎖”狀態而重新啟動。下圖是復位電路圖。M 1 1 1 I 11Pl。 S9C5I P00 phpoiP12P02Pl 3P03P14P04Pl 5P05P16P06P17P073!J33743653563473383:213INTIP20INTOP2IP22TlP23TOP24_P25EAXTP26P27XIXI2112222315241425263127is1918 19ID_TXDRDALEF而PESEN1117301629圖5.復位電路3.1.4 顯示電路顯示部分則主要顯示時間,用于設置時間。采用LED數碼管進行顯示是一種經濟實用的方法。每位數碼

18、管由7個筆畫加上小數點共 8個發光二極管組成;有共陰極和共陽極兩種類型,公共端用來進行位控制,筆畫端 用來進行字符控制;數碼管顯示有靜態顯示和動態顯示兩種方法。在數碼管顯示中,有 2個技術問題需要解決,這就是整數高位和閃爍顯示問題。雖然某些新型LED驅動芯片本身具有閃爍控制和熄滅控制功能,但通過合理的軟件設計,采用廉價芯片組成的驅動電路同樣可以實現 整數高位滅零和閃爍顯示功能,達到降低系統硬件成本的目的。本設計采用的就是 4位LED數碼管的串行驅動電路來達到顯示時間和 消除閃爍顯示的目的。采用LED數碼管進行顯示是因為LED數碼管具有以下幾個優點:(1)能在低電壓、小電流條件下驅動發光,能與C

19、MOS、ITL電路兼容。(2)發光響應時間極短(0.1 ps),高頻特性好,單色性好,亮度 高。(3)體積小,重量輕,抗沖擊性能好。驅動器采用74LS164, 74LS164是8位串行輸入,并行輸出的移位寄存器。具引腳及各個引腳的作用如下圖所示:3A區3司卡8QC叵Q1瓦 £164回Q?'1 XT| QiQ3 |_<T| rjp彳Tl CP圖6.74LS164引腳及符號DSADSB Q0Q3GNDCP/MRQ4Q7VCC引腳說明1數據輸入1數據輸入36輸出7地(0 V)o時鐘輸入(低電平到高電平8邊沿觸發)9中央復位輸入(彳氐電平后效)1013輸出14正電源說明由89C

20、51的P3.0和P3.1來控制LED數碼管的顯示。顯示電路圖如 3.3.2 所示。74LSIM89C511PIOPOOPllMlPUP03P13¥03PHP04P15P05P16P06Pl?P07MT1PMDJTOP21P22Tl陽TOT24一P35EA/VPP26P27K| saTKD麗PSEN*a當3374535«34翼8321321n ;2215劉L41531WIS劉10IS9n割圖7.顯示電路QQQ1審Q4Q5 Q百0io n12A即QiQ2Q3Q4>CLKq,Q。ME.57413164AQ0BQI華Q3>CLKQ5q774LS1IS+io TT 亙5

21、互 Io IT laDPTT_7-SE6_DPDS?3.2 光敏傳感器電路光敏傳感器是最常見的傳感器之一,它的種類繁多,主要有:光電管、 光電倍增管、光敏電阻等。光敏電阻又稱光導管,常用的制作材料為硫化鎘,另外還有硒、硫化 鋁、硫化鉛和硫化鈿等材料。這些制作材料具有在特定波長的光照射下, 其阻值迅速減小的特性。這是由于光照產生的載流子都參與導電,在外加 電場的作用下作漂移運動,電子奔向電源的正極,空穴奔向電源的負極,圖8.光敏傳感器當光敏電阻受到脈沖光照射時,光電流要經過一段時間才能達到穩定 值,而在停止光照后, 光電流也不立刻為零,這就是光敏電阻的時延特性。 由于不同材料的光敏,電阻時延特性

22、不同,所以它們的頻率特性也不同, 硫化鉛的使用頻率比硫化鎘高得多,但多數光敏電阻的時延都比較大,所 以,它不能用在要求快速響應的場合。應用光控原理工作,天亮窗簾自動打開,天黑窗簾自動關閉。由運放 組成比較電路,同向輸入端有兩個電阻分壓得到一個電壓值,作為基準電 壓進行比較,而反相輸入端用一個光敏電阻對外部環境的光線進行采集, 利用光敏電阻暗時電阻大,亮時電阻小的特點,來確定反向輸入端的電壓 值。再兩者進行比較,比較后的信號再送入單片機89C2051的P0 口,從而通過單片機來控制電機的正反轉。來實現天亮窗簾自動打開,天黑窗簾 自動關閉這一自動控制功能。3.3 A/D轉換電路PCF8591是一個

23、單片集成、單獨供電、低功耗、8-bit CMOS 數據獲取器件。PCF8591具有4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。 PCF8591的3個地址引腳 A0, A1和A2可用于硬件地址編程,允許在同個 I2C總線上接入 8個PCF8591器件,而無需額外的硬件。在PCF8591器件上輸入輸出的址、控制和數據信號都是通過雙線向I2C總線以串行的方式進行傳輸。PCF8591的功能包括多路模擬輸入、內AINOAJN1AIN 2AIN3AOAlA2 VssPCF85&1AOUTYref AGNDSDA置跟蹤保持、8-bit模數轉換和8-bit數模轉換。PCF8591的最大轉化速率

24、 由I2C總線的最大速率決定。PCF8591 特性:單獨供電;PCF8591的操作電壓范圍 2.5V-6V ;低待機電流;通過I2C總線串行輸入/輸出;PCF8591通過3個硬件地址引 腳尋址;PCF8591的采樣率由I2C總線速率決定;4個模擬輸入可編程為 單端型或差分輸入;自動增量頻道選擇;PCF8591的模擬電壓范圍從 VSS到VDD ; PCF8591內置跟蹤保持電路;8-bit逐次逼近 A/D轉換器;通過1路模擬輸出實現 DAC增益。3.4 步進電機電路步進電機為一種數字伺服執行元件,具有結構簡單、運行可靠、控制 方便、控制性能好等優點,廣泛應用在數控機床、機器人、自動化儀表等 領域

25、。為了實現步進電機的簡易運動控制,一般以單片機作為控制系統的 微處理器,通過步進電機專用驅動芯片實現步進電機的速度和位置定位控 制。單片機在本次試驗中對步進電機的控制從而達到對轉角和位移的控 制的方法。本次設計采用兩個型號為130Hz308-450 的三相反應式步進電機對旋轉角度和位移進行控制,該步進電機力矩大、耐負載沖擊、精度高。其步距角為1.2° ,即"N=1.2。,即本次設計的測控系統對回轉臺轉角的控制精度可以達到1.2。步進電機的驅動電路是根據控制信號工作的。而本次測控系統是以單片機位控制中心的,下面將介紹步進電機控制 系統。步進電機控制系統主要由脈沖分配器,功率驅

26、動電路,步進電機幾部分構成的。步進電機控制系統的方框圖如圖9所示:脈沖信節圖9.步進電機電路3.5 鍵盤接口電路鍵盤在單片機應用系統中能實現向單片機輸入數據,傳送命令等功能,是人工干預單片機的主要手段。本設計中的鍵盤采用4X4矩陣鍵盤。16個鍵分別為:0-9十個數字鍵,用于時間設定輸入;設定鍵,設定自動 窗簾開和關的時間;復位鍵,在程序出錯或者有誤操作的時候;正轉鍵, 使步進電機正轉,窗簾打開;反轉鍵,使步進電機反轉,窗簾關閉;停止 鍵,步進電機停止運轉;確定鍵,時間設定完成后確定輸入。由于按鍵比較多,加上減少所戰占用的端口,可以將按鍵組成一個矩 陣,如圖10所示。圖10.鍵盤接口電路3.6

27、紅外控制電路紅外通信基本原理:紅外通信是利用 950nm近紅外波段作為傳遞信息的媒體,即通信信 道。發送端將基帶二進制信號調制為一系列的脈沖用信號,通過紅外發射 管發射信號。接收端將接收到的信號裝成電信號,再經過放大、濾波等處 理后送給解調電路進行解調,還原為二進制信號后輸出。常用的有通過脈 沖寬度來實現信號調制 (PWM)和通過脈沖用之間的時間問隔來實現信號 調制的脈時調制(PPM )兩種方法。簡而言之,紅外通信的實質就是對二進制數字信號進行調制與解調, 以便利用紅外信道進行傳輸;紅外通信接口就是針對紅外信道的調制解 調。紅外遙控系統主要由遙控發射器、一體化接收頭、單片機、接口電路 組成。遙

28、控器用來產生遙控編碼脈沖,驅動紅外發射管輸出紅外遙控信號,遙控接收頭來完成對遙控信號的放大、檢波、整形、解調出遙控編碼脈沖。遙控編碼脈沖是一組串行二進制碼,對于一般的紅外遙控系統,此串行碼 輸入到微控制器,由其內部CPU完成對遙控指令解碼,并執行相應的遙控功能。紅外遙控控制過程:本系統以89C51單片機為核心,由發射和接受兩部分組成,發射部分主要完成編碼和調制,接收部分完成調解和解碼。其 發射部分主要由 89C51單片機完成編碼,然后由紅外發射管發射紅外線, 接收部分主要由光電轉換,放大,解調,解碼組成。其中光電轉換,放大 調解由紅外線一體化接頭來完成,接收單片機主要完成解碼功能。遙控器發射及

29、其編碼:紅外線遙控采用自定義編碼方式,由發送單片 機來完成。遙控發射器專用芯片很多,根據編碼格式可以分為脈沖寬度調 制和香味調制兩大類。當發射器案件按下后,即有遙控碼發出,所按的鍵 不同遙控編碼也不同,這碼具有以下特征:采用脈寬調制的用行碼,以脈寬為0.26ms、間隔0.26ms、周期為0.52ms的組合表示二進制的“1” (如圖11A),其特征是脈沖中高電平的寬度等于0.26ms ,相當于10個26仙s的寬度;以脈寬為 0.26ms、間隔為0.52ms、 周期為0.78ms的組合表示二進制的“ 0” (如圖11B),其特征是脈沖中 而低電平的寬度是高電平的二倍,等于0.52ms,相當于20個

30、26仙s的寬度。可以根據傳輸數據的不同來調節脈沖的寬度。表示1表示0 N04>0.26mm0.26mm0.52mm0.26mmAB圖11.二進制信號二進制信號的調制:二進制信號的調制由發送單片機來完成,它把編碼后的二進制信號調制成頻率為38KHz的間斷脈沖用,相當于用二進制信號的編碼乘以頻率為38KHz的脈沖信號得到的間斷脈沖用,即是調制后用于紅外發射二極管發送的信號。如圖3所示,A是二進制信號的編碼波形,B是頻率為38KHz(周期為26 ps)的連續脈沖用,C是經調制后的間斷脈沖用 (相當于C=AX B),用于紅外發射二極管發送的波形。10野編碼后的二進制信號10個脈沖 20個脈沖,單

31、個脈沖26US_調制后的二進制信號(發送)圖12二進制信號的調制二進制信號的解調:二進制信號的調制仍由發送單片機來完成,它把編碼后的二進制信號調制成頻率為38KHz的間斷脈沖用,相當于用二進制信號的編碼乘以頻率為38KHz的脈沖信號得到的間斷脈沖用,即是調制后用于紅外發射二極管發送的信號。如圖3.3所示,是二進制信號的編碼波形,B是頻率為38KHz(周期為26仙s)的連續脈沖用,C是經調制后的間斷脈 沖用(相當于C=AX B),用于紅外發射二極管發送的波形。二進制信號的解碼:二進制信號的解碼由接收單片機來完成,它把紅外接收頭送來的二進制編碼波形通過解碼,還原出發送端發送的數據。Df紅外接收頭接

32、收的波形(輸入)傳輸開始8位數據傳輸結束4個肺沸高位在前,低位在后向除沖圖14基于字節傳輸的紅外遙控數據格式表示1表示0 表示1H 中 寸 ff紅外接收頭調解后輸出的波形圖13 HS0038的輸入輸出波形基于字節傳輸的紅外遙控數據格式:在發送字節的開始先通過單片機發送20個脈沖寬度(每個脈沖周期26卜s)的高電平作為傳輸開始,接著發 送8位數據(字節高位在 前,低位在后),最后發送 10個脈沖寬度的低電平 作為傳輸結束,如圖14所 示。4系統軟件設計4.1 主程序軟件設計主程序的流程圖如圖15所示。開始關中斷設置堆棧電機正轉光強大于800LX電機停止窗簾閉合N室內開燈?_ * 模塊初始化窗簾打

33、開電機控制鍵電機工作工作完成?光強小于 400LX ? Y電機反轉圖15主程序流程圖主程序構成無限循環,主要完成單片機初始化,關中斷,菜單顯示內 容初始化,按鍵掃描,電機運行,計時等功能。啟動主程序,先關中斷并且設置堆棧,接著初始化寄存器,初始化顯 示內容;然后執行按鍵查詢,執行相應的操作。如果是設定鍵,則設定時 間,開始計時;到時間后電機開始相應的工作,工作完成后停機。如果是 電機控制鍵,則也執行相應的工作。如果都不是,返回顯示。檢測室內是 否開燈,如果開燈,返回顯示,如果無開燈,判斷當前光照是否大于800LX,如果大于800LX,電機正轉,窗簾打開。在窗簾打開的前提下,判斷光照 是否小于4

34、00LX,如果小于400LX,電機反轉,窗簾閉合,如果大于400LX,電機停止,返回顯示,重新進行判斷4.2 光控電機程序設計光控電機程序設計流程圖如圖16所示。光控電機程序的設計是本設計的關鍵部分,根據光照強度的變化,單 片機控制電機的正反轉,實現窗簾的開閉。當執行到該子程序入口時,首先進行初始化,判斷當前光強是否大于800LX,若果條件不成立,返回重新初始化,如果符合條件,電機正轉,窗簾打開。如果傳送器觸到安裝在 軌道上的形成開關,電機停止轉動,如果沒觸到,電機繼續正轉,直到觸 到形成開關電機才停止。在窗簾打開的前提下,光電傳感器檢測到當前的 光強小于400LX時,電機反轉,窗簾閉合。如果

35、傳送器觸到安裝在軌道上 的形成開關,電機停止轉動,如果沒觸到,電機繼續反轉,直到觸到形成 開關電機才停止。4.3 LCD1602 顯示程序設計當LCD1602的寄存器選擇信號 RS為1時,選擇數據寄存器;當LCD1602 的讀寫選擇線 RW為0時,進行寫操作;當 LCD1602的使能信號 EN置高電 平后再過兩個時鐘周期至低電平,產生一個下降沿信號,往LCD寫入顯示數據,LCD執行命令,判斷執行是否完畢,如果沒有執行完畢,返回到選 擇指令寄存器。如果執行命令完畢, 顯示數據,子程序返回。寫數據到LCD 子程序流程圖如圖 17所示。圖17寫數據到 LCD子程序流程圖4.4 光照采集程序設計光電傳

36、感器采用的是光電池,具輸出的是線性電壓,線性度良好。光照采集程序設計流程圖如圖18所示。圖18光照采集程序設計流程圖5總結該設計通過分析自動窗簾系統的現狀和人們對自動窗簾系統功能的需求,對自動窗簾系統控制器進行總體設計??傮w設計采用步進電機為單 片機控制元件,執行窗簾開閉的主要任務;以光敏電阻為檢測元件,提供 單片機外界光照變化;以紅外檢測電路,實現手動控制;以 89C51單片機 為主控制芯片,控制整個系統運行;此外輔助以按鍵和顯示電路,在各模 塊的配合下,最終實現自動窗簾控制系統的智能化要求。自動窗簾控制系統具有以下幾個基本功能:光照控制:根據光照強度值,通過感光器采集,自動打開或關閉窗簾。

37、即當早晨光照強度增強到設定值,通過感光器采集,單片機控制步進電機 打開窗簾;當夜晚光照強度減弱到設定值,通過感光器采集,單片機控制 步進電機關閉窗簾。紅外控制:當光照強度未達到設定值,手動操作紅外遙控器,由紅外 接收系統接收信號,單片機控制步進電機打開或關閉窗簾。參考文獻1閻石.數字電子技術基礎(第五版) 北京:高等教育出版社,20062李哲英.電子技術及其應用基礎(數字部分)北京:高等教育出版社,20033郭天祥.十大學會單片機和C語言編程北京;電子工業出版社,20094李廣第.單片機基礎.北京:北京航空航天大學出版社,20015瞿貴榮.電動窗簾紅外遙控電路.家庭電子,2005,2:35-3

38、66 王麗君,楊偉豐.電機無線遙控系統設計的研究大眾科技,2009,11:124-1257張培志,陸偉.仇芝基于單片機技術的無線遙控家居照明系統.儀器儀表用戶,2008附錄1:原理圖附錄2:部分子程序/*主函數*/void main() beep = 0;開機叫一聲delay_1ms(150);P0 = P1 = P2 = P3 = 0xff;單片機 IO 口初始化為 1init_time0();初始化定時器init_ds1302();/ds1302 初始化init_eeprom();開始初始化保存的數據init_1602();/lcd1602 初始化init_1602_dis_csf();

39、/lcd1602初始化顯示temperature = read_temp();讀溫度delay_1ms(650);temperature = read_temp();讀溫度while(1)按鍵程序key();if(key_can < 10) key_with();if(flag_200ms = 1) flag_200ms = 0;temperature = read_temp();/ 讀溫度環境溫度if(temperature >= 99)temperature = 99;guanxian = ad0832read(1,0) * 99.0 / 255;if(menu_1 = 0)

40、read_time();讀時間init_1602_ds1302();/ 顯示時鐘write_sfm2(1,13,guanxian); 顯示溫度write_sfm2_18B20(2,13,temperature);/ 顯示溫度 if(temperature >= t_high)beep = beep;蜂鳴器溫度報警elsebeep = 1;if(menu_1 = 0) shoudong_kaiguan();手動開關窗簾zinengchuanglian_dis();智能窗簾定時處理函數tiaoshi_dianji();調試窗簾電機bujindj();步進電機函數delay_1ms;/*獨立按

41、鍵程序*/void key()獨立按鍵程序按鍵值還原/對應的按鍵 IO 輸出為按鍵按下按鍵消抖動static uchar key_new;key_can = 20;P3 |= 0xf0;if(P3 & 0xf0) != 0xf0)delay_1ms;if(P3 & 0xf0) != 0xf0) && (key_new = 1)確認是按鍵按下key_new = 0;switch(P3 & 0xf0) case 0x80: key_can =1;break;得至 U按鍵值case 0x40: key_can =2;break;得至 U按鍵值case 0xb0

42、: key_can =3;break;得至 U按鍵值case 0x70: key_can =4;break;得至 U按鍵值 flag_lj_en = 1;beep = 0;delay_1ms(80);beep = 1;elsekey_new = 1;flag_lj_en = 0;設置函數*/*void key_with()if(menu_1 = 0)if(key_can = 2)/設置手動還是自動模式flag_zd_sd +;if(flag_zd_sd >= 3)flag_zd_sd = 0;if(flag_zd_sd = 0)/手動write_string(1,0," sd&

43、quot;);if(flag_zd_sd = 1)/ 定時模式write_string(1,0," ds");if(flag_zd_sd = 2)光線控制write_string(1,0," gx");write_eeprom();保存flag_kaig_moshi = 0;if(key_can = 1) 設置鍵menu_1+;if(menu_1 = 1)設置時間menu_2 = 1;write_string(1,0," :W:");write_string(2,0," 20-");if(menu_1 = 2)設置

44、開關窗簾時間menu_2 = 1;write_string(1,0," kai 00:00");write_string(2,0,"guan 00:00");if(menu_1 = 3)設置報警光線報警menu_2 = 1;write_string(1,0," Set Guanxian ");write_string(2,0,"00%"); if(menu_1 = 4)設置報警溫度menu_2 = 1;write_string(1,0," Set Wendu ");write_string(2,

45、0,"write_zifu(2,9,0xdf);00顯示度");if(menu_1 = 5)手動把窗簾歸0menu_2 = 1;write_string(1,0," tiaoshi dianji ");write_string(2,0,"0");write_guanbiao(2,6,0);if(menu_1 > 2)回到正常顯示menu_1 = 0;關閉光標初始化液晶顯示/設置時間設置開關的時間write_guanbiao(1,2,0); init_1602_dis_csf();if(key_can = 2)/ 選擇鍵flag_

46、200ms = 1;if(menu_1 = 1)menu_2 +;if(menu_2 > 5)menu_2 = 1;if(menu_1 = 2)menu_2 +;if(menu_2 > 4) menu_2 = 1;if(menu_1 = 1)/設置時加if(menu_2 = 1)if(key_can = 3)shi+=0x01;if(shi & 0x0f) >= 0x0a)shi = (shi & 0xf0) + 0x10;if(shi >= 0x24) shi = 0;if(key_can = 4) 減if(shi = 0x00)shi = 0x24;

47、if(shi & 0x0f) = 0x00)shi = (shi | 0x0a) - 0x10;shi -;if(menu_2 = 2)/ 設置分if(key_can = 3) 力口fen+=0x01;if(fen & 0x0f) >= 0x0a)fen = (fen & 0xf0) + 0x10;if(fen >= 0x60) fen = 0;if(key_can = 4) 減if(fen = 0x00)fen = 0x5a;if(fen & 0x0f) = 0x00)fen = (fen | 0x0a) - 0x10;fen -;if(menu_

48、2 = 3)/ 設置秒if(key_can = 3) 力口miao+=0x01;if(miao & 0x0f) >= 0x0a)miao = (miao & 0xf0) + 0x10;if(miao >= 0x60) miao = 0;if(key_can = 4) 減if(miao = 0x00)miao = 0x5a;if(miao & 0x0f) = 0x00)miao = (miao | 0x0a) - 0x10; miao -;if(menu_2 = 4)/ 設置星期if(key_can = 3) 力口week+=0x01;if(week &

49、; 0x0f) >= 0x0a)week = (week & 0xf0) + 0x10;if(week >= 0x08)week = 1;if(key_can = 4) 減if(week = 0x01)week = 0x08;if(week & 0x0f) = 0x00)week = (week | 0x0a) - 0x10; week -;if(menu_2 = 5)/ 設置年if(key_can = 3) 力口nian+=0x01;if(nian & 0x0f) >= 0x0a)nian = (nian & 0xf0) + 0x10;if(

50、nian >= 0x9a)nian = 1;if(key_can = 4) 減if(nian = 0x01)nian = 0x9a;if(nian & 0x0f) = 0x00)nian = (nian | 0x0a) - 0x10; nian -;if(menu_2 = 6)/ 設置月if(key_can = 3) 力口 yue+=0x01;if(yue & 0x0f) >= 0x0a)yue = (yue & 0xf0) + 0x10;if(yue >= 0x13) yue = 1;if(key_can = 4) 減 if(yue = 0x01)yue = 0x13;if(yue & 0x0f) = 0x00)yue = (yue | 0x0a) - 0x10;yue -;if(menu_2 = 7)/ 設置日if(key_can = 3) 力口ri+=0x01;if(ri & 0x0f) >= 0x0a)ri = (ri & 0xf0) + 0x10;if(ri >= 0x32) ri = 0;if(key_can = 4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論