2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  姓 名 王延大 </p><p>  專 業(yè) 班 級 12電子4班 </p><p>  論 文 名 稱 智能遙控小車

2、 </p><p>  指 導(dǎo) 教 師 梁召峰 </p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p>  專業(yè)(班): 13電子1班 姓名: 陳仕泓</p><p&

3、gt;  課題名稱、主要內(nèi)容和基本要求</p><p><b>  進(jìn)度安排</b></p><p><b>  指導(dǎo)教師評語</b></p><p>  指導(dǎo)教師簽名: </p><p><b>  評閱教師評語</b></p>

4、<p>  評閱教師簽名: </p><p>  畢業(yè)設(shè)計(jì)(論文)成績</p><p>  答辯委員會主任簽名: </p><p><b>  目 錄</b></p><p><b>  摘要5</b></p>

5、<p>  Abstract5</p><p>  第一章方案的論證6</p><p>  1.1AVR單片機(jī)的選擇6</p><p>  1.1.1 AVR單片機(jī)用于智能小車的優(yōu)點(diǎn):6</p><p>  1.1.2 AVR單片機(jī)用于智能小車的缺點(diǎn):6</p><p>  1.2 C51單片機(jī)

6、的選擇6</p><p>  1.2.1 STC89C52單片機(jī)簡介工作原理:6</p><p>  1.2.2 C51單片機(jī)用于智能小車的優(yōu)點(diǎn):6</p><p>  1.2.3 C51單片機(jī)用于智能小車的缺點(diǎn):7</p><p>  1.2.4 C51單片機(jī)用領(lǐng)域:7</p><p>  1.3選題的原

7、因及結(jié)果7</p><p>  第二章 系統(tǒng)硬件設(shè)計(jì)9</p><p>  2.1系統(tǒng)硬件的總體設(shè)計(jì)9</p><p>  2.1.1系統(tǒng)硬件總體框圖9</p><p>  2.1.2各個組成模塊9</p><p>  2.1.3總體電路原理圖12</p><p>  2.2 遙控電

8、路設(shè)計(jì)12</p><p>  2.2.1驅(qū)動電路13</p><p>  第三章 系統(tǒng)軟件設(shè)計(jì)16</p><p>  3.1主程序框圖:16</p><p>  3.2電機(jī)驅(qū)動程序16</p><p>  3.4避障模塊、避障框圖19</p><p>  第四章系統(tǒng)調(diào)試22&l

9、t;/p><p>  4.1 測試工具:22</p><p>  4.2 PCB的設(shè)計(jì)制作與安裝22</p><p>  4.3 調(diào)試過程22</p><p><b>  結(jié)束語23</b></p><p><b>  致謝23</b></p&

10、gt;<p><b>  參考文獻(xiàn)24</b></p><p><b>  摘要</b></p><p>  超聲波具有指向性強(qiáng),能量消耗緩慢,傳播距離較遠(yuǎn)等優(yōu)點(diǎn),所以,在利用傳感器技術(shù)和自動控制技術(shù)相結(jié)合的測距方案中,超聲波測距是目前應(yīng)用最普遍的一種,它廣泛應(yīng)用于防盜、倒車?yán)走_(dá)、水位測量、建筑施工工地以及一些工業(yè)現(xiàn)場。 <

11、;/p><p>  本文主要是根據(jù)超聲波傳感器的原理和特性,利用傳輸中距離與時間的關(guān)系,計(jì)算從超聲波發(fā)出到途中遇到障礙物反射回來的往返時間,然后利用有關(guān)參數(shù),由距離計(jì)算公式算出所測距離,此次設(shè)計(jì)采用AT89C51單片機(jī)為核心器件,形成相應(yīng)的測距電路,信號處理電路,自行編制單片機(jī)控制程序,并進(jìn)行硬件調(diào)試、軟件調(diào)試,最后進(jìn)行軟硬件聯(lián)調(diào),達(dá)到性能要求。</p><p>  該測距儀主要由超聲波發(fā)射器

12、電路、超聲波接收器電路、單片機(jī)控制電路、環(huán)境溫度檢測電路及顯示電路構(gòu)成。</p><p>  關(guān)鍵詞:超聲波測距,51單片機(jī),傳感器,LED顯示屏等</p><p><b>  前言</b></p><p>  隨著我國汽車產(chǎn)業(yè)的高速發(fā)展,我國已開始進(jìn)入私家車時代,而隨之增加的是交通事故的發(fā)生的頻率。為了提高汽車運(yùn)行的安全性,倒車?yán)走_(dá)預(yù)警系統(tǒng)的

13、問世不僅受到了廣大顧客的青睞,也使電子產(chǎn)業(yè)成汽車行業(yè)中的新興熱點(diǎn)。尤其是近年來倒車?yán)走_(dá)受到了商家的熱捧,</p><p>  很多防盜器的生產(chǎn)商紛紛涉足倒車?yán)走_(dá),使得我國汽車電子行業(yè)逐漸繁榮起來,倒車?yán)走_(dá)儼然形成一個較大的商機(jī),市場也開始呈現(xiàn)出一派競爭的態(tài)勢。倒車?yán)走_(dá)系統(tǒng)經(jīng)歷了三個階段,六代技術(shù)的改良。最早的是倒車防撞儀,功能單一只能測試車后限定范圍內(nèi)的障礙物,然后發(fā)出警報(bào)。慢慢的倒車?yán)走_(dá)發(fā)展到可以根據(jù)距離遠(yuǎn)近程

