電動(dòng)車翹翹板畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  前 言2</b></p><p>  第1章 任務(wù)要求3</p><p>  1.1 設(shè)計(jì)任務(wù)3</p><p>  1.2 設(shè)計(jì)要求4</p><p>  1.2.1 基本部分要求4

2、</p><p>  1.2.2 發(fā)揮部分要求4</p><p>  1.3 設(shè)計(jì)說明5</p><p>  第2章 方案論證5</p><p>  2.1 系統(tǒng)設(shè)計(jì)方案選擇與論證5</p><p>  2.1.1 電機(jī)方案的選擇與論證5</p><p>  2.1.2 尋

3、跡檢測(cè)電路方案的選擇與論證6</p><p>  2.1.3 平衡檢測(cè)電路方案的選擇與論證6</p><p>  2.1.4 平衡標(biāo)志方案的選擇與論證7</p><p>  2.1.5 顯示時(shí)間電路方案的選擇與論證7</p><p>  2.1.6 電源方案的選擇與論證8</p><p>  2.2

4、 系統(tǒng)電路組成及原理8</p><p>  第3章 系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)9</p><p>  3.1 單片機(jī)介紹9</p><p>  3.2 ADC0832數(shù)據(jù)讀取程序設(shè)計(jì)流程12</p><p>  3.3 尋找平衡子程序設(shè)計(jì)流程14</p><p>  3.4 T0中斷定時(shí)子程序流程圖16

5、</p><p>  3.5 LCD顯示子程序流程17</p><p>  3.6 主程序流程18</p><p>  第4章 系統(tǒng)測(cè)試及調(diào)試20</p><p>  4.1 系統(tǒng)測(cè)試20</p><p>  4.1.1 測(cè)試儀器20</p><p>  4.1.2 數(shù)據(jù)測(cè)

6、試20</p><p>  4.1.3 測(cè)試數(shù)據(jù)與結(jié)果分析21</p><p>  4.2 軟件調(diào)試21</p><p><b>  總結(jié)22</b></p><p><b>  致謝23</b></p><p><b>  參考文獻(xiàn)24</b

7、></p><p>  附錄1 硬件電路圖25</p><p>  附錄2 系統(tǒng)軟件設(shè)計(jì)清單26</p><p>  附錄3 英語(yǔ)原文40</p><p>  附錄4 中文翻譯43</p><p><b>  前 言</b></p><p>  隨著計(jì)

8、算機(jī)技術(shù)的飛速發(fā)展, 單片機(jī)已逐漸發(fā)展成為一門關(guān)鍵的技術(shù)學(xué)科。20 多年來, 高校單片機(jī)課程成了很多專業(yè)的必修課。該課程是一門應(yīng)用性很強(qiáng)的課程, 如何讓學(xué)生在學(xué)好基礎(chǔ)知識(shí)的同時(shí), 迅速掌握設(shè)計(jì)應(yīng)用技術(shù), 其中的實(shí)踐教學(xué)起著非常重要的作用。單片機(jī)實(shí)踐教學(xué)包括單片機(jī)基本理論實(shí)驗(yàn)、典型功能應(yīng)用實(shí)驗(yàn)(課程設(shè)計(jì)) 、應(yīng)用開發(fā)實(shí)驗(yàn)(畢業(yè)設(shè)計(jì)) 以及新技術(shù)使用實(shí)驗(yàn)等等多環(huán)節(jié)訓(xùn)練。</p><p>  21 世紀(jì)是信息時(shí)代, 是

9、經(jīng)濟(jì)大發(fā)展的時(shí)期,要求培養(yǎng)更多的高素質(zhì)、高能力、有開拓進(jìn)取精神的探索創(chuàng)新型人才, 因此不僅要使學(xué)生通過單片機(jī)實(shí)踐教學(xué)來掌握基本實(shí)踐手段, 更重要的是使學(xué)生具備應(yīng)用這些手段從事科學(xué)研究的獨(dú)立工作能力。在實(shí)踐教學(xué)中, 僅僅傳授實(shí)踐技術(shù)是不夠的, 必須注重學(xué)生能力的培養(yǎng), 使學(xué)生在知識(shí)和能力方面得到全面的發(fā)展。古人云: “授之以魚, 只供一飯之需, 教之以漁, 則終生受用無窮?!迸囵B(yǎng)能力無異于給學(xué)生一把開啟知識(shí)之門的鑰匙, 有了這把鑰匙才能使

10、他們?cè)谥R(shí)的海洋里泛舟沖浪。所以單片機(jī)實(shí)踐教學(xué)的方法得當(dāng), 有利于創(chuàng)新人才的培養(yǎng)。</p><p>  傳統(tǒng)的單片機(jī)實(shí)驗(yàn)均以單片機(jī)實(shí)驗(yàn)箱或者單片機(jī)技術(shù)開發(fā)裝置為實(shí)驗(yàn)器材, 開設(shè)的實(shí)驗(yàn)大多數(shù)屬于驗(yàn)證性實(shí)驗(yàn)和訓(xùn)練性實(shí)驗(yàn), 學(xué)生實(shí)驗(yàn)時(shí)是在指導(dǎo)教師的指導(dǎo)下根據(jù)實(shí)驗(yàn)講義一步一步完成相應(yīng)的內(nèi)容。在整個(gè)學(xué)習(xí)過程中, 學(xué)生往往很被動(dòng), 而且與實(shí)際應(yīng)用不接軌。學(xué)生學(xué)完整個(gè)單片機(jī)課程后不知道單片機(jī)的應(yīng)用場(chǎng)合, 更談不上開發(fā)一些具有實(shí)

11、用價(jià)值的東西。一種型號(hào)的單片機(jī)可以學(xué)習(xí)很多年,學(xué)生訓(xùn)練分散、時(shí)間短暫, 實(shí)踐教學(xué)沒有層次, 階段不明, 忽視培養(yǎng)學(xué)生的實(shí)踐能力和創(chuàng)新精神。要想從根本上解決問題, 應(yīng)該根據(jù)培養(yǎng)能力的要求, 建立單片機(jī)實(shí)驗(yàn)教學(xué)新體系, 打破單片機(jī)實(shí)驗(yàn)教學(xué)依附于理論教學(xué), 為理論教學(xué)服務(wù)的傳統(tǒng)觀念。而本課題就是為打破這種傳統(tǒng)觀念,而用實(shí)際物品來驗(yàn)證單片機(jī)各種性能的,運(yùn)用現(xiàn)代化的實(shí)踐教學(xué)手段和管理模式,課題充分利用實(shí)驗(yàn)室有利的條件, 不斷地改革和完善單片機(jī)實(shí)踐

