

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> (20 屆)</b></p><p> 基于51單片機(jī)的自動控制系統(tǒng)設(shè)計(jì)</p><p><b> 1 緒論</b></p><p><b> 能源危機(jī)與環(huán)境問題</b>
2、;</p><p> 能源在人類社會的發(fā)展進(jìn)步過程中起到了巨大的促進(jìn)作用,社會的進(jìn)步與能源的開發(fā)利用是相輔相成的,在過去的兩個(gè)多世紀(jì),化石能源為人類的進(jìn)步提供了強(qiáng)勁的動力。然而,隨著發(fā)展的日益迅速,傳統(tǒng)化石能源日趨枯竭,但我們的能源需求卻與日劇增,我們正面臨著巨大的能源危機(jī)。相關(guān)資料表明,2010 年,全球石油消費(fèi)量達(dá)到創(chuàng)紀(jì)錄的8738.2 萬桶/日(40.28 億噸),比上年增長了 3.1%(266.8 萬桶
3、/日)。這一增值是過去 10 年間平均水平的兩倍,是 2004 年以來最大的增幅;天然氣的消費(fèi)也不容小覷,全球增長7.4%,為 1984 年以來最快增速;全球煤炭消費(fèi)增長 7.6%,自2003 年以來沒有更高的了。另外,2010 年,化石燃料消費(fèi)的全球二氧化碳排放量增長了 5.8%,達(dá)到 33.16 億噸,超過了能源消費(fèi)的增長速度,達(dá)到了1969 年以來的最高水平。目前,我國經(jīng)濟(jì)仍在高速發(fā)展,對能源的需求只增不減,能源問題是我們發(fā)展道路
4、上的嚴(yán)峻挑戰(zhàn),與其相隨的環(huán)境污染也會給我們帶來許多麻煩,我們面臨著巨大的能源危機(jī)。</p><p> 有關(guān)數(shù)據(jù)表明,可開采的石油和天然氣大約還能用30 年,事實(shí)上更多的石油資源藏在深深的海底,但是由于開采環(huán)境惡劣,技術(shù)條件的相對不足,這些能源還不能被充分利用。而且按照目前的消耗量,即便全都開采出來,也僅夠人類使用 270 年。煤炭是自有人類文明記載以來的最傳統(tǒng)的能源,同石油、天然氣相比,是固態(tài)的,且大部分分布在
5、陸地,雖然儲量較大,但是也僅夠再開采三百年左右。核能也許是解決能源問題的金鑰匙,但是它的能量來源--鈾礦卻是種緊俏資源資源,據(jù)已探明的儲量,全球鈾礦將在2030年以前開采完。水力資源是人類利用最早的自然資源,但是,在工業(yè)化過程中,水力資源已被開發(fā)了70%左右,而且利用水力資源的主要方式是水電站,但是水電站投資大、周期長,并且受地理環(huán)境的限制。各種傳統(tǒng)能源的逐漸匱乏,新興能源的儲量不足導(dǎo)致了全球范圍內(nèi)的能源危機(jī)[1]。世界經(jīng)濟(jì)的現(xiàn)代化,得
6、益于化石能源,如石油、天然氣、煤炭與核裂變能的廣泛應(yīng)用。然而,石油、天然氣和煤炭等化石能源都是不可再生資源,隨著經(jīng)濟(jì)發(fā)展,對它們的需求也將進(jìn)一步增加,這將必然導(dǎo)致資源的枯竭和環(huán)境的惡化,極端天氣的頻繁出現(xiàn)也驗(yàn)證了這一點(diǎn)。這種對自然的掠奪性索取的發(fā)展</p><p> 要開發(fā)利用新能源來解決這一問題。</p><p><b> 太陽能發(fā)電利用現(xiàn)狀</b></p
7、><p> 介此,世界上越來越多的國家開始致力于可再生能源的深度開發(fā)和利用,可再生能源技術(shù)將減少對化石能源的依賴和二氧化碳的排放[2],其中最被看好的就是太陽能的開發(fā)利用。人類很早以前就直接或間接地利用太陽能,但長期以來太陽能的利用發(fā)展緩慢。隨著20世紀(jì)70年代出現(xiàn)的能源危機(jī),全球環(huán)境污染日趨嚴(yán)重,加上各領(lǐng)域高新型技術(shù)的迅猛發(fā)展,出現(xiàn)了太陽能利用的新熱潮。太陽能在能源利用方面占有獨(dú)特的優(yōu)勢: </p>
8、<p> ?。?)儲量及其豐富:太陽每秒鐘放射的能量相當(dāng)于160×1021千瓦,其中僅有極微小的部分達(dá)到地球。即便是這樣,太陽每分鐘輻射達(dá)到地球表面的能量還高達(dá)80×1012千瓦,相當(dāng)于6×109噸的標(biāo)準(zhǔn)煤。德國太陽能專家伯爾特說,只需開發(fā)非洲部分地區(qū)的太陽能發(fā)電,便能滿足全世界的電力需求,況且太陽輻射可以源源不斷的供給地球,取之不盡,用之不竭[3]。 </p><p>
9、 ?。?)普遍性:太陽能不像其它的能源那樣具有分布的偏集性,它處處都可就地利用,有利于緩解能源供需矛盾,緩解運(yùn)輸壓力,對解決偏僻邊遠(yuǎn)地區(qū)及交通不便的農(nóng)村,海島的能源供應(yīng),更有其巨大的優(yōu)越性。 </p><p> (3)清潔無污染:在眾多環(huán)境問題中礦物燃料形成的污染十分嚴(yán)重,而利用太陽能則沒有廢棄物產(chǎn)生,這點(diǎn)在環(huán)境污染日趨嚴(yán)重的今天顯得尤為可貴。 </p><p> ?。?)經(jīng)濟(jì)性:隨著太
10、陽能技術(shù)的發(fā)展,利用太陽能的成本已經(jīng)有所下降。世界銀行的一項(xiàng)研究認(rèn)為,許多國家發(fā)展太陽能發(fā)電站是具有經(jīng)濟(jì)性的。電站的經(jīng)濟(jì)性主要由以下幾部分組成:建造費(fèi)、燃料費(fèi)、運(yùn)行管理維修及環(huán)保投資等。而用太陽能發(fā)電,既不污染環(huán)境,又取之不盡。因此從長期來看,其發(fā)電成本是相當(dāng)?shù)偷摹?lt;/p><p> 在當(dāng)今能源短缺的情況下,各國都加快了光伏產(chǎn)業(yè)的發(fā)展。美國“太陽能先導(dǎo)計(jì)劃”旨在降低太陽能光伏發(fā)電的成本,使其在2015年達(dá)到商業(yè)
11、化競爭;日本提出在2020年達(dá)到28GW的光伏發(fā)電總量的計(jì)劃;歐洲光伏協(xié)會提出了“SET FOR 2020”規(guī)劃,讓光伏發(fā)電在2020年達(dá)到商業(yè)化競爭。在發(fā)展低碳經(jīng)濟(jì)的大背景下,各國政府對光伏發(fā)電的認(rèn)可度逐漸提高。我國幅員遼闊,太陽能資源十分豐富。因此,研究和重視太陽能的開發(fā)利用,對于解決我國能源問題有著重大的意義。隨著國內(nèi)光伏產(chǎn)業(yè)規(guī)模逐步擴(kuò)大、技術(shù)逐步提升,光伏發(fā)電成本會逐步下降。中國已將新能源產(chǎn)業(yè)上升為國家戰(zhàn)略產(chǎn)業(yè),未來10年擬加大
12、對包括太陽能在內(nèi)的新能源產(chǎn)業(yè)投資,以減少經(jīng)濟(jì)對石化能源依賴和降低碳排放,未來五到十年光伏發(fā)電有望規(guī)?;l(fā)展。</p><p> 太陽能發(fā)電是利用光電效應(yīng)將光能轉(zhuǎn)化為電能的技術(shù)。太陽能聚光光伏發(fā)電技術(shù)是目前研究的熱點(diǎn),它利用光學(xué)聚光組件提高入射到太陽能電池表面的光能量密度,可以減少系統(tǒng)中昂貴太陽能電池的使用,其整體轉(zhuǎn)換效率為31%~40.7%,是降低發(fā)電成本,提高發(fā)電效率的有效途徑。由于采用了光學(xué)聚光組件,所以聚
13、光裝置必須以較高的精度對太陽軌跡進(jìn)行跟蹤,這種追蹤系統(tǒng)對一般的光伏系統(tǒng)的發(fā)電效率也有很大提升[4-7]。</p><p> 目前,追日系統(tǒng)所用的追蹤原理可以分為兩種方式:一、光電追蹤;二、太陽角度追蹤。 </p><p> ?。?)光電追蹤是一種實(shí)時(shí)閉環(huán)追蹤方式,根據(jù)太陽光的入射角度的改變來調(diào)整追蹤的方向。光電追蹤系統(tǒng)主要是用CMOS圖像傳感器[8]或光敏器件接收太陽光,通過一定的電路將
14、接收到太陽光轉(zhuǎn)變成電信號,經(jīng)過處理放大后傳輸給單片機(jī),由單片機(jī)處理、判斷應(yīng)該如何改變電池板接收角度,通過指令控制電機(jī)運(yùn)行,使電池板轉(zhuǎn)動到合適的角度。雖然光電追蹤靈敏度很高,結(jié)構(gòu)設(shè)計(jì)也比較簡單,但易受到天氣變化的影響。如果在稍長時(shí)間段里出現(xiàn)烏云遮日或其它光源的干擾,會導(dǎo)致追蹤裝置無法對準(zhǔn)太陽,甚至?xí)鹱啡昭b置的誤動。 </p><p> (2)太陽角度計(jì)算追蹤是一種開環(huán)追蹤方式。首先根據(jù)當(dāng)?shù)氐慕?jīng)緯度和時(shí)間來計(jì)算
15、出太陽入射的角度,由此修正太陽能電池板的角度,具體操作即控制二軸電機(jī)轉(zhuǎn)動的角度。與光電檢測追蹤相比,太陽角度追蹤方法不受天氣和其它光源的干擾。但是由于計(jì)算太陽角度所采用的數(shù)值不是十分精確,時(shí)鐘存在積累誤差和跟蹤裝置的機(jī)械結(jié)構(gòu)誤差,以及其它不利因素疊加產(chǎn)生的誤差也是不可忽視的[9]。</p><p> 如果能夠?qū)崿F(xiàn)太陽角度實(shí)時(shí)追蹤就可以提高系統(tǒng)的發(fā)電效率,更加實(shí)用,雙軸追蹤就可以實(shí)現(xiàn)這種目的。相關(guān)研究表明:采用雙
16、軸追蹤裝置收集的太陽能能量比采用固定接收裝置的高將近40%[13]。特別是聚光型太陽能發(fā)電更需要完全依賴雙軸跟蹤系統(tǒng)。未來的太陽跟蹤裝置將會采用全自動跟蹤,結(jié)構(gòu)設(shè)計(jì)方面將朝著高強(qiáng)度,大范圍跟蹤的方向發(fā)展。系統(tǒng)控制方面將綜合采用光、機(jī)、電一體化系統(tǒng),跟蹤精度更高、角度范圍更大,且有自動返回功能[14],使得太陽能利用率更大,降低發(fā)電的成本,提高系統(tǒng)的實(shí)用性。</p><p><b> 研究課題的主要內(nèi)容
17、</b></p><p> 本設(shè)計(jì)的追日系統(tǒng)將采用周期性太陽角度計(jì)算追蹤的方式,該方式下系統(tǒng)運(yùn)行更加穩(wěn)定,且不受天氣情況影響。單片機(jī)通過接讀取DS1302的時(shí)間信息,計(jì)算出太陽實(shí)時(shí)的的高度角和方位角,通過步進(jìn)電機(jī)調(diào)整電池板方位,使太陽能電池板始終垂直于太陽光。系統(tǒng)使用Protues7.8軟件進(jìn)行硬件模擬仿真。 </p><p> 該系統(tǒng)是以51單片機(jī)為控制核心的自動控制系統(tǒng)
18、,整個(gè)系統(tǒng)由硬件電路和軟件程序組成,這也是本文的主要研究內(nèi)容。</p><p><b> 硬件電路部分設(shè)計(jì)</b></p><p> 此部分設(shè)計(jì)分三步:1、芯片以及各元件選用;2、電路圖整體設(shè)計(jì);3、電路的調(diào)試仿真電路設(shè)計(jì)主要包括下面幾個(gè)功能模塊: </p><p> ?。?)光電檢測電路:通過光敏二極管電路接收裝置來檢測光照強(qiáng)度,將光信號
19、轉(zhuǎn)換為電信號,以供單片機(jī)處理判斷光照條件,決定是否開機(jī)追蹤,光強(qiáng)閾值可通過光敏二極管參數(shù)和透光片的透光度設(shè)定。 </p><p> ?。?)時(shí)鐘模塊:其功能是為計(jì)算太陽角度提供時(shí)間數(shù)據(jù),經(jīng)度、緯度等一些固定參數(shù)則事先在程序中設(shè)置,作為常量使用,避免重復(fù)計(jì)算,節(jié)省系統(tǒng)資源。 </p><p> ?。?)驅(qū)動控制電路:電路以單片機(jī)為核心,對太陽能發(fā)電裝置的運(yùn)動軌跡進(jìn)行控制,具體需要控制兩軸電動
20、機(jī)的正反轉(zhuǎn)運(yùn)動。單片機(jī)計(jì)算出雙軸各自的調(diào)整量后給步進(jìn)電機(jī)驅(qū)動發(fā)出控制信號實(shí)現(xiàn)追日運(yùn)動。</p><p> ?。?)電機(jī)驅(qū)動電路:此電路的功能是接受單片機(jī)發(fā)出的控制信號,然后驅(qū)動步進(jìn)電機(jī)轉(zhuǎn)動,本設(shè)計(jì)選用的步進(jìn)電機(jī)功率較小,可用單片機(jī)的引腳直接驅(qū)動。</p><p> ?。?)輔助電路:復(fù)位電路、振蕩電路、按鍵電路及初始位置定位設(shè)計(jì),還有額外添加的顯示模塊,方便調(diào)試和維護(hù)。</p>
21、<p><b> 軟件程序編寫</b></p><p> 在硬件電路設(shè)計(jì)的基礎(chǔ)上,利用單片機(jī)C51語言編寫系統(tǒng)軟件,進(jìn)行軟、硬件綜合調(diào)試,直到系統(tǒng)穩(wěn)定運(yùn)行,完成設(shè)計(jì)的既定目標(biāo)。</p><p><b> 本文分為五個(gè)章節(jié):</b></p><p> 第一章主要闡述了課題的研究背景、目的及意義,國內(nèi)外太
22、陽能的利用現(xiàn)狀及技術(shù)的概況。</p><p> 第二章對追日系統(tǒng)進(jìn)行了總體設(shè)計(jì),確定了系統(tǒng)的追蹤方式。闡述了系統(tǒng)中使用的計(jì)算太陽高度角和方位角的數(shù)學(xué)算法,以及一些細(xì)微之處的重要設(shè)計(jì)。</p><p> 第三章闡述了整個(gè)系統(tǒng)硬件部分的設(shè)計(jì),重點(diǎn)介紹各部分電路的原理以及要實(shí)現(xiàn)的功能。</p><p> 第四章詳細(xì)介紹了系統(tǒng)軟件部分,主要是角度計(jì)算模塊,顯示模塊,電
23、機(jī)驅(qū)動模塊以及整體的一些邏輯思路。</p><p> 第五章總結(jié)了本設(shè)計(jì)的測試結(jié)果,進(jìn)行了一定的評估,提出了不足和發(fā)展空間,并對未來做出了展望。</p><p> 2 追日系統(tǒng)的總體設(shè)計(jì)</p><p> 2.1 系統(tǒng)研發(fā)流程設(shè)計(jì) </p><p> 系統(tǒng)以單片機(jī)為控制核心,主要設(shè)計(jì)任務(wù)是硬件電路設(shè)計(jì)、軟件編程、系統(tǒng)仿真調(diào)試。在總體
24、設(shè)計(jì)中應(yīng)明確功能要求,確定系統(tǒng)各項(xiàng)功能技術(shù)指標(biāo),然后由此制定相應(yīng)的實(shí)施方案,元器件的選用,控制流程和數(shù)學(xué)模型設(shè)計(jì)。具體是:硬件設(shè)計(jì)中,設(shè)計(jì)并繪制電路原理圖,同時(shí)考慮程序的要求,調(diào)整和完善電路圖;再編寫控制程序。最后將軟件與硬件電路進(jìn)行仿真調(diào)試,主要是檢測各模塊功能,系統(tǒng)運(yùn)行效果是否達(dá)到要求,進(jìn)一步調(diào)整和完善軟、硬件,直至達(dá)到系統(tǒng)設(shè)計(jì)的預(yù)期目標(biāo)。</p><p> 本系統(tǒng)的開發(fā)流程如圖2.1所示:</p&g
25、t;<p><b> 是否符合要求</b></p><p><b> N</b></p><p><b> Y</b></p><p> 圖2.1 系統(tǒng)開發(fā)流程圖</p><p> 追蹤方式及系統(tǒng)流程 </p><p> 如今已
26、有種類眾多的太陽能接收裝置,但由于成本和技術(shù)因素,一般都采用固定位置接收太陽能,整體利用效率較低,為了更加充分而高效地利用太陽能,追日系統(tǒng)成為當(dāng)今業(yè)界的主要研究方向。目前,采用單片機(jī)系統(tǒng)的追蹤方式比較實(shí)用[15-17],單片機(jī)具有體積小、成本低廉、使用靈活、反應(yīng)靈敏等特點(diǎn)基于單片機(jī)的太陽能追蹤方式常用的有兩種,一是光電檢測追蹤,即通過對入射太陽光的實(shí)時(shí)檢測來進(jìn)行追蹤;二是太陽角度追蹤(也稱視日運(yùn)動軌跡追蹤),通過預(yù)先設(shè)定的函數(shù),根據(jù)系統(tǒng)
27、時(shí)鐘計(jì)算出太陽的方位角和高度角,步進(jìn)電機(jī)驅(qū)動,實(shí)現(xiàn)追日。 </p><p> 光電檢測追蹤靈敏度比較高,結(jié)構(gòu)比較簡單,但易受天氣變化的影響;而太陽角度追蹤穩(wěn)定度比較高,不受天氣、其它光源的干擾,但卻存在角度計(jì)算誤差,系統(tǒng)跟蹤裝置的機(jī)械部分的制造精度也會對追蹤產(chǎn)生較大影響,可能累積較大誤差。光電檢測追蹤屬于閉環(huán)控制系統(tǒng),而太陽角度追蹤是一種開環(huán)控制系統(tǒng),綜合兩種追蹤方式的優(yōu)劣,本設(shè)計(jì)將采納太陽角度追蹤,以追求更加
28、穩(wěn)定、可靠的系統(tǒng),進(jìn)而提高太陽能利用的效率。</p><p> 首先設(shè)計(jì)系統(tǒng)工作流程:上電開機(jī)后,第一步首先檢測光照條件是否符合太陽能發(fā)電的條件,若不符合,系統(tǒng)將繼續(xù)休眠;若符合,系統(tǒng)將復(fù)位,開始追日。首先計(jì)算當(dāng)前太陽角度,將太陽能電池板調(diào)整到位,然后以10分鐘為周期進(jìn)行角度計(jì)算并調(diào)整太陽能電池板的偏轉(zhuǎn)角和俯仰角。與此同時(shí),光照檢測模塊以中斷方式進(jìn)行后臺監(jiān)控,一旦天色暗淡,低于光強(qiáng)設(shè)定值,系統(tǒng)便會進(jìn)入休眠狀態(tài)。
29、休眠前電池板會被調(diào)整到初始位置,這需要兩個(gè)限位開關(guān)的參與,其他電路也都將被關(guān)閉,直到單片機(jī)被激活。</p><p> 系統(tǒng)的整體流程圖如圖2.2所示:</p><p> 光照條件? N</p><p><b> Y</b></p><p> 光照條件? N</p><p&
30、gt;<b> Y</b></p><p> 圖2.2 追日系統(tǒng)整體流程圖</p><p> 2.3 系統(tǒng)的總體設(shè)計(jì)方案</p><p> 該系統(tǒng)的核心功能就是太陽角度計(jì)算與控制,下面具體介紹太陽角度追蹤模式的設(shè)計(jì)。</p><p> 太陽角度追蹤模式,就是由單片機(jī)從時(shí)鐘芯片讀取實(shí)時(shí)時(shí)間,再通過預(yù)設(shè)函數(shù)計(jì)算
31、出太陽實(shí)時(shí)角度,用以控制電機(jī)調(diào)整電池板使其追日。太陽角度追蹤模式的關(guān)鍵是太陽高度角和方位角的計(jì)算,下面介紹太陽高度角和太陽方位角的概念以及計(jì)算方法。 </p><p> 先介紹太陽高度角和太陽方位角的定義,太陽高度角:太陽高度角指從太陽中心直射到當(dāng)?shù)氐墓饩€與當(dāng)?shù)厮矫娴膴A角,其值在0°到90°之間變化,日出日落時(shí)為0°,太陽在正天頂時(shí)為90°。太陽方位角:太陽方位角即太陽
32、所在的方位,指太陽光線在地平面上的投影與當(dāng)?shù)刈游缇€的夾角,可近似地看作是豎立在地面上的直線在陽光下的陰影與正南方的夾角。方位角以正南方向?yàn)榱?,由南向東為負(fù),由南向西為正,如太陽在正東方,方位角為-90°,在正西方時(shí)方位角為90°。要計(jì)算太陽高度角和方位角要用到一些重要的參數(shù),下面介紹一下: </p><p> 左大康利用Flourier分析給出了赤緯與日期的經(jīng)驗(yàn)關(guān)系[18-19],設(shè)一年36
33、5 天對應(yīng)區(qū)間為[0,π],取日角:θ0=2π(dn-1)/365 (2-1) </p><p> dn取為年的日期序列,然后n就可以把1月1號取做 1,12月31號取做365,又引用下面的公式,用弧度來表示赤緯δ: </p><p> δ=0.00689-0.39951cosθ0+0.07208sinθ0-0.00680cos2θ0</
34、p><p> +0.00090sin2θ0-0.00269cos3θ0+0.00151sin3θ0 (2-2)</p><p> 太陽時(shí)角ω可用下述方法進(jìn)行計(jì)算: </p><p> ω=真太陽時(shí)(小時(shí))×15-180 (2-3) </p>
35、<p> 式中ω單位為度,15表示每小時(shí)相當(dāng)于15°時(shí)角。時(shí)差:太陽在黃道上的運(yùn)動速度是不均勻的,時(shí)快時(shí)慢,因此,真太陽日的長短也就各不相同。但人們需要一種均勻不變的時(shí)間單位,這就需要尋找一個(gè)假想的太陽,它以均勻的速度在運(yùn)行,這個(gè)假想的太陽就稱為平太陽,其周日的持續(xù)時(shí)間稱平太陽日,由此而來的小時(shí)稱為平太陽時(shí)[20]。 </p><p> 真太陽時(shí)=地方平時(shí)+時(shí)差=北京時(shí)+經(jīng)度訂正+時(shí)差
36、=北京時(shí)+(當(dāng)?shù)亟?jīng)度-120)×4÷60+時(shí)差 (2-4)</p><p> 時(shí)差(弧度)=0.000076+0.001869cosθ0-0.032076sinθ0-0.014616cos2θ0</p><p> -0.04085sin2θ0
37、 (2-5) </p><p> 時(shí)差(小時(shí))=時(shí)差(弧度)×12÷π (2-6)</p><p> 設(shè)太陽高度角和方位角分別為θh和θp,地理緯度為ψ,則根據(jù)天文學(xué)公式
38、: sinθh=sinψsinδ+cosψcosδcosω (2-7)</p><p> sinθp= cosδsinω/cosθh (2-8)</p><p> cosθp=(sinθhsinψ-sinδ)/cosθhcosψ
39、 (2-9)</p><p> 通過上面太陽高度角及太陽方位角概念和有關(guān)公式的介紹,我們了解到,只要經(jīng)緯度、時(shí)間確定了,那么就能計(jì)算出相應(yīng)時(shí)刻太陽高度角和方位角,而這個(gè)值是唯一確定的。介于上述函數(shù)運(yùn)算較為復(fù)雜,決定選擇C51語言來進(jìn)行編程,C51語言的函數(shù)功能比較強(qiáng)大,很方便編寫計(jì)算程序。經(jīng)度和緯度是將以常量的型式預(yù)設(shè)在程序中,一些只與經(jīng)緯度相關(guān)的參數(shù)也將被預(yù)設(shè)進(jìn)程序,以節(jié)省系統(tǒng)資源,
40、提高運(yùn)行效率。</p><p> 3 追蹤系統(tǒng)的硬件設(shè)計(jì)</p><p><b> 單片機(jī)的選用 </b></p><p> 本系統(tǒng)中單片機(jī)的主要功能是利用實(shí)時(shí)時(shí)間計(jì)算出太陽角度,進(jìn)而通過步進(jìn)電機(jī)調(diào)整電池板,實(shí)現(xiàn)對太陽的追蹤,它還要監(jiān)控各模塊的信號和運(yùn)行情況,協(xié)調(diào)整個(gè)系統(tǒng)的正常運(yùn)行,尤其是各路中斷以及外部開關(guān)信號的檢測及反應(yīng),還要做到自動
41、根據(jù)光照情況休眠或喚醒,以及電池板的復(fù)位,它是整個(gè)控制系統(tǒng)的核心。</p><p> 本系統(tǒng)用的是AT89C51單片機(jī)。AT89C51單片機(jī)因?yàn)楣δ軓?qiáng)大使用簡便而被廣泛的使用,它也充分滿足本系統(tǒng)的要求,它有如下特點(diǎn)[21]: </p><p> ?。?)4KB 可改寫程序 Flash 存儲器 </p><p> ?。?)全靜態(tài)工作:0Hz-24MHz </p
42、><p> ?。?)3 級程序存儲器保密 </p><p> ?。?)128×8 字節(jié)內(nèi)部 RAM </p><p> ?。?)32 條可編程 I/O 線 </p><p> ?。?)2 個(gè) 16 位定時(shí)器/計(jì)數(shù)器 </p><p> ?。?)5 個(gè)中斷源 </p><p> ?。?)可編
43、程串行通道 </p><p> AT89C51的設(shè)計(jì)選用的是靜態(tài)邏輯,也就是說它工作的頻率可以到0,可以實(shí)現(xiàn)空閑模式和掉電模式。在空閑模式中,CPU停止工作,而RAM、定時(shí)器/計(jì)數(shù)器、串行口和中斷系統(tǒng)都繼續(xù)工作;在掉電模式中,片內(nèi)振蕩器停止工作,由于時(shí)鐘被“凍結(jié)”,使一切功能都暫停,故只保存片內(nèi)RAM中的內(nèi)容,直到下一次硬件復(fù)位為止。</p><p> 3.2 時(shí)鐘電路的設(shè)計(jì) <
44、;/p><p> 由于系統(tǒng)中要進(jìn)行時(shí)間的實(shí)時(shí)讀取,若用單片機(jī)程序計(jì)時(shí)會增加系統(tǒng)負(fù)擔(dān),且誤差較大,這就需要引入外部時(shí)鐘芯片來提供實(shí)時(shí)時(shí)間,可以減輕系統(tǒng)負(fù)擔(dān),提高效率好精度。 </p><p> 本設(shè)計(jì)選擇DALLAS公司生產(chǎn)的串行實(shí)時(shí)時(shí)鐘芯片DS1302,它沒有采取光電隔離,但由于讀寫靠時(shí)序控制,且具有寫保護(hù)位,抗干擾效果較好,而且體積小,需要接線</p><p>
45、 少,外圍只有一個(gè)32.768Hz晶振,使用靈活方便。DS1302與單片機(jī)的通信僅需三根線即SCLK(串行時(shí)鐘線)、I/O(數(shù)據(jù)線)、RST(復(fù)位線)。數(shù)據(jù)可以按每次一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的形式傳送到時(shí)鐘RAM或從中送出。RST有兩種功能:首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供了單字節(jié)或多字節(jié)數(shù)據(jù)傳送的手段[22-23]。</p><p> DS1302主要引腳有:X1
46、,X2連接32.768kHz晶振。GND:電源地。RST:復(fù)位,用于對芯片操作。I/O:數(shù)據(jù)輸入、輸出引腳。SCLK:串行時(shí)鐘輸入。VCC1,VCC2:主電源與后備電源[24]。其接線圖如圖3.1所示,時(shí)鐘芯片與單片機(jī)以串行三總線的方式連接,數(shù)據(jù)的讀寫由單片機(jī)控制,VCC1為主電源,由5V蓄電池供電,蓄電池則從電池板上充電;VCC2為備用電源,此處的1000nF電容所存儲的電量可是時(shí)鐘芯片運(yùn)行幾個(gè)小時(shí),實(shí)際應(yīng)用中可用紐扣電池代替,以備不
47、時(shí)之需;時(shí)鐘芯片外接了一個(gè)32.768Hz晶振,以保證芯片正常運(yùn)行。</p><p> 圖3.1 時(shí)鐘芯片連接圖</p><p> 3.3 顯示模塊電路設(shè)計(jì) </p><p> 在單片機(jī)系統(tǒng)中數(shù)碼管是應(yīng)用最廣泛的一種顯示方式,其與單片機(jī)的接口方法也很簡單。由于此電路中需要顯示時(shí),分,秒,需要驅(qū)動6個(gè)數(shù)碼管。為了節(jié)省系統(tǒng)資源,提高效率和可靠性,本系統(tǒng)的顯示部
48、分采用了MAX7219芯片來驅(qū)動。一片MAX7219 芯片最多可驅(qū)動8個(gè)LED顯示器,并可以串聯(lián)擴(kuò)展。MAX7219的接線和數(shù)據(jù)讀寫都與DS1302極為相似,也采用串行三總線的方式與單片機(jī)連接,按時(shí)序讀寫.MAX7219能夠接收的數(shù)據(jù)和命令為16位數(shù)據(jù)包,前8位用作選擇MAX7219的內(nèi)部寄存器地址,后8位為指令或待顯示數(shù)據(jù)的內(nèi)容,高位在前,低位在后。</p><p> 電路原理圖如圖3.2所示,其中ISET作
49、用是設(shè)置數(shù)碼管的段電流,即控制亮度。正如表所述,A-G是數(shù)碼管的段選線,控制顯示的字符;DIG0-DIG5是位選線,控制各位是否顯示字符,MAX7219內(nèi)部采用的是動態(tài)掃描的顯示方式。</p><p> 圖3.2 MAX7219接線圖</p><p> 3.4 驅(qū)動電路的設(shè)計(jì)</p><p> 步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元步進(jìn)電機(jī)件
50、。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動器接收到一個(gè)脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個(gè)固定的角度,稱為“步距角”,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確的定位。步進(jìn)電機(jī)的精度一般為步進(jìn)角的3-5%,且不累積。由于沒有電刷,可靠性較高,因此電機(jī)的壽命僅僅取決于軸承的壽命。</p><p>
51、 實(shí)際應(yīng)用中將采用蝸輪蝸桿傳動。蝸輪蝸桿傳動可以得到很大的傳動比,相當(dāng)于多齒嚙合傳動,故傳動平穩(wěn)、噪聲很小。機(jī)構(gòu)具有自鎖性,可實(shí)現(xiàn)反向自鎖,即只能由蝸桿帶動蝸輪,而不能由蝸輪帶動蝸桿,這也為系統(tǒng)的準(zhǔn)確定位增加了可靠性。</p><p> 仿真時(shí)驅(qū)動部分采用5V的兩相步進(jìn)電機(jī),配合上拉電阻,直接由單片機(jī)的引腳控制驅(qū)動。雖然誤差較大,但足以說明問題。步進(jìn)電機(jī)驅(qū)動電路如圖3.3所示,由于采用的步進(jìn)電機(jī)比較簡單,功率較
52、小,故直接由單片機(jī)控制,配合上拉電阻理論上能使步進(jìn)電機(jī)正常運(yùn)轉(zhuǎn)。當(dāng)P0口輸出相應(yīng)的脈沖編碼,在上拉電阻的作用下,電機(jī)便會轉(zhuǎn)動相應(yīng)的角度。</p><p> 圖3.3 步進(jìn)電機(jī)驅(qū)動電路</p><p> 3.5 外圍輔助電路的設(shè)計(jì)</p><p> 單片機(jī)的外圍輔助電路主要是復(fù)位電路、振蕩電路、按鍵電路以及光照檢測電路。</p><p>
53、; 單片機(jī)執(zhí)行程序之前,要先進(jìn)行復(fù)位,使 CPU 和其他功能部件處于初始狀態(tài),但是單片機(jī)自己不能復(fù)位,必須通過外部復(fù)位電路才行,此處復(fù)位電路給引腳RST信號為高電平時(shí)復(fù)位有效:</p><p> 外部電路產(chǎn)生復(fù)位信號,通過RST引腳連接到片內(nèi)的復(fù)位電路,復(fù)位電路每1個(gè)機(jī)器周期對觸發(fā)器輸出采樣1次,當(dāng)RST持續(xù)保持至少24個(gè)時(shí)鐘周期的高電平時(shí),單片機(jī)便可復(fù)位。 </p><p> 單片
54、機(jī)的外部復(fù)位電路就是為內(nèi)部復(fù)位電路提供至少24個(gè)時(shí)鐘周期的高電平設(shè)計(jì)的。通常有兩種形式:上電自動復(fù)位和按鍵手動復(fù)位。本系統(tǒng)采用的是二者相結(jié)合的復(fù)位電路,并且將光照檢測器件也整合進(jìn)去,實(shí)現(xiàn)自動復(fù)位喚醒。</p><p> 振蕩電路的設(shè)計(jì)如下: </p><p> 在XTAL1和XTAL2引腳上接入石英晶體和電容構(gòu)成的振蕩電路,C1,C2的作用是穩(wěn)定振蕩頻率以及快速起振,選用值為10pF,
55、這種振蕩方式產(chǎn)生的時(shí)鐘信號是比較穩(wěn)定的,由于系統(tǒng)有一定的實(shí)時(shí)性要求,需要單片機(jī)有較高的運(yùn)行速度,故晶振頻率選為24MHz,這也是AT89C51單片機(jī)正常工作的最高頻率。</p><p><b> 圖3.4 振蕩電路</b></p><p> 按鍵電路的設(shè)計(jì)如下:</p><p> 為了方便調(diào)試使用,系統(tǒng)中設(shè)置了六個(gè)按鍵提供一些輔助功能。其
56、中四個(gè)按鍵負(fù)責(zé)兩軸電機(jī)的正反轉(zhuǎn)測試及位置調(diào)整,另外兩個(gè)則是顯示器的開關(guān)。這些按鍵均直接連接在單片機(jī)引腳上,采取外部中斷的方式發(fā)揮作用,具體的用法會在程序部分詳細(xì)介紹。另外,P0口的外接按鍵是必須上拉的,正如圖3.5中所示。</p><p> 圖3.5 按鍵電路接線圖</p><p> 光照檢測電路的設(shè)計(jì):</p><p> 由于系統(tǒng)需要跟隨晝夜變化休眠和喚醒,
57、就需要外部通過相應(yīng)的信號,這就要求系統(tǒng)要有一個(gè)光照檢測電路。常用的感光元件主要是硅光電池、光敏二極管和光敏三極管。其中光敏二極管在很寬的入射照度范圍內(nèi)有線性電流輸出,響應(yīng)速度快,對廣域范圍波長的光都有很高靈敏度,而且小型、輕量、耐振動、耐沖擊,故選擇光敏二極管作為傳感器。光敏二極管類似一個(gè)光敏開關(guān),光照條件達(dá)到后,它便導(dǎo)通,阻值幾乎為0,而阻斷時(shí)它的阻值約為10K歐姆,相當(dāng)于斷路。一個(gè)上拉電阻與之配合即可為單片機(jī)通過可靠的信號。電路圖如
58、圖3.6所示,實(shí)際上當(dāng)光照不足時(shí),二極管會斷開,檢測電路給出的是高電平信號,這與激活中斷的低電平信號相反,故檢測信號轉(zhuǎn)接在P3.5上(定時(shí)器T1在程序中沒有涉及),再有軟件查詢?nèi)》刺峁┱_的中斷信號。</p><p> 圖 3.6 光照檢測電路</p><p> 4 追蹤系統(tǒng)的軟件設(shè)計(jì)</p><p> 4.1 系統(tǒng)主程序設(shè)計(jì) </p>&
59、lt;p> 此系統(tǒng)的主程序主要是定時(shí)器和外部中斷的監(jiān)控程序,實(shí)時(shí)時(shí)間的顯示也在其中。整個(gè)程序包括太陽角度追蹤模塊、時(shí)鐘模塊、顯示模塊、驅(qū)動模塊以及輔助模塊。軟件設(shè)計(jì)思想:開機(jī)上電復(fù)位,系統(tǒng)進(jìn)行初始化,開各路中斷,之后,光照檢測電路以中斷的形式判斷光照條件,若條件符合,則系統(tǒng)進(jìn)入太陽角度追蹤模式;若不符合,則系統(tǒng)休眠。由于光照檢測是以外部中斷形式進(jìn)行的,所以它是實(shí)時(shí)響應(yīng)的。系統(tǒng)運(yùn)行流程如圖 4.1 所示:</p>&
60、lt;p> 光照條件? N</p><p><b> Y</b></p><p> 光照條件? N</p><p><b> Y</b></p><p> 圖4.1 追日系統(tǒng)流程圖</p><p> 太陽角度追蹤模:利用預(yù)設(shè)的函數(shù)和經(jīng)
61、緯度,從時(shí)鐘模塊讀取實(shí)時(shí)時(shí)間,計(jì)算出當(dāng)前太陽的方位角和高度角。 </p><p> 時(shí)鐘部分:由串行時(shí)鐘芯片DS1302搭建的時(shí)鐘電路模塊提供的時(shí)間信息提供顯示模塊顯示出實(shí)時(shí)時(shí)間,更人性化,并提供系統(tǒng)用來計(jì)算太陽高度角和方位角的實(shí)</p><p><b> 時(shí)時(shí)間。</b></p><p> 顯示部分:通過MAX7219芯片驅(qū)動6位數(shù)碼管
62、,分別顯示時(shí)、分、秒。</p><p><b> 主程序如下:</b></p><p> void main()</p><p><b> {</b></p><p> PCON&=0xfc;</p><p><b> //開總中斷</b&
63、gt;</p><p> EA=1; </p><p><b> //開外部鍵盤中斷</b></p><p><b> EX0=1;</b></p><p> //開光照檢測中斷 </p><p><b> EX1=1;</b&g
64、t;</p><p> //開周期輸出定時(shí)器</p><p> TMOD=1;</p><p> ET0=1; </p><p><b> TR0=1;</b></p><p> TH0=(62536-60000)/256;</p><p>
65、 TL0=(62536-60000)%256;</p><p> //步進(jìn)電機(jī)驅(qū)動端口初始化</p><p><b> P1=0x00;</b></p><p> //顯示芯片初始化</p><p> initial7219();</p><p> BJt=ds1302out(0
66、x85);//小時(shí)</p><p> max7219w(0x02,BJt);</p><p><b> BJt>>=4;</b></p><p> max7219w(0X01,BJt);</p><p> //實(shí)時(shí)時(shí)間顯示以及中斷查詢</p><p><b> wh
67、ile(1)</b></p><p><b> {</b></p><p> BJt=ds1302out(0x81);</p><p> max7219w(0x06,BJt);</p><p><b> BJt>>=4;</b></p><p>
68、; max7219w(0X05,BJt);</p><p> BJt=ds1302out(0x83);</p><p> max7219w(0x04,BJt);</p><p><b> BJt>>=4;</b></p><p> max7219w(0X03,BJt);</p><
69、;p><b> sun=sun0;</b></p><p> intrpt=SB1&SB2&SB3&SB4&SB5&SB6;</p><p><b> }</b></p><p><b> }</b></p><p><
70、;b> 太陽角度計(jì)算模塊 </b></p><p> 系統(tǒng)在進(jìn)行太陽角度追蹤時(shí),先從時(shí)鐘芯片讀取當(dāng)前時(shí)間,再通過一系列預(yù)設(shè)數(shù)學(xué)公式,計(jì)算出太陽當(dāng)前的高度角及方位角,并自動與上一次的計(jì)算結(jié)果作比較,求出角度偏差,再算入傳動比,計(jì)算出步進(jìn)電機(jī)需要轉(zhuǎn)的角度,再傳遞給電機(jī)驅(qū)動模塊。延時(shí)10分鐘以后,利用相同方法計(jì)算角度偏差,繼續(xù)追蹤,延時(shí)時(shí)間由單片機(jī)定時(shí)器中斷實(shí)現(xiàn)。</p><p
71、> 此子程序中的函數(shù)用到的變量有兩類,一類是與地理位置有關(guān)的中間參數(shù),另一類是與時(shí)間有關(guān)的角度方面的參數(shù)。其中與地理位置(主要是經(jīng)緯度)有關(guān)的參數(shù)是不變的,程序中將其視作常量進(jìn)行預(yù)設(shè)處理,這不會影響計(jì)算結(jié)果,還會提升系統(tǒng)效率。本程序中選取太原火車站為測試點(diǎn),其經(jīng)緯度為東經(jīng)112°35′16.38″,北緯37°51′37.76″。具體的計(jì)算公式及流程以在第二章中做過詳細(xì)介紹,下面是該子程序的主要代碼:</
72、p><p> void mth1() //太陽角度計(jì)算子程序 </p><p><b> {</b></p><p> float xtemp=0,ytemp=0;</p><p> BJTdate();</p><p><
73、b> BJTr();</b></p><p> xtemp=asin(sin(D)*sin(kesi)</p><p> +cos(D)*cos(kesi)*cos(angle_t));</p><p> if(bjt_temp>12) </p><p> ytemp=acos((sin(xt
74、emp)*sin(D)-sin(kesi))</p><p> /(cos(xtemp)*cos(D))); </p><p> else </p><p> ytemp=-acos((sin(xtemp)*sin(D )-sin(kesi))</p><p> /(cos(xtemp)*cos(D))); <
75、;/p><p> //Mt1=xtemp*57.2958;Mt2=ytemp*57.2958;</p><p> Mt1=(xtemp-x0)*57.2958; //計(jì)算角度偏差</p><p> Mt2=(ytemp-y0)*57.2958; </p><p><b> x0=xtemp;</b&g
76、t;</p><p><b> y0=ytemp;</b></p><p><b> }</b></p><p> void BJTr() //時(shí)角計(jì)算</p><p><b> {</b></p><p&
77、gt; char dat_h,dat_m,h1; //BCD to 10D</p><p> dat_h=ds1302out(0x85);</p><p> h1=dat_h>>4;</p><p><b> h1*=10;</b></p><p> dat_h=dat_h&0
78、x0f;</p><p> dat_h+=h1;</p><p> dat_m=ds1302out(0x83); //83是分,81是秒。</p><p> h1=dat_m>>4;</p><p><b> h1*=10;</b></p><p> dat_m=dat_m
79、&0x0f;</p><p> dat_m+=h1;</p><p> bjt_temp=(float)(dat_h)+(float)(dat_m)/60;</p><p> angle_t=(12-bjt_temp-(L-120)/15)*PAI/12;//時(shí)角</p><p><b> }</b>
80、</p><p><b> 時(shí)鐘模塊設(shè)計(jì) </b></p><p> 本系統(tǒng)采用外部時(shí)鐘電路提供實(shí)時(shí)時(shí)間,選用的芯片是串行時(shí)鐘芯片DS1302。DS1302用了3條線來和單片機(jī)連接:串行時(shí)鐘線、數(shù)據(jù)線、復(fù)位線(SCLK、 I/O、RST),分別連接單片機(jī)的P2.0-P2.2端口。首先程序變量要初始化,定義以上3條線,然后就分別是寫、讀、顯示。流程圖及子程序如下:&
81、lt;/p><p> 圖4.2 時(shí)鐘模塊程序流程圖</p><p> void ds1302w(unsigned char dat) //數(shù)據(jù)寫入</p><p><b> {</b></p><p> unsigned char i;</p><p&
82、gt;<b> clk=0;</b></p><p><b> AC8b=dat;</b></p><p> for(i=0;i<8;i++) //移位寫入</p><p><b> {</b></p>
83、<p><b> io=bit0;</b></p><p><b> clk=1;</b></p><p> delayus(2);</p><p><b> clk=0;</b></p><p> AC8b=AC8b>>1;</p>
84、;<p><b> }</b></p><p><b> }</b></p><p> unsigned char ds1302r() //數(shù)據(jù)讀出</p><p><b> {</b></p><p&
85、gt; unsigned char i,dat;</p><p> for(i=0;i<8;i++) //移位讀出</p><p><b> {</b></p><p> AC8b=AC8b>>1;</p><p> bi
86、t7=io;</p><p><b> clk=1;</b></p><p><b> clk=0;</b></p><p> delayus(2);</p><p><b> }</b></p><p> dat=AC
87、8b; </p><p> return(dat);</p><p><b> }</b></p><p> unsigned char ds1302out(unsigned char cmd) //讀取相應(yīng)地址的數(shù)據(jù)</p><p><b> {</b></p>
88、;<p> unsigned char dat;</p><p><b> rst=0;</b></p><p><b> clk=0;</b></p><p><b> rst=1;</b></p><p> ds1302w(cmd);</p&g
89、t;<p> dat=ds1302r();</p><p><b> clk=1;</b></p><p><b> rst=0;</b></p><p> return(dat);</p><p><b> }</b></p><p
90、> 4.4 顯示模塊設(shè)計(jì) </p><p> 本部分采用的是顯示接口芯片MAX7219來驅(qū)動6位數(shù)碼管,顯示時(shí)、分、秒。在單片機(jī)從時(shí)鐘芯片讀取時(shí)間信息的同時(shí),單片機(jī)也將時(shí)間信息傳送給顯示芯片,由其控制數(shù)碼管顯示時(shí)間??刂品椒ê土鞒淘诘谌乱炎髟敿?xì)介紹,在此不再贅述。此模塊子程序如下:</p><p> void initial7219()
91、 //芯片初始設(shè)置</p><p><b> {</b></p><p> max7219w(0x0c,0x01);</p><p> max7219w(0x0f,0x00);</p><p> max7219w(0x09,0xff);</p><p> max7219w(0x
92、0b,0x05);</p><p> max7219w(0x0a,0x04);</p><p><b> }</b></p><p> void max7219w(unsigned char address,unsigned char dat)</p><p><b> {</b></
93、p><p> unsigned char i;</p><p> load7219=0;</p><p> for(i=0;i<8;i++) //寫入地址</p><p><b> {</b></p><p> c
94、lk7219=0;</p><p> din7219=(bit)(address&0x80);</p><p> address=address<<1;</p><p> clk7219=1;</p><p><b> }</b></p><p> for(i
95、=0;i<8;i++) //寫入數(shù)據(jù)</p><p><b> {</b></p><p> clk7219=0;</p><p> din7219=(bit)(dat&0x80);</p><p> dat=dat<
96、<1;</p><p> clk7219=1;</p><p><b> } </b></p><p> load7219=1;</p><p><b> }</b></p><p> void exter0()interrupt 0
97、 //鍵盤中斷掃描</p><p><b> {</b></p><p> if(SB1==0) //X正轉(zhuǎn)</p><p><b> {</b></p><p> //
98、 delayms(10);</p><p> if(SB1==0)</p><p><b> {</b></p><p> while(!SB1)</p><p><b> {</b></p><p> P1=motorstep_x[nx];</p>
99、<p> delayms(3);</p><p><b> nx++;</b></p><p><b> if(nx==8)</b></p><p><b> nx=0;</b></p><p> }</p><p&g
100、t;<b> }</b></p><p><b> P1=0x00;</b></p><p><b> }</b></p><p> if(SB2==0) //X反轉(zhuǎn)</p><p><b&g
101、t; {</b></p><p> // delayms(10);</p><p> if(SB2==0)</p><p><b> {</b></p><p> while(!SB2)</p><p><b> {</b></p>&
102、lt;p><b> nx--;</b></p><p> P1=motorstep_x[nx];</p><p> delayms(3);</p><p><b> if(nx==0)</b></p><p><b> nx=8;</b></p>
103、;<p><b> }</b></p><p><b> }</b></p><p><b> P1=0x00;</b></p><p><b> }</b></p><p> if(SB3==0)
104、 //Y正轉(zhuǎn)</p><p><b> {</b></p><p> // delayms(10);</p><p> if(SB3==0)</p><p><b> {</b></p><p> while(!SB3)</
105、p><p><b> {</b></p><p> P1=motorstep_y[ny];</p><p> delayms(3);</p><p><b> ny++;</b></p><p><b> if(ny==8)</b></p&g
106、t;<p><b> ny=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> P1=0x00;</b></p><p><b> }</b>&l
107、t;/p><p> if(SB4==0) //Y反轉(zhuǎn)</p><p><b> {</b></p><p> // delayms(10);</p><p> if(SB4==0)</p><p><b> {&l
108、t;/b></p><p> while(!SB4)</p><p><b> {</b></p><p><b> ny--;</b></p><p> P1=motorstep_y[ny];</p><p> delayms(3);</p>
109、;<p><b> if(ny==0)</b></p><p><b> ny=8;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> P1=0x00;</
110、b></p><p><b> }</b></p><p> if(SB5==0) //關(guān)閉顯示</p><p><b> {</b></p><p> max7219w(0x0c,0x00);</p>&l
111、t;p><b> }</b></p><p> if(SB6==0) //打開顯示</p><p><b> {</b></p><p> max7219w(0x0c,0x01);</p><p><b> }&
112、lt;/b></p><p><b> }</b></p><p> void BJTdate() //日角計(jì)算子程序</p><p><b> {</b></p><p> unsigned char dat_m,dat
113、_d,h1; //BCD to 10D</p><p> dat_m=ds1302out(0x89);</p><p> h1=dat_m>>4;</p><p><b> h1*=10;</b></p><p> dat_m=dat_m&0x0f;</p><p>
114、 dat_m+=h1;</p><p> dat_d=ds1302out(0x87);</p><p> h1=dat_d>>4;</p><p><b> h1*=10;</b></p><p> dat_d=dat_d&0x0f;</p><p> dat_d+
115、=h1;</p><p> kesitemp=(float)(datenum[dat_m]+(int)(dat_d)); //積日</p><p> kesi=(23.45*sin(2*PAI*(284+kesitemp)/365))*PAI/180; // 赤緯角</p><p> //kesitemp=((float)(datenum[d
116、at_m]+(int)(dat_d))-1)*2*PAI/365; //算法二;</p><p> //kesi=0.00689-0.39951*cos(kesitemp)+0.07208*sin(kesitemp)</p><p> // -0.00680*cos(2*kesitemp)+0.00090*sin(2*kesitemp)</p><p&g
117、t; // -0.00269*cos(3*kesitemp)+0.00151*sin(3*kesitemp) ;</p><p><b> }</b></p><p><b> 總 結(jié)</b></p><p> 經(jīng)過上述硬件設(shè)計(jì)和軟件編程,最后要進(jìn)行仿真測試,以檢測設(shè)計(jì)是否達(dá)到預(yù)定要求。測試在仿真軟件P
118、rotues 7.8中進(jìn)行,此軟件內(nèi)元件種類繁多,使用方便,繪制電路圖也很簡便。參數(shù)主要有兩部分,一是系統(tǒng)的邏輯控制是否正確,各部分是否能夠正確而穩(wěn)定地執(zhí)行任務(wù);二是檢查角度追蹤的效果,是否能追上太陽,角度是否準(zhǔn)確。下面介紹調(diào)試過程。</p><p> 先介紹最終的控制對象——太陽能電池板是受兩個(gè)步進(jìn)電機(jī)雙軸控制的。X軸延南北方向安置,y軸延?xùn)|西方向,分別由X、Y兩個(gè)步進(jìn)電機(jī)驅(qū)動。為方便調(diào)試,規(guī)定X軸自東向西為
119、正,對應(yīng)電機(jī)為順時(shí)針轉(zhuǎn)動;Y軸自南向北旋轉(zhuǎn)為正轉(zhuǎn),對應(yīng)電機(jī)順時(shí)針。電池板的初始位置是當(dāng)?shù)氐乃綘顟B(tài),兩個(gè)方向上各有一個(gè)限位開關(guān)提供輔助定位。</p><p> 在仿真時(shí),系統(tǒng)上電后,單片機(jī)開始執(zhí)行程序,短暫靜默后,數(shù)碼管亮起并顯示出當(dāng)前時(shí)間,為時(shí)分秒格式;而后稍等片刻,進(jìn)行第一次角度計(jì)算中斷,然后兩個(gè)步進(jìn)電機(jī)會以大角度從初始位置調(diào)整到當(dāng)前正確位置,隨后等待下一次中斷計(jì)算。六個(gè)按鍵也通過測試,功能正常。光照檢測休
120、眠與喚醒也是重點(diǎn)。當(dāng)光敏二極管由于光照不足而阻斷時(shí),此部分電路給單片機(jī)以高電平,經(jīng)由軟件取反進(jìn)入中斷,而后執(zhí)行中斷程序:兩電機(jī)在限位開關(guān)協(xié)助下相繼復(fù)位,使電池板回到初始位置,然后顯示關(guān)閉,單片機(jī)掉電,系統(tǒng)進(jìn)入休眠狀態(tài)。當(dāng)復(fù)位電路中的光敏二極管受光照又導(dǎo)通時(shí),單片機(jī)復(fù)位,系統(tǒng)開始新一天的工作。</p><p> 下表是仿真時(shí)測試的一組數(shù)據(jù),測試時(shí)間:2014.06.18 ;地點(diǎn):東經(jīng)112°34′北緯
121、 37°52′;即太原火車站的地理坐標(biāo)。表中標(biāo)準(zhǔn)值來自華中農(nóng)大開發(fā)的日梭萬年歷,比較有權(quán)威性。</p><p> 表5.1 仿真測試記錄</p><p> 經(jīng)過仿真調(diào)試,系統(tǒng)能夠正常地按照預(yù)定的思路運(yùn)行,各部分功能正常,能夠進(jìn)行追日,從上表中可以看出精度應(yīng)該可以滿足實(shí)際要求。</p><p> 本文主要研究設(shè)計(jì)了自動跟蹤太陽智能型太陽能系統(tǒng),旨在設(shè)計(jì)
122、出一種廉價(jià)、穩(wěn)定易于推廣的控制系統(tǒng),經(jīng)過學(xué)習(xí)前人和一些改進(jìn)創(chuàng)新,基本實(shí)現(xiàn)了追日功能,但要真正投入應(yīng)用,還需要更加深入的研究改進(jìn)。 </p><p> 本課題在研究過程中主要進(jìn)行了以下工作: </p><p> (1)比較目前國內(nèi)外的太陽追蹤方式,選擇了以單片機(jī)為控制核心的系統(tǒng),選擇太陽角度追蹤模式,使得系統(tǒng)有較高的穩(wěn)定性和可行性。 </p><p> ?。?)選
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫度自動控制畢業(yè)設(shè)計(jì)--基于51單片機(jī)的溫度自動控制系統(tǒng)設(shè)計(jì)研究
- 溫度自動控制畢業(yè)設(shè)計(jì)--基于51單片機(jī)的溫度自動控制系統(tǒng)設(shè)計(jì)研究
- 《基于51單片機(jī)的水溫自動控制系統(tǒng)應(yīng)用》畢業(yè)設(shè)計(jì)(論文)
- 基于單片機(jī)的溫濕度自動控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的溫濕度自動控制系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)之基于單片機(jī)的溫室大棚自動控制系統(tǒng)
- 基于單片機(jī)的溫室自動控制系統(tǒng)設(shè)計(jì)
- 基于avr單片機(jī)水溫自動控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的染色自動控制系統(tǒng)設(shè)計(jì).pdf
- 單片機(jī)室內(nèi)溫度自動控制系統(tǒng)的設(shè)計(jì)
- 設(shè)計(jì)之基于單片機(jī)的溫室大棚自動控制系統(tǒng)
- 基于單片機(jī)的溫室自動控制系統(tǒng)
- 基于avr單片機(jī)水溫自動控制系統(tǒng)
- 基于c51單片機(jī)的船舶輔鍋爐水位自動控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)自動控制系統(tǒng)調(diào)度方法
- 基于c51單片機(jī)的船舶輔鍋爐水位自動控制系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的魚用投餌機(jī)自動控制系統(tǒng)的設(shè)計(jì)
- 基于單片機(jī)的節(jié)水灌溉自動控制系統(tǒng)設(shè)計(jì)開題報(bào)告
- 基于單片機(jī)的溫度自動控制系統(tǒng)的課程設(shè)計(jì)
- 基于c51單片機(jī)的船舶輔鍋爐水位自動控制系統(tǒng)設(shè)計(jì)2
評論
0/150
提交評論