14、度分段報(bào)警。前兩個階段的倒車?yán)走_(dá)一般采用集成電路,所以功能比較單一。</p><p>  隨著人們對汽車駕駛輔助系統(tǒng)易用性要求的提高,以及單片機(jī)價格不斷下降和汽車電子系統(tǒng)網(wǎng)絡(luò)化發(fā)展的要求,新型的倒車?yán)走_(dá)都是以單片機(jī)為核心的智能測距傳感系統(tǒng)。要求倒車?yán)走_(dá)連續(xù)測距并顯示障礙物距離,并采用不同間歇鳴叫頻率的聲音報(bào)警提示距離,讓駕駛員全神貫注地注視場景。汽車電子系統(tǒng)網(wǎng)絡(luò)化發(fā)展還要求作為駕駛輔助系統(tǒng)子系統(tǒng)的倒車?yán)走_(dá)具有通信

15、功能,能夠把數(shù)據(jù)發(fā)送到汽車總線上。如最為先進(jìn)的倒車?yán)走_(dá)系統(tǒng)為智能可視倒車?yán)走_(dá)系統(tǒng),它在車尾部裝上針孔攝像頭,倒車時可以在顯示屏上顯示車后的真實(shí)圖像。而倒車?yán)走_(dá)控制系統(tǒng)的核心部分就是超聲波測距儀的研制。因此,設(shè)計(jì)好的超聲波測距儀就顯得非常重要了。這就是我設(shè)計(jì)超聲波測距儀的意義。</p><p><b>  方案的論證</b></p><p>  1.1AVR單片機(jī)的選擇

16、</p><p>  1.1.1 AVR單片機(jī)用于超聲波測距儀的優(yōu)點(diǎn):</p><p>  1)高可靠性、作用強(qiáng)、低功耗和低價位。</p><p>  2)多種頻率的內(nèi)部RC振蕩器、上電自動復(fù)位、看門狗、啟動延時等作用,零外圍電路也可以工作。</p><p>  3)在相同的系統(tǒng)時鐘下AVR運(yùn)行速度最快。</p><p&g

17、t;  1.1.2 AVR單片機(jī)用于超聲波測距儀的缺點(diǎn):</p><p>  1)功能寄存器多,不適合初學(xué)者。</p><p>  2)供貨不穩(wěn)定,導(dǎo)致價格起伏波動較大,對于長期產(chǎn)品的成本核算不利。不過總的說來這幾年還是處于價格下降趨勢,畢竟是較新的芯片系列。</p><p>  3)型號較少,且價格在15以下的型號均沒有開放總線,對于低成本應(yīng)用比較困難。</

18、p><p>  1.2 C51單片機(jī)的選擇</p><p>  1.2.1 STC89C52單片機(jī)簡介工作原理:</p><p>  STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧

19、的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個16 位定時器/計(jì)數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu),在本系統(tǒng)中定時器T0用來測量超聲波的傳輸時間。</p><p>  1.2.2 C51單

20、片機(jī)用于超聲波測距儀的優(yōu)點(diǎn):</p><p>  1)集成度高,體積小,簡單易操作,可靠性好。</p><p>  2)性價比高,控制能力強(qiáng)。</p><p><b>  3)開發(fā)裝置多。</b></p><p>  4)低功耗,低電壓,便于生產(chǎn)便攜式產(chǎn)品。</p><p>  1.2.3 C51

21、單片機(jī)用于超聲波測距儀的缺點(diǎn):</p><p><b>  1)解密容易。</b></p><p>  2)不具備自編程能力, 使用不夠靈活。</p><p>  3 )改變延時間受到硬件設(shè)置的限制</p><p>  1.2.4 C51單片機(jī)的應(yīng)用與設(shè)計(jì)方案:</p><p>  C51單片機(jī)

22、廣泛應(yīng)用于:溫度控制系統(tǒng),電子密碼鎖,智能風(fēng)扇設(shè)計(jì),宿舍門禁管理系統(tǒng),自動電阻測量儀等。</p><p>  本系統(tǒng)主要是基于單片機(jī)的測距系統(tǒng),以STC89C52RC單片機(jī)為核心控制器件,分為超聲波發(fā)射電路和超聲波檢測接收電路、顯示三部分。</p><p>  超聲波測距電路的設(shè)計(jì)框圖如圖1-1所示:本方案采用單片機(jī)作為控制系統(tǒng),用單片機(jī)產(chǎn)生40kHz的超聲波,脈沖持續(xù)時間為0.2ms左右

23、,時隔59.8ms反復(fù)進(jìn)行。此脈沖信號作為計(jì)時的起始脈沖,由單片機(jī)輸出的端口的高頻脈沖經(jīng)過74LS04六反相器功率放大、升壓后與超聲波探頭產(chǎn)生共振,使超聲波探頭工作,則超聲波由超聲波發(fā)射頭發(fā)射出去。接收電路由超聲波接收器、CX20106A集成電路組成。使用CX20106A集成電路對接收探頭收到的信號進(jìn)行放大、濾波。當(dāng)CX20106A接收到反射40kHz的信號時,會在第7腳產(chǎn)生一個低電平下降脈沖,這個信號可以接到單片機(jī)的外部中斷引腳作為中

24、斷信號輸入,停止計(jì)數(shù)器T0計(jì)數(shù),并讀取T0計(jì)數(shù)值存儲。發(fā)射超聲波時,壓電傳感器中的壓電晶片受發(fā)射電脈沖激勵后產(chǎn)生共振,并帶動共振板振動,便產(chǎn)生超聲波。接收超聲波時,兩電極間未外加電,共振板接收到超聲波,將壓迫壓電晶片作振動將機(jī)械能轉(zhuǎn)換為電信號。</p><p>  圖1-1 超聲波測距電路的設(shè)計(jì)框圖</p><p>  1.3選題的原因及結(jié)果</p><p>  