12、教學(xué)的內(nèi)容和方法, 提高學(xué)生單片機(jī)應(yīng)用與開發(fā)能力, 達(dá)到培養(yǎng)具有實(shí)踐能力和創(chuàng)新精神的高素質(zhì)人才的目的。</p><p><b>  第1章 任務(wù)要求</b></p><p><b>  1.1 設(shè)計(jì)任務(wù)</b></p><p>  圖1-1 起始狀態(tài)示意圖</p><p>  設(shè)計(jì)并制作一個(gè)電

13、動(dòng)車蹺蹺板,在蹺蹺板起始端A一側(cè)裝有可移動(dòng)的配重。配重的位置可以在從始端開始的200mm~600mm范圍內(nèi)調(diào)整,調(diào)整步長(zhǎng)不大于50mm;配重可拆卸。電動(dòng)車從起始端A出發(fā),可以自動(dòng)在蹺蹺板上行駛。電動(dòng)車蹺蹺板起始狀態(tài)和平衡狀態(tài)示意圖分別如圖1-1和圖1-2所示。</p><p>  圖1-2 平衡起始狀態(tài)示意圖</p><p><b>  1.2 設(shè)計(jì)要求</b>&

14、lt;/p><p>  1.2.1 基本部分要求</p><p>  在不加配重的情況下,電動(dòng)車完成以下運(yùn)動(dòng):</p><p>  (1)電動(dòng)車從起始端A出發(fā),在30秒鐘內(nèi)行駛到中心點(diǎn)C附近;</p><p>  (2)60秒鐘之內(nèi),電動(dòng)車在中心點(diǎn)C附近使蹺蹺板處于平衡狀態(tài),保持平衡5秒鐘,并給出明顯的平衡指示;</p><

15、p> ?。?)電動(dòng)車從(2)中的平衡點(diǎn)出發(fā),30秒鐘內(nèi)行駛到蹺蹺板末端B處(車頭距蹺蹺板末端B不大于50mm);</p><p> ?。?)電動(dòng)車在B點(diǎn)停止5秒后,1分鐘內(nèi)倒退回起始端A,完成整個(gè)行程;</p><p> ?。?)在整個(gè)行駛過程中,電動(dòng)車始終在蹺蹺板上,并分階段實(shí)時(shí)顯示電動(dòng)車行駛所用的時(shí)間。</p><p>  1.2.2 發(fā)揮部分要求<

16、;/p><p>  圖1-3 自動(dòng)駛上蹺蹺板示意圖</p><p>  將配重固定在可調(diào)整范圍內(nèi)任一指定位置,電動(dòng)車完成以下運(yùn)動(dòng):</p><p> ?。?)將電動(dòng)車放置在地面距離蹺蹺板起始端A點(diǎn) 300mm以外、90°扇形區(qū)域內(nèi)某一指定位置(車頭朝向蹺蹺板),電動(dòng)車能夠自動(dòng)駛上蹺蹺板,如圖1-3所示。</p><p> ?。?)電動(dòng)

17、車在蹺蹺板上取得平衡,給出明顯的平衡指示,保持平衡5秒鐘以上。</p><p>  (3)將另一塊質(zhì)量為電動(dòng)車質(zhì)量10%~20%的塊狀配重放置在A至C間指定的位置,電動(dòng)車能夠重新取得平衡,給出明顯的平衡指示,保持平衡5秒鐘以上。</p><p> ?。?)電動(dòng)車在3分鐘之內(nèi)完成(1)~(3)全過程。</p><p><b> ?。?)其他。</b&g

18、t;</p><p><b>  1.3 設(shè)計(jì)說明</b></p><p> ?。?)蹺蹺板長(zhǎng)1600mm、寬300mm,為便于攜帶也可將蹺蹺板制成折疊形式。</p><p>  (2)蹺蹺板中心固定在直徑不大于50mm的半圓軸上,軸兩端支撐在支架上,并保證與支架圓滑接觸,能靈活轉(zhuǎn)動(dòng)。</p><p>  (3)測(cè)試中

19、,使用參賽隊(duì)自制的蹺蹺板裝置。</p><p> ?。?)允許在蹺蹺板和地面上采取引導(dǎo)措施,但不得影響蹺蹺板面和地面平整。</p><p>  (5)電動(dòng)車(含加在車體上的其它裝置)外形尺寸規(guī)定為:長(zhǎng)≤300mm,寬≤200mm。</p><p> ?。?)平衡的定義為A、B兩端與地面的距離差d=∣dA-dB∣不大于40mm。</p><p>

20、;  (7)整個(gè)行程約為1600mm減去車長(zhǎng)。</p><p> ?。?)測(cè)試過程中不允許人為控制電動(dòng)車運(yùn)動(dòng)。</p><p><b>  第2章 方案論證</b></p><p>  2.1 系統(tǒng)設(shè)計(jì)方案選擇與論證</p><p>  2.1.1 電機(jī)方案的選擇與論證</p><p>  

21、方案一:采用步進(jìn)電機(jī)。步進(jìn)電動(dòng)機(jī)的一個(gè)顯著的特點(diǎn)就是具有快速啟動(dòng)和</p><p>  停止能力,能夠達(dá)到我們所要求的標(biāo)準(zhǔn)。其轉(zhuǎn)換靈敏度比較高。正轉(zhuǎn)、反轉(zhuǎn)控制靈活。但是步進(jìn)電機(jī)的驅(qū)動(dòng)能力較差、速度較低、對(duì)于方案要求相差較大,而且力矩小,容易步丟失[1]。</p><p>  方案二:采用減速電機(jī),其最大的優(yōu)點(diǎn)是轉(zhuǎn)矩較大,驅(qū)動(dòng)能力較強(qiáng), 但是減速電機(jī)的速度也較低,不能很好的滿足要求</

22、p><p>  方案三:采用大功率達(dá)林頓管組成的H型方向控制的電機(jī)驅(qū)動(dòng)普通的直流電機(jī)。H型電機(jī)驅(qū)動(dòng)電路具有優(yōu)良的轉(zhuǎn)向控制,電子開關(guān)速度很快,穩(wěn)定性也很強(qiáng),可實(shí)現(xiàn)頻繁的無極快速啟動(dòng)、制動(dòng)和反轉(zhuǎn),能滿足各種不同的特殊運(yùn)行要求。</p><p>  由于普通直流電機(jī)價(jià)格適宜,更易于購(gòu)買,并且電路相對(duì)簡(jiǎn)單,因此采用方案三[2]。</p><p>  2.1.2 尋跡檢測(cè)電路方

