自動(dòng)泊車系統(tǒng)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩28頁(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>  自動(dòng)泊車系統(tǒng)</b></p><p><b>  摘要</b></p><p>  對(duì)于許多駕駛員而言,順列式駐車是一種痛苦的經(jīng)歷,大城市停車空間有限,將汽車駛?cè)氇M小的空間已成為一項(xiàng)必備技能。 很少有不費(fèi)一番周折就停好車的情況,停車可能導(dǎo)致交通阻塞、神經(jīng)疲憊和保險(xiǎn)杠被撞彎。 幸運(yùn)的是,技術(shù)的發(fā)展為之提供了解決之道,這

2、就是自動(dòng)泊車功能。 設(shè)想一下,您找到了一個(gè)理想的停車地點(diǎn),不必再來回折騰,而只需輕輕啟動(dòng)按鈕、坐定、放松,其他一切即可自動(dòng)完成。 自動(dòng)泊車技術(shù)同樣適用于主動(dòng)避撞系統(tǒng),并最終實(shí)現(xiàn)汽車的自動(dòng)駕駛。</p><p>  不同的自動(dòng)泊車系統(tǒng)采用不同的方法來檢測(cè)汽車周圍的物體。有些在汽車前后保險(xiǎn)杠四周裝上了感應(yīng)器,它們既可以充當(dāng)發(fā)送器,也可以充當(dāng)接收器。這些感應(yīng)器會(huì)發(fā)送信號(hào),當(dāng)信號(hào)碰到車身周邊的障礙物時(shí)會(huì)反射回來。然后,車

3、上的計(jì)算機(jī)會(huì)利用其接收信號(hào)所需的時(shí)間來確定障礙物的位置。其他一些系統(tǒng)則使用安裝在保險(xiǎn)杠上的攝像頭或雷達(dá)來檢測(cè)障礙物。但最終結(jié)果都是一樣的:汽車會(huì)檢測(cè)到已停好的車輛、停車位的大小以及與路邊的距離,然后將車子駛?cè)胪\囄弧?lt;/p><p>  汽車自動(dòng)泊車系統(tǒng)為很多不熟悉倒車停車入位的新手提供了便利,隨著未來科技的發(fā)展,相信不久的將來汽車自動(dòng)泊車系統(tǒng)一定會(huì)進(jìn)入一個(gè)全新時(shí)代。</p><p>  

4、關(guān)鍵詞: 自動(dòng)泊車;傳感器;單片機(jī);C語(yǔ)言</p><p>  Automatic parking system</p><p><b>  Abstract</b></p><p>  For many drivers, along the column parking is a painful experience, big city pa

5、rking space is limited, and the car into a small space has become an essential skill.Rarely does not cost a lot of trouble parked car, parking may lead to traffic congestion, nervous exhaustion and bumper knocked bend. F

6、ortunately, the development of technology to provide them a solution, which is the automatic parking feature. Imagine you find a parking place, do not have to toss back and forth, with just the start b</p><p&g

7、t;  Automatic parking system takes a different approach to detect objects around the car. Some around the front and rear bumper fitted with sensors, they can either act as a transmitter, and can also act as a receiver. T

8、hese sensors send a signal when the signal encountered the body around the obstacles will be reflected back. Then, the car's computer will use the time needed to receive signals to determine the location of obstructi

9、ons. Some other system is installed in the bumper on the camera or r</p><p>  Automatic car parking system for many novice not familiar with reverse parking into place provides a convenient, with the develop

10、ment of technologies of the future, I believe the near future automobile automatic parking system will enter a new era.</p><p>  Keywords: automatic parking; sensor; microcontroller; the C language</p>

11、<p><b>  目 錄</b></p><p>  第0章 前言……………………………………………………………1</p><p>  第1章 軟件開發(fā)工具…………………………………………………3</p><p>  1.1 keil軟件簡(jiǎn)介…………………………………………………………3</p><p>

12、;  1.1.1簡(jiǎn)介……………………………………………………………3</p><p>  1.2 STC_ISP軟件介紹………………………………………………………5</p><p>  1.2.1 軟件簡(jiǎn)介…………………………………………………………5</p><p>  第2章 硬件元器件介紹………………………………………………8</p><p

13、>  2.1紅外線傳感器……………………………………………………………8</p><p>  2.2超聲波傳感器……………………………………………………………8</p><p>  2.3無線電遙控模塊…………………………………………………………9</p><p>  2.3電機(jī)驅(qū)動(dòng)模塊……………………………………………………………9</p>&

14、lt;p>  2.3 51單片機(jī)………………………………………………………………9</p><p>  第3章 軟、硬件的各部分功能測(cè)試…………………………………10</p><p>  3.1 硬件檢測(cè)………………………………………………………………10</p><p>  3.1.1 遙控模塊的檢測(cè)………………………………………………11</p>

15、;<p>  3.1.2 超聲波模塊的檢測(cè)……………………………………………12</p><p>  3.1.3 紅外線模塊的檢測(cè)……………………………………………12</p><p>  3.1.4 電機(jī)驅(qū)動(dòng)模塊的檢測(cè)…………………………………………12</p><p>  3.1.5 蜂鳴器的檢測(cè)…………………………………………………12</