25、1)性價比高,控制能力強(qiáng),開發(fā)裝置多。</p><p>  2)低功耗,低電壓,便于生產(chǎn)便攜式產(chǎn)品。</p><p>  3)有眾多芯片制造廠商加盟,可廣泛選擇。</p><p>  4)利用STC89C52能簡單快速解決和實(shí)現(xiàn)我沒想要的各種功能。</p><p>  對于C51系列單片機(jī)和AVR單片機(jī)哪個更適合超聲波測距儀的控制芯片。就AV

26、R單片機(jī)而言:首先在價格方面比較昂貴,在優(yōu)化與使用性能上較低,如它的32個通用寄存器中前16個寄存器都不能直接與立即數(shù)打交道。因此我決定使用C51系列單片機(jī):STC89C52單片機(jī)作為我們本次智能小車的控制芯片。</p><p>  第二章 系統(tǒng)硬件電路設(shè)計(jì)</p><p>  2.1系統(tǒng)硬件的總體設(shè)計(jì)</p><p>  2.1.1系統(tǒng)硬件總體框圖</p&g

27、t;<p>  本系統(tǒng)的硬件電路主要分為單片機(jī)系統(tǒng)、顯示電路、超聲波發(fā)射電路、超聲波檢測接收電路四部分。</p><p>  圖2-1整體設(shè)計(jì)方框圖</p><p>  2.2單片機(jī)系統(tǒng)電路</p><p>  圖2-2 STC89C52單片機(jī)</p><p>  2.2.1單片機(jī)STC89C52</p><

28、p>  單片機(jī)最小系統(tǒng)電路是整個硬件電路中非常重要的一部分。單片機(jī)系統(tǒng)主要起控制電路中的各部分能夠按照設(shè)計(jì)要求正常工作的作用,在本電路中單片機(jī)采用STC89C52,采用了12MHz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,減小測量誤差。單片機(jī)STC89C52系統(tǒng)電路如圖2-2所示:</p><p>  STC89C52的主要性能如下:</p><p>  1. 增強(qiáng)型8051單片機(jī),6

29、時鐘/機(jī)器周期和12 時鐘/機(jī)器周期可以任意 選擇,指令代碼完全兼容傳統(tǒng)8051.[2] </p><p>  2. 工作電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V 單片機(jī))</p><p>  3.工作頻率范圍:0~40MHz,相當(dāng)于普通8051 的0~80MHz,實(shí)際工作 頻率可達(dá)48MHz</p><p>  4. 用戶應(yīng)用程序空間為8K

30、字節(jié)</p><p>  5. 片上集成512 字節(jié)RAM</p><p>  6. 通用I/O 口(32 個),復(fù)位后為:P0/P1/P2/P3 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴(kuò)展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻。</p><p>  7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無 需專用仿

31、真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片</p><p>  8. 具有EEPROM 功能</p><p>  9. 共3 個16 位定時器/計(jì)數(shù)器。即定時器T0、T1、T2</p><p>  10.外部中斷4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒</

32、p><p>  11. 通用異步串行口(UART),還可用定時器軟件實(shí)現(xiàn)多個UART</p><p>  12. 工作溫度范圍:-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)</p><p><b>  2.2.2時鐘電路</b></p><p>  常用的時鐘電路設(shè)計(jì)有兩種方式,一種是內(nèi)部時鐘方式,另一種為外部時鐘方式,

33、本系統(tǒng)采用的是內(nèi)部時鐘方式。51單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2.。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容。這里晶振的振蕩頻率為12MHz,電路中的2個電容選為30pF。</p><p><b>  2.2.3復(fù)位電路</b></p><p>  本系統(tǒng)設(shè)計(jì)是的上電自動復(fù)位電路,上

34、電自動復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,當(dāng)電源接通時只要Vcc 的上升時間不超過1ms,就可以實(shí)現(xiàn)自動上電復(fù)位。</p><p><b>  2.3顯示電路 </b></p><p>  在本系統(tǒng)的顯示電路的設(shè)計(jì)中主要采用的是4位共陰LED數(shù)碼管,根據(jù)LED數(shù)碼管內(nèi)部發(fā)光二極管的連接方式,數(shù)碼管結(jié)構(gòu)可以分為共陽極型和共陰極型兩種,共陰極型的內(nèi)部發(fā)光二

35、極管是由陰極連在一起接高電平。由于P2口輸出電壓很低,無法驅(qū)動數(shù)碼管點(diǎn)亮,在此用74ls138驅(qū)動;顯示電路如圖2-3所示:</p><p><b>  圖2-3顯示電路</b></p><p>  2.4超聲波發(fā)射電路</p><p>  超聲波發(fā)射電路主要由六反相器74LS04組成的推挽電路和超聲波發(fā)射傳感器構(gòu)成。超聲波發(fā)射電路如圖3.4所

36、示。單片機(jī)P1.0端口向外輸出超聲波脈沖信號,該信號一路經(jīng)一級反相器后送到超聲波換能器的一個電極,另一路經(jīng)兩極反相器后送到超聲波換能器的另一個電極。用這種推挽形式將方波信號加到超聲波換能器兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采用兩個反相器并聯(lián),用以提高驅(qū)動能力。其中的上拉電阻R1、R2一方面可以提高反相器74LS04輸出高電平的驅(qū)動能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩的時間。</p><p&

