版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 編號(hào) </b></p><p><b> 本科生畢業(yè)設(shè)計(jì)</b></p><p><b> 光電循跡車(chē)</b></p><p> Photoelectric Tracking Car</p><p> 2013年 6 月 &l
2、t;/p><p><b> 摘 要</b></p><p> 激光傳感器是新型測(cè)量?jī)x表,已廣泛應(yīng)用于國(guó)防、生產(chǎn)、醫(yī)學(xué)和非電測(cè)量等各方面,它的優(yōu)點(diǎn)是能實(shí)現(xiàn)無(wú)接觸遠(yuǎn)距離測(cè)量,速度快,精度高,量程大,抗光、電干擾能力強(qiáng)等。ATmega16是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器。本系統(tǒng)以AVR單片機(jī)為控制核心,采用電機(jī)專(zhuān)用驅(qū)動(dòng)芯片L298驅(qū)動(dòng)兩個(gè)直
3、流電機(jī),通過(guò)激光傳感器件來(lái)采集信息,并將數(shù)據(jù)信息送入主控單元ATmega16單片機(jī),處理數(shù)據(jù)后完成相應(yīng)的操作,實(shí)現(xiàn)了智能小車(chē)在無(wú)人控制狀態(tài)下智能光電檢測(cè)、循光功能。</p><p> 關(guān)鍵詞 ATmega16 激光傳感器 直流電機(jī) 循光功能</p><p><b> ABSTRACT</b></p><p> The lase
4、r sensor is a new type of measuring instrument, has been widely used in all aspects of production, national defense, medical and non electrical measurement, it is can realize the non-contact distance measurement, fast sp
5、eed, high precision, large measuring range, the light resistance, electrical interference etc.. ATmega16 is based on low power AVR RISC structure of the 8 bit CMOS microcontroller. This system takes the AVR single chip a
6、s the control core, the motor drive chip L298 drive </p><p> Keywords ATmega16 Laser Sensor DC Motor Function of Light</p><p> 目 錄 </p><p><b> 緒
7、 論1</b></p><p> 第一章 發(fā)展?fàn)顩r及意義2</p><p> 1.1 發(fā)狀展況2</p><p> 1.1.1 傳感器的全球發(fā)展現(xiàn)狀2</p><p> 1.1.2 研究意義2</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r2</p><p> 1
8、.2.1 激光的應(yīng)用2</p><p> 1.2.2 市場(chǎng)前景3</p><p> 第二章 方案設(shè)計(jì)與論證3</p><p> 2.1 光電發(fā)射器3</p><p> 2.2 控制系統(tǒng)4</p><p><b> 2.3檢測(cè)系統(tǒng)5</b></p><p&g
9、t; 2.4接收與傳輸5</p><p> 2.5 電機(jī)驅(qū)動(dòng)系統(tǒng)5</p><p> 第三章 硬件設(shè)計(jì)6</p><p> 3.1 控制系統(tǒng)的硬件構(gòu)造6</p><p> 3.1.1 ATmega16單片機(jī)簡(jiǎn)介6</p><p> 3.1.2 ATmega16 引腳功能6</p>
10、<p> 3.1.3 ATmega16 內(nèi)核7</p><p> 3.1.4最小應(yīng)用系統(tǒng)設(shè)計(jì)7</p><p> 3.2 激光觸發(fā)與接收8</p><p> 3.2.1 激光發(fā)射8</p><p> 3.2.2 激光接收9</p><p> 3.3 電機(jī)驅(qū)動(dòng)9</p>&
11、lt;p> 3.3.1 L298介紹9</p><p> 3.3.2 驅(qū)動(dòng)電路11</p><p> 3.3直流電機(jī)12</p><p> 3.4通道設(shè)計(jì)12</p><p> 3.4.1前向通道12</p><p> 3.4.2后向通道設(shè)計(jì)13</p><p>
12、 第四章 軟件設(shè)計(jì)14</p><p> 4.1軟件流程14</p><p><b> 結(jié) 論22</b></p><p><b> 致 謝23</b></p><p> 參 考 文 獻(xiàn)24</p><p><b> 緒 論 </b
13、></p><p> 激光是20世紀(jì)60年代出現(xiàn)的最重大的科學(xué)技術(shù)成就之一。它發(fā)展迅速,已廣泛應(yīng)用于國(guó)防、生產(chǎn)、醫(yī)學(xué)和非電測(cè)量等各方面。激光具有3個(gè)重要特性: 高方向性、高單色性、高亮度。</p><p> 激光傳感器是利用激光技術(shù)進(jìn)行測(cè)量的傳感器。激光傳感器由發(fā)射管、接收管、調(diào)制管、大透鏡等組成。</p><p> 激光傳感器工作時(shí)先由激光發(fā)射二極管對(duì)
14、準(zhǔn)目標(biāo)發(fā)射激光脈沖。發(fā)射部份由一個(gè)振蕩管發(fā)出180KHz頻率的振蕩波后,經(jīng)三極管放大,激光管發(fā)光;接收部份由一個(gè)相匹配180KHz的接收管接收返回的光強(qiáng),經(jīng)過(guò)電容濾波后直接接入單片機(jī)的PA口,檢測(cè)返回電壓的高低。由于激光傳感器使用了調(diào)制處理,接收管只能接受相同頻率的反射光,因而可以有效防止可見(jiàn)光對(duì)反射激光的影響。</p><p> 智能電動(dòng)小車(chē),將測(cè)量光電數(shù)據(jù)傳送至單片機(jī)進(jìn)行處理,由單片機(jī)根據(jù)所檢測(cè)的各種數(shù)據(jù)實(shí)
15、現(xiàn)對(duì)電動(dòng)車(chē)的智能控制。這種方案能實(shí)現(xiàn)對(duì)車(chē)的運(yùn)動(dòng)狀態(tài)進(jìn)行實(shí)時(shí)控制,控制靈活、可靠,精度高,可滿足對(duì)系統(tǒng)的各項(xiàng)要求。</p><p> 第一章 發(fā)展?fàn)顩r及意義</p><p><b> 1.1 發(fā)展?fàn)顩r</b></p><p> 1.1.1 傳感器的全球發(fā)展現(xiàn)狀</p><p> 調(diào)查顯示,2011年全球傳感器市場(chǎng)容
16、量為600億美元,預(yù)計(jì)2013年全球傳感器市場(chǎng)可達(dá)800億美元以上。東歐、亞太區(qū)和加拿大成為傳感器市場(chǎng)增長(zhǎng)最快的地區(qū),而美國(guó)、德國(guó)、日本依舊是傳感器市場(chǎng)分布最大的地區(qū)。真尚有公司等世界高端傳感器制造商開(kāi)始進(jìn)入中國(guó)大陸,并且設(shè)立了技術(shù)開(kāi)發(fā)部門(mén)。</p><p> 1.1.2 研究意義</p><p> 就世界范圍而言,傳感器市場(chǎng)上增長(zhǎng)最快的依舊是汽車(chē)市場(chǎng),占第二位的是過(guò)程控制市場(chǎng),看好通
17、訊市場(chǎng)前景。</p><p> 利用激光的高方向性、高單色性和高亮度等特點(diǎn)可實(shí)現(xiàn)無(wú)接觸遠(yuǎn)距離測(cè)量。激光傳感器常用于長(zhǎng)度、距離、振動(dòng)、速度、方位等物理量的測(cè)量,還可用于探傷和大氣污染物的監(jiān)測(cè)等。</p><p> 1.2 國(guó)內(nèi)外發(fā)展?fàn)顩r</p><p> 1.2.1 激光的應(yīng)用</p><p> 激光測(cè)長(zhǎng)【1】:精密測(cè)量長(zhǎng)度是精密機(jī)械制
18、造工業(yè)和光學(xué)加工工業(yè)的關(guān)鍵技術(shù)之一?,F(xiàn)代長(zhǎng)度計(jì)量多是利用光波的干涉現(xiàn)象來(lái)進(jìn)行的,其精度主要取決于光的單色性的好壞。激光是最理想的光源,它比以往最好的單色光源(氪-86燈)還純10萬(wàn)倍。因此激光測(cè)長(zhǎng)的量程大、精度高。若用氦氖氣體激光器,則最大可測(cè)幾十公里。一般測(cè)量數(shù)米之內(nèi)的長(zhǎng)度,其精度可達(dá)0.1微米。</p><p> 激光測(cè)距【2】:它的原理與無(wú)線電雷達(dá)相同,將激光對(duì)準(zhǔn)目標(biāo)發(fā)射出去后,測(cè)量它的往返時(shí)間,再乘以光
19、速即得到往返距離。由于激光具有高方向性、高單色性和高功率等優(yōu)點(diǎn),這些對(duì)于測(cè)遠(yuǎn)距離、判定目標(biāo)方位、提高接收系統(tǒng)的信噪比、保證測(cè)量精度等都是很關(guān)鍵的,因此激光測(cè)距儀日益受到重視。在激光測(cè)距儀基礎(chǔ)上發(fā)展起來(lái)的激光雷達(dá)不僅能測(cè)距,而且還可以測(cè)目標(biāo)方位、運(yùn)運(yùn)速度和加速度等,已成功地用于人造衛(wèi)星的測(cè)距和跟蹤,例如采用紅寶石激光器的激光雷達(dá),測(cè)距范圍為500~2000公里,誤差僅幾米。目前常采用紅寶石激光器、釹玻璃激光器、二氧化碳激光器以及砷化鎵激光
20、器作為激光測(cè)距儀的光源。</p><p> 激光測(cè)振:它基于多普勒原理測(cè)量物體的振動(dòng)速度。多普勒原理是指:若波源或接收波的觀察者相對(duì)于傳播波的媒質(zhì)而運(yùn)動(dòng),那么觀察者所測(cè)到的頻率不僅取決于波源發(fā)出的振動(dòng)頻率而且還取決于波源或觀察者的運(yùn)動(dòng)速度的大小和方向。所測(cè)頻率與波源的頻率之差稱(chēng)為多普勒頻移。這種測(cè)振儀在測(cè)量時(shí)由光學(xué)部分將物體的振動(dòng)轉(zhuǎn)換為相應(yīng)的多普勒頻移,并由光檢測(cè)器將此頻移轉(zhuǎn)換為電信號(hào),再由電路部分作適當(dāng)處理后
21、送往多普勒信號(hào)處理器將多普勒頻移信號(hào)變換為與振動(dòng)速度相對(duì)應(yīng)的電信號(hào),最后記錄于磁帶。這種測(cè)振儀采用波長(zhǎng)為6328埃的氦氖激光器,用聲光調(diào)制器進(jìn)行光頻調(diào)制,用石英晶體振蕩器【3】加功率放大電路作為聲光調(diào)制器的驅(qū)動(dòng)源,用光電倍增管進(jìn)行光電檢測(cè),用頻率跟蹤器來(lái)處理多普勒信號(hào)。它的優(yōu)點(diǎn)是使用方便,不需要固定參考系,不影響物體本身的振動(dòng),測(cè)量頻率范圍寬、精度高、動(dòng)態(tài)范圍大。缺點(diǎn)是測(cè)量過(guò)程受其他雜散光的影響較大。</p><p&
22、gt; 激光測(cè)速:它也是基多普勒原理的一種激光測(cè)速方法,用得較多的是激光多普勒流速計(jì),它可以測(cè)量風(fēng)洞氣流速度、火箭燃料流速、飛行器噴射氣流流速、大氣風(fēng)速和化學(xué)反應(yīng)中粒子的大小及匯聚速度等。</p><p> 1.2.2 市場(chǎng)前景</p><p> 一些傳感器【4】市場(chǎng)比如壓力傳感器、溫度傳感器、流量傳感器、水平傳感器已表現(xiàn)出成熟市場(chǎng)的特征。流量傳感器、壓力傳感器、溫度傳感器的市場(chǎng)規(guī)模
23、最大,分別占到整個(gè)傳感器市場(chǎng)的21%、19%和14%。傳感器市場(chǎng)的主要增長(zhǎng)來(lái)自于光電傳感器、無(wú)線傳感器、傳感器、生物傳感器等新興傳感器。其中,無(wú)線傳感器在2007-2010年復(fù)合年增長(zhǎng)率超過(guò)25%。全球的傳感器市場(chǎng)在不斷變化的創(chuàng)新之中呈現(xiàn)出快速增長(zhǎng)的趨勢(shì)。有關(guān)專(zhuān)家指出,傳感器領(lǐng)域的主要技術(shù)將在現(xiàn)有基礎(chǔ)上予以延伸和提高,各國(guó)將競(jìng)相加速新一代傳感器的開(kāi)發(fā)和產(chǎn)業(yè)化,競(jìng)爭(zhēng)也將日益激烈。在高端技術(shù)傳感器領(lǐng)域,真尚有等國(guó)際傳感器巨頭也已經(jīng)進(jìn)入國(guó)內(nèi)市
24、場(chǎng),并直接在中國(guó)設(shè)立技術(shù)研發(fā)部。新技術(shù)的發(fā)展將重新定義未來(lái)的傳感器市場(chǎng),比如光電傳感器、無(wú)線傳感器、光纖傳感器、智能傳感器和金屬氧化傳感器等新型傳感器的出現(xiàn)與市場(chǎng)份額的擴(kuò)大。</p><p> 第二章 方案設(shè)計(jì)與論證</p><p><b> 2.1 光電發(fā)射器</b></p><p> 光電測(cè)量技術(shù)是以光電子學(xué)為基礎(chǔ),以光電子器件為主體
25、,利用光電傳感器將被測(cè)量的量轉(zhuǎn)換成光通量,再轉(zhuǎn)換成電量并綜合利用信息傳送和處理技術(shù),完成測(cè)量的一門(mén)新興的技術(shù)。,其中激光傳感器就是光電測(cè)量技術(shù)的一個(gè)重要應(yīng)用。激光傳感器【5】簡(jiǎn)單介紹及其優(yōu)點(diǎn)。激光傳感器是利用激光技術(shù)進(jìn)行測(cè)量的傳感器。它由激光器、激光檢測(cè)器和測(cè)量電路組成。激光傳感器工作時(shí)先由激光發(fā)射二極管對(duì)準(zhǔn)目標(biāo)發(fā)射激光脈沖。激光接收管只能接收160KHZ至200KHZ左右頻率的光,也就是說(shuō)一般可見(jiàn)光中的大部分色光都不能被接收到。那么只
26、要將激光的發(fā)射頻率調(diào)制到160KHZ至200KHZ內(nèi)就能被激光接收管接收到了如圖2-1。</p><p> 圖 2-1光電調(diào)制管</p><p><b> 2.2 控制系統(tǒng)</b></p><p> ATmega1內(nèi)核【6】具有豐富的指令集和32 個(gè)通用工作寄存器。所有的寄存器都直接與運(yùn)算邏單元相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)
27、訪問(wèn)兩個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。</p><p> ATmega16 有如下特點(diǎn):16K字節(jié)的系統(tǒng)內(nèi)可編程Flash,512 字節(jié)EEPROM,1K 字節(jié)SRAM,32 個(gè)通用I/O 口線,32 個(gè)通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內(nèi)調(diào)試與編程,有起始條件檢測(cè)器的通用串行接口,8路10位具有可選差分輸入級(jí)可編程增益
28、的ADC ,具有片內(nèi)振蕩器的可編程看門(mén)狗定時(shí)器,一個(gè)SPI 串行端口,以及六個(gè)可以通過(guò)軟件進(jìn)行選擇的省電模式。 工作于空閑模式時(shí)CPU 停止工作,而USART、兩線接口、A/D 轉(zhuǎn)換器、SRAM、T/C、SPI 端口以及中斷系統(tǒng)繼續(xù)工作;停電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時(shí)器繼續(xù)運(yùn)行,允許用戶保持一個(gè)時(shí)間基準(zhǔn),而其余功能模塊處于休眠狀態(tài); ADC 噪聲抑制模式時(shí)終止CPU 和除了
29、異步定時(shí)器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時(shí)的開(kāi)關(guān)噪聲; Standby 模式下只有晶體或諧振振蕩器運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時(shí)具有快速啟動(dòng)能力;擴(kuò)展Standby 模式下則允許振蕩器和異步定時(shí)器繼續(xù)工作如圖2-1。</p><p><b> 圖 2-1流程圖</b></p><p><b> 2
30、.3檢測(cè)系統(tǒng)</b></p><p> 檢測(cè)系統(tǒng)主要實(shí)現(xiàn)光電檢測(cè),即利用光電傳感器對(duì)電動(dòng)車(chē)的行車(chē)狀態(tài)進(jìn)行測(cè)量。光線跟蹤,采用光敏三極管接收激光發(fā)出的光線,當(dāng)感受到光線照射時(shí),其c-e間的阻值下降,檢測(cè)電路輸出高電平,經(jīng)整形后送單片機(jī)控制。此套光電傳感器固定在底盤(pán)前沿。正常行駛時(shí),激光被接收管接收,輸出高電平信號(hào),傳感器輸出高電平信號(hào)后送單片機(jī)處理,判斷執(zhí)行哪一種預(yù)先編制的程序來(lái)控制車(chē)的行駛狀態(tài)。前進(jìn)
31、時(shí),驅(qū)動(dòng)輪直流電機(jī)正轉(zhuǎn),由單片機(jī)控制進(jìn)行調(diào)速,通過(guò)軟件改變通電時(shí)長(zhǎng)實(shí)現(xiàn)調(diào)速,最后經(jīng)反接制動(dòng)實(shí)現(xiàn)停車(chē)。</p><p><b> 2.4接收與傳輸</b></p><p> 本系統(tǒng)共設(shè)計(jì)五個(gè)激光接收傳感器如圖2-2,分別放置在電動(dòng)車(chē)車(chē)頭的正前方及左、右兩個(gè)方向,用來(lái)控制電動(dòng)車(chē)的行走方向,當(dāng)五個(gè)接收器都未受到光照時(shí)單片機(jī)控制直行;當(dāng)左側(cè)接收器受到光照時(shí),單片機(jī)控制轉(zhuǎn)向
32、電機(jī)向左轉(zhuǎn);當(dāng)右側(cè)接收器受到光照時(shí),單片機(jī)控制轉(zhuǎn)向電機(jī)向右轉(zhuǎn);當(dāng)正前方接收器都受到光照時(shí),單片機(jī)控制直行;正前方接收器控制行進(jìn)角度不要偏離直行,用以及時(shí)校對(duì)。行車(chē)方向檢測(cè)電路采用激光接收觸發(fā)原理配置了一對(duì)激光發(fā)射、接收傳感器。該電路包括一個(gè)紅外發(fā)光二極管、一個(gè)紅外光敏三極管及其上拉電阻。1號(hào)腳接了一個(gè)下拉電阻,一般為可調(diào)電阻,用于調(diào)整調(diào)制頻率,1號(hào)腳同時(shí)也是調(diào)制信號(hào)輸出端;2號(hào)腳接+5V,3號(hào)腳懸空。</p><p&
33、gt;<b> 圖 2-2接收管</b></p><p> 2.5 電機(jī)驅(qū)動(dòng)系統(tǒng)</p><p> 直流電動(dòng)機(jī)的調(diào)速【7】方法有三種:(1)調(diào)節(jié)電樞供電電壓U。改變電樞電壓主要是從額定電壓往下降低電樞電壓,從電動(dòng)機(jī)額定轉(zhuǎn)速向下變速,屬恒轉(zhuǎn)矩調(diào)速方法。對(duì)于要求在一定范圍內(nèi)無(wú)級(jí)平滑調(diào)速的系統(tǒng)來(lái)說(shuō),這種方法最好。aI變化遇到的時(shí)間常數(shù)較小,能快速響應(yīng),但是需要大容量可
34、調(diào)直流電源。(2)改變電動(dòng)機(jī)主磁通。改變磁通可以實(shí)現(xiàn)無(wú)級(jí)平滑調(diào)速,但只能減弱磁通進(jìn)行調(diào)速(簡(jiǎn)稱(chēng)弱磁調(diào)速),從電機(jī)額定轉(zhuǎn)速向上調(diào)速,屬恒功率調(diào)速方法。fI變化時(shí)間遇到的時(shí)間常數(shù)同變化遇到的相比要大得多,響應(yīng)速度較慢,但所需電源容量小。(3)改變電樞回路電阻R。在電動(dòng)機(jī)電樞回路外串電阻進(jìn)行調(diào)速的方法,設(shè)備簡(jiǎn)單,操作方便。但是只能進(jìn)行有級(jí)調(diào)速,調(diào)速平滑性差,機(jī)械特性較軟;空載時(shí)幾乎沒(méi)什么調(diào)速作用;還會(huì)在調(diào)速電阻上消耗大量電能。改變電阻調(diào)速缺點(diǎn)
35、很多,目前很少采用,僅在有些起重機(jī)、卷?yè)P(yáng)機(jī)及電車(chē)等調(diào)速性能要求不高或低速運(yùn)轉(zhuǎn)時(shí)間不長(zhǎng)的傳動(dòng)系統(tǒng)中采用。弱磁調(diào)速范圍不大,在額定轉(zhuǎn)速以上作小范圍的升速。對(duì)于要求在一定范圍內(nèi)無(wú)級(jí)平滑調(diào)速。</p><p><b> 第三章 硬件設(shè)計(jì)</b></p><p> 3.1 控制系統(tǒng)的硬件構(gòu)造</p><p> 3.1.1 ATmega16單片機(jī)簡(jiǎn)介
36、</p><p> ATmega16是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器。如圖3.1由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16 的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以減緩系統(tǒng)在功耗和處理速度之間的矛盾。 </p><p> 本芯片是以Atmel 高密度非易失性存儲(chǔ)器技術(shù)生產(chǎn)的。片內(nèi)ISP Flash 允許程序存儲(chǔ)器通過(guò)ISP 串行接
37、口,或者通用編程器進(jìn)行編程,也可以通過(guò)運(yùn)行于AVR 內(nèi)核之中的引導(dǎo)程序進(jìn)行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲(chǔ)區(qū)。在更新應(yīng)用Flash存儲(chǔ)區(qū)時(shí)引導(dǎo)Flash區(qū)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了RWW 操作。 通過(guò)將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成在一個(gè)芯片內(nèi), ATmega16 成為一個(gè)功能強(qiáng)大的單片機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。
38、 </p><p> 3.1.2 ATmega16 引腳功能</p><p><b> VCC 電源正</b></p><p><b> GND 電源地</b></p><p> 端口A(PA7..PA0) 端口A 做為A/D 轉(zhuǎn)換器的模擬輸入端。端口A 為8 位雙向I/O 口,具有可編程
39、的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱(chēng)的驅(qū)動(dòng)特性,可以輸出和吸收大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過(guò)程中,即使系統(tǒng)時(shí)鐘還未起振,端口A 處于高阻狀態(tài)。本系統(tǒng)將A端口作為輸入信號(hào)端口,與激光接收器端口相連接。</p><p> 端口C(PC7..PC0) 端口C 為8 位雙向I/O 口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱(chēng)的驅(qū)動(dòng)特性,可以輸出和吸收大電流。作
40、為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過(guò)程中,即使系統(tǒng)時(shí)鐘還未起振,端口C 處于高阻狀態(tài)。如果JTAG接口使能,即使復(fù)位出現(xiàn)引腳 PC5(TDI)、 PC3(TMS)與 PC2(TCK)的上拉電阻被激活。端口C 也可以用做其他不同的特殊功能。本系統(tǒng)將端口C作為電機(jī)驅(qū)動(dòng)的信號(hào)輸入端。</p><p> RESET 復(fù)位輸入引腳。持續(xù)時(shí)間超過(guò)最小門(mén)限時(shí)間的低電平將引起系統(tǒng)復(fù)位。門(mén)限
41、時(shí)間見(jiàn)P36Table 15。持續(xù)時(shí)間小于門(mén)限間的脈沖不能保證可靠復(fù)位。</p><p> XTAL1 反向振蕩放大器與片內(nèi)時(shí)鐘操作電路的輸入端。</p><p> XTAL2 反向振蕩放大器的輸出端。</p><p> AVCC是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時(shí),該引腳應(yīng)直接與VCC連接。使用ADC時(shí)應(yīng)通過(guò)一個(gè)低通濾波器與VCC連接如圖3-1。&l
42、t;/p><p> 圖 3-1ATmega16單片機(jī)</p><p> 3.1.3 ATmega16 內(nèi)核</p><p> 為了獲得最高的性能以及并行性, AVR 采用了Harvard 結(jié)構(gòu),具有獨(dú)立的數(shù)據(jù)和程序總線。程序存儲(chǔ)器里的指令通過(guò)一級(jí)流水線運(yùn)行。 快速訪問(wèn)寄存器文件包括32 個(gè)8 位通用工作寄存器,訪問(wèn)時(shí)間為一個(gè)時(shí)鐘周期。從而實(shí)現(xiàn)了單時(shí)鐘周期的ALU
43、操作。ALU支持寄存器之間以及寄存器和常數(shù)之間的算術(shù)和邏輯運(yùn)算。程序流程通過(guò)有/ 無(wú)條件的跳轉(zhuǎn)指令和調(diào)用指令來(lái)控制,從而直接尋址整個(gè)地址空間。大多數(shù)指令長(zhǎng)度為16 位,亦即每個(gè)程序存儲(chǔ)器地址都包含一條16 位或32 位的指令。在中斷和調(diào)用子程序時(shí)返回地址的程序計(jì)數(shù)器(PC) 保存于堆棧之中。這個(gè)指針位于I/O 空間,可以進(jìn)行讀寫(xiě)訪問(wèn)。數(shù)據(jù)SRAM 可以通過(guò)5 種不同的尋址模式進(jìn)行訪問(wèn)。AVR 存儲(chǔ)器空間為線性的平面結(jié)構(gòu)。AVR有一個(gè)靈活
44、的中斷模塊??刂萍拇嫫魑挥贗/O空間。狀態(tài)寄存器里有全局中斷使能位。每個(gè)中斷在中斷向量表里都有獨(dú)立的中斷向量。各個(gè)中斷的優(yōu)先級(jí)與其在中斷向量表的位置有關(guān),中斷向量地址越低,優(yōu)先級(jí)越高。</p><p> 3.1.4最小應(yīng)用系統(tǒng)設(shè)計(jì)</p><p> 80C51是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡(jiǎn)單﹑可靠。用80C51單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接
45、上時(shí)鐘電路和復(fù)位電路即可,如圖3-2 80C51單片機(jī)最小系統(tǒng)所示。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。</p><p><b> 圖 3-2最小系統(tǒng)</b></p><p> 3.2 激光觸發(fā)與接收</p><p> 3.2.1 激光發(fā)射</p><p> 常用的激光二極管有兩種:PIN光
46、電二極管【8】。它在收到光功率產(chǎn)生光電流時(shí),會(huì)帶來(lái)量子噪聲。雪崩光電二極管。它能夠提供內(nèi)部放大,比PIN光電二極管的傳輸距離遠(yuǎn),但量子噪聲更大。為了獲得良好的信噪比,光檢測(cè)器件后面須連接低噪聲預(yù)放大器和主放大器。</p><p> 半導(dǎo)體激光二極管的常用參數(shù)有。波長(zhǎng):即激光管工作波長(zhǎng),目前可作光電開(kāi)關(guān)用的激光管波長(zhǎng)有650nm、670nm、780nm、810nm、980nm等。閾值電流Ith :即激光管開(kāi)始產(chǎn)生
47、激光振蕩的電流,對(duì)一般小功率激光管而言,其值約在數(shù)十毫安,具有應(yīng)變多量子阱結(jié)構(gòu)的激光管閾值電流可低至10mA以下。工作電流Iop :即激光管達(dá)到額定輸出功率時(shí)的驅(qū)動(dòng)電流。</p><p> 發(fā)射部分電路如圖3-3。電源電壓5v(穩(wěn)壓),NPN中功率三極管,集電極接正電源,發(fā)射極對(duì)地,用一只22歐姆左右的電阻接在調(diào)制管與基極之間。</p><p><b> 圖 3-3發(fā)射部分&
48、lt;/b></p><p> 3.2.2 激光接收</p><p> 激光接收管在管子上加一反向電壓時(shí),有光時(shí)電流就增大,無(wú)光時(shí)幾乎無(wú)電流通過(guò)。用一個(gè)電阻分壓,電流的變化則可轉(zhuǎn)換為電壓的變化,如果接電阻在二極管負(fù)極端,有光時(shí)電壓下降輸出低電平;如果電阻接在二極管正極端,有光時(shí)電壓上升輸出高電平如圖3-4。</p><p><b> 圖 3-4
49、接收部分</b></p><p><b> 3.3 電機(jī)驅(qū)動(dòng)</b></p><p> 3.3.1 L298介紹 </p><p> L298N為15個(gè)管角的單塊集成電路,高電壓,高電流,四通道驅(qū)動(dòng)圖3-5。 </p><p> 圖 3-5L298 </p><p>
50、; 電源電壓,驅(qū)動(dòng)部分:本驅(qū)動(dòng)器可適應(yīng)較寬電壓范圍可在10V-36V之間選擇。一般來(lái)說(shuō)較高的額定電壓有利于提高電機(jī)在高轉(zhuǎn)速扭矩,但卻會(huì)加大驅(qū)動(dòng)板的功率損耗和溫升【9】。</p><p> 前置部分:可在9-12V之間選擇。前置部分約消耗0.25A電流,在功率電源輸入超過(guò)12V時(shí)不可將前置電源并接于功率電源。</p><p> 輸出電流選擇:本驅(qū)動(dòng)器最大電流值為2A/相,為配合不同電機(jī)
51、使用,調(diào)整精密可調(diào)電阻以達(dá)到最佳電流匹配如表3-1。</p><p><b> 表3-1 電壓參數(shù)</b></p><p> 輸入信號(hào):本驅(qū)動(dòng)器并口輸入信號(hào)使用共陰接線方式,+5VTTL電平驅(qū)動(dòng)?!?lt;/p><p> 脈沖信號(hào)輸入:該信號(hào)被驅(qū)動(dòng)器解釋為一個(gè)有效脈沖,并驅(qū)動(dòng)電機(jī)運(yùn)行一步,為確保脈沖信號(hào)可靠響應(yīng),本驅(qū)動(dòng)器最高信號(hào)響應(yīng)頻率為70
52、KHZ,過(guò)高的輸入頻率將可能得不到正確響應(yīng)。方向信號(hào)輸入:該端信號(hào)的高低電平控制電機(jī)的兩個(gè)轉(zhuǎn)向,控制電機(jī)轉(zhuǎn)向時(shí)應(yīng)確保方向信號(hào)領(lǐng)先脈沖信號(hào)建立,可避免驅(qū)動(dòng)器對(duì)脈沖的錯(cuò)誤響應(yīng)。當(dāng)電感線圈通電后再斷電時(shí),繞組兩端會(huì)產(chǎn)生一個(gè)比電源電壓高N倍,極性與電源電壓相反的反向電壓,這就是自感電動(dòng)勢(shì)。這個(gè)反向電壓就會(huì)加在L298的功率開(kāi)關(guān)器件上,將L298的功率開(kāi)關(guān)器件擊穿燒壞,所以要建立一個(gè)泄放通道,將繞組自感電動(dòng)勢(shì)所產(chǎn)生的高壓和電流釋放,以保護(hù)功率開(kāi)關(guān)
53、器件。 D1、D6,D2、D5兩組的作用分別為:A電機(jī)正轉(zhuǎn)時(shí),OUT1為正,OUT2為地,電流從OUT1經(jīng)A繞組流向OUT2。當(dāng)切斷電流,電機(jī)停轉(zhuǎn)時(shí)A電機(jī)繞組的感生電壓使OUT2為正,OUT1為負(fù)(就象一組電池),這時(shí)接在正端(OUT2)的D2會(huì)正向?qū)ǎ欢釉谪?fù)端(OUT1)的D5也導(dǎo)通將負(fù)端接地。為感生電流提供泄放通道向C1、C2充電。這時(shí),C1、C2作為儲(chǔ)能器件將自感電流吸收儲(chǔ)存。 反轉(zhuǎn)時(shí)與&
54、lt;/p><p> 圖 3-6 驅(qū)動(dòng)電機(jī)</p><p> 3.3.2 驅(qū)動(dòng)電路</p><p> 設(shè)計(jì)用L298N來(lái)接收DTL或者TTL邏輯電平,驅(qū)動(dòng)感性負(fù)載。內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路【10】,其額定工作電流為 1 A,最大可達(dá) 1.5 A,Vss 電壓最小 4.5 V,最大可達(dá) 36 V;Vs 電壓最大值也是 36 V。L298N可直接對(duì)電機(jī)進(jìn)行控制,無(wú)須
55、隔離電路,可以驅(qū)動(dòng)雙電機(jī)。根據(jù)L298N芯片的特點(diǎn),把IOA4~I(xiàn)OA7作為輸出口,分別與L298N的IN1~I(xiàn)N4相接,其VS、VSS分別接+12 V、+5 V電源,其輸出口OUT1~OUT2接轉(zhuǎn)向電機(jī),OUT3~OUT4接驅(qū)動(dòng)電機(jī),根據(jù)設(shè)計(jì)要求,結(jié)合所編好的程序,根據(jù)所發(fā)語(yǔ)音命令,接收信號(hào),從而控制轉(zhuǎn)向電機(jī)和驅(qū)動(dòng)電機(jī)如圖3-7。</p><p><b> 圖 3-7驅(qū)動(dòng)系統(tǒng)</b>&l
56、t;/p><p><b> 3.3直流電機(jī)</b></p><p> 主磁極的作用是產(chǎn)生氣隙磁場(chǎng)。主磁極由主磁極鐵心和勵(lì)磁繞組兩部分組成。 直流電機(jī)鐵心一般用0.5mm~1.5mm厚的硅鋼板沖片疊壓鉚緊而成,分為極身和極靴兩部分,上面套勵(lì)磁繞組的部分稱(chēng)為極身,下面擴(kuò)寬的部分稱(chēng)為極靴,極靴寬于極身,既可以調(diào)整氣隙中磁場(chǎng)的分布,又便于固定勵(lì)磁繞組。勵(lì)磁繞組用絕緣銅線繞制而
57、成,套在主磁極鐵心上。整個(gè)主磁極用螺釘固定在機(jī)座上,由直流電動(dòng)機(jī)和發(fā)電機(jī)工作原理示意圖可以看到,直流電機(jī)的結(jié)構(gòu)應(yīng)由定子和轉(zhuǎn)子兩大部分組成。直流電機(jī)運(yùn)行時(shí)靜止不動(dòng)的部分稱(chēng)為定子,定子的主要作用是產(chǎn)生磁場(chǎng),由機(jī)座、主磁極、換向極、端蓋、軸承和電刷裝置等組成。運(yùn)行時(shí)轉(zhuǎn)動(dòng)的部分稱(chēng)為轉(zhuǎn)子,其主要作用是產(chǎn)生電磁轉(zhuǎn)矩和感應(yīng)電動(dòng)勢(shì),是直流電機(jī)進(jìn)行能量轉(zhuǎn)換的樞紐,所以通常又稱(chēng)為電樞,由轉(zhuǎn)軸、電樞鐵心、電樞繞組、換向器和風(fēng)扇等組成。</p>
58、<p> 直流電機(jī)是指能將直流電能轉(zhuǎn)換成機(jī)械能(直流電動(dòng)機(jī))或?qū)C(jī)械能轉(zhuǎn)換成直流電能(直流發(fā)電機(jī))的旋轉(zhuǎn)電機(jī)。它是能實(shí)現(xiàn)直流電能和機(jī)械能互相轉(zhuǎn)換的電機(jī)。當(dāng)它作電動(dòng)機(jī)運(yùn)行時(shí)是直流電動(dòng)機(jī),將電能轉(zhuǎn)換為機(jī)械能;作發(fā)電機(jī)運(yùn)行時(shí)是直流發(fā)電機(jī),將機(jī)械能轉(zhuǎn)換為電能。直流電機(jī)里邊固定有環(huán)狀永磁體,電流通過(guò)轉(zhuǎn)子上的線圈產(chǎn)生安培力,當(dāng)轉(zhuǎn)子上的線圈與磁場(chǎng)平行時(shí),再繼續(xù)轉(zhuǎn)受到的磁場(chǎng)方向?qū)⒏淖?,因此此時(shí)轉(zhuǎn)子末端的電刷跟轉(zhuǎn)換片交替接觸,從而線圈上的電流
59、方向也改變,產(chǎn)生的洛倫茲力方向不變,所以電機(jī)能保持一個(gè)方向轉(zhuǎn)動(dòng)。</p><p> 直流發(fā)電機(jī)的工作原理就是把電樞線圈中感應(yīng)的交變電動(dòng)勢(shì), 靠換向器配合電刷的換向作用,使之從電刷端引出時(shí)變?yōu)橹绷麟妱?dòng)勢(shì)的原理。感應(yīng)電動(dòng)勢(shì)的方向按右手定則確定(磁感線指向手心,大拇指指向?qū)w運(yùn)動(dòng)方向,其他四指的指向就是導(dǎo)體中感應(yīng)電動(dòng)勢(shì)的方向)。導(dǎo)體受力的方向用左手定則確定。這一對(duì)電磁力形成了作用于電樞一個(gè)力矩,這個(gè)力矩在旋轉(zhuǎn)電機(jī)里稱(chēng)
60、為電磁轉(zhuǎn)矩,轉(zhuǎn)矩的方向是逆時(shí)針?lè)较?,企圖使電樞逆時(shí)針?lè)较蜣D(zhuǎn)動(dòng)。如果此電磁轉(zhuǎn)矩能夠克服電樞上的阻轉(zhuǎn)矩(例如由摩擦引起的阻轉(zhuǎn)矩以及其它負(fù)載轉(zhuǎn)矩),電樞就能按逆時(shí)針?lè)较蛐D(zhuǎn)起來(lái)。</p><p><b> 3.4通道設(shè)計(jì)</b></p><p><b> 3.4.1前向通道</b></p><p> 單片機(jī)用與測(cè)控系統(tǒng)時(shí),
61、總要有與被測(cè)對(duì)象相聯(lián)系的前向通道。因此,前向通道設(shè)計(jì)與被測(cè)對(duì)象的狀態(tài)、特征、所處環(huán)境密切相關(guān)。在前向通道設(shè)計(jì)時(shí)要考慮到傳感器或敏感元件選擇、通道結(jié)構(gòu)、信號(hào)調(diào)節(jié)、電源配置、抗干擾設(shè)計(jì)等。在通道電路設(shè)計(jì)中還涉及到模擬電路諸多問(wèn)題。</p><p> 當(dāng)將單片機(jī)用作測(cè)﹑控系統(tǒng)時(shí),系統(tǒng)中總要有被測(cè)信號(hào)輸入通道,有計(jì)算機(jī)拾取必要的輸入信息。作為測(cè)試系統(tǒng),對(duì)被測(cè)對(duì)象拾取必要的原始參量信號(hào)是系統(tǒng)的核心任務(wù),對(duì)控制系統(tǒng)來(lái)說(shuō),對(duì)
62、被控對(duì)象狀態(tài)的測(cè)試以及對(duì)控制條件的監(jiān)測(cè)也是不可缺少的環(huán)節(jié)。</p><p> 對(duì)被測(cè)對(duì)象狀態(tài)的測(cè)試一般都離不開(kāi)傳感器或敏感元件,這是因?yàn)楸粶y(cè)對(duì)象的狀態(tài)參數(shù)常常是一些非電物理量,如溫度、壓力、載荷、位移等,而計(jì)算機(jī)是一個(gè)數(shù)字電路系統(tǒng)。因此,在前向通道中,傳感器、敏感元件及其相關(guān)電路占有重要地位。</p><p> 對(duì)被測(cè)對(duì)象的信號(hào)的拾取其主要任務(wù)就是最忠實(shí)地反映被測(cè)對(duì)象的真實(shí)狀態(tài),它包括
63、實(shí)時(shí)性與測(cè)量精度。同時(shí)使這些測(cè)量信號(hào)能滿足計(jì)算機(jī)輸入接口的電平要求。</p><p> 因此,單片機(jī)應(yīng)用系統(tǒng)中的前向通道體現(xiàn)了被測(cè)對(duì)象與系統(tǒng)相互聯(lián)系的信號(hào)輸入通道,原始參數(shù)輸入通道。由于在該通道中主要是傳感器與傳感器有關(guān)的信號(hào)調(diào)節(jié)、變換電路,故也可稱(chēng)為傳感器接口通道。</p><p> 在單片機(jī)應(yīng)用系統(tǒng)中,對(duì)信號(hào)輸入、傳感、變換應(yīng)作廣義理解,例如開(kāi)關(guān)量的檢測(cè)及信號(hào)輸入,在單片機(jī)的各種應(yīng)
64、用系統(tǒng)中有著廣泛的應(yīng)用。最簡(jiǎn)單的開(kāi)關(guān)量輸入通道就是一個(gè)具有TTL電平的狀態(tài)開(kāi)關(guān),如水銀溫度觸點(diǎn)、溫度晶閘管、時(shí)間繼電器、限位開(kāi)關(guān)等。故只要反映外界狀態(tài)的信號(hào)輸入通道都可稱(chēng)為前向通道。</p><p> 并不是所有單片機(jī)應(yīng)用系統(tǒng)都有前向通道,例如時(shí)序控制系統(tǒng),只根據(jù)系統(tǒng)內(nèi)部的時(shí)間序列來(lái)控制外部的運(yùn)行狀態(tài);分布式測(cè)控系統(tǒng)中的智能控制總站完成上級(jí)主計(jì)算機(jī)與現(xiàn)場(chǎng)測(cè)、控子站計(jì)算機(jī)之間的指令、數(shù)據(jù)傳送。這些應(yīng)用系統(tǒng)沒(méi)有被測(cè)
65、對(duì)象,故不需要前向通道。</p><p> 3.4.2后向通道設(shè)計(jì)</p><p> 在工業(yè)控制系統(tǒng)中,單片機(jī)總要對(duì)控制對(duì)象實(shí)現(xiàn)操作,因此,在這樣的系統(tǒng)中,總要有后向通道。后向通道是計(jì)算機(jī)實(shí)現(xiàn)控制運(yùn)算處理后,對(duì)控制對(duì)象的輸出通道接口。</p><p> 根據(jù)單片機(jī)的輸出和控制對(duì)象實(shí)現(xiàn)控制信號(hào)的要求,后向通道具有以下特點(diǎn):</p><p>
66、; 1.小信號(hào)輸出、大功率控制。根據(jù)目前單片機(jī)輸出功率的限制,不能輸出控制對(duì)象所要求的功率信號(hào)。</p><p> 2.是一個(gè)輸出通道。輸出伺服驅(qū)動(dòng)系統(tǒng)控制信號(hào),而伺服驅(qū)動(dòng)系統(tǒng)中的狀態(tài)反饋信號(hào)通常是作為檢測(cè)信號(hào)輸入前向通道。</p><p> 3.接近控制對(duì)象,環(huán)境惡劣??刂茖?duì)象多為大功率伺服驅(qū)動(dòng)機(jī)構(gòu),電磁、機(jī)械干擾較為嚴(yán)重。但后向通道是一個(gè)輸出通道,而且輸出電平較高,不易受到直接損
67、害。但這些干擾易從系統(tǒng)的前向通道竄入。</p><p><b> 第四章 軟件設(shè)計(jì)</b></p><p><b> 4.1軟件流程</b></p><p> Y </p><p><b> N</b></p><p
68、><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N </b></p><p><b> N </b></p><p&g
69、t;<b> Y </b></p><p> 4.2 主程序設(shè)計(jì) </p>&
70、lt;p><b> 主程序清單如下:</b></p><p> #include<iom16v.h></p><p> #include<macros.h></p><p> #define uint unsigned int</p><p> #define uchar unsi
71、gned char</p><p> uint g,str;//定義全局變量,以便端口掃描</p><p> uchar tur=0,tur01=0,flag=0,flag0=0,final;</p><p> /*********延時(shí)子程序*********/</p><p> void delay_ms(unsigned int
72、n) //毫秒級(jí)延時(shí)</p><p> {unsigned int i,j;</p><p> for(i=1;i<n;i++)</p><p> {for(j=1;j<1142;j++); </p><p><b> }</b></p><p><b> }
73、</b></p><p> void delay_us(unsigned int n) //微秒級(jí)延時(shí)</p><p> {unsigned int i,j;</p><p> for(i=1;i<n;i++)</p><p> {for(j=1;j<2;j++); </p><p>
74、;<b> }</b></p><p><b> }</b></p><p> void kuaipwm(uint a)//PWM初始化及PWM調(diào)速</p><p><b> { </b></p><p> TCCR1A=0X63;//快速PWM模式的選定設(shè)置<
75、;/p><p> TCCR1B=0X1C;//256分頻</p><p> OCR1A=312;//快速PWM的TOP值</p><p> OCR1B=a;//匹配寄存器,可隨意調(diào)節(jié)占空比</p><p><b> }</b></p><p> void go_ahead(void)//直行
76、</p><p><b> {</b></p><p> kuaipwm(300);//初始占空比設(shè)置</p><p> PORTC|=0b00001010;//正向直行</p><p> PORTC&=0b11111010;</p><p><b> flag=1;&
77、lt;/b></p><p><b> }</b></p><p> void turn_left(void)//左轉(zhuǎn)</p><p><b> { </b></p><p> //delay_ms(1);//</p><p> kuaipwm(300);//
78、占空比</p><p> PORTC=0b00001000;//電機(jī)左轉(zhuǎn)</p><p> flag=0;//代表向左</p><p><b> }</b></p><p> void turn_right(void)//右轉(zhuǎn)</p><p><b> { </b>
79、</p><p> //delay_ms(1);//</p><p> kuaipwm(300);//占空比</p><p> PORTC=0b00000010;//電機(jī)右轉(zhuǎn)</p><p><b> flag=2;</b></p><p><b> }</b>&l
80、t;/p><p> void turn_right90t(void)//右轉(zhuǎn)90</p><p><b> {</b></p><p> kuaipwm(300);//占空比</p><p> PORTC=0b00000010;//電機(jī)右轉(zhuǎn)</p><p> delay_ms(1100);&
81、lt;/p><p><b> flag=2;</b></p><p><b> }</b></p><p> void turn_left90t(void)//左轉(zhuǎn)90</p><p><b> {</b></p><p> kuaipwm(300
82、);//占空比</p><p> PORTC=0b00001000;//電機(jī)左轉(zhuǎn)</p><p> delay_ms(1100);</p><p><b> flag=0;</b></p><p><b> }</b></p><p> void turn_stop
83、(void)//停止</p><p><b> { </b></p><p> //delay_ms(1);//</p><p> kuaipwm(300);//占空比</p><p> PORTC=0b00000000;//電機(jī)停轉(zhuǎn)</p><p><b> }</b&
84、gt;</p><p> void init_IO(void)//PC0/1--左側(cè)電機(jī),PC2/3---右側(cè)電機(jī)</p><p><b> {</b></p><p> DDRC|=0b00001111;//</p><p> DDRD|=BIT(4)|BIT(5);//pwm初始化</p>&l
85、t;p><b> }</b></p><p> void firtly_setted(void)//</p><p><b> {</b></p><p> if(str<4000)//如果4秒尋不到黑跡,</p><p><b> { </b></
86、p><p> go_ahead();</p><p> delay_us(100);</p><p><b> } </b></p><p> else if(4000<=str<4050)</p><p><b> { </b></p>&l
87、t;p> turn_left();</p><p> delay_us(100);</p><p><b> } </b></p><p> else if(4050<=str<8050)</p><p><b> {</b></p><p>
88、 go_ahead();</p><p> delay_us(100);</p><p><b> } </b></p><p> else if(8050<=str<8100)</p><p><b> {</b></p><p> turn_left
89、();</p><p> delay_us(100);</p><p><b> }</b></p><p> else if(8100<=str<12100)</p><p><b> {</b></p><p> go_ahead();</p&
90、gt;<p> delay_us(100);</p><p><b> }</b></p><p> else if(12100<=str<12150)</p><p><b> {</b></p><p> turn_left();</p><
91、;p> delay_us(100);</p><p><b> }</b></p><p> else if(12150<=str<16150)</p><p><b> {</b></p><p> go_ahead();</p><p> d
92、elay_us(100);</p><p><b> }</b></p><p> else if(16150<=str<16200)</p><p><b> {</b></p><p> turn_left();</p><p> delay_us(
93、100);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> str=0;</b></p><p><b> }&l
94、t;/b></p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><p> delay_ms(30);</p><p> init_IO();//初始化IO口</p>
95、<p> DDRA&=0b11100000;//pa4--pa0輸入 pa4--pa0對(duì)應(yīng)對(duì)管和小燈從右到左(面向小車(chē)的前進(jìn)方向)</p><p> PORTA|=0b00011111;//上拉輸入</p><p><b> while(1)</b></p><p><b> {</b><
96、/p><p><b> g=PINA;</b></p><p><b> g=~g;</b></p><p> g&=0b00011111;</p><p><b> if(g!=0)</b></p><p> {final=0;}<
97、/p><p><b> switch(g)</b></p><p><b> { </b></p><p> case 0b00011111:if(tur==0)</p><p> {tur01++;//黑點(diǎn)個(gè)數(shù)</p><p> str++;//初始尋跡過(guò)程控制變量&
98、lt;/p><p> firtly_setted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {go_ahead()
99、;delay_ms(100);}break;//無(wú)激光照射,燈全亮,執(zhí)行直行子函數(shù)</p><p> case 0b00011010:if(tur==0)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted(
100、);</p><p> if(tur01>4){tur=1;str=0;tur01=0;}//tur01待改</p><p><b> }</b></p><p><b> else</b></p><p> {turn_right90t();go_ahead();delay_ms(1
101、00);}break;//右一右三尋到光,執(zhí)行右轉(zhuǎn)90度子函數(shù)</p><p> case 0b00011100:if(tur==0)//一般是final=1的時(shí)候出現(xiàn)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_
102、setted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {turn_right90t();go_ahead();delay_ms(100
103、);}break;//右一右二尋到光,執(zhí)行右轉(zhuǎn)90度子函數(shù)</p><p> case 0b00011110:if(tur==0)//一般是final=1的時(shí)候出現(xiàn)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_se
104、tted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {turn_right90t();go_ahead();delay_ms(100);
105、}break;//右一尋到光,執(zhí)行右轉(zhuǎn)90度子函數(shù)</p><p> case 0b00010110:if(tur==0)//一般是final=1的時(shí)候出現(xiàn)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted
106、();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {turn_right90t();go_ahead();delay_ms(100);}bre
107、ak;//左二右一尋到光,執(zhí)行右轉(zhuǎn)90度子函數(shù)</p><p> case 0b00011101:if(tur==0)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted();</p><
108、p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {turn_right();delay_ms(100);go_ahead();delay_ms(100);}break;//右2尋
109、到光,同樣執(zhí)行右轉(zhuǎn)子函數(shù)</p><p> case 0b00011001:if(tur==0)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted();</p><p> if(t
110、ur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {turn_right();delay_ms(100);go_ahead();delay_ms(100);}break;//</p>&l
111、t;p> case 0b00011011:if(tur==0)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted();</p><p> if(tur01>4){tur=1;str=0;tur
112、01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {go_ahead();delay_ms(100);}break;//中間尋到光,執(zhí)行直行函數(shù)</p><p> case 0b00010111:if(tur==0)</p
113、><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }&l
114、t;/b></p><p><b> else</b></p><p> {turn_left();delay_ms(100);go_ahead();delay_ms(100);} break;//執(zhí)行左轉(zhuǎn)函數(shù)</p><p> case 0b00010011:if(tur==0)</p><p><b
115、> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p>
116、<p><b> else</b></p><p> {turn_left();delay_ms(100);go_ahead();delay_ms(100);} break;// </p><p> case 0b00000111:if(tur==0)</p><p><b> {tur01++;</b>
117、</p><p> str++;//初始尋跡過(guò)程控制變量。</p><p> firtly_setted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else&
118、lt;/b></p><p> {turn_left90t();go_ahead();delay_ms(100);} break;//左轉(zhuǎn)90度函數(shù) </p><p> case 0b00001111:if(tur==0)</p><p><b> {tur01++;</b></p><p> str++;
119、//初始尋跡過(guò)程控制變量。</p><p> firtly_setted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p>
120、; {turn_left90t();go_ahead();delay_ms(100);} break;//左轉(zhuǎn)90度函數(shù)</p><p> case 0b00001011:if(tur==0)//一般是final=1的時(shí)候出現(xiàn)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。
121、</p><p> firtly_setted();</p><p> if(tur01>4){tur=1;str=0;tur01=0;}</p><p><b> }</b></p><p><b> else</b></p><p> {turn_left
122、90t();go_ahead();delay_ms(100);}break;//左轉(zhuǎn)90度函數(shù)</p><p> case 0b00001101:if(tur==0)//一般是final=1的時(shí)候出現(xiàn)</p><p><b> {tur01++;</b></p><p> str++;//初始尋跡過(guò)程控制變量。</p>&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子信息工程畢業(yè)論文
- 電子信息工程畢業(yè)論文
- 電子信息工程專(zhuān)業(yè)畢業(yè)論文
- 電子信息工程畢業(yè)論文網(wǎng)絡(luò)工程師畢業(yè)論文
- 智能語(yǔ)音玩具電子工程畢業(yè)論文
- 電子信息工程專(zhuān)業(yè)畢業(yè)論文
- 電子信息工程畢業(yè)論文帶程序
- 電子信息工程專(zhuān)業(yè)畢業(yè)論文(設(shè)計(jì))
- 電子信息工程系畢業(yè)論文
- 電子信息工程畢業(yè)論文范文
- 電子信息工程畢業(yè)論文關(guān)于網(wǎng)絡(luò)工程的論文
- 電子信息工程畢業(yè)論文關(guān)于網(wǎng)絡(luò)工程的論文
- 電子計(jì)步器【畢業(yè)論文】
- 電子密碼畢業(yè)論文
- 電子專(zhuān)業(yè)畢業(yè)論文
- 電子門(mén)鈴畢業(yè)論文
- 電子封裝畢業(yè)論文
- 電子門(mén)鈴畢業(yè)論文
- 電子秒表畢業(yè)論文
- 電子信息工程畢業(yè)論文--led點(diǎn)陣顯示
評(píng)論
0/150
提交評(píng)論