基于51單片機點光源自動跟蹤系統(tǒng)設計綜合設計報告_第1頁
基于51單片機點光源自動跟蹤系統(tǒng)設計綜合設計報告_第2頁
基于51單片機點光源自動跟蹤系統(tǒng)設計綜合設計報告_第3頁
基于51單片機點光源自動跟蹤系統(tǒng)設計綜合設計報告_第4頁
基于51單片機點光源自動跟蹤系統(tǒng)設計綜合設計報告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、指導教師評定成績: 審定成績: 重 慶 郵 電 大 學自 動 化 學 院綜合設計報告 設計題目:基于單片機的光源自適應控制系統(tǒng)設計單位(二級學院): 自 動 化 學 院 專 業(yè): 自 動 化 設計時間: 2012 年 10 月重慶郵電學院自動化學院制摘 要本設計給出了一種基于單片機的點光源自動跟蹤系統(tǒng)設計方案, 該設計使用ti公司的超低功耗的at89c52單片機作為整個系統(tǒng)的控制核心,主要由電機驅(qū)動模塊,點光源檢測模塊,電源轉換模塊等模塊組成。利用8路光敏電阻來檢測點光源的位置并將檢測到的信號經(jīng)過放大后進行ad轉換,將轉換的結果傳給控制器at89c52單片機,經(jīng)過過單片機的運算和處理來確定點光

2、源的運動趨勢,并將運算的控制信號控制兩臺步進電機,使其跟隨點光源運動。本設計可以擴展為以后的太陽能發(fā)電的自動跟蹤系統(tǒng)。該系統(tǒng)不僅能自動根據(jù)太陽光方向來調(diào)整太陽能電池板朝向, 結構簡單、成本低, 而且在跟蹤過程中能自動記憶和更正不同時間的坐標位置, 不必人工干預, 特別適合天氣變化比較復雜和無人值守的情況, 有效地提高了太陽能的利用率, 有較好的推廣應用價值。關鍵詞:at89c52單片機,光源,自動跟蹤,傳感器 目 錄摘要錯誤!未定義書簽。目錄3一 設計題目41.1 基于單片機的光源自適應控制系統(tǒng)設計41.2 設計要求4二 設計報告正文52.1 設計方案總體方向的選擇5 2.1.1 系統(tǒng)方案的擬

3、定5 2.1.2 方案選擇52.2 硬件電路的設計62.2.1 a/d轉換模塊6 2.2.2 步進電機模塊9 2.2.3 電機驅(qū)動模塊11 2.2.4 檢測模塊13 2.2.5 單片機模塊142.3 系統(tǒng)軟件設計18三 總體調(diào)試19 3.1 總體調(diào)試193.2 問題及解決方案19 3.2.1 通道比較閥值的設置19 3.2.2 電機的防抖19四 設計總結 20五 參考文獻21六 附錄221、 設計題目1.1基于單片機的光源自適應控制系統(tǒng)設計 設計一控制系統(tǒng),假設有一個太陽能電池板,為了使電池板最大限度的接受光照強度,通過控制器調(diào)節(jié)電池板的角度使電池板始終正對光線。采用步進電機作為角度調(diào)整裝置,

4、使系統(tǒng)能上下和左右旋轉。1.2設計要求1. 繪出電路原理圖;2. 制作電路圖;3. 編寫程序;4. 調(diào)試運行。 2、 設計報告正文2.1設計方案的選擇2.1.1系統(tǒng)方案的擬定1. 方案一 本方案是由檢測電路、at89c52單片機、時鐘電路、a/d轉換控制電路等主要模塊組成。傳感器部分采用光敏二極管,將光信號變換為電信號。經(jīng)過a/d轉換將其轉化離散的數(shù)字信號??刂齐娐芬詥纹瑱C為核心,能夠?qū)Σ杉臄?shù)字信號進行處理和判斷,控制電機運轉使太陽能板正對光線。2. 方案二 本方案用以單片機stc12c5a60s2為核心,光強度檢測模塊,時鐘模塊,步進電機控制電路模塊和12864液晶顯示等主要模塊組成。傳感