37、gt;  圖2-4 超聲波發(fā)射電路</p><p><b>  2.4.1反相器</b></p><p>  在本系統(tǒng)的超聲波發(fā)射電路中采用的反相器是六反相器74LS04芯片,其引腳結(jié)構(gòu)如圖:</p><p>  圖2-5 芯片74LS04引腳結(jié)構(gòu)</p><p>  由其引腳結(jié)構(gòu)可知, 7腳接地,14腳接電源,剩下12

38、個管腳可分為六個反相器,其中A為輸入端,Y為輸出端,例如:1A輸入,1Y輸出。</p><p>  2.4.2超聲波傳感器</p><p>  超聲波傳感器是利用晶體的壓電效應(yīng)和電致伸縮效應(yīng),將機(jī)械能與電能相互轉(zhuǎn)換,并利用波的特性,實(shí)現(xiàn)對各種參量的測量。</p><p>  人們能聽到聲音是由于物體振動產(chǎn)生的,它的頻率通常在20Hz-20kHz范圍內(nèi),超過20kHz

39、稱為超聲波,低于20Hz的稱為次聲波。常用的超聲波頻率為幾十kHz-幾十MHz。</p><p>  超聲波是一種在彈性介質(zhì)中的機(jī)械振蕩,它的波形有縱波、橫波、表面波三種。質(zhì)點(diǎn)的振動與波的傳播方向一致的波稱為縱波;質(zhì)點(diǎn)的振動與波的傳播方向垂直的波稱為橫波;質(zhì)點(diǎn)的振動介于縱波與之間,沿著表面?zhèn)鞑ィ穹S著深度的增加而迅速衰減的波稱為表面波。橫波、表面波只能在固體中傳播,縱波可在固體、液體及氣體中傳播。</p&

40、gt;<p>  2.5超聲波檢測接收電路</p><p>  超聲波檢測接收電路主要是由紅外線檢波接收的專用芯片CX20106A以及超聲波接收傳感器R構(gòu)成的,其電路圖如圖3.12所示。考慮到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,而且CX20106A的載波頻率可以通過其5腳與電源所接的電阻大小調(diào)整到40kHz,所以可以利用它制作超聲波檢測接收電路。用CX20106A接

41、收超聲波(無信號時輸出高電平),具有很高的靈敏度和較強(qiáng)的抗干擾能力。以集成片CX20106A的7腳做為指今輸出端,利用單片機(jī)外中斷0口監(jiān)測超聲波接收電路輸出的返回信號;CX20106A的5腳與電源之間所接電阻R7的大小決定著它本身的帶通濾波器的中心頻率 的大小,在本系統(tǒng)中選擇R7的阻值為200k ,此時的中心頻率 =40kHz;超聲波接收傳感器R接在CX20106A的1腳與地所接電容C5的兩端,根據(jù)測量范圍要求不同,可適當(dāng)更改接于超聲波

42、接收傳感器R電極兩端的電容C5的大小,以改變接收電路的接收靈敏度和抗干擾能力。</p><p>  圖2-6 超聲波接收電路</p><p>  紅外線檢波的專用芯片CX20106A是8腳單列直插式塑封結(jié)構(gòu),其各引腳功能如表3.2所示,它的主要功能是對接收到的超聲波信號進(jìn)行放大、濾波。它主要是由前置放大器、限幅放大器、帶通濾波器(BPF)、峰值檢波器和波形整形器等組成。其主要特點(diǎn)如下:&l

43、t;/p><p> ?。?)低電壓供電(Vcc=5V),低功耗(Vcc=5V時,典型功耗為9mV)。</p><p>  (2)帶通濾波器在集成電路內(nèi)部,濾波特性由5腳和電源之間外接電阻的阻值來決定,可不必進(jìn)行調(diào)整,帶通濾波器的頻率范圍為30~60kHz,由于沒有使用電感,可免受磁場的影響。</p><p>  (3)集電極開路輸出,能直接與TTL或CMOS電路相連&l

44、t;/p><p>  使用CX 20106A集成電路對接收探頭受到的信號進(jìn)行放大、濾波。其總放大增益80db。以下是CX20106A的引腳注釋。 </p><p>  1腳:超聲信號輸入端,該腳的輸入阻抗約為40kΩ。</p><p>  2腳:該腳與地之間連接RC串聯(lián)網(wǎng)絡(luò),它們是負(fù)反饋串聯(lián)網(wǎng)絡(luò)的一個組成部分,改變它們的數(shù)值能改變前置放大器的增益和頻率特性。增大電阻R

45、1或減小C1,將使負(fù)反饋量增大,放大倍數(shù)下降,反之則放大倍數(shù)增大。但C1的改變會影響到頻率特性,一般在實(shí)際使用中不必改動,推薦選用參數(shù)為R1=4.7Ω,C1=3.3μF。</p><p>  3腳:該腳與地之間連接檢波電容,電容量大為平均值檢波,瞬間相應(yīng)靈敏度低;若容量小,則為峰值檢波,瞬間相應(yīng)靈敏度高,但檢波輸出的脈沖寬度變動大,易造成誤動作,推薦參數(shù)為3.3μf。 </p><p>&

46、lt;b>  4腳:接地端。 </b></p><p>  5腳:該腳與電源間接入一個電阻,用以設(shè)置帶通濾波器的中心頻率f0,阻值越大,中心頻率越低。例如,取R=200kΩ時,f0≈42kHz,若取R=220kΩ,則中心頻率f0≈38kHz。 </p><p>  6腳: 該腳與地之間接一個積分電容,標(biāo)準(zhǔn)值為330pF,如果該電容取得太大,會使探測距離變短。 </