23、案的選擇與論證</p><p>  本設(shè)計(jì)要求在整個(gè)行駛過程中,電動(dòng)車始終在蹺蹺板上,為了防止小車在行使過程中掉下蹺蹺板,因此在蹺蹺板上畫出黑色直線軌道??紤]到軌道是在白紙上打印的一條黑線,可以利用傳感器辨認(rèn)路面黑白兩種不同的狀態(tài)。對(duì)傳感器的選擇有以下方案。</p><p>  方案一:用光電傳感器。光電傳感器對(duì)黑色和白色的反射系數(shù)不同,由此判斷傳感器是否在黑線上行駛。但是,由于其他光源影

24、響,需采用聚焦式光電傳感器。</p><p>  方案二:用反射式紅外傳感器。紅外線比可見光的波長(zhǎng)要長(zhǎng),散射度小,可以降低環(huán)境對(duì)光源接收管的干擾,但由于直接利用直流電源對(duì)管子供電,限于管子的平均功率要求,工作電流只能在10mA左右,仍易受到干擾。</p><p>  基于可靠性和成本的考慮,我們選擇方案一[3]。</p><p>  2.1.3 平衡檢測(cè)電路方案的

25、選擇與論證</p><p>  方案一:采用集成芯片SCA61T傾角傳感器。該角度傳感器是一個(gè)單軸傾角傳感器,測(cè)量范圍在+30度到-30度之間,符合蹺蹺板角度范圍,該傳感器可以輸出模擬量和SPI數(shù)字量,易于單片機(jī)采集數(shù)據(jù),穩(wěn)定性高,抗沖擊能力強(qiáng),價(jià)格合理,與單片機(jī)接口電路簡(jiǎn)單易懂,容易實(shí)現(xiàn)[4]。</p><p>  方案二:采用旋轉(zhuǎn)編碼器。將編碼器固定在蹺蹺板旋轉(zhuǎn)的軸上,當(dāng)蹺蹺板轉(zhuǎn)動(dòng)時(shí),

26、連帶著編碼器旋轉(zhuǎn)某個(gè)角度,根據(jù)編碼器旋轉(zhuǎn)一周(即360度)編碼器輸出脈沖數(shù)目與檢測(cè)到的數(shù)目比較可以得到板面與地面之間的角度,根據(jù)轉(zhuǎn)動(dòng)方向不同,編碼器輸出A與輸出B比較,當(dāng)B的相位超前于A的相位90度代表蹺蹺板正向旋轉(zhuǎn),當(dāng)A的相位超前于B的相位90度代表蹺蹺板反向旋轉(zhuǎn),這樣根據(jù)編碼器輸出不同就能得到蹺蹺板的角度與方向,可以根據(jù)此來控制單片機(jī)發(fā)出不同的指令控制小車狀態(tài),但此方案加大了系統(tǒng)的復(fù)雜性[5]。</p><p&g

27、t;  方案三:采用電位器。電位器可以安裝在蹺蹺板上,蹺蹺板旋轉(zhuǎn)就可以帶動(dòng)電位器軸旋轉(zhuǎn),因此電位器阻值發(fā)生變化,利用一片A/D轉(zhuǎn)換芯片,將變化的模擬量經(jīng)過轉(zhuǎn)換得到不同的數(shù)字量,再根據(jù)數(shù)據(jù)運(yùn)算后發(fā)出命令控制小車的運(yùn)行狀態(tài)。此方案元器件較為普遍,降低了系統(tǒng)的復(fù)雜性,但是電位器阻值變化快,不易采值。</p><p>  綜合上述分析,我們采用方案一。</p><p>  2.1.4 平衡標(biāo)志方

28、案的選擇與論證</p><p>  方案一:采用蜂鳴器和發(fā)光二極管相結(jié)合。當(dāng)蹺蹺板平衡時(shí),利用蜂鳴器發(fā)出聲音和發(fā)光二極管發(fā)亮示意平衡,此電路直觀簡(jiǎn)單易懂。</p><p>  方案二:利用角度儀。當(dāng)蹺蹺板平衡時(shí),角度儀的指針剛好指向中間,但是,如在旁邊不仔細(xì)觀察,不能發(fā)現(xiàn)角度儀的作用。</p><p>  基于上述分析,我們采用方案一。</p><

29、;p>  2.1.5 顯示時(shí)間電路方案的選擇與論證</p><p>  方案一:采用LED數(shù)碼管靜態(tài)顯示的方法。此方法容易理解,驅(qū)動(dòng)程序簡(jiǎn)單,但需要多片數(shù)碼管驅(qū)動(dòng)顯示,增加成本,而且占用單片機(jī)多個(gè)I/O口,浪費(fèi)系統(tǒng)硬件資源。</p><p>  方案二:采用LED數(shù)碼管動(dòng)態(tài)顯示的方法。此方法需要7個(gè)I/O口可以驅(qū)動(dòng)8個(gè)數(shù)碼管顯示,驅(qū)動(dòng)程序也很簡(jiǎn)單而且容易理解,但是硬件電路也比較繁瑣

30、,由于小車的容納空間有限,不易采用[6]。</p><p>  方案三:采用LCD液晶顯示。采用1602A液晶顯示器,占用單片機(jī)10個(gè)I/O口,浪費(fèi)系統(tǒng)硬件資源,但其美觀大方,使整個(gè)系統(tǒng)看起來更加漂亮。</p><p>  綜合各方案的特點(diǎn),我們選擇方案三。</p><p>  2.1.6 電源方案的選擇與論證</p><p>  方案一:

31、采用單電源供電。在測(cè)試過程當(dāng)中,我們采用的是直流穩(wěn)壓電源提供的5V電壓,可以使小車能正常完成各項(xiàng)功能。</p><p>  方案二:采用雙電源供電。利用雙電源供電會(huì)增加單片機(jī)工作的可靠性;但它增加小車系統(tǒng)的電路連線,可能會(huì)造成電線過多而產(chǎn)生錯(cuò)誤的問題,而且也增加了電路的復(fù)雜性[7]。</p><p>  基于上述分析,我們采用了方案一。</p><p>  2.2

32、 系統(tǒng)電路組成及原理</p><p>  本系統(tǒng)電路主要由六大模塊組成,微機(jī)主控制模塊、尋跡檢測(cè)模塊、平衡檢測(cè)模塊、顯示模塊、蜂鳴器模塊和直流電機(jī)驅(qū)動(dòng)控制模塊等六大模塊組成。見圖2-1。其工作原理是通過AT89C52來控制直流電機(jī)的轉(zhuǎn)動(dòng),再由電機(jī)驅(qū)動(dòng)小車行駛,小車在行駛過程中通過光電傳感器檢測(cè)黑線使小車直線前進(jìn)。小車到達(dá)平衡位置時(shí)蜂鳴器有5秒的鳴響,同時(shí)指示燈亮,小車到終點(diǎn)時(shí)只有指示燈亮。在行駛過程中,由LCD液