5、器采用光敏電阻,stc12c5a6s2單片機自帶10位a/d,能夠識別模擬信號??刂齐娐芬詥纹瑱C為核心,能夠?qū)Σ杉哪M信號進行處理和判斷對步進電機實現(xiàn)控制。2.1.2方案選擇 比較以上兩方案可知,系統(tǒng)的工作原理是一致的,都是通過傳感器采集太陽光并間接或直接將其轉化成單片機能夠識別的信號,通過單片機處理信號并進行判斷,步進電機控制電路根據(jù)單片機傳出的信號轉動。所不同的是采用元器件差異,但從單片機方面考慮,方案一所使用的傳統(tǒng)的單片機器件方案二所使用的系列成本低。根據(jù)實際情況方案一的元器件基本都是簡單易上手的器件,運用起來比較靈活,原理簡單容易理解方便寫程序代碼。綜合考慮,最后確定選擇方案一。 系

6、統(tǒng)組成及工作原理以單片機為控制核心,采用光強度檢測電路測量,以光敏電阻傳感器作為測量元件,構成光電測量模塊。該系統(tǒng)可分為電源模塊電路、光電測量電路、時鐘電路、步進電機控制電路、單片機、a/d轉換電路。選用的主要器件有:光敏電阻,時鐘芯片74ls74,at89c52,步進電機與轉換芯片adc0809等。 系統(tǒng)設計框圖如圖2-1所示。 圖2-1 系統(tǒng)設計框圖2.2硬件電路的設計2.2.1 ad轉換模塊1.adc0809的內(nèi)部邏輯結構 adc0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個a/d轉換器和一個三態(tài)輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用a/d轉換器

7、進行轉換。三態(tài)輸出鎖器用于鎖存a/d轉換完的數(shù)字量,當oe端為高電平時,才可以從三態(tài)輸出鎖存器取走轉換完的數(shù)據(jù)。2.adc0809引腳結構 adc0809各腳功能如下: d7-d0:8位數(shù)字量輸出引腳。 in0-in7:8位模擬量輸入引腳。 vcc:+5v工作電壓。 gnd:地。 ref(+):參考電壓正端。 ref(-):參考電壓負端。 start:a/d轉換啟動信號輸入端。 ale:地址鎖存允許信號輸入端。 (以上兩種信號用于啟動a/d轉換). eoc:轉換結束信號輸出引腳,開始轉換時為低電平,當轉換結束時為高電平。 oe:輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。 clk:時鐘信號輸入

8、端(一般為500khz)。 a、b、c:地址輸入線。如圖2-2所示圖2-2實物圖和管腳圖 adc0809對輸入模擬量要求:信號單極性,電壓范圍是05v,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 地址輸入和控制線:4條 ale為地址鎖存允許輸入線,高電平有效。當ale線為高電平時,地址鎖存與譯碼器將a,b,c三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進入轉換器進行轉換。a,b和c用于選通in0in7上的一路模擬量輸入。通道選擇表如表2-1所示。 數(shù)字量輸出及控制線:11條 st為轉換啟動信號。當st上跳沿時

9、,所有內(nèi)部寄存器清零;下跳沿時,開始進行a/d轉換;在轉換期間,st應保持低電平。eoc為轉換結束信號。當eoc為高電平時,表明轉換結束;否則,表明正在進行a/d轉換。oe為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉換得到的數(shù)據(jù)。oe1,輸出轉換得到的數(shù)據(jù);oe0,輸出數(shù)據(jù)線呈高阻狀態(tài)。d7d0為數(shù)字量輸出線。 clk為時鐘輸入信號線。因adc0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500khz,vref(),vref()為參考電壓輸入。 表2-1輸入通道 3.adc0809應用說明 1)adc0809內(nèi)部帶有輸出鎖存器,可以與at89s51單片機直接相連

10、。 2)初始化時,使st和oe信號全為低電平。 3)要轉換的哪一通道的地址到a,b,c端口上。 4)在st端給出一個至少有100ns寬的正脈沖信號。 5)是否轉換完畢,我們根據(jù)eoc信號來判斷。 6)當eoc變?yōu)楦唠娖綍r,這時給oe為高電平,轉換的數(shù)據(jù)就輸出給單片機了。圖2-3 adc0809連接圖 如圖2-3所示,in0-in7分別與8個檢測單元連接,d0-d7管腳接在單片機1的p3口,st管腳于單片機1的p1.2連接,oe、eoc分別與p1.0、p1.1連接,a、b和c與p1.4-p1.6連接,clk接外部時鐘電路,11、12管腳接vcc,13、16管腳接地。2.2.2 步進電機模塊 1.