47、p><p>  7腳:遙控命令輸出端,它是集電極開路輸出方式,因此該引腳必須接上一個上拉電阻到電源端,推薦阻值為22kΩ,沒有接受信號是該端輸出為高電平,有信號時則產(chǎn)生下降。 </p><p>  8腳:電源正極,4.5~5V。</p><p>  第三章 系統(tǒng)軟件設(shè)計(jì)</p><p>  3.1主程序的設(shè)計(jì):</p><p&

48、gt;  系統(tǒng)初始化后就啟動定時器T1從0開始計(jì)數(shù),此時主程序進(jìn)入等待,當(dāng)?shù)竭_(dá)60 ms時T1溢出進(jìn)入T1中斷服務(wù)子程序;在T1中斷服務(wù)子程序中將啟動一次新的超聲波發(fā)射,此時將在P1.0引腳上開始產(chǎn)生超聲波脈沖信號,同時開啟計(jì)數(shù)器T0計(jì)數(shù),為了避免直射波的繞射,需要延遲1 ms后再開INT0中斷允許;INT0中斷允許打開后,若P3.2(INT0)引腳出現(xiàn)低電平則代表收到回波信號,將提出中斷請求進(jìn)入INT0中斷服務(wù)子程序,在INT0中斷服

49、務(wù)子程序中將停止計(jì)數(shù)器T0計(jì)數(shù),讀取計(jì)數(shù)器T0計(jì)數(shù)值到相應(yīng)的存儲區(qū),同時設(shè)置接收成功標(biāo)志;主程序一旦檢測到接收成功標(biāo)志,單片機(jī)再調(diào)用距離計(jì)算子程序進(jìn)行計(jì)算,計(jì)算出傳感器到目標(biāo)物體之間的距離;此后主程序調(diào)用顯示子程序進(jìn)行顯示;若超過設(shè)定的最小報(bào)警距離還將報(bào)警;如果沒有檢測到接收成功標(biāo)志,則繼續(xù)等待回波;當(dāng)一次發(fā)射、接收、顯示的過程完成后,系統(tǒng)將再次啟動T1以溢出,進(jìn)入下一次測距。主程序的流程圖如圖3-1所示:</p><

50、;p>  圖3-1 主程序框圖</p><p><b>  3.2硬件調(diào)試:</b></p><p>  在整個系統(tǒng)的設(shè)計(jì)當(dāng)中,首先就是要進(jìn)行硬件設(shè)計(jì),硬件設(shè)計(jì)以及焊接完成后,就是硬件調(diào)試部分。總體來說,超聲波測距系統(tǒng)的制作和調(diào)試都較為簡單,其中超聲波發(fā)射和接收選用的是Ф16的超聲波傳感器T/R40-16(T發(fā)射/R接收),中心頻率為40kHz,在焊接

51、時應(yīng)保持兩傳感器的中心軸線平行并相距4~8cm,其余元器件無特別要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。下面就來說明一下本系統(tǒng)的硬件調(diào)試部分。</p><p>  在焊接顯示部分時,跳線太多結(jié)果把數(shù)碼管兩個引腳焊反了,在調(diào)程序時數(shù)碼管有兩段led顯示反了。后來重新焊接后解決問題。</p><p>  用萬用表檢測硬件電路是否有斷接、短接等情況,同時重點(diǎn)檢查一下高、低

52、電平的連接有沒有錯誤。在此檢查中由于焊接的過于密集發(fā)現(xiàn)在74ls04處出現(xiàn)短接,后將短接處的錫吸掉后重新焊接后解決,改正后繼續(xù)檢測,沒有發(fā)現(xiàn)其它的錯誤了,硬件調(diào)試結(jié)束。</p><p><b>  3.3軟件調(diào)試:</b></p><p>  在編程時提示有錯誤產(chǎn)生,提示說不可以調(diào)用延時程序,檢查發(fā)現(xiàn)是在主程序中的顯示部分用到的延時程序放在了主函數(shù)的后面,而前面又沒有

53、定義,導(dǎo)致無法調(diào)用,后來將程序調(diào)到前面后解決。</p><p>  軟件程序是在KEIL單片機(jī)仿真系統(tǒng)中完成的,軟件程序的主程序以及各部分子程序都編完后,進(jìn)行軟件編譯,編譯不通過,提示說在發(fā)生脈沖程序中的_nop_()沒有定義,原來是頭文件中沒有定義,加上#include <intrins.h>頭文件后,繼續(xù)編譯。之后沒有太大的問題。</p><p>  所以本程序在設(shè)計(jì)中并沒

54、有太大的邏輯上的錯誤,只是有一些語法上的錯誤,比如重復(fù)定義等,經(jīng)過調(diào)試﹑修改后,沒有了語法上的錯誤,軟件調(diào)試結(jié)束。</p><p><b>  3.4程序清單:</b></p><p>  #include<reg52.h></p><p>  #include<intrins.h> //頭文件</p>

55、<p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  sbit out=P1^0;//發(fā)射超聲波端口</p><p>  sbit intt=P3^2; //接收超聲波端口</p><p><b&

56、gt;  uint sec;</b></p><p>  uchar code leddata[10]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共陰數(shù)碼管</p><p>  uchar bwei,swei,gwei,qwei;</p><p>  uint COUNT,TIME;

57、 //接收變量</p><p>  uchar flag; //接收標(biāo)志</p><p>  void start(); //初始化函數(shù)</p><p>  void delay1()//延時子函數(shù),2個空指令</p><p><b>  {</b></p><p><b&

58、gt;  _nop_();</b></p><p><b>  _nop_();</b></p><p><b>  }</b></p><p>  void del1() //延時1</p><p><b>  {</b></p>

