小型客車制動力分配比分析與優(yōu)化_第1頁
小型客車制動力分配比分析與優(yōu)化_第2頁
小型客車制動力分配比分析與優(yōu)化_第3頁
小型客車制動力分配比分析與優(yōu)化_第4頁
小型客車制動力分配比分析與優(yōu)化_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

太陽能電池板自動跟蹤系統(tǒng)設(shè)計華北科技學院頁共54頁項目研究的主要內(nèi)容及預(yù)期目標基于單片機的太陽能跟蹤器開發(fā)出來并且投入市場。它們也都具有雙軸跟蹤,自動調(diào)整,適應(yīng)能力強等特點。但是同時存在一些不足,比如精度不高,價格昂貴。不具備程控接口,不利于擴展。本設(shè)計提出一種有通信功能的跟蹤器,具有程序變更容易,精度可調(diào),使用方便,結(jié)構(gòu)簡單。該系統(tǒng)采用光時互補的方法,單片機從外接時鐘模塊讀入當?shù)貢r間,計算出太陽的空間位置。然后從電腦中即上位機輸入當?shù)氐乩硇畔⒓唇?jīng)緯度,結(jié)合以上計算的太陽空間位置,計算出太陽高度角與方位角,經(jīng)過單片機處理之后輸出驅(qū)動信號調(diào)整角度到指定位置,再啟動光電跟蹤程序,對角度進行微調(diào)。當變更地理位置時只要用電腦,改變特定地理位置對應(yīng)的輸出數(shù)表,將數(shù)據(jù)傳入到存儲器中即可??傊摳櫰骶哂懈櫨雀?,使用靈活方便,抗干擾能力強。有著較廣闊的市場前景。本次設(shè)計是采用STC12C5A60S2作為CPU,要實現(xiàn)光電傳感模塊的設(shè)計:以GL5516光敏電阻作為基本元件設(shè)計出光電傳感器,其可以不僅可以將東西,南北方向的光強差傳化為電壓信號,還要將光照強度信號傳入單片機,供單片機識別是否有云霧遮擋,以此來決定是否停止光電跟蹤程序;還要設(shè)計穩(wěn)定可靠的CPU預(yù)期實現(xiàn)電路相對簡單,結(jié)構(gòu)緊湊,硬件成本較低,的硬件電路。采用上位機通信,地理信息調(diào)整方便可靠,靈活。太陽高度角采用30分鐘調(diào)整一次,方位角采用30分鐘調(diào)整一次。這樣可以避免電機盲目轉(zhuǎn)動,大大的節(jié)省電機轉(zhuǎn)到帶來的能耗。從而使跟蹤系統(tǒng)更加高效率。可以自動調(diào)整誤差,當烏云遮擋時可以自動停止跟蹤,夏天早晨6點啟動系統(tǒng),當光照強度足夠時,追蹤系統(tǒng)程序啟動,晚上光照低于一定程度時。將太陽電池板自西向東調(diào)整到原位停止系統(tǒng)。太陽能電池板跟蹤相關(guān)理論研究太陽的運行規(guī)律太陽視位置指從地面上看到的太陽的位置,用太陽高度角和太陽方位角兩個角度作為坐標表示。太陽高度角指從太陽中心直射到當?shù)氐墓饩€與當?shù)厮矫娴膴A角,其值在0°到90°之間變化,日出日落時為零,太陽在正天頂上為90°。太陽方位角即太陽所在的方位,指太陽光線在地平面上的投影與當?shù)刈游缇€的夾角,可近似地看作是豎立在地面上的直線在陽光下的陰影與正南方的夾角。方位角以正南方向為零,由南向東向北為負,由南向西向北為正,如太陽在正東方,方位角為-90°,在正東北方時,方位為-135°,在正西方時方位角為90°,在正北方時為±180°。太陽高度角與地面的太陽光強弱密切相關(guān)。早晚與中午的光強有很大的差異,原因就在于太陽高度角的不同。在晴天條件下,太陽光的強弱與太陽高度角的正弦成正比。因此了解太陽高度角對分析地面的太陽光強有重要的意義。日面中心的時角,即從觀測點天球子午圈沿天赤道量至太陽所在時圈的角距離。以地球為例,在地球上,同一時刻,對同一經(jīng)度,不同緯度的人來說,太陽對應(yīng)的時角是相同的。單位時間地球自轉(zhuǎn)的角度定義為時角w,規(guī)定正午時角為0°,上午時角為負值,下午時角為正值。地球自轉(zhuǎn)一周360°,對應(yīng)的時間為24小時,即每小時相應(yīng)的時角為15°。根據(jù)下圖所示,設(shè)天球半徑為R,則太陽在坐標系二中的坐標為:x'=R·cosω,y'=R·cosδsinω,z'=R·sinδ(1)坐標系二繞Y軸的旋轉(zhuǎn)矩陣為:(2)根據(jù)[x,y,z]=[x',y',z']A,可得太陽在坐標系一中的坐標:x=R(cosδcosωsinФ-sinδcosФ)y=R·cosδsinωz=R(sinФsinδ+cosФcosδcosω)因此,可求得太陽高度角h,方位角A計算公式分別為:sinh=z/R=sinФsinδ+cosФcosδcosω(3)cos(A-180°)=x/(R·cosh)=(cosδcosωsinФ-sinδcosФ)/cosh=(sinh·sinФ-sinδ)/(cosh·cosФ)(4)sinA=cosδ·sinω/cosh(5) 圖2.1太陽位置示意圖對某一地點來說當?shù)氐乩砭暥颧妒谴_定的,太陽赤緯角δ、太陽時角ω是太陽在赤道坐標系中的位置,只要算出δ、ω兩個參數(shù)值便可得出太陽在地平坐標中的位置。上圖中τ即時角ω。實際應(yīng)用中,全球定位系統(tǒng)(GPS)可為系統(tǒng)提供精度很高的地理經(jīng)緯度和當?shù)貢r間,控制系統(tǒng)則根據(jù)提供的地理、時間參數(shù)來確定即時的太陽位置,以保證系統(tǒng)的準確定位和跟蹤的高準確性和高可靠性。這是比較先進的跟蹤系統(tǒng)。考慮到成本本設(shè)計沒有采用定位系統(tǒng)。而是采用通訊的方法。由于地球的自轉(zhuǎn)和地球繞太陽的公轉(zhuǎn)導致了太陽位置相對于地面靜止物體的運動。這種變化是周期性和可以預(yù)測的。地球極軸和黃道天球極軸存在的一個23°27′的夾角,引起了太陽赤緯角在一年中的變化。冬至時這個角為-23°27′,然后逐漸增大,到春分時變?yōu)?°并繼續(xù)增大;夏至時赤緯角達到最大的23°27′。并開始減??;到秋分時赤緯角又變?yōu)?°,并繼續(xù)減小,直到冬至,另一個變化周期開始。赤緯角可由Cooper(1969)的近似計算公式求得:δ=23×45sin[360×(284+n)/365](6)式中,δ-赤緯角,n-年中的第幾天。在一天當中,太陽赤緯變化很小,位置變化主要由地球自轉(zhuǎn)引起。一天當中隨時間變化引起的太陽位置的變化可由太陽時角ω表示,太陽在正午時為0°,每小時變化15°,上午為正,下午為負。因此有:ω=(12-T)×150(7)式中,T-當?shù)貢r問。圖2.2地平坐標跟蹤系統(tǒng)圖圖2.1為地平坐標跟蹤系統(tǒng),水平面為基本面,坐標為高度角(用圓弧GG′表示)和方位角(用圓弧SG′表示),在跟蹤過程中,鉛垂軸jj′相對于地平坐標系為靜止狀態(tài),水平軸dd′則在水平面內(nèi)繞鉛垂軸轉(zhuǎn)動。圖2.2為極軸坐標跟蹤系統(tǒng),天文赤道面為基本面,坐標為時角(用圓弧S′G′表示)和赤緯(用圓弧GG′表示),跟蹤過程中極軸jj′相對于極軸坐標系為靜止狀態(tài),赤緯軸dd′則在赤道面(或其平行面)內(nèi)繞極軸轉(zhuǎn)動。因為在天球上的所有圓圈中,地平是在自然界中惟一能看到的在天空中被勾畫出的圓。同時由于鉛垂線所具體代表的垂線,以及由水準儀所定出的水平線是在幾何坐標系中惟一能容易直接觀測的參考方向,所以地平參考系一直是實用中必不可少的媒介系統(tǒng)。在實際觀測中,最重要的幾何坐標系就是以地方天文地平作為基本參考圈的地平坐標系。因此目前多種太陽能發(fā)電裝置均采用地平坐標。光伏電池的特性分析當適當波長的光照到半導體系統(tǒng)上時,系統(tǒng)吸收光能后兩端產(chǎn)生電動勢,這種現(xiàn)象稱為光伏效應(yīng)。例如,當光照射到由P型和N型兩種不同導電類型的同質(zhì)半導體材料構(gòu)成的P-N結(jié)上時,在一定條件下,光能被半導體吸收后,在導帶和價帶中產(chǎn)生非平衡載流子—電子和空穴。由于P-N結(jié)勢壘區(qū)存在著較強的內(nèi)建靜電場,因而產(chǎn)生在勢壘區(qū)中的非平衡電子和空穴,或者產(chǎn)生在勢壘區(qū)外但擴散進勢壘區(qū)的非平衡電子和空穴,在內(nèi)建靜電場的作用下,各向相反方向運動,離開勢壘區(qū),結(jié)果使P區(qū)電勢升高,N區(qū)電勢降低,P-N結(jié)兩端形成生電動勢,這就是P-N結(jié)的光伏效應(yīng)。如將P-N結(jié)與外電路接通,只要光照不停止,就會不斷地有電流流過電路,P-N結(jié)起了電源的作用,這就是光電池的基本工作原理。圖2.3不同溫度下的光伏特性光伏電池的伏安曲線;(b)光伏電池的功率電壓曲線溫度上升將使光伏電池開路電壓Voc下降,短路電流則略微增大,日照強度不變時,不同溫度下的光伏電池的效率變化很大。由公式可知其效率隨著溫度的上升而下降,即光伏電池轉(zhuǎn)換率具有負的溫度系數(shù)。所以在應(yīng)用時,如果使用聚光器,則聚光器的聚光倍數(shù)不能過大,以免造成結(jié)溫過高使電池轉(zhuǎn)換率下降甚至損害電池。圖2.4a中的伏安特性曲線是在一定的光照強度和環(huán)境溫度下得到的,在實際運用中,光伏電池的開路電壓和短路電流都會隨著兩者的變化而變化。圖2.4b圖2.4不同日照強度下的光伏特性(a)光伏電池的伏安曲線(b)光伏電池的功率電壓曲線從上圖曲線中得到,電池的開路電壓近似的與光強的對數(shù)成正比。光強從200-1000W/m開路電壓變化比較平穩(wěn)。在實驗中也發(fā)現(xiàn),當早晨光線不強和中午烈日當空時,所測量的開路電壓相差不大,而天空光線極差時,開路電壓會直線下降,幾乎為0。而短路電流是隨光強的增加而成正比的增加。所以,在溫度恒定的情況下,電池的轉(zhuǎn)換效率會隨光強的增加而增加。對于一個給定的功率輸出,電池的轉(zhuǎn)換效率決定了所需的電池板的數(shù)量,所以電池達到盡可能高的轉(zhuǎn)換效率是極其重要的。而這個結(jié)論就為提高轉(zhuǎn)換效率提供了一種途徑:可以通過加裝聚光器來加強光照強度,從而減少光伏電池的使用,降低光伏發(fā)電的成本,但是聚光器對光照條件要求比較高,最主要是要求光線要近乎垂直地照射到太陽能電池板上。所以太陽能跟蹤系統(tǒng)就顯得十分有必要,而且該跟蹤系統(tǒng)的精確度直接影響到發(fā)電效率。光伏電池的伏安特性是一定光強、一定溫度下,電池的負載外特性,直接反映出電池輸出功率。在一定的光強的照射下,特性曲線完全由電池的P-N結(jié)特性和電阻分散參數(shù)確定。對應(yīng)不同的光照強度時,電池有不同的輸出特性曲線,曲線上任何一點都可以作為工作點,工作點所對應(yīng)的縱和橫坐標分別為工作電流和工作電壓,兩者之積即為電池的輸出功率P,即P=VI。如圖2.5所示。圖2.5光伏電池的I-V和P-V特性曲線可以看出,此I-V曲線具有高度的非線性特征,這樣就存在一個最大功率輸出問題,在第四章中將對此問題進行研究。在P-V特性曲線中,可以看出隨著端電壓由零逐漸增長輸出功率先上升然后下降,說明存在一個端電壓值,在其附近可獲得最大功率輸出,跟I-V曲線說明了同一個問題,這為光伏發(fā)電控制方法的改進提供了途徑。太陽能跟蹤系統(tǒng)的控制目標與控制方案控制方案選擇目前比較先進的程序跟蹤方法是根據(jù)太陽軌跡算法的分析,太陽軌跡位置由觀測點的地理位置和標準時間來確定。在應(yīng)用中,全球定位系統(tǒng)(GPS)可為系統(tǒng)提供精度很高的地理經(jīng)緯度和當?shù)貢r間,控制系統(tǒng)則根據(jù)提供的地理、時間參數(shù)來確定即時的太陽位置,以保證系統(tǒng)的準確定位和跟蹤的高準確性和高可靠性。但是上述方法是有一些缺點的,主要是程序的計算量太大,從而影響到響應(yīng)的速度,而且對CPU要求很高。另一方面就是成本問題,GPS提供數(shù)據(jù),成本會大大的提高,所以綜合考慮整體運用通訊的方法將數(shù)據(jù)提前存儲到存儲器中,單片機只需從存儲器中讀取數(shù)據(jù)即可。跟蹤系統(tǒng)具體參數(shù)如下圖所示:跟蹤精度±0.1°光敏電阻型號GL5516單片機STC12C最大跟蹤角度(方位角)±180°光敏電阻工作環(huán)境溫度-30°~+70°夏天啟動時間6點最大跟蹤角度(高度角)75°亮電阻5-10kΩ冬天啟動時間8點步進電機功率120W暗電阻0.5-1MΩ存儲器93LC66A步進電機電壓DC24V光敏電阻尺寸5減速器PG120L3圖3.1跟蹤系統(tǒng)具體參數(shù)該控制系統(tǒng)采用光時互補的控制方案,即以程序跟蹤做為粗調(diào),光電跟蹤作為細調(diào)。其中程序跟蹤的控制方案為:根據(jù)天亮時間,比如夏天的時候6點天亮,這樣就要使程序定在6點的時候啟動跟蹤系統(tǒng)。而冬天的時候要等到8點才啟動。天黑時方案同理,將系統(tǒng)關(guān)閉,夏天和冬天關(guān)閉的時間是不一樣的。同時關(guān)閉系統(tǒng)之前將電池板從最西方調(diào)整到最東方等待下一天太陽的升起。當啟動后采用30分鐘調(diào)整一次,可以防止電機盲目轉(zhuǎn)動又可以節(jié)省電機耗能。將程序的參數(shù)通過通訊存儲到EEPROM中。程序的數(shù)據(jù)可以修改,使用靈活方便。可以自動調(diào)整誤差,可以避免灰塵等其他因素照成的誤差,即不受外界干擾。光電跟蹤作為程序跟蹤的補充,對電池板位置進行精確的調(diào)整。設(shè)計光電跟蹤時首先涉及到硬件,光電傳感器用光敏電阻來設(shè)計,選用GL5516型號電阻。當烏云遮擋時根據(jù)光電傳感器的光強信號可以自動停止光電跟蹤。還有步進電機,采用DC24V,120W的步進電機適合驅(qū)動4×4m的電池板。PG120L3控制方案設(shè)計圖3.2光電傳感器鏡筒圖θ為太陽入射光線與主光軸的夾角,d為光電傳感器上的太陽像直徑。根據(jù)幾何光學原理可得:光電傳感器直徑為25mm,可計算出光電池的檢測范圍為1.48°,太陽像直徑約為3.8mm,即當粗跟蹤將傳感器主光軸與太陽入射光線間的夾角調(diào)節(jié)至1.48°以內(nèi)時,太陽像便能全部呈現(xiàn)在光傳感器筒內(nèi)電阻上。由光敏傳感器采集太陽與光伏電池板之間水平與垂直方向的位置偏差信號與光強信號,并反饋給數(shù)據(jù)處理器與控制器單片機,經(jīng)過數(shù)據(jù)的處理與放大,發(fā)出驅(qū)動信號,經(jīng)過驅(qū)動電路控制步進電機的轉(zhuǎn)動,經(jīng)過減速機構(gòu)緩慢調(diào)整角度。直到太陽光線完全垂直照射電池板。其中電源的電取自太陽能電池板;光電傳感器利用光敏電阻特性設(shè)計而成。如上圖所示當A與D被遮擋這是A與B之間電阻值相差很大這樣傳感器就會產(chǎn)生電壓差送入單片機處理經(jīng)過數(shù)據(jù)的處理與放大,發(fā)出驅(qū)動信號,經(jīng)過驅(qū)動電路控制步進電機的轉(zhuǎn)動,經(jīng)過減速機構(gòu)緩慢調(diào)整角度。直到A與B沒有電壓差未止。C與D同理。當A,B與C,D都沒有電壓差時即陽光正對電池板和傳感器鏡桶時,光敏電阻E對不同的光強會有不同的電阻值,產(chǎn)生不同的電壓信號給單片機處理,當烏云遮擋時,光強很弱,單片機就可以停止光電跟蹤,避免了盲目跟蹤。系統(tǒng)整體框圖如上圖所示:其控制過程是視日運動軌跡跟蹤與光電跟蹤的結(jié)合方式。先從電腦中將確定地理位置信息的太陽高度角方位角的數(shù)表傳入到存儲器中該數(shù)表是高度角(方位角)隨天數(shù)與小時數(shù)變化的二維變量。單片機從實時時鐘中讀出時間信息,從存儲器中查數(shù)表,得出高度角與方位角發(fā)出驅(qū)動信號。這樣程序法的初步定位完成了。光電傳感器通過電池板的位置信號,得出信號差傳入到單片機中發(fā)出驅(qū)動的信號,調(diào)整電機直到精確位置。圖3.4太陽能自動跟蹤裝置圖1-支座;2-支柱;3-電池板支架;4-銷軸;5-減速箱體(含電動機);6、15-主軸;7-絲桿;8-橫支架;9、5-電機;10-減速器;11-鉸鏈為方位軸和俯仰軸。1.東西方向跟蹤在減速箱體5內(nèi)安裝由電機等構(gòu)成的傳動機構(gòu)。主軸通過軸承安裝在減速箱體上,主軸的下端固定在支座1上,支柱2的下端固定在減速箱體上,支柱2的上端通過銷軸4與電池板支架連接。電機通過帶動齒輪轉(zhuǎn)動,并帶動減速箱體、電池板支架轉(zhuǎn)動,完成東西方向的跟蹤。2.南北方向跟蹤支柱2上設(shè)置一個橫支架8,橫支架8端部鉸接一個減速器10,減速器中設(shè)有蝸桿(圖中未畫出)與電機9相連,蝸桿與設(shè)在減速器中的蝸輪嚙合,蝸輪中心設(shè)有螺孔與絲桿7連接配合,絲桿7的一端通過鉸鏈11與電池板支架連接。電機9通過蝸輪蝸桿、絲桿螺孔機構(gòu)帶動電池板支架轉(zhuǎn)動,完成南北方向的跟蹤。電池板跟蹤系統(tǒng)硬件設(shè)計關(guān)鍵器件介紹STC12C5A圖4.1STC12C5A它有40個管腳,分成兩排,每一排各有20個腳,其中左下角標有箭頭的為第1腳,然后按逆時針方向依次為第2腳、第3腳……第40腳。在40個管腳中,其中有32個腳可用于各種控制,比如控制小燈的亮與滅、控制電機的正轉(zhuǎn)與反轉(zhuǎn)、控制電梯的升與降等,這32個腳叫做單片機的“端口”,在單片機技術(shù)中,每個端口都有一個特定的名字,比如第一腳的那個端口叫做“P1.0”。主要特性與8051兼容增強型8051內(nèi)核,速度是傳統(tǒng)8051的8-12倍有外部掉電檢測功能數(shù)據(jù)保留時間:10年工作頻率:0HZ~35HZ內(nèi)部RAM1280字節(jié)32可編程I/O線4個16位定時器/計數(shù)器5個中斷源可編程串行通道EEPROM功能,擦寫次數(shù)10萬次管腳說明P0.0~P0.7P0:P0口既可以作為輸入/輸出口,也可以作為地址/數(shù)據(jù)復用總線使用。當P0口作為輸入/輸出口時,P0是一個8位準雙向口,內(nèi)部有弱上拉電阻,無需外接上拉電阻。當P0作為地址/數(shù)據(jù)復用總線使用時,是低8位地址線A0~A7,數(shù)據(jù)線D0~D7P1.0/ADC0/CLKOUT2標準IO口、ADC輸入通道0、獨立波特率發(fā)生器的時鐘輸出P1.1/ADC1。P1.2/ADC2/ECI/RxD2標準IO口、ADC輸入通道2、PCA計數(shù)器的外部脈沖輸入腳,第二串口數(shù)據(jù)接收端P1.3/ADC3/CCP0/TxD2外部信號捕獲,高速脈沖輸出及脈寬調(diào)制輸出、第二串口數(shù)據(jù)發(fā)送端P1.4/ADC4/CCP1/SS非SPI同步串行接口的從機選擇信號P1.5/ADC5/MOSISPI同步串行接口的主出從入(主器件的輸入和從器件的輸出)P1.6/ADC7/SCLKSPI同步串行接口的主入從出P2.0~P2.7P2口內(nèi)部有上拉電阻,既可作為輸入輸出口(8位準雙向口),也可作為高8位地址總線使用。P3.0/RxD標準IO口、串口1數(shù)據(jù)接收端P3.1/INT0非外部中斷0,下降沿中斷或低電平中斷P3.3/INT1P3.4/T0/INT非/CLKOUT0定時器計數(shù)器0外部輸入、定時器0下降沿中斷、定時計數(shù)器0的時鐘輸出。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。步進電機是機電控制中一種常用的執(zhí)行機構(gòu),它的用途是將電脈沖轉(zhuǎn)化為角位移,通俗地說:當步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(及步進角)。通過控制脈沖個數(shù)即可以控制角位移量,從而達到準確定位的目的;同時通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的。步進電機是一種感應(yīng)電機,它的工作原理是利用電子電路,將直流電變成分時供電的,多相時序控制電流,用這種電流為步進電機供電,步進電機才能正常工作,驅(qū)動器就是為步進電機分時供電的,多相時序控制器。雖然步進電機已被廣泛地應(yīng)用,但步進電機并不能象普通的直流電機,交流電機在常規(guī)下使用。它必須由雙環(huán)形脈沖信號、功率驅(qū)動電路等組成控制系統(tǒng)方可使用。因此用好步進電機卻非易事,它涉及到機械、電機、電子及計算機等許多專業(yè)知識。步進電機作為執(zhí)行元件,是機電一體化的關(guān)鍵產(chǎn)品之一,廣泛應(yīng)用在各種自動化控制系統(tǒng)中。隨著微電子和計算機技術(shù)的發(fā)展,步進電機的需求量與日俱增,在各個國民經(jīng)濟領(lǐng)域都有應(yīng)用。其具有如下的特點:1)勵磁繞組上施加的不是一個恒定的直流或交流電壓,而是采用電子開關(guān)斷續(xù)加以直流電壓,即采用脈沖供電方式,用數(shù)字信號直接進行開環(huán)控制,整個系統(tǒng)簡單廉價。2)電機的轉(zhuǎn)速與脈沖頻率保持嚴格的同步關(guān)系。位移與輸入脈沖信號數(shù)相對應(yīng),步距誤差不長期積累,可以組成結(jié)構(gòu)較為簡單而又具有一定精度的開環(huán)控制系統(tǒng),也可在要求更高精度時組成閉環(huán)控制系統(tǒng)。3)步進電機具有加速轉(zhuǎn)矩大等特點,其性能的提高與控制方式、驅(qū)動電路的參數(shù)等有密切的關(guān)系。4)停止時,具有自鎖能力,定位精度高。5)無刷,電機本體部件少,可靠性高;易于啟動、停止、正反轉(zhuǎn)及變速,響應(yīng)性也好。6)步距角選擇范圍大,可在幾十角分至180度大范圍內(nèi)選擇。在小步距情況下,通??梢栽诔退傧赂咿D(zhuǎn)矩穩(wěn)定運行,通常可以不經(jīng)減速器直接驅(qū)動負載。步進電機從其結(jié)構(gòu)形式上可分為反應(yīng)式步進電機(VR)、永磁式步進電機(PM)、混合式步進電機(HB)、單相步進電機、平面步進電機等多種類型。圖4.2步進電機原理圖1、結(jié)構(gòu):電機轉(zhuǎn)子均勻分布著很多小齒,定子齒有三個勵磁繞阻,其幾何軸線依次分別與轉(zhuǎn)子齒軸線錯開。0、1/3て、2/3て,(相鄰兩轉(zhuǎn)子齒軸線間的距離為齒距以て表示),即A與齒1相對齊,B與齒2向右錯開1/3て,C與齒3向右錯開2/3て,A'與齒5相對齊,(A'就是A,齒5就是齒1)下面是定轉(zhuǎn)子的展開圖:

