版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧的翹翹板——幼兒元認(rèn)知研究.pdf
- 畢業(yè)設(shè)計(jì)--- 簡(jiǎn)易智能電動(dòng)車
- 電動(dòng)車防盜器-畢業(yè)設(shè)計(jì)
- 電動(dòng)車充電器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---簡(jiǎn)易智能電動(dòng)車的設(shè)計(jì)
- 電動(dòng)車消防車總體設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 電動(dòng)車防盜系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)-單片機(jī)電動(dòng)車測(cè)速系統(tǒng)設(shè)計(jì)
- 消防智能電動(dòng)車設(shè)計(jì)與制作畢業(yè)設(shè)計(jì)論文
- 電動(dòng)車太陽(yáng)能充電系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)208消防智能電動(dòng)車設(shè)計(jì)與制作資料
- 小區(qū)電動(dòng)車自動(dòng)充電系統(tǒng)的研究【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)208消防智能電動(dòng)車設(shè)計(jì)與制作資料
- 電動(dòng)車方案畢業(yè)方案
- 電動(dòng)車充電器外殼注塑模具畢業(yè)設(shè)計(jì)
- 電動(dòng)車充電器外殼注塑模具畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)208消防智能電動(dòng)車設(shè)計(jì)與制作資料.doc
- 畢業(yè)設(shè)計(jì)208消防智能電動(dòng)車設(shè)計(jì)與制作資料.doc
- 電動(dòng)拖車 電動(dòng)車
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的電動(dòng)車蹺蹺板設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論