版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)論文(設(shè)計(jì))</p><p><b> (二零 屆)</b></p><p> 基于單片機(jī)的循跡小車(chē)的設(shè)計(jì)</p><p> 所在學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí) 電氣工程及其自動(dòng)化 </p>
2、<p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱(chēng) </p><p> 完成日期 年 月 </p><p><b> 摘 要</b></p><p> 本設(shè)計(jì)為
3、基于單片機(jī)的循跡小車(chē)的設(shè)計(jì)。該產(chǎn)品是一個(gè)能夠自動(dòng)循跡,避障及測(cè)量其行駛速度的智能玩具小車(chē)。本設(shè)計(jì)的硬件電路由微處理器系統(tǒng)、電機(jī)模塊、循跡模塊、避障模塊、測(cè)速模塊及鍵盤(pán)和顯示模塊六大模塊組成。在設(shè)計(jì)玩具小車(chē)電路中,用C語(yǔ)言進(jìn)行編程,Keil u Vision 軟件進(jìn)行編譯,制作了智能玩具小車(chē)。此玩具小車(chē)實(shí)現(xiàn)了能夠在黑色軌道上自動(dòng)循跡,碰到障礙物時(shí)及時(shí)避開(kāi),并且能夠調(diào)節(jié)小車(chē)的行駛速度,同時(shí)在行駛的過(guò)程中測(cè)量計(jì)算出小車(chē)的行駛速度并在數(shù)碼管中實(shí)
4、時(shí)顯示等功能。</p><p> 要實(shí)現(xiàn)以上功能芯片的選擇至關(guān)重要,單片機(jī)本設(shè)計(jì)選用AT89S52。顯示驅(qū)動(dòng)芯片選用的是HD7279。而循跡模塊采用的是紅外線(xiàn)(IR)接收/檢測(cè)器。此傳感器外接電路比較簡(jiǎn)單,能夠同時(shí)滿(mǎn)足小車(chē)循跡,壁障,測(cè)速三大功能。由于小車(chē)需要實(shí)現(xiàn)調(diào)速的功能,所以在設(shè)計(jì)中設(shè)置了按鍵。</p><p> 測(cè)速功能的實(shí)現(xiàn),則是靠伺服電機(jī)利用脈沖控制這一特性,計(jì)算規(guī)定距離內(nèi)脈
5、沖的個(gè)數(shù)即可計(jì)算得到小車(chē)的行駛速度。</p><p> 關(guān)鍵詞:循跡;避障;測(cè)速;紅外傳感器 </p><p><b> Abstract</b></p><p> This is a design of tracking car based on MCU. It’s a smart toy car that tracking,obsta
6、cle-avoidance and measure the speed. The design of the hardware circuit by the microprocessor system, keyboard and display module, tracking and obstacle avoidance modules, and motor-driven four modules. Using C language
7、to program,Keil u Vison software to compie when I design the smart toy car. This toy car that can achieve orbit in a black automatic tracking, timely encounter obstacles to avoid, adjust the ca</p><p> It’s
8、 the most important that choice of the chip for achieve the functions. The SCM is AT89S52. The display driver is HD7279, and the tracking module is the infrared(IR) receiver/detector that is simple external circuit. By
9、 the way, it can meet the car tracking, barrier, speed the three major functions. Because of the speed, it’s need to set the key in the design.</p><p> To achieve the function of speed, calculating the numb
10、er of pulses within a specified distance by the characteristics of the puse controlle the servo motor.</p><p> Key Words: Tracking; obstacle avoidance; speed; infrared sensor</p><p><b>
11、目 錄</b></p><p><b> 1 引言1</b></p><p><b> 2 需求分析2</b></p><p><b> 3 硬件設(shè)計(jì)3</b></p><p> 3.1 微處理器系統(tǒng)3</p><p>
12、3.2 鍵盤(pán)和顯示模塊4</p><p> 3.3 電機(jī)模塊6</p><p> 3.3.1伺服電機(jī)的連接6</p><p> 3.3.2伺服電機(jī)的調(diào)零8</p><p> 3.3.3伺服電機(jī)的測(cè)試8</p><p> 3.3.4伺服電機(jī)的速度和方向控制9</p><p>
13、 3.4 紅外循跡、壁障模塊10</p><p> 3.5測(cè)速模塊11</p><p><b> 4 軟件設(shè)計(jì)12</b></p><p> 4.1 總體程序流程圖12</p><p> 4.1.1初始化子程序13</p><p> 4.1.2循跡子程序13</p&g
14、t;<p> 4.1.3壁障子程序15</p><p> 4.1.4按鍵處理子程序17</p><p> 4.2電機(jī)控制程序流程圖20</p><p> 4.2.1循跡時(shí)電機(jī)的控制程序流程圖20</p><p> 4.2.2壁障時(shí)電機(jī)控制的流程圖23</p><p> 4.3 小車(chē)速
15、度的算法27</p><p><b> 5 測(cè)試報(bào)告28</b></p><p> 5.1 測(cè)試小車(chē)初始狀態(tài)28</p><p> 5.2 測(cè)試小車(chē)的循跡功能28</p><p> 5.3 測(cè)試小車(chē)的壁障功能28</p><p> 5.4 測(cè)試小車(chē)速度的控制29</p&
16、gt;<p><b> 6 結(jié)論30</b></p><p> 致謝錯(cuò)誤!未定義書(shū)簽。</p><p><b> 參考文獻(xiàn)31</b></p><p> 附錄1 實(shí)驗(yàn)原理圖32</p><p> 附錄2 畢業(yè)設(shè)計(jì)作品說(shuō)明書(shū)33</p><p>
17、; 附錄3 源程序清單34</p><p><b> 1 引言</b></p><p> 2010年在上海世博會(huì)上的日本館上,一群各式各樣的機(jī)器人吸引了大批人潮。雖然這些機(jī)器人看似離我們的現(xiàn)實(shí)生活很遙遠(yuǎn),但是一些特殊的機(jī)器人卻已經(jīng)悄悄地走進(jìn)并影響著我們的生活。比如日本重大核泄露中所運(yùn)用到的核災(zāi)機(jī)器人,中國(guó)嫦娥計(jì)劃中所運(yùn)用的月球探索機(jī)器人等等。</p>
18、;<p> 或許設(shè)計(jì)制作一個(gè)這樣的機(jī)器人對(duì)于我們本科生來(lái)說(shuō)過(guò)于遙遠(yuǎn)。但是研究循跡小車(chē)卻是研究機(jī)器人的基礎(chǔ)和開(kāi)始。從設(shè)計(jì)循跡小車(chē)中學(xué)習(xí)基本技能,累計(jì)經(jīng)驗(yàn),為將來(lái)打好基礎(chǔ)。</p><p> 根據(jù)美國(guó)玩具協(xié)會(huì)的調(diào)查統(tǒng)計(jì),2006美國(guó)智能玩具市場(chǎng)規(guī)模至少300億美元,全球這一市場(chǎng)規(guī)模更是高達(dá)600億美元。而且這一數(shù)字還在增長(zhǎng)。就2003與2004年相比,智能玩具的銷(xiāo)量增長(zhǎng)就達(dá)到52%。與此同時(shí),英國(guó)玩
19、具零售商協(xié)會(huì)選出的2005年圣誕最受歡迎的十大玩具中,7款就是智能玩具。</p><p> 循跡智能小車(chē)作為智能玩具中的一種,更是得到了小朋友前所未有的熱捧。這對(duì)于享有“世界工廠(chǎng)”的中國(guó)來(lái)說(shuō),這一市場(chǎng)意味著蓬勃的商機(jī)和源源不斷的財(cái)富。</p><p> 在設(shè)計(jì)中我們選用了單片機(jī)作為小車(chē)控制芯片,因?yàn)閱纹瑱C(jī)自20世紀(jì)70年代問(wèn)世以來(lái),以其具有體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)
20、格低廉、可靠性高、靈活性好、開(kāi)發(fā)較為容易等優(yōu)勢(shì),受到人們的重視和關(guān)注[1]。設(shè)計(jì)一個(gè)利用單片機(jī)實(shí)現(xiàn)循跡等功能的小車(chē),無(wú)論從制作方便程度還是后價(jià)格低廉方面都具有相當(dāng)?shù)膬?yōu)勢(shì)性。</p><p><b> 2 需求分析</b></p><p> 運(yùn)用單片機(jī)設(shè)計(jì)一個(gè)智能的循跡小車(chē),并用C語(yǔ)言進(jìn)行編程。</p><p><b> 系統(tǒng)具體
21、要求:</b></p><p> 一、通過(guò)C語(yǔ)言對(duì)AT89S52單片機(jī)進(jìn)行編程控制伺服電機(jī)的轉(zhuǎn)動(dòng)。</p><p> 二、通過(guò)調(diào)節(jié)參數(shù)可以改變伺服電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向,讓小車(chē)前進(jìn)、后退,和做不同角度的轉(zhuǎn)動(dòng)。</p><p> 三、能夠在4分鐘之內(nèi)完成按照規(guī)定的賽道,從規(guī)定的起點(diǎn)開(kāi)始,饒行一周,盡量縮短饒行時(shí)間。</p><p>
22、 四、采用紅外傳感器使小車(chē)能夠?qū)ず诰€(xiàn)運(yùn)動(dòng)。</p><p> 五、可以饒開(kāi)障礙物進(jìn)行智能運(yùn)輸。</p><p> 六、在小車(chē)運(yùn)行的同時(shí)對(duì)其速度進(jìn)行檢測(cè),并在數(shù)碼管上顯示。</p><p> 本設(shè)計(jì)利用AT89S52單片機(jī)作為小車(chē)的大腦,通過(guò)運(yùn)算控制各個(gè)模塊來(lái)完成以上的功能。顯示驅(qū)動(dòng)選用的芯片是HD7279,該芯片可連接多達(dá)64鍵的鍵盤(pán)矩陣,單片機(jī)即可完成LE
23、D顯示,鍵盤(pán)接口的全部功能。而實(shí)際用到的只需要4個(gè),為了產(chǎn)品的擴(kuò)展,本設(shè)計(jì)設(shè)置了16個(gè)鍵。</p><p> 對(duì)于小車(chē)的循跡,壁障,和測(cè)速功能,可以利用紅外線(xiàn)(IR)接收/檢測(cè)器實(shí)現(xiàn)全部的功能。紅外線(xiàn)二極管發(fā)射管發(fā)射紅外線(xiàn),如果小車(chē)前面有障礙物,紅外線(xiàn)從物體中反射回來(lái),這個(gè)時(shí)候小車(chē)的“眼睛”(紅外線(xiàn)接收管),檢測(cè)到發(fā)射回來(lái)的紅外光線(xiàn)。并發(fā)出信號(hào)告訴小車(chē)的“大腦”(單片機(jī))已經(jīng)接受到了紅外光線(xiàn)。“大腦”基于這個(gè)傳
24、感器的輸出控制伺服電機(jī)。使其做出正確的反應(yīng)。</p><p> 運(yùn)用同樣的原理,黑色能夠吸收紅外光線(xiàn),當(dāng)傳感器無(wú)法接收到紅外光線(xiàn)時(shí),表明小車(chē)在既定的軌道上行駛,反之則偏離軌道,應(yīng)作出正確的反應(yīng)使其返回既定軌道。實(shí)現(xiàn)小車(chē)的循跡功能</p><p> 對(duì)于小車(chē)的測(cè)速功能則可以在輪胎上做白色標(biāo)記,每當(dāng)沒(méi)有檢測(cè)到外光線(xiàn)時(shí),單片機(jī)發(fā)生中斷,同時(shí)利用脈沖的個(gè)數(shù)來(lái)得知時(shí)間,運(yùn)用公式計(jì)算速度。<
25、/p><p> 由于小車(chē)選用的電機(jī)是伺服電機(jī),根據(jù)其特性,可以改變輸出脈沖控制伺服電機(jī)的運(yùn)行速度。</p><p><b> 3 硬件設(shè)計(jì)</b></p><p> 本系統(tǒng)硬件主要有六大模塊組成:微處理器系統(tǒng)、電機(jī)模塊、循跡模塊、避障模塊、測(cè)速模塊、鍵盤(pán)和顯示模塊。系統(tǒng)結(jié)構(gòu)框圖如圖3-1。</p><p> 圖3-1
26、 單片機(jī)系統(tǒng)結(jié)構(gòu)圖</p><p> 3.1 微處理器系統(tǒng)</p><p> MCS51是指由美國(guó)INTEL公司生產(chǎn)的一系列單片機(jī)的總稱(chēng)。其中8051是最為經(jīng)典的產(chǎn)品。而后,INTEL公司將MCS51的核心技術(shù)授權(quán)給了很多公司,所以許多公司都在做以8051為核心的單片機(jī),當(dāng)然,功能或多或少有些改變,以滿(mǎn)足不同的需求。本設(shè)計(jì)利用的AT89C52單片機(jī)就是在此基礎(chǔ)上改進(jìn)而來(lái)的。</
27、p><p> AT89S52是一種高性能、低功率的8位單片機(jī),內(nèi)含8K字節(jié)ISP(In-system Programmable,系統(tǒng)在線(xiàn)編輯)可反復(fù)擦寫(xiě)1000次的FLASH只讀程序儲(chǔ)存器,器件采用ATMEL公司的高密度、非易失性?xún)?chǔ)存技術(shù)制造,兼容標(biāo)準(zhǔn)MCS51指令系統(tǒng)及其引腳結(jié)構(gòu)。在實(shí)際工程應(yīng)用中,功能強(qiáng)大的AT89S52已成為許多高性?xún)r(jià)比嵌入式控制應(yīng)用系統(tǒng)的解決方案。</p><p>
28、 主控模塊的電路原理圖如圖3-2所示:</p><p> 圖3-2 基本單片機(jī)模塊</p><p> 3.2 鍵盤(pán)和顯示模塊</p><p> HD7279A智能顯示驅(qū)動(dòng)芯片內(nèi)部含有譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時(shí)具有2種譯碼方式,此外。還具有多種控制指令,如消隱,閃爍,左移,右移,段尋址等。</p><p> HD
29、7279A具有片選信號(hào),可方便地實(shí)現(xiàn)多于8位的顯示或多于64鍵的鍵盤(pán)接口。而本設(shè)計(jì)實(shí)際用到的按鍵只需要4個(gè),為了產(chǎn)品的擴(kuò)展,本設(shè)計(jì)設(shè)置了16個(gè)鍵。</p><p> 鍵盤(pán)顯示電路圖如下圖3-4所示,顯示屏由兩個(gè)4位LED數(shù)碼管組成,HD7279采用串行方式與單片機(jī), 串行數(shù)據(jù)從DATA引腳送入芯片,并由CLK端同步.當(dāng)片選信號(hào)變?yōu)榈碗娖胶?,DATA引腳上的數(shù)據(jù)在CLK引腳的上升沿
30、被寫(xiě)入HD7279A的緩沖寄存器。由于本設(shè)計(jì)使用了數(shù)碼管與鍵盤(pán),所以HD7279芯片與鍵盤(pán)的連接中串入了8只200歐姆的電阻,和8只100K的下拉電阻。RC接口接振蕩電路以供系統(tǒng)工作,其中C9=15PF,R3=1.5K。RESET復(fù)位端有三種接連方法,1;連接一外部復(fù)位電路,2;由單片機(jī)控制,3;直接與正電源相連。本設(shè)計(jì)選用第三套方案。</p><p> 圖3-4 鍵盤(pán)顯示電路</p><
31、p> 芯片讀鍵盤(pán)數(shù)據(jù)的方式如表3-1所示:</p><p> 表3-1讀鍵盤(pán)數(shù)據(jù)指令</p><p> 該指令從HD7279A讀出當(dāng)前的按鍵代碼。與其它指令不同,此命令的前一個(gè)字節(jié)00010101B為微控制器傳送到HD7279A的指令,而后一個(gè)字節(jié)dO-d7則為HD7279A返回的按鍵代碼,其范圍是O-3FH(無(wú)鍵按下時(shí)為OXFF)。當(dāng)此指令的前半段,HD7279A的DATA引
32、腳處于高阻輸入狀態(tài),以接受來(lái)自微處理器的指令;在指令的后半段,DATA引腳輸入狀態(tài)轉(zhuǎn)為輸出狀態(tài),輸出鍵盤(pán)代碼的值。故微處理器連接到DATA引腳的I/D口應(yīng)有一從輸出態(tài)到輸入態(tài)的轉(zhuǎn)換過(guò)程。</p><p> 當(dāng)HD7279A檢測(cè)大到有效的按鍵時(shí),KEY引腳從高電平變?yōu)殡娖?,并一直保持到按鍵結(jié)束。在此期間,如果HD7279A接收到‘讀鍵盤(pán)數(shù)據(jù)指令’,則輸出當(dāng)前按鍵的鍵盤(pán)代碼,如果在接收到‘讀鍵盤(pán)指令’時(shí)沒(méi)有有效按鍵
33、,HD7279A將輸出FFH(11111111B。)。</p><p><b> 3.3 電機(jī)模塊</b></p><p> 伺服電動(dòng)機(jī)又稱(chēng)執(zhí)行電動(dòng)機(jī),在自動(dòng)控制系統(tǒng)中,用作執(zhí)行元件,把所收到的電信號(hào)轉(zhuǎn)換為電動(dòng)機(jī)軸上的角位移或角速度輸出。其主要特點(diǎn)是,當(dāng)信號(hào)電壓為零時(shí)無(wú)自轉(zhuǎn)現(xiàn)象,轉(zhuǎn)速隨著轉(zhuǎn)矩的增加而勻速下降。</p><p> 3.3.1
34、伺服電機(jī)的連接</p><p> 每個(gè)伺服電機(jī)的控制電纜有三根線(xiàn)——白色,紅色和黑色。其中白色是用來(lái)傳送電機(jī)的控制信號(hào),紅色是用來(lái)連接電源,而黑色則是連接底線(xiàn)(本設(shè)計(jì)使用的是電壓為6V的電池組)。從圖3-5的伺服電機(jī)連接圖可知,兩個(gè)伺服電機(jī)的控制信號(hào)線(xiàn)(白色)分別連接到單片機(jī)的P1.2和P1.3,即由單片機(jī)的P1.2和P1.3口輸出的控制信號(hào)控制兩個(gè)伺服電機(jī)的運(yùn)動(dòng)。</p><p>
35、圖3-5 伺服電機(jī)的連接</p><p> 同時(shí)為了方便判斷單片機(jī)的控制信號(hào)是否順利傳送給伺服電機(jī)(在電機(jī)的調(diào)零及查錯(cuò)時(shí)非常有用),所以可以搭建一個(gè)伺服電機(jī)的控制信號(hào)電路如圖3-6。</p><p> 圖3-6 伺服電機(jī)控制信號(hào)燈的LED監(jiān)視電路圖</p><p> 3.3.2伺服電機(jī)的調(diào)零</p><p> 所謂的伺服電機(jī)調(diào)
36、零是指當(dāng)發(fā)送一個(gè)特定的控制信號(hào)給伺服電機(jī)時(shí),讓電機(jī)保持靜止的過(guò)程。由于每個(gè)伺服電機(jī)在出廠(chǎng)時(shí)并沒(méi)有預(yù)先調(diào)零,在給他發(fā)送調(diào)零控制信號(hào)時(shí),電機(jī)接受到控制信號(hào)并不會(huì)停止而會(huì)轉(zhuǎn)動(dòng)。因此要用螺絲刀調(diào)節(jié)伺服電機(jī)模塊內(nèi)的調(diào)節(jié)電阻讓伺服電機(jī)保持靜止。這也就是伺服電機(jī)的調(diào)零過(guò)程。電機(jī)調(diào)零后還可以傳送順時(shí)針和逆時(shí)針的控制信號(hào),驗(yàn)證電機(jī)功能是否正常。</p><p> 圖3-7 顯示的信號(hào)是發(fā)送到與P1.2(或P1.3)連接的伺服電機(jī)
37、的零點(diǎn)校準(zhǔn)信號(hào),稱(chēng)為零點(diǎn)標(biāo)定信號(hào)。即如果伺服電機(jī)零點(diǎn)已經(jīng)調(diào)節(jié)好,發(fā)送這個(gè)信號(hào)給電機(jī)就可以讓電機(jī)保持靜止不動(dòng)。這是一個(gè)脈沖時(shí)間間隔為20ms,脈沖寬度為1.5ms的脈沖序列信號(hào)。</p><p> 圖3-7 電機(jī)轉(zhuǎn)速為零的控制信號(hào)時(shí)序圖</p><p> 3.3.3伺服電機(jī)的測(cè)試</p><p> 測(cè)試伺服電機(jī)主要是運(yùn)行程序,使電機(jī)以不同速度和方向旋轉(zhuǎn)。通過(guò)測(cè)
38、試,可以確保在裝配之前電機(jī)工作是否正常。</p><p> 圖3-8所示是脈沖時(shí)間間隔為20ms,脈沖寬度為1.3ms的脈沖序列信號(hào),然后不斷重復(fù)發(fā)送控制脈沖序列。該脈沖序列發(fā)給經(jīng)過(guò)零點(diǎn)標(biāo)定后的伺服電機(jī),電機(jī)順時(shí)針全速旋轉(zhuǎn)(全速的范圍大約是50~60r/min,即約每秒鐘轉(zhuǎn)一圈)。圖3-9所示是脈沖時(shí)間間隔為20ms,脈沖寬度為1.7ms的脈沖序列信號(hào),重復(fù)以上的動(dòng)作,電機(jī)逆時(shí)針全速旋轉(zhuǎn)。</p>
39、<p> 圖3-8 1.3ms的控制脈沖序列使電機(jī)順時(shí)針全速旋轉(zhuǎn)</p><p> 圖3-9 1.7ms的控制脈沖序列使電機(jī)逆時(shí)針全速旋轉(zhuǎn)</p><p> 3.3.4伺服電機(jī)的速度和方向控制</p><p> 由于伺服電機(jī)是用控制信號(hào)對(duì)其控制,所以我們也可以通過(guò)信號(hào)控制他的速度。由上可以得知高電平持續(xù)時(shí)間為1.5ms時(shí)電機(jī)停止,高電平持續(xù)1
40、.3ms和1.5ms時(shí)電機(jī)全速運(yùn)行。由此得知,當(dāng)電機(jī)高點(diǎn)平持續(xù)的時(shí)間越接近1.5ms時(shí)電機(jī)的速度越慢。但需要注意的是:由于伺服電機(jī)是背靠背進(jìn)行運(yùn)行的,所以小車(chē)前進(jìn)時(shí)需要一個(gè)電機(jī)順時(shí)針運(yùn)行,另外一個(gè)電機(jī)逆時(shí)針運(yùn)行,如表3-2所示。</p><p> 表3-2 伺服電機(jī)速度和方向的控制</p><p> 3.4 紅外循跡、壁障模塊</p><p> 紅外線(xiàn)(IR
41、)接收/檢測(cè)器有內(nèi)置的光濾波器和電子濾波器,只能夠讓980nm波長(zhǎng)的紅外線(xiàn)和大約38.5KHZ的電信號(hào)通過(guò),排除太陽(yáng)光和外界其他光源的干擾[3]。所以可以利用檢測(cè)器是否檢測(cè)到38500次紅外線(xiàn)來(lái)判斷,是否需要循跡或者壁障。</p><p> 同時(shí)紅外線(xiàn)會(huì)被黑色吸收,所以我們利用黑色的軌道,當(dāng)小車(chē)沒(méi)有檢測(cè)到紅外線(xiàn)時(shí)表明小車(chē)在既定軌道上行駛;如果檢測(cè)到紅外線(xiàn)時(shí)著表明小車(chē)已經(jīng)脫離了既定軌道,應(yīng)作出正確的判斷使其回到正
42、確的軌道。壁障模塊和測(cè)速模塊的原理相同。</p><p> 圖3-10所示的電路就是小車(chē)左右循跡IR組原理圖。由于A(yíng)T89S52的IO驅(qū)動(dòng)能力較弱,無(wú)法直接驅(qū)動(dòng)IR LED。所以我們利用了三極管能放大電流的這一特性,用小電流來(lái)控制大電流。這樣三極管相當(dāng)于一個(gè)開(kāi)關(guān):當(dāng)P1_4(P1_5)置高時(shí),從集電區(qū)經(jīng)基區(qū)到發(fā)射區(qū)電路導(dǎo)通,加載在IR LED上的電壓為VCC(5V),IR LED向外發(fā)射紅外線(xiàn);當(dāng)P1_4(P1
43、_5)置低時(shí),電路有斷開(kāi),IR LED停止發(fā)射。如此循環(huán)行程38.5KHZ的電信號(hào)。</p><p> 圖3-10 左側(cè)和右側(cè)IR組原理圖</p><p><b> 3.5測(cè)速模塊</b></p><p> 決定小車(chē)速度的兩個(gè)要素為距離和時(shí)間,所以只要通過(guò)測(cè)量小車(chē)在規(guī)定時(shí)間內(nèi)行駛的距離就可以通過(guò)計(jì)算得知小車(chē)的速度。</p>
44、<p><b> 一、距離:</b></p><p> 本設(shè)計(jì)在輪胎上安裝了一個(gè)紅外探測(cè)器,并在輪胎的一角做白色標(biāo)記。每當(dāng)紅外探測(cè)器無(wú)法探測(cè)到紅外線(xiàn)時(shí),單片機(jī)發(fā)生中斷,得知輪胎旋轉(zhuǎn)一周。且輪胎的周期為5cm。</p><p><b> 二、時(shí)間:</b></p><p> 通過(guò)對(duì)伺服電機(jī)的了解,我們根據(jù)其
45、利用脈沖控制電機(jī)這一特性來(lái)計(jì)算時(shí)間。電機(jī)每當(dāng)需要作出反應(yīng)時(shí),則會(huì)調(diào)用相應(yīng)的脈沖,此時(shí)我們把他們調(diào)用的次數(shù)存放在寄存器time中。</p><p> 每當(dāng)單片機(jī)發(fā)生中斷時(shí),單片機(jī)及時(shí)計(jì)算出其速度。公式如下:</p><p> Sudu=500000/time*(second+20000)</p><p> 圖3-11 小車(chē)速度計(jì)算脈沖</p>&l
46、t;p><b> 4 軟件設(shè)計(jì)</b></p><p> 本設(shè)計(jì)采用C語(yǔ)言來(lái)編寫(xiě)程序,它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。</p><p> 它可以作為工作系統(tǒng)的設(shè)計(jì)語(yǔ)言,編寫(xiě)系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫(xiě)不依賴(lài)計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開(kāi)發(fā)上,而且各類(lèi)科研都需要用到C語(yǔ)言,具體應(yīng)用比如單片機(jī)以及
47、嵌入式系統(tǒng)開(kāi)發(fā)。</p><p> 在軟件表現(xiàn)方面C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句卻擁有34總運(yùn)算符,且數(shù)據(jù)類(lèi)型豐富。語(yǔ)法的限制也不太嚴(yán)格,所以程序的設(shè)計(jì)自由度非常大。并且適用于多種操作系統(tǒng),可移植性非常高。在硬件表現(xiàn)方面,C語(yǔ)言允許直接訪(fǎng)問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作,因此既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多程序。</p><p> 4.1 總體程序流程圖</
48、p><p> 本設(shè)計(jì)將程序劃分為多個(gè)模塊進(jìn)行分別書(shū)寫(xiě),如此既可以使書(shū)寫(xiě)方便,程序美觀(guān),同時(shí)在程序的差錯(cuò)時(shí),可以精確定位,并修改。在主程序部分,可以分別調(diào)用各個(gè)模塊子程序進(jìn)行循環(huán)。實(shí)現(xiàn)小車(chē)各個(gè)模塊的功能。總體程序流程圖如4-1所示</p><p> 圖4-1 總體程序流程圖 </p><p> 4.1.1初始化子程序</p><p> 每
49、當(dāng)單片機(jī)重新上電時(shí),需要對(duì)單片機(jī)進(jìn)行一些恢復(fù)和置零。</p><p> 一、設(shè)置初始值,使電機(jī)初始保持全速運(yùn)動(dòng),而后通過(guò)按鍵對(duì)其速度進(jìn)行控制,同時(shí),脈沖的計(jì)數(shù)器置零,使速度的計(jì)算精確。</p><p> 二、本設(shè)計(jì)中運(yùn)用到了兩個(gè)中斷器,首先要開(kāi)啟兩個(gè)中斷器,再對(duì)兩個(gè)中斷方式進(jìn)行選擇(選擇下降沿有效),最后開(kāi)啟總開(kāi)關(guān)。</p><p> 三、同時(shí)在上電時(shí)使數(shù)碼管
50、顯示6、5、4、3,為了提高數(shù)碼管的亮度,我們消隱高4位數(shù)碼管。程序流程圖如4-2所示</p><p> 圖4-2 初始化子程序流程圖</p><p> 4.1.2循跡子程序</p><p> 如圖4-3所示為循跡子程序流程圖, 程序首先調(diào)用紅外線(xiàn)發(fā)射子程序,紅外線(xiàn)管發(fā)射每秒閃爍38500次(38.5KHZ)的紅外線(xiàn),而紅外接收管接受紅外線(xiàn),并判斷左右紅外線(xiàn)管
51、接受紅外線(xiàn)的情況。單片機(jī)做出小車(chē)接下來(lái)的動(dòng)作。IR1_L和IR1_R為紅外線(xiàn)接收管連接單片機(jī)的端口,當(dāng)接收到紅外線(xiàn)時(shí)置1。</p><p> 由于紅外探測(cè)器只能尋找每秒閃爍38500次得紅外光。所以我們需要通過(guò)單片機(jī)制造一個(gè)1ms頻率為38.5kHz這個(gè)的紅外線(xiàn)并發(fā)射出去。設(shè)計(jì)使用的是一個(gè)12MHZ晶振,按此計(jì)算單片機(jī)AT89S52一個(gè)時(shí)鐘周期(晶振頻率的倒數(shù))為:</p><p>
52、T=1/12M=(1/2) X 10-6s</p><p> 而單片機(jī)的操作是用計(jì)算器周期來(lái)計(jì)算的,一個(gè)計(jì)算周期為12個(gè)時(shí)鐘周期。因此</p><p> T=12 X T=1us</p><p> 38.5kHz的脈沖的周期為26us,我們需要對(duì)置1和置0的脈沖延時(shí)13us。此脈沖需要延續(xù)1ms,我們循環(huán)38次此脈沖。至此,實(shí)現(xiàn)1ms頻率為38.5kHz紅外線(xiàn)
53、發(fā)射。</p><p> 程序流程圖如4-4所示:</p><p> 4.1.3壁障子程序</p><p> 由于壁障模塊運(yùn)用的原理與循跡模塊的原理相同。程序的流程圖也4-3相似。首先程序調(diào)用紅外線(xiàn)發(fā)射子程序,紅外線(xiàn)管發(fā)射每秒閃爍38500次(38.5KHZ)的紅外線(xiàn),而紅外接收管接受紅外線(xiàn),并判斷左右紅外線(xiàn)管接受紅外線(xiàn)的情況。單片機(jī)做出小車(chē)接下來(lái)的動(dòng)作。IR
54、_L和IR_R為紅外線(xiàn)接收管連接單片機(jī)的端口,當(dāng)接收到紅外線(xiàn)時(shí)置1。</p><p> 壁障模塊的紅外線(xiàn)發(fā)射原理同循跡模塊的紅外線(xiàn)發(fā)射,詳見(jiàn)4.1.3。</p><p> 4.1.4按鍵處理子程序</p><p> 按鍵的處理是根據(jù)芯片HD7279的原理進(jìn)行。當(dāng)按鍵模塊有按鍵按下時(shí),單片機(jī)發(fā)生中斷,從而單片機(jī)逐個(gè)讀取8個(gè)按鍵(8位)的信息,再將8位信息儲(chǔ)存在一
55、個(gè)寄存器中,單片機(jī)判斷按鍵位置做出相應(yīng)的反應(yīng)。每個(gè)按鍵執(zhí)行的任務(wù)如表4-1所示:</p><p> 表4-1 按鍵處理表</p><p> 4.2電機(jī)控制程序流程圖</p><p> 4.2.1循跡時(shí)電機(jī)的控制程序流程圖</p><p> 伺服電機(jī)的控制不同于其他電機(jī),他是通過(guò)控制脈沖從而來(lái)控制電機(jī)。高電平持續(xù)時(shí)間為1300ns和1
56、700ns時(shí)為兩個(gè)全速行駛的臨界點(diǎn),而持續(xù)時(shí)間越靠近1500ns速度越慢,到達(dá)1500ns時(shí)則停止運(yùn)動(dòng)。本設(shè)計(jì)將電機(jī)的速度劃分為6個(gè)檔位,通過(guò)按鍵控制其速度的快慢。</p><p> 需要注意的是,由于電機(jī)是背靠背放置,所以電機(jī)的逆時(shí)針與順時(shí)針是相對(duì)的。小車(chē)前進(jìn)時(shí)一個(gè)電機(jī)需要得到的是逆時(shí)針脈沖,而另外一個(gè)電機(jī)則需要得到的是順時(shí)針脈沖。設(shè)計(jì)中按鍵按6個(gè)檔位控制這電機(jī)的速度。Second則是控制速度的寄存器。速度控
57、制的詳細(xì)信息如表4-2所示:</p><p> 表4-2 小車(chē)速度控制表</p><p> 4.2.2壁障時(shí)電機(jī)控制的流程圖</p><p> 小車(chē)遇到障礙物時(shí),不同于循跡時(shí)只需要做出小幅度的調(diào)整使小車(chē)回到既定的軌道,而需要做出一系列的自動(dòng)反應(yīng)。如小車(chē)正前方遇到障礙物時(shí)需要將小車(chē)調(diào)頭,但是為避免小車(chē)調(diào)頭時(shí)撞到障礙物,通常是先將小車(chē)后退留出足夠的空間讓小車(chē)調(diào)頭
58、。小車(chē)遇到障礙物時(shí)應(yīng)做的正確行為如表4-3:</p><p> 表4-3 小車(chē)壁障</p><p> 通過(guò)實(shí)踐和計(jì)算,得出,當(dāng)電機(jī)以全速旋轉(zhuǎn)時(shí),電機(jī)旋轉(zhuǎn)一周(360°)所需要的脈沖大概為50個(gè)。小車(chē)旋轉(zhuǎn)90°需要的脈沖位25個(gè)。在壁障電機(jī)控制的程序中,我們使用64個(gè)脈沖使小車(chē)倒退與障礙物之間的距離拉開(kāi)足以使小車(chē)自由活動(dòng)。而后利用25個(gè)脈沖使小車(chē)旋轉(zhuǎn)大約90
59、6;避開(kāi)障礙物。</p><p> 4.3 小車(chē)速度的算法</p><p> 我們可以利用公式:Sudu=500000/time*(second+20000)算出小車(chē)的速度。但是我們需要將得到的數(shù)分開(kāi)分別在4個(gè)數(shù)碼管上顯示出來(lái)。此時(shí),我們可以利用“/”,“%”這個(gè)公式將幾位數(shù)分開(kāi)。 </p><p> 一、“/”為除號(hào),保留數(shù)的整數(shù),去掉數(shù)的余數(shù)。</p
60、><p> 二、“%”為除號(hào),保留數(shù)的余數(shù),去掉數(shù)的整數(shù)。</p><p> 最后將得到的數(shù)分別發(fā)送給數(shù)碼管顯示,值得注意的是:此次速度計(jì)算完后,我們需要對(duì)time寄存器置零,以便進(jìn)行下一輪的速度計(jì)算。</p><p><b> 5 測(cè)試報(bào)告</b></p><p> 5.1 測(cè)試小車(chē)初始狀態(tài)</p>
61、<p> ?。?):打開(kāi)電源時(shí),數(shù)碼管依次顯示6、5、4、3四個(gè)數(shù)字,而后不顯示任何數(shù)字。</p><p> ?。?):小車(chē)處于靜止?fàn)顟B(tài),沒(méi)有運(yùn)動(dòng)。</p><p> 5.2 測(cè)試小車(chē)的循跡功能</p><p> ?。?):用手擋住左邊傳感器發(fā)射管,模擬小車(chē)右半部分偏離規(guī)定跑道,</p><p> 小車(chē)左轉(zhuǎn)(右電機(jī)順時(shí)針旋轉(zhuǎn),左
62、電機(jī)順時(shí)針旋轉(zhuǎn))。</p><p> ?。?):用手擋住右邊傳感器發(fā)射管,模擬小車(chē)左半部分偏離規(guī)定跑道,</p><p> 小車(chē)右轉(zhuǎn)(右電機(jī)逆時(shí)針旋轉(zhuǎn),左電機(jī)逆時(shí)針旋轉(zhuǎn))。 </p><p> ?。?):用手擋住兩邊傳感器發(fā)射管,模擬小車(chē)正在規(guī)定軌道上面,</p><p> 小車(chē)前進(jìn)(右電機(jī)順時(shí)針旋轉(zhuǎn),左電機(jī)逆時(shí)針旋轉(zhuǎn))。</p&g
63、t;<p> (4):沒(méi)有擋住兩邊傳感器發(fā)射管,模擬小車(chē)完全偏離規(guī)定的跑道,</p><p><b> 小車(chē)停止。</b></p><p> 將小車(chē)放在黑色軌道上,小車(chē)能夠按照規(guī)定的軌道跑完全程。</p><p> 5.3 測(cè)試小車(chē)的壁障功能</p><p> ?。?):把手放在左邊傳感器前面(隔一
64、段距離),模擬小車(chē)左邊有障礙物。</p><p> 小車(chē)先后退一段距離,而后右轉(zhuǎn)90°,繼續(xù)行駛。</p><p> (2):把手放在右邊傳感器前面(隔一段距離),模擬小車(chē)右邊有障礙物。</p><p> 小車(chē)先后退一段距離,而后左轉(zhuǎn)90°,繼續(xù)行駛。</p><p> ?。?):把手放在兩邊傳感器前面(隔一段距離)
65、,模擬小車(chē)前方有障礙物。</p><p> 小車(chē)先后退一段距離,而后左轉(zhuǎn)90°再左轉(zhuǎn)90°(調(diào)頭),繼續(xù)行駛。</p><p> 小車(chē)后退的范圍足以使小車(chē)能后左右轉(zhuǎn)或是調(diào)頭。小車(chē)能后完成90°的左右轉(zhuǎn)。</p><p> 5.4 測(cè)試小車(chē)速度的控制</p><p> ?。?):按第一個(gè)按鍵時(shí),小車(chē)全速前進(jìn)。
66、數(shù)碼管顯示速度顯示最大。</p><p> ?。?):按第二個(gè)按鍵,小車(chē)減速,共6個(gè)檔位,最后小車(chē)停止。</p><p> 數(shù)碼管顯示速度依次從最大變?yōu)?</p><p> ?。?):按第三個(gè)按鍵,小車(chē)加速,共6個(gè)檔位,最后小車(chē)全速前進(jìn)。 </p><p> 數(shù)碼管顯示速度依次從0變?yōu)樽畲?lt;/p><p> ?。?
67、):按第四個(gè)按鍵,小車(chē)停止。 </p><p><b> 數(shù)碼管顯示速度為0</b></p><p> 小車(chē)可以通過(guò)按鍵的控制調(diào)整小車(chē)的速度。當(dāng)小車(chē)在全速行駛的狀態(tài)下足以在4分鐘內(nèi)完成這個(gè)跑道的行駛。</p><p><b> 6 結(jié)論</b></p><p> 本設(shè)計(jì)方案按照任務(wù)書(shū)的要求,
68、使用AT89C52單片機(jī)作為主要芯片,用C語(yǔ)言進(jìn)行編程,WAVE軟件進(jìn)行編譯,制作了智能的循跡小車(chē)。</p><p> 此設(shè)計(jì)的顯示屏由2個(gè)4位LED數(shù)碼管,鍵盤(pán)設(shè)置16個(gè)鍵,軟件部分的程序由微處理器系統(tǒng)、電機(jī)模塊、循跡模塊、避障模塊、測(cè)速模塊、鍵盤(pán)和顯示模塊組成,用STC-ISP下載軟件下載到單片機(jī)。由測(cè)試報(bào)告說(shuō)明本系統(tǒng)可以實(shí)現(xiàn)的功能如下:</p><p> ?。?)小車(chē)可以實(shí)現(xiàn)循跡功
69、能。</p><p> ?。?)小車(chē)可以實(shí)現(xiàn)壁障功能。</p><p> (3)小車(chē)可以實(shí)現(xiàn)測(cè)速功能。</p><p> ?。?)小車(chē)可以實(shí)現(xiàn)調(diào)速功能。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 楊恢先,黃輝先.單片機(jī)原理及應(yīng)用[M].北京:人民郵電出版社,200
70、6,10.</p><p> [2] 熊維. VHDL語(yǔ)言在數(shù)字電路設(shè)計(jì)中的應(yīng)用 [J] . 黑龍江科技信息.2008,1:23~25.</p><p> [3] 靳會(huì)清. 熱釋電紅外傳感器原理及應(yīng)用[J].煤炭技術(shù),2008,8,27(8):1-2</p><p> [4] 劉宗新,王丹偉,張迪超,徐世錄. 紅外傳感技術(shù)的軍事應(yīng)用與分析[J].紅外與激光工程
71、,2007,9,36(9):600-605</p><p> [5] Kirchnerova J. ,Bale C.W. ,Skeaff J. M. Sensors & Actuators B[M], 1990,B2,7.</p><p> [6] 宋雪臣.傳感器與檢測(cè)技術(shù)[M].北京:人民郵電出版社,2009,5.</p><p> [7] 肖景
72、和,趙健. 紅外線(xiàn)熱釋電與超聲遙控電路[M]. 北京:人民郵電出版社,2003,9.</p><p> [8] 賈伯年,俞樸,宋愛(ài)國(guó).傳感器技術(shù)(第三版)[M].江蘇:東南大學(xué)出版社,2007,2.</p><p> [9] 周四春,吳建平,祝忠明等.傳感器技術(shù)與工程應(yīng)用[M].北京:原子能出版社,2007,9.</p><p> [10] 劉愛(ài)華,滿(mǎn)寶元.
73、傳感器原理與應(yīng)用技術(shù)[M]. 北京:人民郵電出版社,2006,10.</p><p> [11] 俞志根等.傳感器與檢測(cè)技術(shù)(第二版)[M]. 北京:科學(xué)出版社,2010,6.</p><p> [12] Wohltjen H. , Sensors & Actuators [M], 5(1984)307.</p><p> [13] 殷淑英.傳感器應(yīng)用
74、技術(shù)[M].北京:冶金工業(yè)出版社,2008,7.</p><p> [14] 劉篤仁,韓保君,劉勒.傳感器原理及應(yīng)用技術(shù)(第二版)[M].西安:西安電子科技大學(xué)出版社,2009,4.</p><p><b> 附錄1 實(shí)驗(yàn)原理圖</b></p><p> 附錄2 畢業(yè)設(shè)計(jì)作品說(shuō)明書(shū)</p><p><b>
75、; 一、作品名稱(chēng)</b></p><p> 基于單片機(jī)的循跡小車(chē)的設(shè)計(jì)</p><p><b> 二、作品功能</b></p><p> ?。?)小車(chē)可以實(shí)現(xiàn)循跡功能。</p><p> (2)小車(chē)可以實(shí)現(xiàn)壁障功能。</p><p> ?。?)小車(chē)可以實(shí)現(xiàn)測(cè)速功能。</p
76、><p> ?。?)小車(chē)可以實(shí)現(xiàn)調(diào)速功能。</p><p><b> 三、運(yùn)行環(huán)境</b></p><p><b> 硬件環(huán)境</b></p><p> AT89C52、HD7279A芯片正常,電路板子通過(guò)檢測(cè)。</p><p><b> 軟件環(huán)境</b&
77、gt;</p><p> C語(yǔ)言編程,通過(guò)WAVE編譯。</p><p><b> 四、操作步驟</b></p><p> (1)打開(kāi)電源時(shí),數(shù)碼管依次顯示6、5、4、3四個(gè)數(shù)字,而后不顯示任何數(shù)字。</p><p> 小車(chē)處于靜止?fàn)顟B(tài),沒(méi)有運(yùn)動(dòng)。</p><p> ?。?)把小車(chē)放在黑色
78、軌道上,小車(chē)沿著軌道行駛。</p><p> (3)在小車(chē)前面放置障礙物,小車(chē)能夠避開(kāi)障礙物繼續(xù)進(jìn)行。</p><p> (4)按第一個(gè)按鍵,小車(chē)全速前進(jìn)。</p><p> (5)按第二個(gè)按鍵,小車(chē)減速,共6個(gè)檔位,最后小車(chē)停止。 </p><p> (6)按第三個(gè)按鍵,小車(chē)加速,共6個(gè)檔位,最后小車(chē)全速前進(jìn)。 </p>
79、<p> (7)按第四個(gè)按鍵,小車(chē)停止。 </p><p><b> 五、注意事項(xiàng)</b></p><p> 需要為電路板提供5V直流電壓</p><p><b> 附錄3 源程序清單</b></p><p> #include <reg51.h>
80、 /*定義頭文件*/</p><p> /************************************/</p><p> typedef unsigned char BYTE; /*自定義字節(jié)類(lèi)型*/</p>
81、<p> #define uchar unsigned char</p><p> /************************************/</p><p> #define Set_Bit(BIT) (BIT = 1) /*定義置1函數(shù)*/</p>
82、<p> #define Clear_Bit(BIT) (BIT = 0) /*定義清0函數(shù)*/</p><p> /************************************/</p><p> #define HD7279_TEST 0xbf
83、 //測(cè)試</p><p> #define HD7279_RLC 0xa3 //循環(huán)左移</p><p> #define HD7279_RRC 0xa2
84、 //循環(huán)右移</p><p> #define HD7279_RL 0xa1 //左移</p><p> #define HD7279_RR 0xa0 //右移</p>
85、<p> #define HD7279_DECODE0 0x80 //譯碼方式0</p><p> #define HD7279_DECODE1 0xc8 //譯碼方式1</p><p> #define HD727
86、9_UNDECODE 0x90 //譯碼方式2: 不譯碼</p><p> #define HD7279_HIDE 0x98 //消隱</p><p> #define HD7279_FLASH 0x88
87、 //閃爍</p><p> #define HD7279_SEGON 0xe0 //段亮</p><p> #define HD7279_SEGOFF 0xc0
88、 //段滅</p><p> #define HD7279_READ 0x15 //讀</p><p> void Write_HD7279(BYTE,BYTE); /*定義HD7279寫(xiě)函數(shù)*/</
89、p><p> BYTE Read_HD7279(BYTE); /*定義HD7279讀函數(shù)*/</p><p> void Send_Byte(BYTE); /*定義HD7279發(fā)送字節(jié)函數(shù)*/</p><p> BYTE Receive_By
90、te(void); /*定義HD7279接收字節(jié)函數(shù)*/</p><p> sbit HD7279_Key=P3^3; /*定義HD7279中斷硬件連接--->INT1*/</p><p> sbit HD7279_Clk=P1^0;
91、 /*定義HD7279時(shí)鐘硬件連接*/</p><p> sbit HD7279_Data=P1^1; /*定義HD7279數(shù)據(jù)硬件連接*/</p><p> sbit HD7279_CS=P2^6; /*片選端,讀取鍵盤(pán)內(nèi)容*/</p&
92、gt;<p> BYTE Keyboard_Out; /*定義鍵值變量*/</p><p> bit Keyboard_Flag; /*定義按鍵標(biāo)志*/</p><p> /*********
93、***************************/</p><p> sbit For_R=P1^2; /*右電機(jī)*/</p><p> sbit For_L=P1^3;
94、 /*左電機(jī)*/</p><p> sbit trace_L=P1^4; /*左循跡 發(fā)射*/</p><p> sbit trace_R=P1^5; /*右循跡 發(fā)射*/</p>
95、<p> sbit IR1_L=P1^6; /*循跡 接收*/</p><p> sbit IR1_R=P1^7; </p><p> sbit avoid_L=P2^0; /*左避障
96、發(fā)射*/</p><p> sbit avoid_R=P2^1; /*右避障 發(fā)射*/</p><p> sbit IR_L=P2^2; /*壁障 接收*/</p><p>
97、 sbit IR_R=P2^3;</p><p> sbit Speed_s=P2^4;</p><p> sbit Speed=P3^2; /*測(cè)速*/</p><p> /************************************/<
98、/p><p> int time;</p><p> int sudu;</p><p> int counter;</p><p> int Command1;</p><p> int Command2;</p><p> int Command3;</p><
99、;p> int Command4;</p><p> /************************************/</p><p> void Short_Delay(void); /*定義短延時(shí)函數(shù)*/</p><p> void Long_Delay(v
100、oid); /*定義長(zhǎng)延時(shí)函數(shù)*/</p><p> void Mcu_Init(void); /*定義MCU初始化函數(shù)*/</p><p> void FASHE(void);</p><p> void XUN
101、JI(void);</p><p> void CHESU(void);</p><p> void ANJIAN(void);</p><p> void Forward(void); </p><p> void Backward(void);</p><p> void Turn_Right(void)
102、;</p><p> void Turn_Left(void);</p><p> void Backward1(void);</p><p> void Turn_Right1(void);</p><p> void Turn_Left1(void);</p><p> void Stop(void);&
103、lt;/p><p> /************************************/</p><p> void main(void)</p><p><b> {</b></p><p> Mcu_Init(); /*MCU初
104、始化,調(diào)用子程序*/</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> XUNJI();</b></p><p><b> BIZHAN();</b></p><
105、p><b> CHESU();</b></p><p><b> ANJIAN();</b></p><p><b> }</b></p><p><b> }</b></p><p> /*************************
106、***********/</p><p> void Mcu_Init(void) /*MCU初始化函數(shù)*/</p><p><b> {</b></p><p> time=0;
107、 /*測(cè)速計(jì)數(shù)*/</p><p> Second=1300; /*默認(rèn)時(shí) 全速前進(jìn)*/</p><p> HD7279_CS=0;</p><p> Set_Bit(EX0);
108、 /*外部中斷0使能*/</p><p> Set_Bit(IT0); /*外部中斷0下降沿觸發(fā)*/</p><p> Set_Bit(EX1); /*外部中斷1使能*/</p><p&
109、gt; Set_Bit(IT1); /*外部中斷1下降沿觸發(fā)*/</p><p> Set_Bit(EA); /*中斷使能*/</p><p> Send_Byte(0xa4);
110、 /*HD7279復(fù)位*/</p><p> Write_HD7279(0x98,0x0f)</p><p> ; /*HD7279啟動(dòng)消隱功能(高4位消隱),能提高燈的亮度*/</p><p> Write_HD7279(0xc8,0x03);</p><p> /*上電顯示
111、6、5、4、3,方式1譯碼:0xc8,顯示位置0xc8+(0~7) */</p><p> Write_HD7279(0xc9,0x04);</p><p> Write_HD7279(0xca,0x05);</p><p> Write_HD7279(0xcb,0x06);</p><p><b> }</b>
112、</p><p> /************************************/</p><p> void XUNJI(void) /*循跡程序*/</p><p><b> {</b></p><p>
113、 IRLaunch('R'); //右邊發(fā)射</p><p> IRLaunch('L'); //左邊發(fā)射</p><p> if ((IR1_L==0)&
114、amp;&(IR1_R==0)) </p><p><b> {</b></p><p> Forward();</p><p><b> }</b></p><p> else if((IR1_L==0)&&(IR1_R==1))</p><
115、p><b> {</b></p><p> Turn_Left();</p><p><b> }</b></p><p> else if((IR1_L==1)&&(IR1_R==0)) </p><p><b> {</b></p>
116、;<p> Turn_Right();</p><p><b> }</b></p><p> else if((IR1_L==1)&&(IR1_R==1))</p><p><b> {</b></p><p><b> Stop();</b
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的智能循跡小車(chē)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)論文基于單片機(jī)的智能循跡小車(chē)
- 基于單片機(jī)循跡小車(chē)設(shè)計(jì)
- 畢業(yè)論文-開(kāi)題報(bào)告-文獻(xiàn)綜述基于單片機(jī)的循跡小車(chē)的設(shè)計(jì)
- 畢業(yè)論文-開(kāi)題報(bào)告-文獻(xiàn)綜述基于單片機(jī)的循跡小車(chē)的設(shè)計(jì)
- 基于at89s52單片機(jī)循跡小車(chē)的系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于89s51單片機(jī)的循跡小車(chē)設(shè)計(jì)報(bào)告畢業(yè)論文
- 測(cè)控技術(shù)與儀器畢業(yè)論文基于單片機(jī)的智能循跡小車(chē)設(shè)計(jì)
- 基于單片機(jī)的智能循跡小車(chē)的控制畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的智能循跡小車(chē)的控制畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的智能循跡小車(chē)的控制畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的智能循跡小車(chē)
- 基于單片機(jī)的循跡避障小車(chē)的設(shè)計(jì)與實(shí)現(xiàn)-本科畢業(yè)論文
- 基于51單片機(jī)的循跡小車(chē)系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的循跡避障小車(chē)的設(shè)計(jì)與實(shí)現(xiàn)-本科畢業(yè)論文
- 基于單片機(jī)的循跡避障小車(chē)的設(shè)計(jì)與實(shí)現(xiàn)-本科畢業(yè)論文
- 基于單片機(jī)的智能小車(chē)設(shè)計(jì)畢業(yè)論文
- 基于stc89c52單片機(jī)的智能循跡小車(chē)畢業(yè)論文
- 基于單片機(jī)的智能小車(chē)的設(shè)計(jì) 畢業(yè)論文
- 基于單片機(jī)的循跡小車(chē)的設(shè)計(jì)【開(kāi)題報(bào)告】
評(píng)論
0/150
提交評(píng)論