16、p><p>  3.2 軟件調(diào)試………………………………………………………………11</p><p>  3.2.1 遙控模塊的測(cè)試(是否同時(shí)按多個(gè)鍵)……………………11</p><p>  3.2.2 超聲波模塊的測(cè)試(不同距離)……………………………12</p><p>  3.2.3 電機(jī)驅(qū)動(dòng)模塊的測(cè)試(轉(zhuǎn)速)………………………………12

17、</p><p>  3.2.4 蜂鳴器的測(cè)試(不同頻率)…………………………………12</p><p>  第4章 遇到的問題及解決方案………………………………………18</p><p>  4.1 如何連接電路板與底盤電路…………………………………………18</p><p>  4.2 為什么在開關(guān)關(guān)閉狀態(tài)下單片機(jī)仍有電………………………

18、……18</p><p>  4.3 為什么在左右轉(zhuǎn)時(shí)會(huì)出現(xiàn)“卡頓”現(xiàn)象……………………………19</p><p>  4.4 如何解決小車高轉(zhuǎn)速的問題…………………………………………20</p><p>  4.5 為什么前輪電機(jī)會(huì)被燒………………………………………………20</p><p>  4.6 如何用超聲波進(jìn)行測(cè)距……………………

19、…………………………20</p><p>  4.7 如何用紅外線傳感器測(cè)空擋車位的長(zhǎng)度……………………………20</p><p>  4.8 泊車程序的設(shè)計(jì)………………………………………………………20</p><p>  第5章 后期作品………………………………………………………18</p><p>  5.1 硬件……………………………

20、………………………………………18</p><p>  5.2.1 硬件電路………………………………………………………18</p><p>  5.2.2 電路說明………………………………………………………19</p><p>  5.2 軟件……………………………………………………………………19</p><p>  5.3.1 主程

21、序部分……………………………………………………19</p><p>  5.3.2 泊進(jìn)車位操作…………………………………………………20</p><p>  5.3.2 泊出車位操作…………………………………………………20</p><p>  參考文獻(xiàn)………………………………………………………………23</p><p>  致謝………

22、……………………………………………………………23</p><p>  附錄……………………………………………………………………23</p><p><b>  第0章 前言</b></p><p>  自動(dòng)泊車系統(tǒng),可以使汽車自動(dòng)地以正確的停靠位泊車,該系統(tǒng)包括一環(huán)境數(shù)據(jù)采集系統(tǒng)、一中央處理器和一車輛策略控制系統(tǒng),所述的環(huán)境數(shù)據(jù)采集系統(tǒng)包括一

23、圖像采集系統(tǒng)和一車載距離探測(cè)系統(tǒng),可采集圖像數(shù)據(jù)及周圍物體距車身的距離數(shù)據(jù),并通過數(shù)據(jù)線傳輸給中央處理器;所述的中央處理器可將采集到的數(shù)據(jù)分析處理后,得出汽車的當(dāng)前位置、目標(biāo)位置以及周圍的環(huán)境參數(shù),依據(jù)上述參數(shù)作出自動(dòng)泊車策略,并將其轉(zhuǎn)換成電信號(hào);所述的車輛策略控制系統(tǒng)接受電信號(hào)后,依據(jù)指令作出汽車的行駛?cè)缃嵌?、方向及?dòng)力支援方面的操控。</p><p>  第1章 軟件開發(fā)工具</p><p

24、>  1.1 keil軟件簡(jiǎn)介</p><p><b>  基礎(chǔ)</b></p><p>  Keil C51開發(fā)系統(tǒng)基本知識(shí)Keil C51開發(fā)系統(tǒng)基本知識(shí)</p><p><b>  1. 系統(tǒng)概述</b></p><p>  Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工

25、具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。</p><p>  2. Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)</p><p>  C51工具包的整體結(jié)構(gòu),uVisio

26、n與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tSc

27、ope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。</p><p>  使用獨(dú)立的Keil仿真器時(shí),注意事項(xiàng)</p><p>  * 仿真器標(biāo)配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。</p><p>  * 仿真器上的復(fù)位按鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。<

28、/p><p>  * 仿真芯片的31腳(/EA)已接至高電平,所以仿真時(shí)只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。</p><p><b>  優(yōu)點(diǎn)</b></p><p>  1.Keil C51生成的目標(biāo)代

29、碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p><p>  2.與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語(yǔ)言后再使用C來開發(fā),體會(huì)更加深刻。 Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。</p><p>  1.2 STC_ISP軟件介紹&

30、lt;/p><p>  STC-ISP 是一款單片機(jī)下載編程燒錄軟件,是針對(duì)STC系列單片機(jī)而設(shè)計(jì)的,可下載STC89系列、12C2052系列和12C5410等系列的STC單片機(jī),使用簡(jiǎn)便,現(xiàn)已被廣泛使用。</p><p><b>  第2章 硬件元器件</b></p><p><b>  2.1紅外線傳感器</b></