59、<p>  unsigned char i;</p><p>  for(i=0;i<255;i++);</p><p><b>  }</b></p><p>  void Display()</p><p><b>  {</b></p><p>  qw

60、ei=sec/1000;</p><p>  bwei = sec %1000/ 100;</p><p>  swei = sec%100 / 10;</p><p>  gwei = sec% 10;</p><p>  P0 = leddata[gwei];</p><p><b>  P2=0xc0;

61、</b></p><p><b>  del1();</b></p><p>  P0 = leddata[swei] | 0x80; //0x01 小數(shù)點(diǎn)</p><p><b>  P2=0x40;</b></p><p><b>  del1();<

62、/b></p><p>  P0 = leddata[bwei];</p><p><b>  P2=0x80;</b></p><p><b>  del1();</b></p><p>  P0 = leddata[qwei];</p><p><b>

63、  P2=0x00;</b></p><p><b>  del1();</b></p><p><b>  }</b></p><p>  void Display2()</p><p><b>  {</b></p><p><b

64、>  P0=0x40;</b></p><p><b>  P2=0xc0;</b></p><p><b>  del1();</b></p><p><b>  P0=0x40;</b></p><p><b>  P2=0x40;</b&

65、gt;</p><p><b>  del1();</b></p><p><b>  P0=0x40;</b></p><p><b>  P2=0x80;</b></p><p><b>  del1();</b></p><p&g

66、t;<b>  P0=0x40;</b></p><p><b>  P2=0x00;</b></p><p><b>  del1();</b></p><p><b>  }</b></p><p>  void delay(uchar i)<

67、/p><p><b>  { </b></p><p>  while(i!=0)</p><p><b>  { </b></p><p><b>  i--;</b></p><p><b>  } </b></p&

68、gt;<p><b>  }</b></p><p>  void tim(void) interrupt 3</p><p>  { uint i;</p><p><b>  ET1=0;</b></p><p><b>  TR0=0;</b></

69、p><p><b>  TH0=0;</b></p><p><b>  TL0=0;</b></p><p><b>  TR0=1;</b></p><p><b>  EX0=1;</b></p><p>  for(i=0;i&

70、lt;4;i++) //超聲波發(fā)射40KHZ</p><p><b>  { </b></p><p><b>  out=~out;</b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); <

71、/b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p>

72、<p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  } </b></p><p>  delay(50); </p><p>  IT0=1;//下降邊延 </p&g

73、t;<p>  ET1=1; </p><p><b>  TH1=0Xb0;</b></p><p>  TL1=0X3c; </p><p><b>  EX0=1; </b></p><p><b>  }</b></p><

74、;p>  /*=======接收到超聲波觸發(fā)中斷0============*/ </p><p>  void r_int() interrupt 0//接收超聲波</p><p><b>  { </b></p><p><b>  _nop_();</b></p><p&g

75、t;  if(intt==0) //判接收到</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p><b>  EX0=0;</b></p><p>  TIME=TH0*256+TL0;//數(shù)據(jù)轉(zhuǎn)換</p>

76、;<p>  COUNT=TIME*0.17;</p><p>  flag=1; //置位標(biāo)志位</p><p>  while(!intt); //判是否已經(jīng)完成轉(zhuǎn)換</p><p><b>  } </b></p><p><b>  EX0=1;</b&

77、gt;</p><p><b>  }</b></p><p>  void start() //初始化</p><p><b>  {</b></p><p><b>  ET1=1;</b></p><p><b>  TR1=1;

78、</b></p><p>  TMOD=0X11;</p><p><b>  TH0=0;</b></p><p><b>  TL0=0;</b></p><p>  TH1=0Xb0;//50ms</p><p><b>  TL1=0X3c;&

79、lt;/b></p><p><b>  IT0=1; </b></p><p><b>  EX0=1;</b></p><p><b>  EA=1;</b></p><p><b>  }</b></p><p> 

80、 void main(void)</p><p><b>  { </b></p><p>  start(); //程序初始化</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  i

81、f(flag==1) //判是否接收到</p><p><b>  { </b></p><p><b>  flag=0;</b></p><p>  sec=COUNT; //將接收并轉(zhuǎn)換后的數(shù)據(jù)賦給顯示變量</p><p><b>  }</b></p&g

82、t;<p>  if(sec<=100) Display2();</p><p>  else if(sec>=3000)Display2();</p><p>  else Display() ;</p><p><b>  }</b></p><p><b>  }</b&

83、gt;</p><p><b>  總結(jié)</b></p><p>  通過這次的單片機(jī)設(shè)計(jì),我獲益良多。在做設(shè)計(jì)的這段時間里,我深刻的體會到自動化專業(yè)是一門工程特點(diǎn)和實(shí)踐性很強(qiáng)的學(xué)科,加強(qiáng)工程訓(xùn)練,特別是技能的培養(yǎng),對于工程人員的素質(zhì)和能力具有十分重要的作用。使我在設(shè)計(jì)電路的過程中提高了自身運(yùn)用知識的能力,也為將來的工作打下了堅(jiān)實(shí)的基礎(chǔ),同時也讓我對電子技術(shù)產(chǎn)生了更加

84、濃厚的興趣,更加深了對本專業(yè)知識的熱愛與追求。</p><p>  在做單片機(jī)課程設(shè)計(jì)的過程中,我將這幾年里所學(xué)的有關(guān)本次設(shè)計(jì)的基礎(chǔ)知識和專業(yè)知識又復(fù)習(xí)了一遍,特別是單片機(jī)方面的知識,對單片機(jī)的原理以及接口方面的知識做了進(jìn)一步的理解,以便能夠更加順利地完成此次畢業(yè)設(shè)計(jì)。同時在焊接過程中,一定要先弄明白且讀懂原理圖。搞明白整個電路圖的原理,還要細(xì)心和仔細(xì),因?yàn)槊恳粋€焊點(diǎn)你都要牢固以保持它的耐用性,更不能出現(xiàn)虛焊和漏