11、 驅(qū)動方法及主要參數(shù)如表2-2、表2-3所示:表2-2驅(qū)動方式(4-1-2相驅(qū)動)導線顏色123456786紅+4橙-3黃-2粉-1藍-表2-3主要技術參數(shù)電機型號電壓v相數(shù)步距角度減速比28byj-48545.625/641:642.步進電機的主要特性:1) 步進電機必須加驅(qū)動才可以運轉, 驅(qū)動信號必須為脈沖信號,沒有脈沖的時候,步進電機靜止, 如果加入適當?shù)拿}沖信號, 就會以一定的角度(稱為步角)轉動。轉動的速度和脈沖的頻率成正比。2)28byj48是減速步進電機,減速比為1:64,步進角為5.625/64度。如果需要轉動1圈,那么需要360/5.625*64=4096個脈沖信號。3) 步

12、進電機具有瞬間啟動和急速停止的優(yōu)越特性。4)改變脈沖的順序, 可以方便的改變轉動的方向。 電機線圈由四相組成,即a、b、c、d四相,電機示意圖和各線圈通電順序圖2-4和表2-4所示: 圖2-4步進電機原理圖 表2-4 各線圈通電順序相順序1234561001110210011131110114111100 相順序從0到1稱為一步,電機軸將轉過5.625度,四相四拍為0-1-2-3則稱為通電一周,若循環(huán)進行這種通電一周的操作,電機便連續(xù)的轉動起來,而進行相反的通電順序如3-2-1-0將使電機同速反轉。同理四相八拍的通電順序為a-ab-b-bc-c-cd-d-da-a(本設計用的是四相八拍)。通電

13、一周的周期越短,即驅(qū)動頻率越高,則電機轉速越快,但步進電機的轉速也不可能太快,因為它每走一步需要一定的時間,若信號頻率過高,可能導致電機失步,甚至只在原步顫動。圖2-5 水平方向步進電機電路連接圖2-6 豎直方向步進電機電路連接2.2.3電機驅(qū)動模塊 本設計采用51單片機at89c52(晶振頻率為11.0592mhz)對該四線八相制步進電機進行控制。通過i/o口輸出的具有時序的方波作為步進電機的控制信號,信號經(jīng)過特定芯片驅(qū)動步進電機。本文選用uln2003構成步進電機的驅(qū)動電路,下面但見介紹下uln2003的結構和特點: uln2003 是高耐壓、大電流達林頓陳列,由七個硅npn 達林頓管組成

14、。該電路的特點如下: uln2003 的每一對達林頓都串聯(lián)一個2.7k 的基極電阻,在5v 的工作電壓下它能與ttl 和cmos 電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數(shù)據(jù)。uln2003 工作電壓高,工作電流大,灌電流可達500ma,并且能夠在關態(tài)時承受50v 的電壓,輸出還可以在高負載電流并行運行。uln2003 采用dip16 塑料封裝。uln2003方框圖如圖2-7所示。uln2003和at89c52構成的驅(qū)動電路如圖2-8所示。 圖2-7 uln2003內(nèi)部方框圖圖2-8 uln2003和at89c52構成的驅(qū)動電路2.2.4檢測模塊:光敏電阻的分布如圖2-9所示:

15、 圖2-9 光敏電阻分布圖 比較控制式太陽跟蹤裝置。設置一個直筒形外殼,在直筒外部,東、南、西、北四個方向上分別布置4只光電阻;其中一對光電阻(pi,p3)東西對稱安裝在直筒的兩側,用來粗略的檢測太陽由東往西運動的偏轉角度即方位角;另一對光電阻(pz,p4)南北對稱安裝在直筒的兩側,用來粗略檢測太陽的視高度即高度角;在直筒內(nèi)部,東、南、西、北四個方向上也分別布置4只光電阻;其中一對光電阻(ps,p7)東西對稱安裝在直筒的內(nèi)側,用來精確檢測太陽由東往西運動的偏轉角度;另一對光電阻(p6,ps)南北對稱安裝在直筒的內(nèi)側,用來精確檢測太陽的視高度。其電路圖如如2-10所示。圖2-10檢測電路2.2.