31、p><p><b>  規(guī)格參數(shù):</b></p><p>  1.工作電壓:DC 3.3V-5V</p><p>  2.工作電流:≥10MA</p><p>  3.工作溫度:-10℃—+50℃</p><p>  4.檢測(cè)距離:2-80CM</p><p>  5.IO接

32、口:3線制接口(+/-/S)</p><p>  6.輸出信號(hào):TTL電平(有障礙物低電平,無障礙物高電平)</p><p>  7.調(diào)節(jié)方式:多圈電阻式調(diào)節(jié)</p><p>  8.有效角度:35°</p><p>  7.尺寸大?。?4mm×20mm</p><p>  8.安裝孔徑:3.3MM

33、</p><p><b>  一些說明:</b></p><p>  數(shù)字信號(hào)輸出,傳感器含必要的調(diào)制和解調(diào),邏輯處理.</p><p>  工作原理:傳感器主動(dòng)發(fā)射紅外線,根據(jù)反射光探測(cè),如果探測(cè)到障礙,OUT腳輸出0,否則1.工作電壓:3.3v-5.5v工作電流(5V時(shí)):典型電流10MA</p><p>  輸

34、入輸出信號(hào)(4線):VCC (+)。GND(-) OUT(sig)</p><p>  GND,VCC是電源,VCC的范圍是3.3V-5.5v。OUT為信號(hào)輸出引腳,接于控制器。EN為使能端,可以通過控制器控制,低電平有效,也可以直接插上跳線帽使用。</p><p>  板上有多圈精密可調(diào)電位器,可根據(jù)使用環(huán)境調(diào)節(jié).調(diào)節(jié)范圍從3cm-80cm.因?yàn)槭欠瓷湓?跟具體的反射目標(biāo)相關(guān),可根據(jù)

35、情況調(diào)節(jié).</p><p>  電路板上有一個(gè)發(fā)光LED,探測(cè)到障礙時(shí)發(fā)光.OUT輸出持續(xù)低電平.無障礙是OUT輸出持續(xù)高電平.</p><p>  傳感器主動(dòng)紅外線反射探測(cè),因此目標(biāo)的反射率和形狀是探測(cè)距離的關(guān)鍵,其中黑色探測(cè)距離最小,白色最大;小面積物體距離小,大面積距離大.</p><p><b>  2.2超聲波傳感器</b></

36、p><p><b>  主要技術(shù)參數(shù):</b></p><p>  1:使用電壓:DC5V 2:靜態(tài)電流:小于2mA</p><p>  3:電平輸出:高5V 4:電平輸出:底0V</p><p>  5:感應(yīng)角度:不大于15度 6:探測(cè)距離:2cm-450cm </p>

37、<p>  7:高精度:可達(dá)0.3cm</p><p>  接線方式,VCC、trig(控制端)、 echo(接收端)、 GND</p><p>  使用方法:一個(gè)控制口發(fā)一個(gè)10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,方可算出距離.如此不斷的周期測(cè),就可以達(dá)到你移動(dòng)測(cè)量的值了

38、~~ </p><p><b>  模塊工作原理:</b></p><p>  (1)采用IO觸發(fā)測(cè)距,給至少10us的高電平信號(hào);</p><p>  (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;</p><p>  (3)有信號(hào)返回,通過IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)

39、間.測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2;</p><p>  2.3無線電遙控模塊</p><p>  四鍵遙控器和超再生固定碼接收模塊可以組成四路無線發(fā)射接收電路,遙控器的四位數(shù)據(jù)碼對(duì)應(yīng)模塊的四路輸出,可以方便的組成無線遙控發(fā)射接收電路,該產(chǎn)品廣泛適用于廣大電子愛好者的家庭、工業(yè)遙控類電子產(chǎn)品的設(shè)計(jì)和開發(fā),可很好的作為單片機(jī)的信號(hào)輸入源,特別適合大中院校學(xué)生電子電路設(shè)計(jì)、

40、畢業(yè)設(shè)計(jì)中的遙控電路部分。</p><p>  超再生帶解碼四路遙控接收模塊可以和發(fā)射器組成四路無線發(fā)射接收電路。該模塊廣泛適用于廣大電子愛好者對(duì)家庭、工業(yè)遙控類電子產(chǎn)品的設(shè)計(jì)和開發(fā),可很好的作為單片機(jī)的信號(hào)輸入源,特別適合大中院校學(xué)生電子電路設(shè)計(jì)、畢業(yè)設(shè)計(jì)中的遙控電路部分。接收模塊有自鎖、非鎖、互鎖三種型號(hào)。</p><p>  非鎖、自鎖、互鎖三種工作方式說明  

