(1)熟悉51單片機集成開發(fā)環(huán)境,運用C語言編寫工程文件;
(2)熟練應(yīng)用所選用單片機的內(nèi)部結(jié)構(gòu)、資源,以及軟硬件調(diào)試設(shè)備的基本方法;
(3)自行構(gòu)建基于單片機的最小系統(tǒng),完成相關(guān)硬件電路的設(shè)計實現(xiàn);
(4)理解智能窗簾的原理和掌握實現(xiàn)方法。
方案一:采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格雖適中,對于顯示數(shù)字也最合適,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線少。但是由于數(shù)碼管動態(tài)掃描需要借助74LS164移位寄存器進行移位,該芯片在電路調(diào)試時往往會有很多障礙,所以不采用LED數(shù)碼管作為顯示。
方案二:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字、圖形。顯示多樣、清晰可見,對于本設(shè)計而言,一個1602的液晶屏即可,價格也還實惠,所以此設(shè)計中采用LCD1602液晶顯示屏作為顯示模塊。
1.2.2 時鐘模塊的選擇方案一:直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然可以減少時鐘芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大、時間算法復(fù)雜、無法實現(xiàn)掉電走時。所以不采用此方案。
方案二:采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。
因此,本設(shè)計中采用方案二的DS1302提供時鐘。
1.2.3 電機的選擇方案一:使用直流電機來作為執(zhí)行機構(gòu),帶動窗簾運動實現(xiàn)開合。此方案的優(yōu)點是電機轉(zhuǎn)速能達到很高,從而實現(xiàn)窗簾的快速開合。其缺點是電機速度過高時,給出停轉(zhuǎn)信號后,由于慣性會繼續(xù)轉(zhuǎn)動,窗簾也隨之繼續(xù)運動,可能會對窗簾框架造成損害;速度過低,則可能會出現(xiàn)電機不能克服阻力,因而不能帶動窗簾運動。
方案二:使用步進電機作為來作為執(zhí)行機構(gòu),帶動窗簾運動實現(xiàn)開合。此方案的優(yōu)點是給出停轉(zhuǎn)信號后,會立即停轉(zhuǎn),不會對窗簾框架造成損害,且其扭矩比直流電機大,便于帶動窗簾運動;其缺點是價格比直流電機稍貴。
綜上所述,選擇方案二作為系統(tǒng)的執(zhí)行機構(gòu),帶動窗簾運動實現(xiàn)窗簾的開合。
2 系統(tǒng)硬件設(shè)計整個系統(tǒng)以STC89C52單片機為核心器件,配合電阻電容晶振等器件,構(gòu)成單片機的最小系統(tǒng)。其中包括,顯示設(shè)備使用1602液晶,可以同時顯示年、月、日、時、分、控制模式、光照強度等基本信息;時鐘模塊采用DS1302芯片,初始化之后,就會開始運行計算時間,單片機只需進行時間信息的讀取即可;光照檢測電路采用光敏電阻和模數(shù)轉(zhuǎn)換芯片TLC549,將模擬量數(shù)字化并顯示出來;窗簾使用步進電機進行代替模擬,同時配有一個LED燈用來指示窗簾當(dāng)前的開關(guān)狀態(tài);本設(shè)計可以通過5個按鍵作為操作輸入設(shè)備,可以對當(dāng)前時間進行調(diào)整設(shè)置和設(shè)置窗簾開關(guān)時間和光控閾值等;還可以通過遙控器來進行開關(guān)窗簾,最后是供電采用常用的USB 5V進行供電。