33、晶實(shí)時(shí)顯示小車行駛的時(shí)間。</p><p>  圖2-1 設(shè)計(jì)原理框圖</p><p>  第3章 系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)</p><p>  3.1 單片機(jī)介紹</p><p>  圖3-1 AT89C52引腳圖</p><p>  目前,CPU 的發(fā)展應(yīng)用趨于多樣化,主要可分為 8 位機(jī)和 16 位機(jī)兩種,8

34、 位單片機(jī)的應(yīng)用占主流,根據(jù)本系統(tǒng)的特點(diǎn)及功能要求,選用了一種低功耗、低價(jià)格、高性能的 CMOS8 位微處理器-AT89C52,芯片內(nèi)部具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器,芯片采用51系列指令集并與51系列單片機(jī)引腳完全兼容[8]。其引腳圖見圖3-1。</p><p>  AT89C52單片機(jī)的各引腳功能如下:</p><p>  (1)VCC : 電源</p><

35、;p><b>  (2)GND: 地</b></p><p>  (3)P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0具有內(nèi)部上拉電阻。在Flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校

36、驗(yàn)時(shí),需要外部上拉電阻。</p><p>  (4)P1口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。</p><p>  (5)P2口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2

37、輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @Ri)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在Flash編程和

38、校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p>  (6)P3口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。P3口亦作為AT89C52特殊功能(第二功能)使用,見表3-1。 </p>&l

39、t;p>  (7)REST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,REST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p>  表3-1 P3口引腳替換功能表</p><p>  (8)ALE/:地址鎖存控制信號(hào)(ALE)是

40、訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在Flash編程時(shí),此引腳()也用作編程輸入脈沖。時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”, ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無

41、效。</p><p>  (9):外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89C52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被激活。</p><p>  (10)/Vpp:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在Flash編程期間,也接收12伏Vpp電壓。

42、</p><p>  (11)XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><p>  (12)XTAL2:振蕩器反相放大器的輸出端[9]。</p><p>  3.2 ADC0832數(shù)據(jù)讀取程序設(shè)計(jì)流程</p><p>  ADC0832芯片接口程序的編寫:</p><p>  為了高速有效的實(shí)

43、現(xiàn)通信,我們采用匯編語(yǔ)言編寫接口程序。由于ADC0832的數(shù)據(jù)轉(zhuǎn)換時(shí)間僅為32uS,所以A/D轉(zhuǎn)換的數(shù)據(jù)采樣頻率可以很快,從而也保證了某些場(chǎng)合對(duì)A/D轉(zhuǎn)換數(shù)據(jù)實(shí)時(shí)性的要求。數(shù)據(jù)讀取程序以子程序調(diào)用的形式出現(xiàn),方便了程序的移植。</p><p>  程序占有資源有累加器A,工作寄存器R7,通用寄存器B和特殊寄存器CY。通用功能寄存器和轉(zhuǎn)換值共用寄存器B。在使用轉(zhuǎn)換子程序之前必須確定通道功能寄存器B的值,其賦值語(yǔ)句為

44、“MOV B,#date”(00H-03H)。運(yùn)行轉(zhuǎn)換子程序后的轉(zhuǎn)換數(shù)據(jù)值被放入B中。子程序退出后即可以對(duì)B中數(shù)據(jù)處理[10]。</p><p>  常情況下ADC0832與單片機(jī)的接口應(yīng)為4條數(shù)據(jù)線,分別是CS、CLK、DO、DI。但由于DO端與DI端在通信時(shí)并未同時(shí)有效并與單片機(jī)的接口是雙向的,所以電路設(shè)計(jì)時(shí)可以將DO和DI并聯(lián)在一根數(shù)據(jù)線上使用。</p><p>  當(dāng)ADC083

45、2未工作時(shí)其CS輸入端應(yīng)為高電平,此時(shí)芯片禁用,CLK和DO/DI的電平可任意。當(dāng)要進(jìn)行A/D轉(zhuǎn)換時(shí),須先將CS使能端置于低電平并且保持低電平直到轉(zhuǎn)換完全結(jié)束。此時(shí)芯片開始轉(zhuǎn)換工作,同時(shí)由處理器向芯片時(shí)鐘輸入端CLK輸入時(shí)鐘脈沖,DO/DI端則使用DI端輸入通道功能選擇的數(shù)據(jù)信號(hào)。在第1個(gè)時(shí)鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號(hào)。在第2、3個(gè)脈沖下沉之前DI端應(yīng)輸入兩位數(shù)據(jù)用于選擇通道功能。當(dāng)此2位數(shù)據(jù)為“1”、“0”時(shí),只對(duì)

46、CH0進(jìn)行單通道轉(zhuǎn)換。當(dāng)2位數(shù)據(jù)為“1”、“1”時(shí),只對(duì)CH1進(jìn)行單通道轉(zhuǎn)換。當(dāng)兩位數(shù)據(jù)為“0”、“0”時(shí),將CH0作為正輸入端IN+,CH1作為負(fù)輸入端IN-進(jìn)行輸入。當(dāng)2位數(shù)據(jù)為“0”、“1”時(shí),將CH0作為負(fù)輸入</p><p>  端IN-,CH1作為正輸入端IN+進(jìn)行輸入。到第3個(gè)脈沖的下沉之后DI端的輸入電平就失去輸入作用,此后DO/DI端則開始利用數(shù)據(jù)輸出DO進(jìn)行轉(zhuǎn)換數(shù)據(jù)的讀取。從第4個(gè)脈沖下沉開始

47、由DO端輸出轉(zhuǎn)換數(shù)據(jù)最高位DATA7,隨后每一個(gè)脈沖下沉DO端輸出下一位數(shù)據(jù)。直到第11個(gè)脈沖時(shí)發(fā)</p><p>  出最低位數(shù)據(jù)DATA0,一個(gè)字節(jié)的數(shù)據(jù)輸出完成。也正是從此位開始輸出下一個(gè)相反字節(jié)的數(shù)據(jù),即從第11個(gè)字節(jié)的下沉輸出DATD0。隨后輸出8位數(shù)據(jù),到第19個(gè)脈沖時(shí)數(shù)據(jù)輸出完成,也標(biāo)志著一次A/D轉(zhuǎn)換的結(jié)束。最后將CS置高電平禁用芯片,直接將轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行處理就可以了[11]。</p>