2、旋轉(zhuǎn):如A相通電,B,C相不通電時,由于磁場作用,齒1與A對齊,(轉(zhuǎn)子不受任何力以下均同)。如B相通電,A,C相不通電時,齒2應(yīng)與B對齊,此時轉(zhuǎn)子向右移過1/3て,此時齒3與C偏移為1/3て,齒4與A偏移(て-1/3て)=2/3て。如C相通電,A,B相不通電,齒3應(yīng)與C對齊,此時轉(zhuǎn)子又向右移過1/3て,此時齒4與A偏移為1/3て對齊。如A相通電,B,C相不通電,齒4與A對齊,轉(zhuǎn)子又向右移過1/3て這樣經(jīng)過A、B、C、A分別通電狀態(tài),齒4(即齒1前一齒)移到A相,電機轉(zhuǎn)子向右轉(zhuǎn)過一個齒距,如果不斷地按A,B,C,A……通電,電機就每步(每脈沖)1/3て,向右旋轉(zhuǎn)。如按A,C,B,A……通電,電機就反轉(zhuǎn)。由此可見:電機的位置和速度由導電次數(shù)(脈沖數(shù))和頻率成一一對應(yīng)關(guān)系。而方向由導電順序決定。不過,出于對力矩、平穩(wěn)、噪音及減少角度等方面考慮。往往采用A-AB-B-BC-C-CA-A這種導電狀態(tài),這樣將原來每步1/3て改變?yōu)?/6て。甚至于通過二相電流不同的組合,使其1/3て變?yōu)?/12て,1/24て,這就是電機細分驅(qū)動的基本理論依據(jù)。光敏傳感器是基于光電效應(yīng)、將光信號轉(zhuǎn)換為電信號的傳感器,其敏感元件是光電器件。光敏傳感器主要由光敏元件組成。目前光敏元件發(fā)展迅速、品種繁多、應(yīng)用廣泛。主要有光敏電阻器、光電二極管、光電三極管、光電耦合器和光電池。1、光敏電阻原理光敏電阻器由能透光的半導體光電晶體構(gòu)成,因半導體光電晶體成分不同,又分為可見光光敏電阻(硫化鎘晶體)、紅外光光敏電阻(砷化鎵晶體)、和紫外光光敏電阻(硫化鋅晶體)。當敏感波長的光照半導體光電晶體表面,晶體內(nèi)載流子增加,使其電導率增加(即電阻減小)。光敏電阻器是利用半導體的光電效應(yīng)制成的一種電阻值隨入射光的強弱而改變的電阻器;入射光強,電阻減小,入射光弱,電阻增大。光敏電阻器一般用于光的測量、光的控制和光電轉(zhuǎn)換(將光的變化轉(zhuǎn)換為電的變化)。2、光敏電阻的應(yīng)用光敏電阻器廣泛應(yīng)用于各種自動控制電路(如自動照明燈控制電路、自動報警電路等)、家用電器(如電視機中的亮度自動調(diào)節(jié),照相機中的自動曝光控制等)及各種測量儀器中。本次設(shè)計采用的是CDS光敏電阻。光敏二極管CDS是一種電阻值隨光照強度變化而變化的感光電阻,本系統(tǒng)采用3個光敏電阻作為傳感器來檢測天空光線的變化,跟蹤太陽的位置。光敏電阻的特性與人眼最為接近,所以適合可見光的測量。選用的型號是GL5516,它的暗電阻為100K歐,亮電阻為5~l0K歐。CDS的阻值變化與光照的變化之間的關(guān)系是線性的,它的阻值的變化是在一個范圍內(nèi)沿著一條直線上升或下降。 圖4.3GL5516光敏電阻CPU模塊設(shè)計CPU模塊負責傳感器信號處理,電機控制與電腦通訊,同時協(xié)調(diào)控制各功能電路工作。本設(shè)計采用宏晶公司的高性能8位單片機STC12C5A在本系統(tǒng)中:P0口作為I/O接口,負責指示燈控制信號;P1口作為I/O接口,光電信號輸入;P2口作為數(shù)據(jù)接口,負責從EEPROM中讀出數(shù)據(jù)與存入數(shù)據(jù);P3口作為串行通信接口。復位電路EEPROMSTC復位電路EEPROMSTC12C電腦通訊電路光敏傳感器電機及驅(qū)動電路電腦通訊電路光敏傳感器電機及驅(qū)動電路 圖4.4CPU硬件模塊結(jié)構(gòu)框圖為確保單片機系統(tǒng)中電路穩(wěn)定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般單片機電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機電路是時序數(shù)字電路,它需要穩(wěn)定的時鐘信號,因此在電源上電時,只有當VCC超過4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時,復位信號才被撤除,單片機電路開始正常工作。復位電路的主要功能是使整個電路處于一個確定的狀態(tài),以免引起錯誤的操作。一般單片機復位需要5ms的時間。復位電路的實現(xiàn)可以用很多種方法,但是在功能上一般分為兩種:1)一種是上電復位,即外部的復位電路在系統(tǒng)通上電之后直接使單片機工作,單片機的啟停通過電源控制;2)復位電路中設(shè)計按鍵開關(guān),通過按鍵開關(guān)觸發(fā)復位電平,控制單片機的復位。圖4.6復位電路本次設(shè)計采用用的是第一種方法,即上電復位。上電復位的工作過程是在加電時,復位電路通過電容器給RESET端一個短暫的高電平信號,次高電平隨著VCC給電容器的充電過程中而逐漸回落。高電平的持續(xù)時間取決于電容充電時間。為了保證系統(tǒng)可靠復位,高電平信號必須維持足夠長時間。晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò),電工學上這個網(wǎng)絡(luò)有兩個諧振點,以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。STC12C5A60S2單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和圖4.7晶振電路XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容C3和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為11MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為30pF。在焊接刷電路板時,晶體振蕩器和電容應(yīng)盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作.晶振有一個重要的參數(shù),那就是負載電容值,選擇與負載電容值相等的并聯(lián)電容,就可以得到晶振標稱的諧振頻率。發(fā)光二極管在其兩端的電壓差超出其導通壓降時開始工作。發(fā)光二極管的導通壓降一般為1.7V~1.9V。此外,工作電流要滿足該二極管的工作電流。滿足電流和電壓的要求,發(fā)光二極管就可以發(fā)光了。此處接一個電阻式為了限制二極管的電流,從而達到減少功耗或者滿足端口對最大電流的限制。一般二極管的點亮電流為5mA~10mA。光電傳感模塊光照檢測部分可利用光敏電阻傳感器作為檢測元件,它可以完成從光強到電阻值的信號轉(zhuǎn)換,再把電阻值轉(zhuǎn)換為電信號就可以作為系統(tǒng)的輸入信號。光照強度的信號采集部分采用光敏電阻作為信號采集器件。光敏電阻是基于光電導效應(yīng)的一種光電器件,無光照時,光敏電阻值(暗電阻)很大,電路中電流(暗電流)很小;當受到光照時,半導體材料電導率增加,電阻減小。其阻值隨光照增強而減小。圖4.8光強采樣電路光敏電阻作為光電式傳感器的一種,它具有靈敏度高、光譜響 抗過載能力強和壽命長等特點。所以選擇光敏電阻采集光照信號,并把不同的光照強度轉(zhuǎn)化為不同的電阻值。把光敏電阻串聯(lián)在直流電路中即可把不同的電阻值轉(zhuǎn)化為不同的電壓值,電路如原理圖所示。于是,就把對光照信號的處理轉(zhuǎn)化為對電壓信號V的處理。其中V5電壓信號轉(zhuǎn)換的是光強信號,其功能是測量光照強度,將信號傳遞給單片機處理,再結(jié)合時鐘時間從而判斷出天氣狀況,是陰天還是晴天,是否有烏云遮擋。V1,V2電壓信號分別表示東西方向的光照強度,通過V1,V2的電壓做差即東西方向的光照強度差,可以判斷出太陽光線與電池板的水平方向的方位差,使系統(tǒng)做出調(diào)整,只要V1,V2的的差值超過設(shè)定值,系統(tǒng)就要做出調(diào)整。V3,V4電壓信號分表表示的是南北方向的光照強度信號,其工作原理與V1,V2原理相同。圖4.9光電轉(zhuǎn)換電路-東西方向圖4.10光電轉(zhuǎn)換電路圖3-中間2)信號處理部分:采用集成電壓比較器LM358N作為信號處理的核心元件,電路連接如原理圖所示。東西方向光強、光照強度兩鐘光照狀態(tài)轉(zhuǎn)換為三個電壓值V1,V2,V5作為比較器的輸入電壓;在使用單個集成運放構(gòu)成加減法電路時存在兩個缺點,一是電阻的選取調(diào)整不方便,二是對于每個信號源的輸入電阻均較小,因此采用兩級電路,如上圖2所示第一級電路為同向比例運算電路。由模電知識得到若 (243(1)4寶貝(((2(從從從CONG從以上公式可以很明顯的看出本設(shè)計完全符合上述公式。本設(shè)計中Rf2/R4=9,所以Vo=10(V1—V2),即將東西方向的電位差放大了10倍并輸出。其中二極管起到鉗位作用當電壓過高時D3導通使得輸出點電位為5.7V,輸出電位過低時可以使輸出點電位保持在-0.7V,這樣整體可以起到保護作用不至于燒壞單片機。其中南北方向是東西方向電路圖完全一樣,原理也相同。圖4.10所示是判斷光照強度的信號處理電路,其實主要就是一個電壓比較電路采用的是LM339,其W1是電位器,調(diào)整W1的電阻就可以調(diào)整參考點電壓值,當V5值大于參考值時有放大輸出三極管導通輸出口呈低電位狀態(tài),反之呈高電位狀態(tài)。這樣可以很容易的對光照強度的閥值進行設(shè)定。從而很容易對體現(xiàn)天亮還是黑狀態(tài)的光照強度通過對電位器的調(diào)整(參考電壓)而做出調(diào)整。實時時鐘模塊由于系統(tǒng)需進行時間控制,因此,需采用實時時鐘。若使用單片機計時,長時間會引起較大誤差,因此使用串行實時時鐘PCF8583。該器件具有實時時鐘,可提供秒、分、時、日、星期、月和年(閏年補償),可采用12h或24h方式計時。圖4.11PCF8583它具有日歷時鐘、計時、可編程定時中斷,并提供256字節(jié)低功耗靜態(tài)RAM。采用I2總線串行數(shù)據(jù)線,可方便與單片機接口。OSCI:振蕩器的輸入端;OSCO:振蕩器的輸出端;A0:地址輸入端;Vss:電源負端(地);SDA:I2C總線串行數(shù)據(jù)線;SCL:I2C總線串行時鐘線;INT:開路中斷請求輸出端(低電頻有效);Vdd:電源正端。8051與PCF8583接口電路原理圖如圖3所示,P1.5用作時鐘線SCL,P1.6用作數(shù)據(jù)線SDA。32.768kHz的石英晶體必須接到OSCI和OSCO之間,微調(diào)電容在OSCI和Vss之間,用于對振蕩器頻率進行微調(diào)。圖4.12實時時鐘PCF8583與單片機連接圖RS232通訊模塊單片機從一個I/O引腳逐位傳輸一系列二進制編碼數(shù)據(jù),就是串行通信。單片機的串行通信的實現(xiàn)需要以下3個方面的支持:硬件構(gòu)成:單片機的串口結(jié)構(gòu)和通信接口連接。通過引腳串行數(shù)據(jù)接收端RXD和引腳TXD串行數(shù)據(jù)發(fā)送端與外界通信。通信協(xié)議:RS-232通信協(xié)議。1)電氣特性,對于數(shù)據(jù),邏輯“0”的電平高于-3V,邏輯“1”的電平低于+3V;對于控制號,接通狀態(tài)(ON)即信號有效的電平高于+3V,斷開狀態(tài)(OFF)即信號無效的電平低于-3V。實際工作時,應(yīng)保證電平在+—(3~15)V之間。RS-232是用正負電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在RS-232與TTL電路之間進行電平和邏輯關(guān)系的變換。2)信號接口,與RS-232相匹配的連接器有DB-25、DB-15和DB-9。本設(shè)計使用的是DB-9連接器。作為提供多功能I\O卡或主板上COM1和COM2兩個串行接口的連接器,它只提供異步通信的9個信號。引腳功能1載波檢測2接收數(shù)據(jù)3發(fā)送數(shù)據(jù)4數(shù)據(jù)終端準備完成5信號地線6數(shù)據(jù)準備完成7發(fā)送請求8發(fā)送清除9振鈴提示EEPROM存儲模塊93LC66A/B是4KB,低電壓,電可擦除存儲器。93LC66A是8位,93LC66B是16位的,本設(shè)計中單片機是8位的所以選擇8位的93LC66A比較合適。該芯片采用高級COMOS技術(shù),所以功耗很低。對于要求低功耗的設(shè)備是很好選擇。CS:芯片選擇端口;CLK:時鐘信號端;DI:數(shù)據(jù)輸入端口;DO:數(shù)據(jù)輸出端口;Vss:接地端;NC:懸空端口;Vcc:電源端口。圖4.15EEPROM連接圖系統(tǒng)電源設(shè)計隨著集成電路制造技術(shù)的發(fā)展以及數(shù)字式電子元器件的微小型化,集成電路器件制造商在保持并增強元器件功能的前提下,采用更為先進精細的制造工藝,在減少集成芯片幾何尺寸的同時,降低工作電壓。降低器件的工作電壓的主要優(yōu)點是使電池供電電流小,電源工作時間延長;器件產(chǎn)生的熱量減少,提供了工作可靠性;降低了器件的噪聲。此外,單片機和元器件可以做到更小、更輕、更精和連續(xù)時間更長。在整個單片機系統(tǒng)設(shè)計中,電源的設(shè)計是需要首先考慮的,這決定了系統(tǒng)是采用單電源方案,還是多電源方案,系統(tǒng)的功耗有無特殊規(guī)定等。單片機系統(tǒng)中的電源設(shè)計主要指3個方面:一是電源功耗,二是電源電壓,三是電源管理。本設(shè)計中,系統(tǒng)的電源采用的數(shù)字+5V,考慮到方便,電源可以從太陽能電池獲得。但是系統(tǒng)的電壓會很不穩(wěn)定所以需要穩(wěn)壓性能較好的穩(wěn)壓源給給系統(tǒng)供電。步進電機驅(qū)動電路如下圖所示是步進電機驅(qū)動電路,本設(shè)采用單電壓驅(qū)動電路,單電壓具有電路簡單,功放元件少等特點,但是效率不高。單電壓驅(qū)動電路適合反應(yīng)式步進電機。與A相繞組并聯(lián)的支路,起到釋放繞組的電流,因為當Q2關(guān)斷時繞組的電流不能突變需要釋放的途徑,電能將消耗在該支路的電阻上。其他電阻起到限流的作用。驅(qū)動過程是當單片機發(fā)出信號從P20口圖4.14步進電機驅(qū)動電路輸入當高電平時三極管導通,24V電壓加在A相繞組與10K上。低電平時關(guān)斷A相繞組不通電。太陽能電池板跟蹤系統(tǒng)軟件設(shè)計KeilC51軟件介紹目前51系列單片機編程的C語言都采用KeilC51(簡稱C51),KeilC51是在標準C語言基礎(chǔ)上發(fā)展起來的。KeilC51語言是在ANSIC的基礎(chǔ)上針對51單片機的硬件特點進行的擴展,并向51單片機上移植,經(jīng)過多年努力,C51語言已經(jīng)成為公認的高效、簡潔而又貼近51單片機硬件的實用高級編程語言。KeilC51軟件是支持8051微控制器體系結(jié)構(gòu)的Keil開發(fā)工具,KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編語言相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。并且,KeilC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全新Windows界面,更適合初學者的學習和掌握。KeilC51軟件進行開發(fā)有如下優(yōu)點:(1)可讀性好。C51語言程序比匯編語言程序的可讀性好,因而編程效率高,程序便于修改。(2)模塊化開發(fā)與資源共享。用C51開發(fā)出來的程序模塊可以不經(jīng)修改,直接被其他項目所用,這使得開發(fā)者能夠很好地利用已有的大量的標準C程序資源與豐富的庫函數(shù),減少重復勞動。(3)可移植性好。為某種型號單片機開發(fā)的C語言程序,只需將與硬件相關(guān)之處和編譯連接的參數(shù)進行適當修改,就可以方便地移植到其他型號的單片機上。(4)代碼效率高。當前較好的C51語言編譯系統(tǒng)編譯出來的代碼效率只比直接使用匯編語言低20%左右,如果使用優(yōu)化編譯選項,效果會更好。KeilC51軟件存儲模式存儲模式?jīng)Q定了沒有明確指定存儲類型的變量,函數(shù)參數(shù)等的缺省存儲區(qū)域,共三種:Small模式,所有缺省變量參數(shù)均裝入內(nèi)部RAM,優(yōu)點是訪問速度快,缺點是空間有限,只適用于小程序。Compact模式,所有缺省變量均位于外部RAM區(qū)的一頁(256Bytes),具體哪一頁可由P2口指定,在STARTUP.A51文件中說明,也可用pdata指定,優(yōu)點是空間較Small為寬裕速度較Small慢,較large要快,是一種中間狀態(tài)。Large模式,所有缺省變量可放在多達64KB的外部RAM區(qū),優(yōu)點是空間大,可存變量多,缺點是速度較慢。軟件總體設(shè)計及流程圖系統(tǒng)中軟件設(shè)計占有很重要的地位。它不僅要處理光電傳感信號,發(fā)出步進電機的控制信號,還要保持和上位機的通訊。因此系統(tǒng)軟件的好壞直接決定著系統(tǒng)的功能和穩(wěn)定。本設(shè)計采用KeilC51設(shè)計,軟件包括:主程序模塊、光電跟蹤子程序、視日運動跟蹤子程序和RS232通訊模塊等。單片機首先與電腦通訊將以當?shù)乩硇畔⒌臑樽兞康臄?shù)表下載到EEPROM中,系統(tǒng)初始化完成。然后根據(jù)主程序,分別進入光電跟蹤和程序跟蹤模式。光電跟蹤模式下,單片機根據(jù)光電傳感器的信號輸入,獲取光照強度,東西,南北光強差信號等信息,控制信號輸出;程序跟蹤模式下,單片機根據(jù)上位機通過RS232傳輸?shù)臄?shù)表即EEPROM中的數(shù)表,控制信號輸出。本設(shè)計系統(tǒng)軟件主程序流程圖如圖5.1所示,光電跟蹤子程序流程圖如圖5.3所示,視日運動跟蹤程序流程圖如圖5.2所示。 軟件關(guān)鍵模塊設(shè)計串口通訊程序是系統(tǒng)軟件很重要的一部分。根據(jù)上位機傳送的指令信號即寫入命令,然后將以確定地理參數(shù)所對應(yīng)的數(shù)表通過單片機下載到EEPROM中。通訊程序如下:voidEsisr()interrupt/*串口接收中斷服務(wù)程序*/{unsignedchartemp;ES=0;if(RI==1){RI=0;temp=SBUF;/*接收數(shù)據(jù)*/}ES=1;}voidinitializtion(uintaddr)/*EEPROM初始化(EEPROM擦出程序)*/{uintAddr;Addr=(addr&0xfe00);/*取地址*/ISP_ADDRH=(uchar)(Addr>>8);ISP_ADDRL=0x00;ISP_CMD =ISP_CMD&0xf8; /*清空低3位*/ISP_CMD =ISP_CMD|EraseCommand;/*擦除命令3*/ISPgoon();/*觸發(fā)執(zhí)行 */ISP_IAP_disable();/*關(guān)閉ISP,IAP功能*/}