STC89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的STC89C52單片機可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合,如圖2-3所示 。
圖2-3 STC89C52引腳圖
2.2.2 最小系統(tǒng)電路
STC89C52的最小系統(tǒng)如圖2-4所示,整個最小系統(tǒng)由三個部分組成,晶振電路部分、復(fù)位電路部分、電源電路等三個部分組成。由于STC89C52的P0口是漏極開路輸出,因此在P0口接了一個10K的排阻R1,使得P0口可以作為普通的I/O口使用,本設(shè)計用P0口來做液晶的數(shù)據(jù)口。
振電路包括2個30pF的電容C2和C3,以及12M的晶振X1。電容的作用在這里是起振作用,幫助晶振更容易的起振,取值范圍是15-33pF。
圖2-4 最小系統(tǒng)
2.3 液晶顯示電路
本系統(tǒng)顯示采用了工業(yè)字符型液晶模塊1602,可顯示2行16個字符,能方便顯示英文字母大小寫、阿拉伯?dāng)?shù)字、常用符號等。通過自定義還可顯示簡單的漢字。
液晶模塊的電路的連接圖如圖2-5所示,第1腳和第2腳分別接到了電路的GND和VCC,這2個腳是液晶工作的電源輸入腳。第3腳通過一個10K的電位器連接到地端,可通過調(diào)節(jié)該電位器來調(diào)節(jié)液晶的對比度。第4腳是液晶的寄存器控制腳,接到了單片機的P13腳上。第5腳是液晶的讀寫控制腳,接到了單片機的P14腳上。第6腳是液晶的使能腳,接到了單片機的P15腳上。第7腳到第14
腳是液晶的數(shù)據(jù)/地址8位總線,接到了單片機的P0口上。最后第15腳和第16腳是液晶的背光電源腳,直接連接系統(tǒng)VCC和GND。
2.4 時鐘模塊
本文介紹的實時時鐘電路DS1302是DALLAS公司的一種具有涓細(xì)電流充電能力的電路,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。是一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、周、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.0V~
5.5V。采用三線接口與CPU進行同步通信,并可采
DS1302模塊的電路圖如圖2-6所示,第1腳和第4腳分別接到了電路的VCC和GND,這2個腳是芯片工作的電源輸入腳。第8腳接了一個3V的紐扣電池作為時鐘芯片的后備電池,可以保證斷掉主電源后時鐘繼續(xù)行走。第2和第3腳接了一個32.768K的晶振給芯片提供時鐘脈沖,最后,第5、6、7依次連接到單片機的IO口,進行數(shù)據(jù)的傳輸。
光敏電阻器(photovaristor)又叫光感電阻,是利用半導(dǎo)體的光電效應(yīng)制成的一種電阻值隨入射光的強弱而改變的電阻器;入射光強,電阻減小,入射光弱,電阻增大。光敏電阻器一般用于光的測量、光的控制和光電轉(zhuǎn)換(將光的變化轉(zhuǎn)換為電的變化)。
圖2-7 光照強度采集電路 轉(zhuǎn)換速率為 40000HZ,4MHZ典型內(nèi)部系統(tǒng)時鐘,電源為 3V至 6V。它能方便地采用三線串行接口方式與各種微處理器連接,構(gòu)成各種廉價的測控應(yīng)用系統(tǒng)。
本設(shè)計的智能窗簾有光控自動開關(guān)的功能,因此必須采集環(huán)境中的光照強度,以便進行光照強度的計算和窗簾開關(guān)的控制。光照強度采集使用的方案是光敏電阻,由于光敏電阻采集到的是光照強度的模擬量,因此使用ADC0832將光照模擬量轉(zhuǎn)為數(shù)字量再傳給單片機進行處理。該模塊的電路圖如圖2-7所示。
2.6 電機驅(qū)動模塊
步進電機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓位移的開環(huán)控制元步進電機件。
由于單片機IO口直接輸出的電流非常弱,沒辦法直接驅(qū)動步進電機進行轉(zhuǎn)
圖2-8 電機驅(qū)動電路 動,因此需要在單片機和步進電機之間加多一個TI公司生產(chǎn)的高耐壓、大電流達林頓陣列芯片ULN2003作為電機的驅(qū)動芯片。ULN2003具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強等特點,適應(yīng)于各類要求高速大功率驅(qū)動的系統(tǒng)。電機驅(qū)動電路如圖2-8所示。
2.7 按鍵輸入模塊
鍵盤是人與單片機打交道的主要設(shè)備。消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠(yuǎn)遠(yuǎn)大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后再延時一段時間后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。
本設(shè)計中由于采用的按鍵數(shù)量較少,只有5
圖2-10 按鍵電路 個按鍵,分別是“模式切換”、“設(shè)置時間”、“設(shè)置閾值”、“減”、“加”,故采用了獨立鍵盤的方式,按鍵的連接圖2-10所示。
2.8遙控模塊
遙控器用法:手動模式下按遙控器左右按鍵可以開關(guān)窗簾圖2-11 遙控模塊
3 軟件設(shè)計本系統(tǒng)的軟件流程圖如圖3-1所示,最開始先進行液晶和時鐘芯片的初始化,然后就進入了一個循環(huán)處理的過程。包括先讀取時鐘芯片的日期時間數(shù)據(jù),然后在1602液晶上面顯示出來,接著讀取光照強度并顯示。再往下就是按鍵掃描,如果檢測到有按鍵按下去了,則根據(jù)不同的按鍵進行不同的任務(wù)處理。然后根據(jù)不同的模式,進行不同的窗簾開關(guān)控制。如果是手動模式的話,則根據(jù)開窗簾鍵和關(guān)窗簾鍵對窗簾進行開關(guān)控制;如果是定時模式的話,則根據(jù)設(shè)置的開啟時間和關(guān)閉時間對窗簾進行控制,而如果是光控模式的話,則判斷當(dāng)前光照是否高于設(shè)置的控制閾值,是的話則關(guān)閉窗簾,相反則開啟窗簾。至此完成一次循環(huán)的過程。
4 系統(tǒng)測試與分析