48、;<p>  3.3 尋找平衡子程序設(shè)計(jì)流程</p><p>  傾角傳感器SCA61T是一個(gè)單軸傾角傳感器,其測(cè)量范圍在+30度到-30度之間,單極5V供電,比例電壓輸出,具有很高的分辨率,具有數(shù)字SPI和模擬電壓輸出,內(nèi)置溫度傳感器,長(zhǎng)期穩(wěn)定性好,低噪聲,工作溫度范圍寬,抗沖擊能力強(qiáng)。 由于我們所用的AT89C52沒有SPI接口,所以我們用的是模擬數(shù)據(jù)輸出模式。</p><

49、p>  小車在蹺蹺板上行駛時(shí),傾角傳感器SCA61T輸出的模擬電壓值由2.2伏到2.9伏。小車出發(fā)時(shí)(即蹺蹺板A點(diǎn)時(shí)),輸出的電壓值大約是2.2伏;當(dāng)小車行駛到平衡位置時(shí)(即蹺蹺板C點(diǎn)時(shí)),輸出的電壓值大約是2.5伏,小車行駛到終端(即蹺蹺板B點(diǎn)時(shí)),輸出的電壓大約是2.9伏。圖可見圖1-1。</p><p>  我們把模擬方式輸出的數(shù)據(jù)高位存在R4寄存器里,數(shù)據(jù)低位存在R5寄存器里,再存入21H存儲(chǔ)單元里

50、,由于蹺蹺板從始端到終端時(shí)R4寄存器里數(shù)據(jù)都不變,所以我們只需要比較數(shù)據(jù)低位就好。</p><p>  3.4 T0中斷定時(shí)子程序流程圖</p><p>  AT89C52內(nèi)部有3個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,簡(jiǎn)稱定時(shí)器0,定時(shí)器1,定時(shí)器2,分別用T0,T1,T2表示。本設(shè)計(jì)用T0工作在模式0下定時(shí),賦5mS初值,用軟件控制定時(shí)起停[12]。其中TMOD為模式控制寄存器,主要用來設(shè)置

51、定時(shí)器/計(jì)數(shù)器的操作模式;TCON為控制寄存器,主要用來控制定時(shí)器的啟動(dòng)與停止。</p><p>  T0工作在定時(shí)方式時(shí),計(jì)數(shù)脈沖輸入信號(hào)是由內(nèi)部時(shí)鐘提供的,每一個(gè)機(jī)器周期使計(jì)數(shù)器的值加1。而每個(gè)機(jī)器周期等于12個(gè)振蕩周期,故計(jì)數(shù)器的計(jì)數(shù)頻率為振蕩器頻率的1/12。實(shí)質(zhì)上定時(shí)工作方式,就是對(duì)單片機(jī)的機(jī)器周期數(shù)進(jìn)行計(jì)數(shù)。</p><p>  3.5 LCD顯示子程序流程</p>

52、;<p>  TC1602A可分為2行共顯示32個(gè)字符,每行顯示16個(gè)字符。內(nèi)含HD44780控制器的液晶顯示器模塊的TC1602A有兩個(gè)寄存器:一個(gè)是命令寄存器,另一個(gè)是數(shù)據(jù)寄存器。所有對(duì)TC1602A的操作必須先寫命令字,再寫數(shù)據(jù)。</p><p>  TCl602A內(nèi)部結(jié)構(gòu)由DDRAM、CGROM、IR、DR、BF、AC等大規(guī)模集成電路組成。DDRAM為數(shù)據(jù)顯示用的RAM(Data Displ

53、ay RAM,簡(jiǎn)稱DDRAM).用以存放要LCD顯示的數(shù)據(jù),只要將標(biāo)準(zhǔn)的ASCII碼放入DDRAM,內(nèi)部控制線路就會(huì)自動(dòng)將數(shù)據(jù)傳送到顯示器上,并顯示出該ASCII碼對(duì)應(yīng)的字符。CGROM為字符產(chǎn)生器ROM (Character Generator RAM,簡(jiǎn)稱CGRAM),可供使用者存儲(chǔ)特殊造型的造型碼,CGRAM最多可存8個(gè)造型。IR為指令寄存器(Instruction Register,簡(jiǎn)稱IR),負(fù)責(zé)存儲(chǔ)MCU要寫給LCD的指令碼

54、。當(dāng)RS及R/W引腳信號(hào)為0且Enable引腳信號(hào)由1變?yōu)?時(shí),D0~D7引腳上的數(shù)據(jù)便會(huì)存入到IR寄仔器中。DR為數(shù)據(jù)寄存器(Data Register,簡(jiǎn)稱DR),它們負(fù)責(zé)存儲(chǔ)微機(jī)要寫到CGRAM或DDRAM的數(shù)據(jù),或者存儲(chǔ)MCU要從CGRAM或DDRAM讀出的數(shù)據(jù)。因此,可將DR視為一個(gè)數(shù)據(jù)緩沖區(qū).當(dāng)RS及R/W引腳信號(hào)為1且Enable引腳信號(hào)由l變?yōu)?時(shí),讀取數(shù)據(jù):當(dāng)RS引腳信號(hào)為l,R/W引腳信號(hào)為0</p>

55、<p>  3.6 主程序流程</p><p>  主程序流程分3大部分,第一部分為小車從起始位置到尋找到平衡位置,這一部分里主要包括前進(jìn),尋跡,尋找平衡且顯示時(shí)間子程序。第二部分為從平衡位置到走到終端這一段,這一部分主要包括前進(jìn),尋跡,判斷是否到黑線子程序。第三部分為從終端返回到起始位置這一段路程,這一部分主要包括后退,尋跡子程序。</p><p>  第4章 系統(tǒng)測(cè)試及調(diào)

56、試</p><p><b>  4.1 系統(tǒng)測(cè)試</b></p><p>  4.1.1 測(cè)試儀器</p><p>  4.1.2 數(shù)據(jù)測(cè)試</p><p>  4.1.2.1跑道全程測(cè)試</p><p>  4.1.2.2 平衡測(cè)試</p><p>  4.1.3

57、 測(cè)試數(shù)據(jù)與結(jié)果分析</p><p>  通過多次測(cè)試數(shù)據(jù),本電動(dòng)車蹺蹺板系統(tǒng)設(shè)計(jì)的性能指標(biāo)及實(shí)現(xiàn)功能如下:</p><p>  在規(guī)定的時(shí)間內(nèi)小車可完成往返全程路;</p><p>  在配重物的情況下,小車達(dá)到的平衡度有一定的誤差;</p><p>  小車可尋跡運(yùn)行,并能循著黑線繼續(xù)往前行駛;</p><p> 