41、 非鎖型輸出又稱點(diǎn)動(dòng)輸出,數(shù)據(jù)腳輸出的電平是瞬時(shí)的而且和發(fā)射端是否發(fā)射相對(duì)應(yīng),可以用于類似點(diǎn)動(dòng)的控制,有遙控信號(hào)時(shí)數(shù)據(jù)腳是高電平,遙控信號(hào)消失時(shí)數(shù)據(jù)腳立即恢復(fù)為低電平,適用于如電動(dòng)門、電動(dòng)門鎖、與單片機(jī)對(duì)接等只需要一個(gè)高電平的電路等電路等。    自鎖型輸出的數(shù)據(jù)腳能實(shí)現(xiàn)觸發(fā)翻轉(zhuǎn)工作邏輯,數(shù)據(jù)只要成功接收就能一直保持對(duì)應(yīng)的電平狀態(tài),直到下次遙控?cái)?shù)據(jù)發(fā)生變化時(shí)改變。自鎖型四路相互獨(dú)立互不影響,可同

42、時(shí)遙控四路,如燈具的控制等。    互鎖型輸出就是任意一路收到信號(hào)則該路就能一直保持對(duì)應(yīng)的高電平狀態(tài),接收到任意其它路的數(shù)據(jù)則恢復(fù)到原始狀態(tài),四路互鎖只能有一路接通,實(shí)際應(yīng)用如電風(fēng)扇檔位開關(guān)電路等。</p><p>  接收板主要參數(shù)    工作頻率:315M    工作電壓:DC5V  

43、0; 工作電流:≤3mA(5.0VDC)    工作原理:超再生    調(diào)制方式:ASK    編碼芯片:SC2272(PT2272、PT2294),芯片兼容    靈敏度:優(yōu)于-105dBm(50Ω)    輸出信號(hào):互鎖(L)或非鎖(M)或自鎖(T),賣家在訂貨前要說明選擇哪

44、款    遙控距離:20~50米以上(開闊地)</p><p>  接收模塊的七根引腳分別為D3、D2、D1、D0、GND、VT、VCC,其中VCC為DC5V的供電端,GND為接地端,VT端為解碼有效輸出端,只要發(fā)射器的數(shù)據(jù)碼有輸出,VT都能同步輸出高電平;D3、D2、D1、D0是2262解碼芯片的四位數(shù)據(jù)輸出端,有信號(hào)時(shí)能輸出5V左右的高電平,驅(qū)動(dòng)電流約2mA,與發(fā)射器的四位數(shù)據(jù)

45、碼輸出一一對(duì)應(yīng)。接收模塊不焊天線也能接收信號(hào),為提高接收靈敏度,可以用一根長(zhǎng)度約為23厘米的軟導(dǎo)線直接焊接到天線孔處,圖中RC所指的是振蕩電阻,接收模塊和發(fā)射器的震蕩電阻需要匹配才能工作,我店接收模塊用的是270K或者820K電阻,可以分別和1.5M或者4.7M振蕩電阻的發(fā)射器配套使用。發(fā)射器可以用我店固定碼四鍵遙控器或者帶編碼四路發(fā)射模塊,如與其他發(fā)射器配套,則必須提供發(fā)射器相關(guān)參數(shù)。</p><p>  下圖

46、是帶解碼的超再生接收模塊等效電路圖</p><p>  固定編碼接收模塊測(cè)試圖(此圖為原理圖,以模塊上的管腳位置為準(zhǔn),10、11、12、13即為上圖中的D3、D2、D1、D0引腳)注:發(fā)光二極管后加個(gè)1K左右的限流電阻</p><p><b>  2.4電機(jī)驅(qū)動(dòng)模塊</b></p><p><b>  產(chǎn)品參數(shù):</b>&

47、lt;/p><p>  1.驅(qū)動(dòng)芯片:L298N雙H橋直流電機(jī)驅(qū)動(dòng)芯片</p><p>  2.驅(qū)動(dòng)部分端子供電范圍Vs:+5V~+35V ; 如需要板內(nèi)取電,則供電范圍Vs:+7V~+35V</p><p>  3.驅(qū)動(dòng)部分峰值電流Io:2A</p><p>  4.邏輯部分端子供電范圍Vss:+5V~+7V(可板內(nèi)取電+5

48、V)</p><p>  5.邏輯部分工作電流范圍:0~36mA</p><p>  6.控制信號(hào)輸入電壓范圍:   低電平:-0.3V≤Vin≤1.5V    高電平:2.3V≤Vin≤Vss</p><p>  7.使能信號(hào)輸入電壓范圍:   低電平:-0.

49、3≤Vin≤1.5V(控制信號(hào)無效)   高電平:2.3V≤Vin≤Vss(控制信號(hào)有效)</p><p>  8.最大功耗:20W(溫度T=75℃時(shí))</p><p>  9.存儲(chǔ)溫度:-25℃~+130℃</p><p>  10.驅(qū)動(dòng)板尺寸:55mm*49mm*33mm(帶固定銅柱和散熱片高度)</p><p

50、>  11.驅(qū)動(dòng)板重量:33g</p><p>  12.其他擴(kuò)展:控制方向指示燈、邏輯部分板內(nèi)取電接口。</p><p><b>  使用說明:</b></p><p>  步進(jìn)電機(jī)的驅(qū)動(dòng): 板上的ENA與ENB為高電平時(shí)有效,這里的電平指的是TTL電平。ENA為A1和A2的使能端,ENB為B1和IB2的使能端。BJ接步進(jìn)電機(jī)