說明:仿真實現(xiàn)了手動、定時和自動三種模式,遙控沒有實現(xiàn),但實物是有遙控模式的。光照強度大小是通過改變滑動變阻器的阻值來模擬的,窗簾的開和關(guān)是通過步進電機正轉(zhuǎn)、反轉(zhuǎn)模擬的。步進電機的工作方式為四相單四拍,本次模擬的窗簾是對開的,當(dāng)開的時候,左側(cè)電機正轉(zhuǎn),右側(cè)電機反轉(zhuǎn)。當(dāng)關(guān)閉窗簾時,左側(cè)電機反轉(zhuǎn),右側(cè)電機正轉(zhuǎn)。 而且在窗簾打開的時候,P3.1口的燈會亮,關(guān)閉的時候,P3.1口的燈會滅。
首次運行時,1602第一排顯示現(xiàn)在的時間,第二排顯示模式手動和當(dāng)前光照值。電機的角度為0°,光照值閾值設(shè)置為40。


圖4-1 手動打開窗簾 圖4-2 手動關(guān)閉窗簾
當(dāng)模式切換到手動模式下,當(dāng)按下加(手動開啟)按鍵,左側(cè)電機正轉(zhuǎn),角度最后顯示為+45°,右側(cè)電機反轉(zhuǎn),角度最后顯示為+135°,并且燈會亮。如圖4-1顯示。
當(dāng)按下減(手動關(guān)閉)按鍵,左側(cè)電機反轉(zhuǎn),角度最后顯示為+135°,右側(cè)電機正轉(zhuǎn),角度最后顯示+45°,并且燈會滅。如圖4-2顯示。

圖4-3 定時打開窗簾 圖4-4 定時關(guān)閉窗簾
當(dāng)模式切換到定時模式下,到打開時間,左側(cè)電機正轉(zhuǎn),角度最后顯示為+45°,右側(cè)電機反轉(zhuǎn),角度最后顯示為+135°,并且燈會亮。如圖4-3顯示。
到關(guān)閉時間,左側(cè)電機反轉(zhuǎn),角度最后顯示為+135°,右側(cè)電機正轉(zhuǎn),角度最后顯示+45°,并且燈會滅。如圖4-4顯示。


圖4-5 自動打開窗簾 圖4-6自動打開窗簾
當(dāng)模式切換到自動模式下,光照的閾值設(shè)置為40。當(dāng)光照值為43,超過設(shè)定的閾值,左側(cè)電機正轉(zhuǎn),角度最后顯示為+45°,右側(cè)電機反轉(zhuǎn),角度最后顯示為+135°,并且燈會亮。如圖4-5顯示。
當(dāng)光照值為35,低于設(shè)定的閾值時,左側(cè)電機反轉(zhuǎn),角度最后顯示為+135°,右側(cè)電機正轉(zhuǎn),角度最后顯示+45°,并且燈會滅。如圖4-6顯示。
| 歡迎光臨 (http://www.denmoz.com/bbs/) | Powered by Discuz! X3.1 |