58、 實(shí)時(shí)顯示小車當(dāng)前的時(shí)間功能; </p><p>  實(shí)現(xiàn)蜂鳴器和發(fā)光管示意的功能;</p><p><b>  4.2 軟件調(diào)試</b></p><p>  本系統(tǒng)軟件程序較長(zhǎng),給程序的編寫和調(diào)試帶來了一定的困難,在調(diào)試過程中出現(xiàn)了很多問題,尤其是在調(diào)試小車平衡狀態(tài)、尋跡等程序的調(diào)試,后來我們采

59、用了模塊化的調(diào)試過程,最終在多次嘗試和細(xì)心修改后最終取得了成功。</p><p>  如我們?cè)诰帉憣ふ移胶庾映绦驎r(shí),由于我們不知道小車在具體位置時(shí)SC61T單軸傾角器輸出的具體電壓值,我們得先編寫一個(gè)具體的顯示SCA61T輸出的電壓值的程序,顯示出小車在蹺蹺板上不同位置時(shí)輸出的不同電壓值。從而根據(jù)這些不同的電壓值判斷小車的位置。</p><p>  而在編寫尋跡子程序時(shí),當(dāng)光電傳感器檢測(cè)到

60、黑線時(shí),轉(zhuǎn)多大的角度也是我們一遍一遍修改程序,最后才最終選定的,從而達(dá)到比較好的效果。</p><p>  而如何讓其實(shí)現(xiàn)分階實(shí)時(shí)顯示時(shí)間,我們也想了很多方案,最終我們選定了把主程序設(shè)成3個(gè)大循環(huán),從而解決了分階實(shí)時(shí)顯示時(shí)間的功能。</p><p>  我們?cè)诰幊踢^程中還遇到過很多問題,但經(jīng)過我們多次嘗試修改后最終完成了我們的任務(wù)要求。這讓我們認(rèn)識(shí)到只要自己不放棄,努力,再努力,就一定會(huì)成

61、功。也讓我們知道了知識(shí)的重要性。</p><p><b>  總結(jié)</b></p><p>  本系統(tǒng)設(shè)計(jì)基本達(dá)到了作品要求的功能,整個(gè)系統(tǒng)運(yùn)行穩(wěn)定。在調(diào)試過程中,首先對(duì)硬件進(jìn)行調(diào)試,只有硬件電路沒有問題了方可進(jìn)行軟件調(diào)試。</p><p>  通過本次畢業(yè)作品的設(shè)計(jì)與制作,讓我們體會(huì)最深的是團(tuán)隊(duì)精神的重要性, 在整個(gè)設(shè)計(jì)與制作過程中我們秉著互

62、相信任、互相配合、分工合作的態(tài)度。最后基本完成了作品要求的功能。本次作品考驗(yàn)的不僅僅是我們的理論知識(shí)和動(dòng)手能力更是對(duì)我們毅力、應(yīng)變能力、心理素質(zhì)的綜合考驗(yàn)。另外電路板焊接技術(shù)也是很重要的,雖然電路板的焊接非常不起眼,但是它對(duì)整個(gè)設(shè)計(jì)作品的成敗起著非常關(guān)鍵的作用。焊接電路板時(shí),要高度集中精力,不能急于求成,因?yàn)槊恳粋€(gè)細(xì)微的焊接失誤都會(huì)導(dǎo)致調(diào)試失敗,這也讓我們學(xué)到了細(xì)節(jié)決定成敗的道理。同時(shí)最為重要的一點(diǎn)就是軟件編程的問題,在這方面我還有很多

63、不足,有待我們?nèi)ヌ岣摺?lt;/p><p><b>  致謝</b></p><p>  我們所做的“電動(dòng)車蹺蹺板的設(shè)計(jì)與制作”這個(gè)設(shè)計(jì)是一個(gè)結(jié)合科研的題目。它涉及到系統(tǒng)原理圖設(shè)計(jì),主控軟件的設(shè)計(jì),單片機(jī)匯編語(yǔ)言的編程還有相關(guān)軟件(Keil)的使用。由于我們能力有限,在畢業(yè)設(shè)計(jì)的制作過程中,遇到很多問題和困難,但在老師的指導(dǎo)的幫助和關(guān)心下,我們成功地完成了主控軟件的總體設(shè)

64、計(jì)和編程工作。在此,我們向幫助過我們的老師致以真誠(chéng)的感謝!</p><p>  本論文是我在尊敬的**老師的精心指導(dǎo)下完成的。**老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)和孜孜不倦的工作態(tài)度深深地激勵(lì)著我,使我盡最大努力克服工作中所遇到的困難,不斷進(jìn)步,在理論和實(shí)踐方面的能力都獲得了很大的提高。在四年的大學(xué)學(xué)習(xí)過程中,祝老師給予我的支持和鼓勵(lì)使我倍感溫暖,一生難忘。在此謹(jǐn)向我的導(dǎo)師祝老師致以崇高的敬意和衷心的感謝。</p>

65、<p>  衷心感謝電氣信息工程學(xué)院各位領(lǐng)導(dǎo)和老師在我的四年的大學(xué)學(xué)習(xí)和畢業(yè)設(shè)計(jì)期間給予熱情的關(guān)心和幫助。同時(shí)感謝我的各位朋友,在我的大學(xué)生活中,他們豐富了我的生活,也給了我莫大的支持,在此感謝他們對(duì)我的幫助。</p><p>  最后,我要特別感謝我的父母多年來對(duì)我的關(guān)愛。在我近年的學(xué)習(xí)生涯中,我的每一點(diǎn)進(jìn)步、每一點(diǎn)成績(jī)都與他們給予我的鼓勵(lì)和全力支持密不可分。在我的求學(xué)生涯暫告一段落之際,謹(jǐn)向他們

66、表示我深深的感謝。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]王俊峰 編著 《電子產(chǎn)品開發(fā)設(shè)計(jì)與制作》 人民郵電出版社 2005版</p><p>  [2]黃智偉 編著 《全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽訓(xùn)練教程》 電子工業(yè)出版社 2005版</p><p>  

67、[3] 李民剛 曹巧媛 曹琳琳 陳忠平 主編《單片機(jī)原理及使用技術(shù)》高等教育出版社出版 2005年版</p><p>  [4](美) Paul Scherz著 蔡聲鎮(zhèn) ... [等] 譯 《發(fā)明者電子設(shè)計(jì)寶典》福建科學(xué)技術(shù)出版社 2004版</p><p>  [6] 陳民熒 編著 《8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材》清華大學(xué)出版社出版 2004年版</p><p&g