51、公共端。步進(jìn)電機(jī)控制邏輯如下所示,其中A、B、C、D為步進(jìn)電機(jī)的四個(gè)線圈,為1表示有電流通過,為0表示沒有電流流過。線圈連線圖如下圖所示(以四相步進(jìn)電機(jī)為例)。</p><p><b>  2.5 51單片機(jī)</b></p><p>  51單片機(jī)是對(duì)目前所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來隨著F

52、lash rom技術(shù)的發(fā)展,8031單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為目前應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。目前很多公司都有51系列的兼容機(jī)型推出,在目前乃至今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是52系列的單片機(jī)一般不具備自編程能力。</p><p>  ·8位CPU·

53、4kbytes 程序存儲(chǔ)器(ROM) (52為8K)</p><p>  ·256bytes的數(shù)據(jù)存儲(chǔ)器(RAM) (52有384bytes的RAM)</p><p>  ·32條I/O口線·111條指令,大部分為單字節(jié)指令</p><p><b>  ·21個(gè)專用寄存器</b></p>&

54、lt;p>  ·2個(gè)可編程定時(shí)/計(jì)數(shù)器·5個(gè)中斷源,2個(gè)優(yōu)先級(jí)(52有6個(gè))</p><p>  ·一個(gè)全雙工串行通信口</p><p>  ·外部數(shù)據(jù)存儲(chǔ)器尋址空間為64kB</p><p>  ·外部程序存儲(chǔ)器尋址空間為64kB</p><p>  ·邏輯操作位尋址功能&#

55、183;雙列直插40PinDIP封裝</p><p>  ·單一+5V電源供電</p><p>  CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;</p><p>  RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);</p><p>  ROM:用以存放程序、一些原始數(shù)據(jù)和表格

56、;</p><p>  I/O口:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出;</p><p>  T/C:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式;</p><p>  五個(gè)中斷源的中斷控制系統(tǒng);</p><p>  一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行

57、通信;</p><p>  片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率為12M。</p><p>  知識(shí)上,其實(shí)不需要多少東西,會(huì)簡(jiǎn)單的C語(yǔ)言,知道51單片機(jī)的基本結(jié)構(gòu)就可以了。一般的大學(xué)畢業(yè)生都可以了,自學(xué)過這2門課程的高中生也夠條件。設(shè)備上,一般是建議購(gòu)買一個(gè)仿真器,例如,目前的“雙功能下載線”就具有良好的穩(wěn)定性和較快的下載速度,上位機(jī)可擴(kuò)展,可以下載更多的單

58、片機(jī)及嵌入式芯片。通過實(shí)驗(yàn),這樣才可以進(jìn)行實(shí)際的,全面的學(xué)習(xí)。日后在工作上,仿真器也大有用處。還有,一般光有仿真器是不行,還得有一個(gè)實(shí)際的電路,即學(xué)習(xí)板,如圖,即為,單片機(jī)最小系統(tǒng)。</p><p>  單片機(jī)是一種可通過編程控制的微處理器,單片機(jī)芯片自身不能單獨(dú)應(yīng)用與某項(xiàng)工程或產(chǎn)品上,它必須要靠外圍數(shù)字器件或者是模擬器件的協(xié)調(diào)才能發(fā)揮其自身的強(qiáng)大功能。</p><p>  單片機(jī)屬于控制

59、類數(shù)字芯片,目前其應(yīng)用于領(lǐng)域已非常廣泛。主要如下:</p><p>  1.工業(yè)自動(dòng)化。如數(shù)據(jù)采集,測(cè)控技術(shù)等</p><p>  2.智能儀器儀表。如數(shù)字示波器,數(shù)字信號(hào)源,數(shù)字萬用表,感應(yīng)電流表等</p><p>  3.消費(fèi)類電子產(chǎn)品。如洗衣機(jī),電冰箱,空調(diào),電視機(jī),微波爐,IC卡,汽車電子設(shè)備</p><p>  4.通信方面。如調(diào)制

60、協(xié)調(diào)器,程控交換技術(shù),手機(jī),小靈通等</p><p>  5.武器裝備。如飛機(jī),軍艦,坦克,導(dǎo)彈,航天飛機(jī)等</p><p>  第3章 軟、硬件的各部分功能測(cè)試</p><p><b>  3.1 硬件檢測(cè)</b></p><p>  3.1.1 遙控模塊的檢測(cè)</p><p>  3.1.2

61、超聲波模塊的檢測(cè)</p><p>  3.1.3 紅外線模塊的檢測(cè)</p><p>  3.1.4 電機(jī)驅(qū)動(dòng)模塊的檢測(cè)</p><p>  3.1.5 蜂鳴器的檢測(cè)</p><p><b>  3.2 軟件調(diào)試</b></p><p>  3.2.1 遙控模塊的測(cè)試(是否同時(shí)按多個(gè)鍵)</p

62、><p>  3.2.2 超聲波模塊的測(cè)試(不同距離)</p><p>  3.2.3 電機(jī)驅(qū)動(dòng)模塊的測(cè)試(轉(zhuǎn)速)</p><p>  3.2.4 蜂鳴器的測(cè)試(不同頻率)</p><p>  第4章 遇到的問題及解決方案</p><p>  4.1 如何連接電路板與底盤電路</p><p>  4