16、5單片機模塊1.at89c52的內(nèi)部結構和引腳 at89c52是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外部中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,at89c52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和flash存儲器結合在一起,特別是可反復擦寫的flash存儲器可有效地降低開發(fā)成本。管腳說明如下: vcc:電源。 gnd:地。 p0 口:p0 口是一個8 位漏極開路的雙向i/o 口。作為輸出口,每位能驅(qū)動8 個ttl邏輯電平。對p0 端口寫“1”時,引腳用做高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,p0

17、口也被作為低8 位地址/數(shù)據(jù)復用。在這種模式下,p0 具有內(nèi)部上拉電阻。在flash編程時,p0 口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。在程序校驗時,需要外部上拉電阻。 p1 口:p1 口是一個具有內(nèi)部上拉電阻的8 位雙向i/o 口,p1 輸出緩沖器能驅(qū)動4 個tt邏輯電平。當對p1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。當作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0 和p1.2 分別作為定時器/計數(shù)器2 的外部計數(shù)輸入(p1.0/t2)和定時器/計數(shù)器2的觸發(fā)輸入(p1.1/t2ex),在flash編程和校驗時

18、,p1口接收低8 位地址字節(jié)。 p2 口:p2 口是一個具有內(nèi)部上拉電阻的8 位雙向i/o 口,p2 輸出緩沖器能驅(qū)動4 個tt邏輯電平。對p2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。當作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。 p3 口:p3 口是一個具有內(nèi)部上拉電阻的8 位雙向i/o 口,p2 輸出緩沖器能驅(qū)動4 個tt邏輯電平。對p3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。當作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。p3口也可作為at89c52的一些特殊功能口,如下所示:

19、p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst: 復位輸入。在晶振工作時,rst腳持續(xù)兩個機器周期高電平將使單片機復位。看門狗計時完成后,rst腳輸出96個晶振周期的高電平。特殊寄存器auxr(地址8eh)上的disrto 位可以使此功能無效。在disrto 默認狀態(tài)下,復位高電平有效。 ale/

20、prog:地址鎖存控制信號(ale)在訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(prog)也用做編程輸入脈沖。 psen:外部程序存儲器選通信號(psen)是外部程序存儲器選通信號。當at89s52從外部程序存儲器執(zhí)行外部代碼時,psen 在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,psen將不被激活。 ea/vpp:訪問外部程序存儲器控制信號。為使能從0000h 到ffffh 的外部程序存儲器讀取指令,ea必須接gnd。為了執(zhí)行內(nèi)部程序指令,ea應該接vcc。在flash編程期間,ea也接收12伏vpp電壓。 xtal1:振蕩器反相放大器和內(nèi)部時鐘

21、發(fā)生電路的輸入端。 xtal2:振蕩器反相放大器的輸出端。 at89s52單片機引腳功能介紹(如圖2-11): 圖2-11 at89s52 dip封裝管腳分布圖2.單片機電路設計 單片機1通過與adc0809連接,接收adc0809轉換后的數(shù)據(jù)并對其作出判斷與比較,在p2口發(fā)出信號與單片機2通信。其電路連接圖如圖2-12所示:圖2-12 單片機1電路圖 單片機2通過接收單片機1的p2口發(fā)出的信號作出判斷控制水平與豎直方向上的電機運作以求太陽能板正對光線。其電路連接圖如圖2-13所示:圖2-13 單片機2電路圖3. 兩片單片機的通信 單片機1主要負責接收adc0809轉換后的數(shù)據(jù),并通過比較產(chǎn)生