68、t;  [7]楊剛 周群 主編 《電子系統(tǒng)設(shè)計(jì)與實(shí)踐》 電子工業(yè)出版社 2004版</p><p>  [8]王振紅 張常年編著 《綜合電子設(shè)計(jì)與實(shí)踐》 清華大學(xué)出版社 2005版</p><p>  [9]吳金戌 沈慶陽(yáng) 郭庭吉編著 《8051單片機(jī)實(shí)踐與應(yīng)用》 清華大學(xué)出版社 2002版</p><p>  

69、[10] 楊欣 王玉鳳 主編《電子設(shè)計(jì)從零開始》清華大學(xué)出版社出版 2005年版</p><p>  [11] http://www.51senor.com</p><p>  [12]李玉梅 編著 《基于MCS-51系列單片機(jī)原理的應(yīng)用設(shè)計(jì)》 國(guó)防工業(yè)出版社 2006版</p><p>  附錄1 硬件電路圖</p><p>  附

70、錄2 系統(tǒng)軟件設(shè)計(jì)清單</p><p>  系統(tǒng)總的軟件程序如下:</p><p>  ;===============================================================</p><p>  ;主程序:實(shí)現(xiàn)控制電動(dòng)機(jī)尋跡,找平衡功能,并且完成分段記時(shí),</p><p><b>  ;報(bào)

71、警,顯示等功能</b></p><p>  ;===============================================================</p><p>  RS EQU P3.7 ;LCD 數(shù)據(jù)/命令選擇端</p><p>  RW EQU P3.6 ;LCD 讀/寫選擇端&

72、lt;/p><p>  E EQU P3.5 ;LCD 使能信號(hào)</p><p>  AD_CS EQU P3.3 ;ADC0832 片選信號(hào)</p><p>  AD_CLK EQU P3.2 ;ADC0832 時(shí)鐘端</p><p>  AD_DAT EQU P3.1

73、 ;ADC0832 數(shù)據(jù)端</p><p>  HOUR EQU30H </p><p>  MIN EQU31H </p><p>  SEC EQU32H ;定義時(shí),分,秒,以及數(shù)據(jù)</p><p>  DEDA EQU 33H ;存儲(chǔ)單元</p>

74、<p>  SEC0 EQU34H</p><p>  X EQU35H</p><p>  D0_D7 EQUP0 ;LCD數(shù)據(jù)?</p><p>  DII BITP2.5;報(bào)警標(biāo)志位</p><p>  DENG BITP2.6;指示燈標(biāo)志位<

75、/p><p>  STOP_CHE BITPSW.5;用戶自定義位F0,停車標(biāo)志位</p><p>  STOP_AD0832 BITPSW.1 ;用戶自定義位F1,AD0832停止標(biāo)志位</p><p>  ORG 0000H </p><p>  ORG000BH;T0中斷入口</p>

76、;<p>  LJMPT0_INT ;T0中斷</p><p>  LJMPSTART</p><p>  ORG 0100H </p><p>  ;-------------------------------------------------------- </p><p><b>  

77、START: </b></p><p>  MOV SP, #60H </p><p>  MOV A,#00H </p><p>  MOV 20H,A</p><p>  MOV 21H,A;清位</p><p>  MOVP2,A;清P2口</p>

78、;<p>  CLRSTOP_CHE</p><p>  CLRSTOP_AD0832;清標(biāo)志位</p><p><b>  SETBDII</b></p><p>  SETBDENG</p><p>  MOV P0,#0FFH </p><p&

79、gt;  ACALLINIT;調(diào)用清存儲(chǔ)單元程序INIT</p><p>  ACALLINIT_TIMER;初始化T0中斷程序</p><p>  ACALL INIT_LCD;初始化LCD</p><p>  LCALLDIS1 ;調(diào)用顯示程序</p><p>  ;=============

80、======================================================</p><p>  ;LOOP1完成小車前進(jìn)并尋跡,找到平衡位置</p><p>  ;并顯示這段路程所需時(shí)間</p><p>  ;==============================================================

81、=====</p><p><b>  LOOP1:</b></p><p><b>  CLRC</b></p><p>  LCALL AD_CONV ;調(diào)用AD轉(zhuǎn)換程序</p><p>  LCALL AD_CHULI;調(diào)用AD數(shù)據(jù)轉(zhuǎn)換程序</p>

82、<p>  LCALLCONV;調(diào)用電子表顯示程序</p><p>  LCALLDELAY</p><p>  LCALLDELAY</p><p>  LCALLLANGJIN;調(diào)用前進(jìn)行車程序</p><p>  LCALLXUNJI3;發(fā)揮部分尋跡</p><

83、;p>  LCALLXUNJI1;調(diào)用前進(jìn)尋跡程序</p><p>  MOVA,21H</p><p>  CJNEA,#70H,XUANZE;AD轉(zhuǎn)換的低位值與70H比較</p><p>  SJMPWWW1;相等則轉(zhuǎn)</p><p>  XUANZE: JC WWW;不等,A值小于70

84、H則轉(zhuǎn)</p><p><b>  CLRC</b></p><p>  LCALL AD_CONV ;調(diào)用AD轉(zhuǎn)換程序</p><p>  LCALL AD_CHULI;調(diào)用AD數(shù)據(jù)轉(zhuǎn)換程序</p><p>  LCALLCONV;調(diào)用電子表顯示程序</p><

85、;p>  LCALLDELAY</p><p>  LCALLDELAY</p><p>  MOVA,21H</p><p>  CJNEA,#70H,XUANZE0;再次確認(rèn)A值</p><p>  SJMPWWW1</p><p>  XUANZE0:JCWWW

86、</p><p>  WWW1:LCALLPINGHENG;調(diào)用尋找平衡程序</p><p>  JBSTOP_AD0832,LOOP2;判斷是否停AD標(biāo)志位</p><p>  WWW:SJMPLOOP1</p><p>  ;==========================================

87、=============</p><p>  ;LOOP2完成小車從平衡位置尋跡走到蹺蹺板終端功能</p><p>  ;并記錄這段時(shí)間,在終端停5秒,并報(bào)警</p><p>  ;=======================================================</p><p><b>  LOOP2

88、:</b></p><p>  LCALLCONV;調(diào)用電子表顯示程序</p><p>  LCALLLANGJIN ;調(diào)用前進(jìn)行車程序</p><p>  LCALLXUNJI1;調(diào)用前進(jìn)循跡程序</p><p>  LCALLHEIXIAN;調(diào)用判斷到終點(diǎn)并停車程序</p>