85、焊的事情發(fā)生。同時你必須對芯片的特性都非常清楚,這樣你才能讓你的實(shí)際電路達(dá)到你所要求的性能,雙列直插的芯片引腳彼此都挨得很近。而每一個引腳都有不同的功用,有的是輸出端,有的是輸入端,所以在焊接時這些點(diǎn)都是應(yīng)該特別注意的地方。否則輕者電路的功能實(shí)現(xiàn)不了,重者會造成芯片永久的損壞。所以在以后的學(xué)習(xí)和工作中,當(dāng)我要使用某個器件時一定要先查資料,將它的工作原理搞清楚,然后再進(jìn)行實(shí)際的操作。這樣往往會事半功倍。還有我體會到的一點(diǎn)是電路仿真和實(shí)際有

86、一定的差別,在仿真中我們只需要明白電路的工作原理即可,在實(shí)際組裝電路時,我們要根據(jù)實(shí)際器件的性能和仿真圖的原理來進(jìn)行調(diào)試,二者都很重要。</p><p>  根據(jù)以上設(shè)計(jì)的完成功能來看,已基本上完成了本次設(shè)計(jì)的題目要求,但由于個人能力有限,設(shè)計(jì)中也難免會有錯誤和疏漏,所以還肯請各位老師以及同學(xué)多多批評指正。</p><p><b>  致謝</b></p>

87、<p>  首先感謝我的專業(yè)老師梁召峰,在梁老師的耐心指導(dǎo)、幫助下,我才能順利完成畢業(yè)設(shè)計(jì)。從電路的設(shè)計(jì)到調(diào)試整個過程中,我都從梁老師那里學(xué)會了很多專業(yè)方面的知識。其次感謝郭志林師兄,在我的畢業(yè)設(shè)計(jì)中給單片機(jī)燒錄程序和焊接電路的過程中給予了我?guī)椭?。最后感謝在這整個設(shè)計(jì)過程中幫助過我的所有朋友們。</p><p><b>  參考文獻(xiàn)</b></p><p&g

88、t;  [1]高光天.傳感器與信號調(diào)理器件應(yīng)用技術(shù)[M].北京:科學(xué)出版社,2004</p><p>  [2]趙負(fù)圖.傳感器集成電路手冊[M].北京:化學(xué)工業(yè)出版社,2003</p><p>  [3] 林渭勛. 現(xiàn)代電力電子電路[M].杭州:浙江大學(xué)出版社,2005.</p><p>  [4] 陳國成.新型電力電子變換技術(shù)[M].北京:中國電力出版社,2004

89、.</p><p>  [5]陳平、羅晶.現(xiàn)代監(jiān)測技術(shù)[M].北京:電子工業(yè)出版社,2003</p><p>  [6]夏繼強(qiáng). 數(shù)據(jù)采集系統(tǒng)實(shí)用設(shè)計(jì)[J]. 自動化學(xué)報(bào), 2001,19(4):318~410.</p><p>  [7]徐惠民、安德寧. 單片微型計(jì)算機(jī)原理接口與應(yīng)用[M].第1版. 北京:北京郵電大學(xué)出版社,20003.2電機(jī)驅(qū)動程序</p

90、><p>  #include <REGX52.H> </p><p>  sbit LeftLed=P2^0; //定義前方左側(cè)指示燈端口</p><p>  sbit RightLed=P0^7; //定義前方右側(cè)指示燈端口</p><p>  sbit FontLled=P1^0;&

91、lt;/p><p>  sbit LeftIR=P3^5; //定義前方左側(cè)紅外探頭端口</p><p>  sbit RightIR=P3^6; //定義前方右側(cè)紅外探頭端口</p><p>  sbit FontIR=P3^7; //定義前方正前方紅外探頭端口</p><

92、;p>  sbit M1A=P0^0; //定義左側(cè)電機(jī)驅(qū)動A端</p><p>  sbit M1B=P0^1; //定義左側(cè)電機(jī)驅(qū)動B端</p><p>  sbit M2A=P0^2; //定義右側(cè)電機(jī)驅(qū)動A端</p><p>  sbit M2B=P0^

93、3; //定義右側(cè)電機(jī)驅(qū)動B端</p><p>  sbit B1=P0^4; //定義語音識識別傳感器端口</p><p>  sbit SB1=P0^6; //定義蜂鳴器端口</p><p>  void tingzhi()</p><p>&l

94、t;b>  {</b></p><p>  M1A=0; //將M1電機(jī)A端初始化為0</p><p>  M1B=0; //將M1電機(jī)B端初始化為0</p><p>  M2A=0; //將M2電機(jī)A端初始化為0</

95、p><p><b>  M2B=0;</b></p><p><b>  }</b></p><p>  void qianjin()</p><p><b>  {</b></p><p>  M1A=1;

96、 </p><p>  M1B=0; </p><p>  M2A=1; </p><p><b>  M2B=0;</b></p><p><b>  }&

97、lt;/b></p><p>  void houtui()</p><p><b>  {</b></p><p>  M1A=0; </p><p>  M1B=1; <

98、/p><p>  M2A=0; </p><p><b>  M2B=1;</b></p><p><b>  }</b></p><p>  void zuozhuan()</p><p><b> 