22、控制信號并將信號發(fā)送給單片機2,而單片機2主要負責接收信號然后通過信號控制兩臺步進電機的運作從而達到實驗目的。兩片單片機的通信接口協(xié)議如表2-5所示: 表2-5單片機通信接線1接線2接線3單片機1p26p25p24單片機2p32p33p34 2.3系統(tǒng)軟件設計 本設計,程序采用c語言進行設計。程序中主要有以下幾個主要子程序:主程序,adc0809初始化、采集、轉換數(shù)據(jù)程序,電機驅(qū)動控制程序。程序源代碼見附錄。3、 總體調(diào)試3.1 軟硬件調(diào)試 硬件焊接及程序編寫完成后,在對整個系統(tǒng)調(diào)試的過程中,出現(xiàn)了電機不運轉等問題。主要通過單獨調(diào)試各個模塊及檢查相關硬件電路的焊接,找出問題所在,然后針對問題逐

23、個擊破,最后成功完成本設計。3.2 主要問題及解決方案3.2.1 通道比較閥值的設置 由于采用adc0809進行數(shù)模轉換,而在轉換過程中光敏電阻的采光是時時變化的,所以8個通道的數(shù)據(jù)比較過程會有一定波動,如不加閥值比較則會致使電機不停工作,最后太陽能板無法準確對光。 在閥值的選定上,通過實物測試,最后選定在+5(-5)。這個閥值既能數(shù)據(jù)比較的準確性又能保證電機的正常運轉。3.2.2電機的防抖 在最初程序編寫過程,由于沒考慮到檢測時候的延時及數(shù)據(jù)的波動,導致最初的太陽能板在最后對光時不停波動。后來通過程序延時的加入、數(shù)據(jù)比較時閥值的引入及實物測試終于使此問題得到改善,成功完成太陽能板的對光。4、

24、 設計總結 本次課程設計使我對設計一個完整的計算機控制系統(tǒng)有了更全面的體會,通過繪制電路原理圖,溫故了protel軟件,提高了我的動手設計能力。電路焊接過程中,通過每個對模塊的焊接和測試,極大地提高了我動手分析解決問題的能力。 本設計通過兩片at89c52分別控制數(shù)模轉換芯片adc0809與電機驅(qū)動控制芯片構成數(shù)據(jù)采集轉換電路與電機驅(qū)動控制電路實現(xiàn)光源的自適應控制。同時又利用單片機at89c52內(nèi)部計時器,節(jié)約了大量資源。但是,由于存在步進電機轉角度數(shù)精度不高、手工制作的實驗裝置的不規(guī)整等非線性、adc0809數(shù)據(jù)轉換不夠精確等問題,所以存在誤差,所以本設計還有待繼續(xù)研究和改進。 在本次課程設

25、計中,通過和隊員之間的合作,使得我們能順利完成設計任務,體會到了合作的力量,增強了我團隊合作意識,在方案選擇和電路原理圖的設計過程中,感謝老師的悉心指導,才能順利地完成設計,節(jié)省了很多時間來應付更大的障礙。特在此忠心感謝我的指導老師蔣建春老師!5、 參考文獻1 張毅剛.單片機原理及應用m.北京:高等教育出版社,2010.5.2 adc0809中文資料. 3 at89c52 中文資料. 4 uln2003中文資料. 6、 附錄1.系統(tǒng)整體電路圖優(yōu)酷視頻地址: 2.源程序1(數(shù)據(jù)采集)#include #define uint unsigned int#define uchar unsigned

26、charuchar code leddata=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code pip8 = 0x0f,0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,0x7f; /通道選擇uint buffer8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; /數(shù)據(jù)存放char charset10 = 0,1,2,3,4,5,6,7,8,9;sbit p25=p25;sbit p26=p26;sbit p24=p24;sbit oe = p10;sbit eoc = p11

27、;sbit st = p12;sbit clk = p33;uchar i=0;uchar s6 = |, ,=, , , ;void long_char(uchar l,char *s) *(s+3) = charsetl/100;*(s+4) = charsetl%100/10;*(s+5) = charsetl%10;void delayms(uint i) /延時imsuchar x,j;for(j=0;ji;j+)for(x=0;x=8)?0:i; oe = 0; if(buffer2buffer3+10) /通道比較 p26=1; p25=1; p24=1; else if(buffer2buffer3-10)&(buffer2buffer1+10) p26=0; p25=0; p24=1; else if(b

溫馨提示

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

最新文檔

評論

0/150

提交評論