63、.2 為什么在開關(guān)關(guān)閉狀態(tài)下單片機(jī)仍有電</p><p>  4.3 為什么在左右轉(zhuǎn)時(shí)會(huì)出現(xiàn)“卡頓”現(xiàn)象</p><p>  4.4 如何解決小車高轉(zhuǎn)速的問題</p><p>  4.5 為什么前輪電機(jī)會(huì)被燒</p><p>  4.6 如何用超聲波進(jìn)行測(cè)距</p><p>  4.7 如何用紅外線傳感器測(cè)空擋車位的長(zhǎng)

64、度</p><p>  4.8 泊車程序的設(shè)計(jì)思路</p><p><b>  第5章 最終</b></p><p>  5.1 硬件部分 </p><p><b>  5.1.1</b></p><p><b>  5.2.2</b></p&

65、gt;<p><b>  5.2 軟件部分</b></p><p>  5.2.1 主程序部分</p><p><b>  main()</b></p><p><b>  {</b></p><p>  P2_1=0; /* 由于若不對(duì)P2_1置位,

66、它的初始值便為"1",這會(huì)使buzzer一直工作,所以一開始應(yīng)對(duì)P2_1置0 */</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(P2_2==0) /* 進(jìn)行泊車操作 */</p><p><b

67、>  {</b></p><p>  P0_4=0; /* 開泊車模式提示燈 */</p><p>  while(P2_2==0)</p><p><b>  {</b></p><p>  int mark=0;</p><p>  if(P1_0==1)</p&g

68、t;<p><b>  {</b></p><p><b>  mark=1;</b></p><p><b>  } </b></p><p>  if(P1_1==1)</p><p><b>  {</b></p><

69、;p><b>  mark=2;</b></p><p><b>  } </b></p><p>  switch(mark)</p><p><b>  {</b></p><p><b>  case 1:</b></p>&l

70、t;p>  PrepareCarParkingIn(); /* 泊車進(jìn)車位操作 */</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  PrepareCarParkingOut(); </p><p>  bre

71、ak; </p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else /* 進(jìn)行遙控操作 */</p><p><b>  {<

72、;/b></p><p>  while(P2_2!=0) /* 當(dāng)撥碼開關(guān)斷開(即為遙控模式)時(shí),循環(huán) */</p><p><b>  {</b></p><p>  P0_4=1; /* 關(guān)泊車提示燈 */</p><p>  if(

73、P1_0==1)</p><p><b>  {</b></p><p>  Goahead(); /* 對(duì)于前進(jìn)的程序,其實(shí)就是對(duì)P2.4、P2.5進(jìn)行賦值 */ </p><p><b>  }</b></p><p>  if(P1_1==1)<

74、/p><p><b>  {</b></p><p>  Backoff(); /*后退同樣為對(duì)P2.4、P2.5進(jìn)行賦值,但要注意的是:前進(jìn)、后退按鍵不能同時(shí)按!*/</p><p><b>  } </b></p><p>  if(P1_2==1) </

75、p><p><b>  {</b></p><p>  Turnleft(); /* 和前進(jìn)、后退一樣,左轉(zhuǎn)、右轉(zhuǎn)為對(duì)P2.6、P2.7進(jìn)行賦值 */</p><p><b>  }</b></p><p>  if(P1_3==1)</p><p>&l

76、t;b>  {</b></p><p>  Turnright();</p><p><b>  }</b></p><p>  MeasureAndAlarm(); /* 因?yàn)檫@是在遙控模式中,所以這個(gè)測(cè)量只測(cè)后面的雷達(dá),同時(shí)也只是報(bào)警,而不制止運(yùn)動(dòng) */</p><p><b>

77、;  } </b></p><p>  } /* else的結(jié)束 */</p><p>  } /* 最大的while循環(huán)的結(jié)束 */</p><p>  } /* main函數(shù)的結(jié)束 */</p>

78、;<p>  5.2.2 泊進(jìn)車位操作</p><p>  void PrepareCarParkingIn() /* 泊車進(jìn)車位 */</p><p><b>  {</b></p><p>  long int i,j; </p><p>  int m=

79、0; /* m用來存放泊車位所測(cè)得距離 */ </p><p>  int A=4; /* A的值為符合泊進(jìn)操作條件的距離 */</p><p>  int n; /* 用來存放泊進(jìn)結(jié)束條件距離 */</p><p>  for(i=0;i<3;i++) /* 泊車提示燈閃

80、爍,表示進(jìn)入準(zhǔn)備進(jìn)入泊進(jìn)模式 */</p><p><b>  {</b></p><p>  for(j=0;j<10000;j++)</p><p><b>  {</b></p><p><b>  P0_4=0;</b></p><p>&

81、lt;b>  }</b></p><p>  for(j=0;j<10000;j++)</p><p><b>  {</b></p><p><b>  P0_4=1;</b></p><p><b>  }</b></p><p&

82、gt;<b>  }</b></p><p>  while(P0_7==1) /* 無論在什么情況下,都先前進(jìn)車,直到接觸到障礙物(即說明有另一輛車) */</p><p><b>  {</b></p><p>  Goslowly(); </p><p><b>

83、;  }</b></p><p>  while(P0_7==0) /* P0_7==1時(shí)等待 */ </p><p><b>  {</b></p><p>  Goslowly();</p><p><b>  }</b></p><p

84、>  while(P0_7==1) /* P0_7==0時(shí),開始對(duì)車位距離進(jìn)行計(jì)算,測(cè)量值存放在m中 */ </p><p><b>  {</b></p><p>  Goslowly();</p><p><b>  m++;</b></p><p><b>  if

85、(m>=A)</b></p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  i

86、f(m>=A) /* 若所測(cè)得的距離m大于泊車要求距離A,則開始泊車 */</p><p><b>  {</b></p><p>  for(i=0;i<100;i++) /* 等待一段時(shí)間 */</p><p><b>  { </b></p><

87、;p>  for(j=0;j<200;j++) </p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b>  } </b></p><p><b>  } </b><

88、;/p><p>  for(i=0;i<5;i++)</p><p><b>  { </b></p><p>  P2_4=0; /* 泊進(jìn)操作一(右轉(zhuǎn),后退) */</p><p><b>  P2_5=1; </b></p><p>  backsl

89、owly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p><b>  }</b></p><p>  for(i=0;i<4;i++)</p><p><b>

90、  {</b></p><p>  P2_4=1; /* 泊進(jìn)操作二(左轉(zhuǎn),前進(jìn)) */</p><p><b>  P2_5=0;</b></p><p>  Goslowly();</p><p><b>  P2_4=0;</b></p><p&

91、gt;<b>  P2_5=0;</b></p><p><b>  } </b></p><p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  P2_4=0; /* 泊進(jìn)操作三(右轉(zhuǎn),后退) *

92、/</p><p><b>  P2_5=1;</b></p><p>  backslowly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p><b>  }

93、</b></p><p>  n= measure();</p><p>  while(n>40)</p><p><b>  { </b></p><p>  P2_4=1; /* 泊進(jìn)操作四(左轉(zhuǎn),后退) */</p><p><b>  P2_5

94、=0;</b></p><p>  n= measure();</p><p>  backslowly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p><b>  } &l

95、t;/b></p><p>  for(i=0;i<2;i++)</p><p><b>  {</b></p><p>  P2_4=0; /* 泊進(jìn)操作五(右轉(zhuǎn),前進(jìn)) */</p><p><b>  P2_5=1;</b></p><p>

96、  Goslowly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p><b>  } </b></p><p>  n= measure(); /* 泊進(jìn)操作六(左轉(zhuǎn),后退) */<

97、;/p><p>  while(n>30)</p><p><b>  { </b></p><p>  n= measure();</p><p>  P2_4=1; </p><p><b>  P2_5=0;</b></p><p>

98、;  backslowly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

99、;  else /* 此時(shí)條件不符合泊車條件,buzzer響,提示無法泊車 */</p><p><b>  {</b></p><p>  for(i=0;i<10;i++) /* 這個(gè)for語(yǔ)句用于buzzer的發(fā)聲時(shí)間長(zhǎng)短控制 */</p><p><b>  {</b></p>

100、<p>  for(j=0;j<10000;j++)</p><p><b>  {</b></p><p><b>  P2_1=1;</b></p><p><b>  }</b></p><p>  for(j=0;j<10000;j++)<

101、/p><p><b>  {</b></p><p><b>  P2_1=0;</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b>

102、;</p><p><b>  }</b></p><p>  5.2.3 泊出車位操作</p><p>  void PrepareCarParkingOut() /* 泊車出車位 */</p><p><b>  {</b></p><p><

103、;b>  int i,j;</b></p><p>  int B=50; /* 這里的B用來表示符合泊出條件的距離,50對(duì)應(yīng)15cm左右 */</p><p>  long int m;</p><p>  for(i=0;i<5;i++) /* 泊車提示燈閃爍,表示進(jìn)入準(zhǔn)備進(jìn)入泊出模式 */</

104、p><p><b>  {</b></p><p>  for(j=0;j<10000;j++)</p><p><b>  {</b></p><p><b>  P0_4=0;</b></p><p><b>  }</b>&

105、lt;/p><p>  for(j=0;j<10000;j++)</p><p><b>  {</b></p><p><b>  P0_4=1;</b></p><p><b>  }</b></p><p><b>  }</b&

106、gt;</p><p>  m=parkingoutmeasure();</p><p>  if(m>B) /* 符合條件,進(jìn)行泊出操作 */</p><p><b>  {</b></p><p>  for(i=0;i<100;i++) /* 等待一段時(shí)間 */</p>

107、<p><b>  { </b></p><p>  for(j=0;j<200;j++) </p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b>  } </b>&

108、lt;/p><p><b>  }</b></p><p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  while(P2_0==0)</p><p><b>  {</b></p>&

109、lt;p><b>  _nop_();</b></p><p>  P0_6=0; /* 左邊有障礙物時(shí),開提示燈 */</p><p><b>  }</b></p><p>  P2_4=1; /* 泊進(jìn)操作一(左轉(zhuǎn),前進(jìn)) */</p><p><b&g

110、t;  P2_5=0;</b></p><p>  Goslowly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0; </b></p><p>  P0_6=1; /* 無障礙物時(shí),提示燈關(guān)閉 */ </p>

111、;<p><b>  } </b></p><p>  for(i=0;i<2;i++)</p><p><b>  {</b></p><p>  while(P2_0==0)</p><p><b>  {</b></p><

112、p><b>  _nop_();</b></p><p>  P0_6=0; /* 左邊有障礙物時(shí),開提示燈 */ </p><p><b>  }</b></p><p>  P2_4=0; /* 泊進(jìn)操作二(右轉(zhuǎn),后退) */</p><p><b>

113、  P2_5=1;</b></p><p>  backslowly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p>  P0_6=1; /* 無障礙物時(shí),提示燈關(guān)閉 */ <

114、/p><p><b>  } </b></p><p>  for(i=0;i<7;i++)</p><p><b>  { </b></p><p>  P2_4=1; /* 泊進(jìn)操作三(左轉(zhuǎn),前進(jìn)) */</p><p><b>  P2

115、_5=0;</b></p><p>  Goslowly();</p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0; </b></p><p><b>  } </b></p><p>  

116、while(P0_7==1)</p><p><b>  { </b></p><p>  P2_4=0; /* 泊進(jìn)操作四(右轉(zhuǎn),前進(jìn)) */</p><p><b>  P2_5=1;</b></p><p>  Goslowly();</p><p>&

117、lt;b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  else /* 不符合條件,buzzer

118、響,提示不滿足條件 */</p><p><b>  {</b></p><p>  for(i=0;i<5;i++) /* 這個(gè)for語(yǔ)句用于buzzer的發(fā)聲時(shí)間長(zhǎng)短控制 */</p><p><b>  {</b></p><p>  for(j=0;j<10000;j++)&l

119、t;/p><p><b>  {</b></p><p><b>  P2_1=1;</b></p><p><b>  }</b></p><p>  for(j=0;j<10000;j++)</p><p><b>  {</b&g

120、t;</p><p><b>  P2_1=0;</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }<

121、;/b></p><p>  5.2.3 遙控操作</p><p>  void Goahead() /* 前進(jìn)功能 :前進(jìn)一段時(shí)間后停止,注意得加入停止指令,因?yàn)樗谥鞒绦蛑袥]有 */</p><p><b>  {</b></p><p><b>  int i,j;</b>&

122、lt;/p><p>  for(i=0;i<100;i++)</p><p><b>  {</b></p><p>  for(j=0;j<500;j++)</p><p><b>  {</b></p><p><b>  P2_6=1;</b&g

123、t;</p><p><b>  P2_7=0;</b></p><p><b>  }</b></p><p>  for(j=0;j<500;j++)</p><p><b>  {</b></p><p><b>  P2_6=0;

124、</b></p><p><b>  P2_7=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void Back

125、off()</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  for(i=0;i<40;i++) </p><p><b>  {</b></p><p>  for(j=0;j<

126、;500;j++)</p><p><b>  {</b></p><p><b>  P2_6=0;</b></p><p><b>  P2_7=1;</b></p><p><b>  }</b></p><p>  for(

127、j=0;j<500;j++)</p><p><b>  {</b></p><p><b>  P2_6=0;</b></p><p><b>  P2_7=0;</b></p><p><b>  }</b></p><p&g

128、t;<b>  }</b></p><p><b>  }</b></p><p>  void Turnleft()</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p> 

129、 for(i=0;i<50;i++)</p><p><b>  {</b></p><p>  for(j=0;j<500;j++)</p><p><b>  {</b></p><p><b>  P2_4=1;</b></p><p>

130、;<b>  P2_5=0;</b></p><p><b>  P2_6=1;</b></p><p><b>  P2_7=0;</b></p><p><b>  }</b></p><p>  for(j=0;j<500;j++)</p

131、><p><b>  { </b></p><p><b>  P2_6=0;</b></p><p><b>  P2_7=0;</b></p><p><b>  P2_4=0;</b></p><p><b>  P

132、2_5=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void Turnright()</p><p><b>  {<

133、;/b></p><p><b>  int i,j;</b></p><p>  for(i=0;i<100;i++)</p><p><b>  {</b></p><p>  for(j=0;j<500;j++)</p><p><b>  

134、{</b></p><p><b>  P2_4=0;</b></p><p><b>  P2_5=1;</b></p><p><b>  P2_6=1;</b></p><p><b>  P2_7=0;</b></p>&

135、lt;p><b>  }</b></p><p>  for(j=0;j<500;j++)</p><p><b>  { </b></p><p><b>  P2_6=0;</b></p><p><b>  P2_7=0;</b>&

136、lt;/p><p><b>  P2_4=0;</b></p><p><b>  P2_5=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }<

溫馨提示

  • 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)論