99、 {</b></p><p>  M1A=0; </p><p>  M1B=1; </p><p>  M2A=1; </p><

100、p><b>  M2B=0;</b></p><p><b>  }</b></p><p>  void youzhuan()</p><p><b>  {</b></p><p>  M1A=1;

101、</p><p>  M1B=0; </p><p>  M2A=0; </p><p><b>  M2B=1;</b></p><p><b>  }</b>&

102、lt;/p><p>  void delay_nus(unsigned int i) //延時:i>=12 ,i的最小延時單12 us</p><p><b>  { </b></p><p><b>  i=i/10;</b></p><p>  while(--i);</p&

103、gt;<p><b>  } </b></p><p>  void delay_nms(unsigned int n) //延時n ms</p><p><b>  { </b></p><p><b>  n=n+1;</b></p><p>  

104、while(--n) </p><p>  delay_nus(900); //延時 1ms,同時進(jìn)行補(bǔ)償</p><p><b>  } </b></p><p>  void ControlCar(unsigned char ConType) //定義電機(jī)控制子程序</p>

105、<p><b>  {</b></p><p>  tingzhi();</p><p>  switch(ConType) //判斷用戶設(shè)定電機(jī)形式</p><p><b>  {</b></p><p>  case 1: //前進(jìn)

106、 //判斷用戶是否選擇形式1</p><p><b>  { </b></p><p>  qianjin();</p><p><b>  break;</b></p><p><b>  }</b></p><

107、;p>  case 2: //后退 //判斷用戶是否選擇形式2</p><p><b>  { </b></p><p>  houtui(); //M2電機(jī)反轉(zhuǎn)</p><p><b>  break;</b&

108、gt;</p><p><b>  }</b></p><p>  case 3: //左轉(zhuǎn) //判斷用戶是否選擇形式3</p><p><b>  { </b></p><p>  zuozhuan();

109、 //M2電機(jī)正轉(zhuǎn)</p><p><b>  break;</b></p><p><b>  }</b></p><p>  case 4: //右轉(zhuǎn) //判斷用戶是否選擇形式4</p><p><b>  { <

110、/b></p><p>  youzhuan(); //M1電機(jī)正轉(zhuǎn)</p><p><b>  //M2電機(jī)反轉(zhuǎn)</b></p><p><b>  break;</b></p><p><b>  }</b>

111、;</p><p>  case 8: //停止 //判斷用戶是否選擇形式8</p><p><b>  {</b></p><p>  tingzhi();</p><p>  break; //退出當(dāng)前選擇

112、</p><p><b>  }</b></p><p><b>  } }</b></p><p>  3.4避障模塊、避障框圖</p><p><b>  圖3-3 避障框圖</b></p><p><b>  紅外程序:<

113、/b></p><p>  void IR_IN() interrupt 2 using 0 //定義INT2外部中斷函數(shù)</p><p><b>  {</b></p><p>  unsigned char j,k,N=0; //定義臨時接收

114、變量</p><p>  EX1 = 0; //關(guān)閉外部中斷,防止再有信號到達(dá) </p><p>  delayms(15); //延時時間,進(jìn)行紅外消抖</p><p>  if (IRIN==1)

115、 //判斷紅外信號是否消失</p><p><b>  { </b></p><p>  EX1 =1; //外部中斷開</p><p>  return;

116、 //返回</p><p><b>  } </b></p><p>  while (!IRIN) //等IR變?yōu)楦唠娖?,跳過9ms的前導(dǎo)低電平信號。</p><p><b>  {</b></p><p>  delayms(1);

117、 //延時等待</p><p><b>  }</b></p><p>  for (j=0;j<4;j++) //采集紅外遙控器數(shù)據(jù)</p><p><b>  { </b></p>

118、<p>  for (k=0;k<8;k++) //分次采集8位數(shù)據(jù)</p><p><b>  {</b></p><p>  while (IRIN) //等 IR 變?yōu)榈碗娖剑^4.5ms的前導(dǎo)高電平信號。</p&

119、gt;<p><b>  {</b></p><p>  delayms(1); //延時等待</p><p><b>  }</b></p><p>  while (!IRIN) //等

120、 IR 變?yōu)楦唠娖?lt;/p><p><b>  {</b></p><p>  delayms(1); //延時等待</p><p><b>  }</b></p><p>  while (IRIN)

121、 //計(jì)算IR高電平時長</p><p><b>  {</b></p><p>  delayms(1); //延時等待</p><p>  N++; //計(jì)數(shù)器加加</p>

122、<p>  if (N>=30) //判斷計(jì)數(shù)器累加值</p><p><b>  { </b></p><p>  EX1=1; //打開外部中斷功能</p><p>  return;

123、 //返回</p><p>  } </p><p><b>  }</b></p><p>  IRCOM[j]=IRCOM[j] >> 1; //進(jìn)行數(shù)據(jù)位移操作并自動補(bǔ)零</p>

124、;<p>  if (N>=8) //判斷數(shù)據(jù)長度 </p><p><b>  {</b></p><p>  IRCOM[j] = IRCOM[j] | 0x80; //數(shù)據(jù)最高位補(bǔ)1</p><p><b&g

125、t;  } </b></p><p>  N=0; //清零位數(shù)計(jì)錄器</p><p><b>  }</b></p><p><b>  }</b></p><p>  if (IRCOM[2]!=~IRCO

126、M[3]) //判斷地址碼是否相同</p><p><b>  { </b></p><p>  EX1=1; //打開外部中斷</p><p>  return;

127、 //返回</p><p><b>  }</b></p><p>  for(j=0;j<10;j++) //循環(huán)進(jìn)行鍵碼解析</p><p><b>  {</b></p><p> 

溫馨提示

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

評論

0/150

提交評論