voidISP_IAP_enable(void)/*打開ISP,IAP功能*/{EA =0;/*關(guān)中斷 */ISP_CONTR= ISP_CONTR&0x18;/*0001,1000 */ISP_CONTR= ISP_CONTR|WaitTime; /*寫入硬件延時 */ISP_CONTR= ISP_CONTR|0x80;/*ISPEN=1*/}voidISP_IAP_disable(void)/*關(guān)閉ISP,IAP功能*/{ISP_CONTR=ISP_CONTR&0x7f;/*ISPEN=0*/ISP_TRIG= 0x00;EA =1; /*開中斷*/}voidISPgoon(void){ISP_IAP_enable();/*打開ISP,IAP功能 */ISP_TRIG =0x46;/*觸發(fā)ISP_IAP命令字節(jié)1 */ISP_TRIG=0xb9;/*觸發(fā)ISP_IAP命令字節(jié)2*/_nop_();}ucharbyte_read(uintbyte_addr)/*字節(jié)寫 */{ISP_ADDRH=(uchar)(byte_addr>>8);/*地址賦值 */ISP_ADDRL=(uchar)(byte_addr&0x00ff);ISP_CMD=ISP_CMD &0xf8; /*清除低3位*/ISP_CMD=ISP_CMD |RdCommand;/*寫入讀命令 */ISPgoon();/*觸發(fā)執(zhí)行 */ISP_IAP_disable();/*關(guān)閉ISP,IAP功能*/return(ISP_DATA);/*返回讀到的數(shù)據(jù) */}byte_write(addr,temp);/*調(diào)用ISP寫函數(shù)*/addr++;}ucharbyte_read(uintbyte_addr){ISP_ADDRH=(uchar)(byte_addr>>8);/*地址賦值 */ISP_ADDRL=(uchar)(byte_addr&0x00ff);ISP_CMD=ISP_CMD &0xf8; /*清除低3位*/ISP_CMD=ISP_CMD |RdCommand;/*寫入讀命令*/ISPgoon();/*觸發(fā)執(zhí)行 */ISP_IAP_disable();/*關(guān)閉ISP,IAP功能*/return(ISP_DATA);/*返回讀到的數(shù)據(jù) */程序設(shè)計要點及注意事項KeilC51程序的一般結(jié)構(gòu)與標準C語言相同,KeilC51程序由一個或多個函數(shù)構(gòu)成,其中應(yīng)至少包含一個main函數(shù)。C51與標準C的主要區(qū)別如下:(1)頭文件的差異。51系列單片機廠家有多個,它們的差異在于內(nèi)部資源如定時器、中斷、I/O等數(shù)量以及功能的不同,KeilC51系列的頭文件集中體現(xiàn)了各系列芯片的不同資源及功能。(2)數(shù)據(jù)類型的不同。51系列單片機包含位操作空間和豐富的位操作指令,KeilC51與ANSIC相比又擴展了4種類型,以便能夠靈活地進行操作。(3)數(shù)據(jù)存儲類型的不同。C語言最初是為通用計算機設(shè)計的,在通用計算機中只有一個程序和數(shù)據(jù)統(tǒng)一尋址的內(nèi)存空間,而51系列單片機有片內(nèi)、外程序存儲器,還有片內(nèi)、外數(shù)據(jù)存儲器。標準C并沒有提供這部分存儲器的地址范圍的定義。此外,對于STC12C5A60S2(4)標準C語言沒有處理單片機中斷的定義。KeilC51與標準C的庫函數(shù)有較大的不同:由于標準C的中的部分庫函數(shù)不適于嵌入式處理器系統(tǒng),因此被排除在KeilC51之外,如字符屏幕和圖形函數(shù)。有一些庫函數(shù)可以繼續(xù)使用,但這些庫函數(shù)都必須針對51單片機的硬件特點來作出相應(yīng)的開發(fā),與標準C庫函數(shù)的構(gòu)成與用法有很大的不同。例如庫函數(shù)printf和scanf,在標準C中,這兩個函數(shù)通常用于屏幕打印和接收字符,而在KeilC51中,它們主要用于串行口數(shù)據(jù)的收發(fā)。(6)程序結(jié)構(gòu)的差異。由于51單片機的硬件資源有限,它的編譯系統(tǒng)不允許太多的程序嵌套。其次,標準C所具備的遞歸特性不被KeilC51支持,在C51中,要使用遞歸特性,必須用reentrant進行聲明才能使用。在C51語言程序中,有可能會出現(xiàn)在運算中數(shù)據(jù)類型不一致的情況。C51允許任何標準數(shù)據(jù)類型的隱式轉(zhuǎn)換。隱式轉(zhuǎn)換的優(yōu)先級順序如下:Bit→char→int→long→float→signed→unsigned也就是說,當char型與int型進行運算時,先自動對char型擴展為int型,然后與int型進行運算,運算結(jié)果為int型。C51除了支持隱式類型轉(zhuǎn)換外,還可以通過強制類型轉(zhuǎn)換符“()”對數(shù)據(jù)類型進行人為的強制轉(zhuǎn)換。變量的數(shù)據(jù)類型選擇的基本原則:若能預(yù)算出變量的變化范圍,可根據(jù)變量長度來選擇變量的類型,并盡量減少變量的長度。如果程序中不需使用負數(shù),則選擇無符號數(shù)類型的變量。若果程序中不需使用浮點數(shù),則要避免使用浮點數(shù)變量。KeilC51的使用技巧:1)使用短型變量一個提高代碼效率的最基本的方式就是減小變量的長度。使用C語言編程時若對循環(huán)控制變量使用int類型,int型數(shù)據(jù)為16位,這對8位單片機來說是一種極大的浪費。如果使用unsignedchar型的變量,它只使用一字節(jié)(8位)。2)使用無符號類型由于51單片機不支持符號運算,所以程序中也不要使用帶符號型變量的外部代碼。除了根據(jù)變量長度來選擇變量類型外,還要考慮變量是否會出現(xiàn)負數(shù),如果程序中不需要負數(shù),就可以把變量都聲明成無符號類的。3)使用位變量對于某些標志位,應(yīng)使用位變量而不是unsingnedchar型變量,這將節(jié)省7位存儲區(qū),節(jié)省內(nèi)存,而且在RAM中訪問位變量只需要一個處理周期。4)用局部變量代替全局變量把變量聲明成局部變量比聲明成全局變量更有效,因為編譯器在內(nèi)部存儲區(qū)中為局部變量分配存儲空間,而在外部存儲區(qū)中為全局變量分配存儲空間,這會降低訪問全局變量的速度。5)為變量分配內(nèi)部存儲區(qū)經(jīng)常使用的變量防在內(nèi)部RAM中時,可使程序執(zhí)行的速度得到提高。除此之外,這樣做還縮短了代碼,因為寫外部存儲區(qū)尋址的指令相對要麻煩一些,考慮到存儲速度,一般按下面的順序使用存儲器,既DATA,IDATA,PDATA,XDATA,同時要留出足夠的堆??臻g。6)使用特定指針在程序中使用指針時,應(yīng)指定指針的類型,確定他們指向哪個區(qū)域,如XDATA或CODE區(qū),這樣編譯器就不必去確定指針所指向的存儲區(qū),所以代碼也會更加緊湊。7)使用宏替代函數(shù)對小段代碼,像使用某些電路或從鎖存器中讀取數(shù)據(jù),可通過宏來替代函數(shù),以使程序有更好的可讀性。也可以把代碼聲明在宏中,這樣看上去更像函數(shù)。編譯器在碰到宏時,按照事先聲明好的代碼去替代宏。宏的名字應(yīng)能夠描述宏的操作。當需要改變宏時,只要在宏的聲明處修改即可。C51的擴展數(shù)據(jù)類型(1)位變量bit;bit的值可以是1(true),也可以是0(false)。所有的bit變量放在80C51內(nèi)部數(shù)據(jù)存儲區(qū)的(20H~2FH)位段。因為這個區(qū)域只有16個字節(jié)長,所以在某個范圍內(nèi)最多只能定義128個位變量。在格式中可以加上各種修飾,但注意存儲器類型只能是bdata、data、idata。只能是片內(nèi)RAM的可位尋址區(qū),嚴格來說只能是bdata。(2)特殊功能寄存器sfrSTC12C5A60S2特殊功能寄存器在片內(nèi)RAM區(qū)的80H~FFH之間,“sfr”數(shù)據(jù)類型占用一個內(nèi)存單元。利用它可訪問AT89C例如:sfrP1=0x90這一語句定義P1口在片內(nèi)的寄存器,在后面語句中可用“P1=0xff”(使P1的所有引腳輸出為高電平)之類的語句來操作特殊功能寄存器。在等號(賦值號)的右邊指定的地址必須是一個常數(shù),不允許用帶操作數(shù)的表達式。80C51系列支持SFR的地址范圍為:0x80~0xFF。(3)特殊功能寄存器sfr16“sfr16”數(shù)據(jù)類型占用兩個內(nèi)存單元。sfr16和sfr一樣用于操作特殊功能寄存器。所不同的是它用于操作占兩個字節(jié)的特殊功能寄存器。(4)特殊功能位sbitsbit是指STC12C5A60S2sfrPSW=0xd0 ;/*定義PSW寄存器地址為0xd0*/sbitPSW^2=0xd2 ;/*定義OV位為PSW.2*/符號“^”前面是特殊功能寄存器的名字,“^”的后面數(shù)字定義特殊功能寄存器可尋址位在寄存器中的位置,取值必須是0~7。程序中的注釋內(nèi)容,修改時間和作者,方便理解的注釋等。注釋內(nèi)容應(yīng)簡練,清楚,明了,對一目了然的語句不加注釋。2、命名:命名必須具有一定的實際意義。1.宏和常量的命名。宏和常量的命名規(guī)則:單詞的字母全部大寫,各單詞之間用下劃線隔開。實驗及結(jié)論本文設(shè)計的太陽能跟蹤系統(tǒng),系統(tǒng)通過RS232模塊串行接口,控制數(shù)表寫入EEPROM中,然后通過單片機從數(shù)表中讀出數(shù)據(jù),控制步進電機的轉(zhuǎn)動。針對該測試系統(tǒng),進行了電機轉(zhuǎn)動測試實驗。測試數(shù)據(jù)一部分(電機轉(zhuǎn)動角度)如表所示。實驗結(jié)果表明,本文設(shè)計的跟蹤器,可以實現(xiàn)準確的角度輸出,輸出信號的可以通過電腦通訊改變。電機轉(zhuǎn)動角度還要經(jīng)過減速機構(gòu)減速比30:1所以電機的轉(zhuǎn)動角度與電池板角度有30倍的關(guān)系。角度誤差小于1%。系統(tǒng)具有精度高控制靈活等優(yōu)點,能夠滿足設(shè)計要求。序號時間理論角度實測角度高度角偏差角度V3與V4電壓差電機轉(zhuǎn)動角度16:0011°10°0.2°0.1V5°26:3017°18°0.3°0.15V9°37:0023°22°0.3°0.15V9°47:3028°28°0.2°0.1V5°58:0034°33°0.5°0.25V14°68:3040°40°0.8°0.4V24°79:0045°45°0.4°0.2V12°89:3051°53°0.6°0.24V19°910:0056°57°1°0.4V33°圖6.16月1日太陽高度角實驗數(shù)據(jù)表總結(jié)及展望總結(jié)本文的主要工作總結(jié)如下:(1)詳細分析比較了常見太陽追蹤方式,確立了視日運動軌跡跟蹤和光強跟蹤相結(jié)合的二級跟蹤方法;(2)對目前常用的控制器進行了分析對比,考慮到系統(tǒng)成本及采用跟蹤系統(tǒng)的意義,采用單片機作為主控制芯片。結(jié)合本文提出的跟蹤方法,進行了硬件的總體設(shè)計和各個模塊的電路設(shè)計,實現(xiàn)了光電跟蹤和視日運行軌跡跟蹤的有效結(jié)合。(3)對自動跟蹤裝置控制系統(tǒng)的軟件進行了設(shè)計。按照已提出的跟蹤策略,設(shè)計了光電跟蹤和視日運動軌跡跟蹤模塊軟件流程。本設(shè)計提出的基于STC12C5A60S2單片機的太陽能電池板自動跟蹤系統(tǒng),集計算機測控技術(shù)、大規(guī)模集成電路技術(shù)于一體,系統(tǒng)具有精度高、控制靈活、成本低廉、性能穩(wěn)定可靠等特點。本設(shè)計的創(chuàng)新點在于,充分結(jié)合硬件、軟件的優(yōu)勢,設(shè)計并實現(xiàn)了一種高精度、抗干擾能力強的跟蹤系統(tǒng)?;谖逑笙薰饷魝鞲衅骱统绦驍?shù)據(jù)可調(diào)的跟蹤系統(tǒng),結(jié)果顯示系統(tǒng)軟硬件電路設(shè)計的正確性和可靠性。展望由于本系統(tǒng)的實現(xiàn)技術(shù)要求比較高,而且課題研究的時間倉促,以及本人能力有限,因此還有很多地方需要進一步研究:(1)自動跟蹤控制部分只做了簡單的設(shè)計,基本完成了自動跟蹤的功能,但是仍舊需要更精細的設(shè)計,更加完善的控制系統(tǒng);(2)由于氣象資料和環(huán)境條件的限制,光強檢測實驗還不充分,需要進一步的完善;(3)粗跟蹤所需的數(shù)表還需細化及設(shè)備要求還有待優(yōu)化。附錄控制板原理圖部分數(shù)據(jù)結(jié)構(gòu)1月1日高度角及方位角數(shù)據(jù)結(jié)構(gòu)字節(jié)數(shù)據(jù)時間段高度角方位角符號0(+),1(-)方位角大小BYTE1~30°(00H)0(00H)0°(00H)6:00BYTE4~60°(00H)0(00H)0°(00H)6:30BYTE7~90°(00H)0(00H)0°(00H)7:00BYTE10~120°(00H)0(00H)0°(00H)7:30BYTE13~153°(03H)1(01H)56°(38H)8:00BYTE16~188°(08H)1(01H)51°(33H)8:30BYTE19~2112°(0CH)1(01H)45°(2DH)9:00BYTE22~2416°(10H)1(01H)39°(27H)9:30BYTE25~2719°(13H)1(01H)33°(21H)10:00BYTE28~3022°(16H)1(01H)27°(1BH)10:30BYTE31~3324°(18H)1(01H)19°(13H)11:00BYTE34~3626°(1AH)1(01H)12°(0CH)11:30BYTE37~3927°(1BH)1(01H)4°(04H)12:00BYTE40~4227°(1BH)0(00H)3°(03H)12:30BYTE43~4526°(1AH)0(00H)11°(0BH)13:00BYTE46~4825°(19H)0(00H)18°(12H)13:30BYTE49~5122°(16H)0(00H)25°(19H)14:00BYTE52~5420°(14H)0(00H)32°(20H)14:30BYTE55~5716°(10H)0(00H)38°(28H)15:00BYTE58~6013°(0DH)0(00H)44°(2CH)15:30BYTE61~638°(08H)0(00H)50°(32H)16:00BYTE64~664°(04H)0(00H)55°(37H)16:30BYTE67~690°(00H)0(00H)60°(3CH)17:00BYTE70~720°(00H)0(00H)0°(00H)17:30BYTE73~750°(00H)0(00H)0°(00H)18:00BYTE76~780°(00H)0(00H)0°(00H)18:30BYTE79~810°(00H)0(00H)0°(00H)19:00BYTE82~84BYTE85~87BYTE88~901月2日高度角及方位角數(shù)據(jù)結(jié)構(gòu)字節(jié)數(shù)據(jù)時間段高度角方位角符號0(+),1(-)方位角大小BYTE1~30°(00H)0(00H)0°(00H)6:00BYTE4~60°(00H)0(00H)0°(00H)6:30BYTE7~90°(00H)0(00H)0°(00H)7:00BYTE10~120°(00H)0(00H)0°(00H)7:30BYTE13~153°(03H)1(01H)56°(38H)8:00BYTE16~188°(08H)1(01H)51°(33H)8:30BYTE19~2112°(0CH)1(01H)45°(2DH)9:00BYTE22~2416°(10H)1(01H)40°(28H)9:30BYTE25~2719°(13H)1(01H)33°(21H)10:00BYTE28~3022°(16H)1(01H)27°(1BH)10:30BYTE31~3324°(18H)1(01H)20°(14H)11:00BYTE34~3626°(1AH)1(01H)12°(0CH)11:30BYTE37~3927°(1BH)1(01H)4°(04H)12:00BYTE40~4227°(1BH)0(00H)3°(03H)12:30BYTE43~4526°(1AH)0(00H)10°(0AH)13:00BYTE46~4825°(19H)0(00H)18°(12H)13:30BYTE49~5123°(17H)0(00H)25°(19H)14:00BYTE52~5420°(14H)0(00H)32°(20H)14:30BYTE55~5716°(10H)0(00H)38°(28H)15:00BYTE58~6013°(0DH)0(00H)44°(2CH)15:30BYTE61~638°(08H)0(00H)50°(32H)16:00BYTE64~664°(04H)0(00H)55°(37H)16:30BYTE67~690°(00H)0(00H)60°(3CH)17:00BYTE70~720°(00H)0(00H)0°(00H)17:30BYTE73~750°(00H)0(00H)0°(00H)18:00BYTE76~780°(00H)0(00H)0°(00H)18:30BYTE79~810°(00H)0(00H)0°(00H)19:00BYTE82~84BYTE85~87BYTE88~906月1日高度角及方位角數(shù)據(jù)結(jié)構(gòu)字節(jié)數(shù)據(jù)時間段高度角方位角符號0(+),1(-)方位角大小BYTE1~311°(0BH)1(01H)108°(6CH)6:00BYTE4~617°(11H)1(01H)104°(68H)6:30BYTE7~923°(17H)1(01H)100°(64H)7:00BYTE10~1228°(1CH)1(01H)95°(5FH)7:30BYTE13~1534°(22H)1(01H)91°(5BH)8:00BYTE16~1840°(28H)1(01H)86°(56H)8:30BYTE19~2145°(2DH)1(01H)81°51H)9:00BYTE22~2451°(33H)1(01H)74°(4AH)9:30BYTE25~2756°(38H)1(01H)67°(43H)10:00BYTE28~3062°(3EH)1(01H)58°(3AH)10:30BYTE31~3366°(42H)1(01H)46°(2EH)11:00BYTE34~3670°(46H)1(01H)29°(1DH)11:30BYTE37~3972°(48H)1(01H)9°(09H)12:00BYTE40~4271°(47H)0(00H)13°(0DH)12:30BYTE43~4569°(45H)0(00H)33°(21H)13:00BYTE46~4865°(41H)0(00H)48°(30H)13:30BYTE49~5161°(3DH)0(00H)60°(3CH)14:00BYTE52~5455°(37H)0(00H)69°(45H)14:30BYTE55~5750°(32H)0(00H)76°(4CH)15:00BYTE58~6044°(2CH)0(00H)82°(52H)15:30BYTE61~6339°(27H)0(00H)87°(57H)16:00BYTE64~6633°(21H)0(00H)92°(5CH)16:30BYTE67~6927°(1BH)0(00H)96°(60H)17:00BYTE70~7222°(16H)0(00H)101°(65H)17:30BYTE73~7516°(10H)0(00H)105°(69H)18:00BYTE76~7811°(0BH)0(00H)110°(6EH)18:30BYTE79~815°(05H)0(00H)114° (73H)19:00BYTE82~84BYTE85~87BYTE88~90部分軟件代碼#include<c:\ProgramFiles\Keil\C51\INC\reg51.h>#include<c:\ProgramFiles\Keil\C51\INC\intrins.h>#defineFILTERNUM3//定義AD采樣濾波次數(shù)typedefunsignedcharBYTE;typedefunsignedintWORD;/*DeclareSFRassociatedwiththeADC*/sfrADC_CONTR=0xBC;//ADCcontrolregistersfrADC_RES=0xBD;//ADChigh2-bitresultregistersfrADC_RESL=0xBE;//ADClow8-bitresultregistersfrP1ASF=0x9D;//P1secondaryfunctioncontrolregistersfrAUXR1=0xA2;//ADresult格式調(diào)整/*DefineADCoperationconstforADC_CONTR*/#defineADC_POWER0x80//ADCpowercontrolbit#defineADC_FLAG0x10//ADCcompleteflag#defineADC_START0x08//ADCstartcontrolbit#defineADC_SPEEDLL0x00//540clocks#defineADC_SPEEDL0x20//360clocks#defineADC_SPEEDH0x40//180clocks#defineADC_SPEEDHH0x60//90clocksvoidDelay(WORDn);voidInitADC();WORDGetADCResult(BYTEchnum);voidADCFilter();voidInitData();voidwatch_dog();//ADC變量定義BYTEi,j;BYTEch;//ADCchannelNO.BYTEfilter;//濾波變量WORDADTotal[8];//AD濾波數(shù)組WORDADTemp[8];//SaveADtempvalueWORDtempvalue;//BYTEADValue[8];//AD采樣值,放大50倍longinttemp;BYTEBoardNum;//板號WORDdog_count;voidmain(){InitData();InitADC();//InitADCsfrfor(;;){ADCFilter(); for(i=0;i<8;i++) { ADValue[i]=((ADTemp[i]*25)/ADTemp[7])*5; temp=(longint)ADTemp[i]*125; rs1_send[i+1]=(BYTE)(temp/ADTemp[7]); } watch_dog(); Delay(200);}}/*InitialADCsfr*/voidInitADC(){AUXR1|=0x04;//ADRJ=1P1ASF=0xff;//SetallP1asanaloginputportADC_RES=0;//ClearpreviousresultADC_RESL=0;ADC_CONTR=ADC_POWER|ADC_SPEEDLL;Delay(2);//ADCpower-ondelay}/*GetADCresult*/WORDGetADCResult(BYTEchnum){ADC_CONTR=ADC_POWER|ADC_SPEEDLL|chnum|ADC_START;_nop_();_nop_();_nop_();_nop_();while(!(ADC_CONTR&ADC_FLAG));//WaitcompleteflagADC_CONTR&=~ADC_FLAG;//CloseADCtempvalue=256*(ADC_RES&0x03)+ADC_RESL;return(tempvalue);}/*ADCResultfilter<=50*/voidADCFilter(){for(ch=0;ch<8;ch++){for(filter=0;filter<FILTERNUM;filter++){ ADTotal[ch]+=GetADCResult(ch);Delay(20);}ADTemp[ch]=ADTotal[ch]/FILTERNUM;ADTotal[ch]=0;}}voidInitData(){for(i=0;i<8;i++){ADTotal[i]=0; ADTemp[i]=0; //ADValue[i]=0;}BoardNum=P2&0x01;//P2.0獲取板號 dog_count=1;}voidwatch_dog(){ dog_count--;if(dog_count==0){ P3=P3^0x10; //P3.4運行燈控制dog_count=3000;}}/*Softwaredelayfunction*/voidDelay(WORDn){WORDx;while(n--){x=5000;while(x--);}}EEPROM的讀寫程序核心代碼voidinitializtion(uintaddr)//EEPROM初始化(EEPROM擦出程序){uintAddr;Addr=(addr&0xfe00);

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論