89、<p>  JBSTOP_CHE,LOOP3;判斷停車標(biāo)志位</p><p>  SJMPLOOP2</p><p>  ;=======================================================</p><p>  ;LOOP3完成小車從蹺蹺板終端尋跡退回功能</p><p>&l

90、t;b>  ;并記錄這段時(shí)間</b></p><p>  ;=======================================================</p><p><b>  LOOP3:</b></p><p>  LCALLCONV;調(diào)用電子表顯示程序</p><p&g

91、t;  LCALLLANGTUI;調(diào)用后退行車程序</p><p>  LCALLXUNJI2;調(diào)用后退尋跡程序</p><p>  SJMPLOOP3</p><p>  ;========================================================</p><p>  ;時(shí)間存儲(chǔ)

92、區(qū)域初始化</p><p>  ;=========================================================</p><p><b>  INIT:</b></p><p>  MOVHOUR,#00H</p><p>  MOVMIN,#00H;清空</p

93、><p>  MOVSEC,#00H </p><p>  MOVDEDA,#00H</p><p><b>  RET</b></p><p>  ;==========================================================</p><p>

94、;<b>  ;T0中斷初始化</b></p><p>  ;==========================================================</p><p>  INIT_TIMER:</p><p>  MOVTMOD,#00H;設(shè)定T0工作模式</p><p>  MOV

95、IE,#82H;開中斷</p><p>  MOVTH0,#99</p><p>  MOVTL0,#24;賦5S初值</p><p>  SETBTR0;開始定時(shí)</p><p><b>  RET</b></p><p>  ;=============

96、======================================</p><p><b>  ;T0中斷子程序</b></p><p>  ;====================================================</p><p><b>  T0_INT:</b></p

97、><p>  PUSHACC</p><p>  MOVTH0,#99</p><p>  MOVTL0,#24;賦初值</p><p>  INCDEDA</p><p>  MOVA,DEDA</p><p>  CJNEA,#199,TT;

98、一秒鐘到?</p><p>  MOVDEDA,#0</p><p>  INCSEC</p><p>  MOVA,SEC</p><p>  CJNEA,#60,TT;一分鐘到?</p><p>  INCMIN</p><p>  MOV

99、SEC,#0</p><p>  MOVA,MIN</p><p>  CJNEA,#60,TT;一小時(shí)到?</p><p>  INCHOUR</p><p>  MOVMIN,#0</p><p>  MOVA,HOUR</p><p>

100、;  CJNEA,#24,TT</p><p>  MOVSEC,#0</p><p>  MOVMIN,#0;清零</p><p>  MOVHOUR,#0</p><p>  TT:POPACC</p><p><b>  RETI </b>

101、;</p><p>  ;====================================================</p><p>  ;LCD初始化子程序</p><p>  ;======================================================= </p><p><

102、;b>  INIT_LCD:</b></p><p>  MOVA,#00000001B;清屏</p><p>  ACALLWRITE_LCD_COM</p><p>  MOVA,#00111000B;8位2行5*7點(diǎn)陣</p><p>  ACALLWRITE_LCD_COM</p>&l

103、t;p>  MOVA,#00001100B;顯示器開,光標(biāo)開,閃爍開</p><p>  ACALLWRITE_LCD_COM</p><p>  MOVA,#10000000B;寫顯示起始地址,第二行第一個(gè)位置80H--8FH</p><p>  ACALLWRITE_LCD_COM </p><p><b&

104、gt;  RET</b></p><p>  ;=======================================================</p><p><b>  ;檢查忙碌子程序</b></p><p>  ;=================================================

105、====== </p><p>  CHECKBUSY:</p><p>  PUSHACC</p><p>  LOP1: CLRRS;選擇指令寄存器</p><p>  SETBRW;選擇讀模式</p><p>  MOVD0_D7,#0FFH;P1口寫1,準(zhǔn)備寫入</p&

106、gt;<p>  SETBE;使能LCD</p><p>  MOVA,D0_D7;將LCD的D0-D7由P1口送A,以便查第七位BF是否為0</p><p>  CLRE;禁止LCD</p><p>  JBACC.7,LOP1;判斷由LCD讀入第七位BF是否為1,若為1,表示LCD忙</p>

107、<p>  POPACC</p><p><b>  RET</b></p><p>  ;=======================================================</p><p>  ;寫入IR寄存器子程序</p><p>  ;=================

108、====================================== </p><p>  WRITE_LCD_COM:</p><p><b>  PUSHACC</b></p><p>  ACALLCHECKBUSY;調(diào)檢查忙碌子程序</p><p>  CLRE;禁止LCD<

109、;/p><p>  CLRRS;選擇指令寄存器</p><p>  CLRRW;選擇寫模式</p><p>  SETBE;使能LCD</p><p>  MOVD0_D7,A;將指令寫入LCDLCD_PORT</p><p>  SETBE;使能LCD

110、</p><p>  CLRE;使能LCD</p><p><b>  POPACC</b></p><p><b>  RET</b></p><p>  ;=======================================================</p

111、><p>  ;寫入DR寄存器子程序</p><p>  ;======================================================= </p><p>  WRITE_LCD_DATA:</p><p><b>  PUSHACC</b></p><p>  A

112、CALLCHECKBUSY;調(diào)檢查忙碌子程序</p><p>  CLRE;禁止LCD</p><p>  SETBRS;選擇數(shù)據(jù)寄存器</p><p>  CLRRW;選擇寫模式</p><p>  SETBE;使能LCD</p><p>  MO

113、VD0_D7,A;將數(shù)據(jù)寫入LCD</p><p>  SETBE;使能LCD</p><p>  CLRE;禁止LCD</p><p><b>  POPACC</b></p><p><b>  RET</b></p><p> 

114、 ;=================================================== </p><p>  ;PIGHENG:尋找平衡標(biāo)志位子程序</p><p>  ;====================================================</p><p>  PINGHENG:NOP</p>&

115、lt;p><b>  WW1:</b></p><p>  CLRP2.0</p><p>  CLRP2.1</p><p>  CLRP2.2</p><p>  CLRP2.3;停車</p><p>  LCALLCONV<

116、/p><p>  LCALLDLY</p><p>  LCALLCONV</p><p>  LCALLDLY;電子表顯示并延時(shí)一段時(shí)間</p><p>  LCALLCONV</p><p><b>  LCALLDLY</b></p>&l

117、t;p>  LCALLCONV</p><p>  LCALLDLY</p><p>  SETBP2.0</p><p>  SETBP2.3;小車后退</p><p>  LCALLCONV</p><p>  LCALLDLY;延時(shí)并顯示時(shí)間&l

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論