版權(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> 摘要6</b></p>
5、<p> Abstract錯誤!未定義書簽。</p><p> 第一章方案的論證7</p><p> 1.1AVR單片機(jī)的選擇7</p><p> 1.1.1 AVR單片機(jī)用于智能小車的優(yōu)點(diǎn):7</p><p> 1.1.2 AVR單片機(jī)用于智能小車的缺點(diǎn):7</p><p> 1.2
6、 C51單片機(jī)的選擇7</p><p> 1.2.1 STC89C52單片機(jī)簡介工作原理:7</p><p> 1.2.2 C51單片機(jī)用于智能小車的優(yōu)點(diǎn):7</p><p> 1.2.3 C51單片機(jī)用于智能小車的缺點(diǎn):8</p><p> 1.2.4 C51單片機(jī)用領(lǐng)域:8</p><p>
7、 1.3選題的原因及結(jié)果9</p><p> 第二章 系統(tǒng)硬件設(shè)計(jì)10</p><p> 2.1系統(tǒng)硬件的總體設(shè)計(jì)10</p><p> 2.1.1系統(tǒng)硬件總體框圖10</p><p> 2.1.2各個組成模塊10</p><p> 2.1.3總體電路原理圖錯誤!未定義書簽。</p>
8、<p> 2.2 遙控電路設(shè)計(jì)錯誤!未定義書簽。</p><p> 2.2.1驅(qū)動電路錯誤!未定義書簽。</p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)15</p><p> 3.1主程序框圖:15</p><p> 3.2電機(jī)驅(qū)動程序16</p><p> 3.4避障模塊、避障框圖27&l
9、t;/p><p> 第四章系統(tǒng)調(diào)試31</p><p> 4.1 測試工具:31</p><p> 4.2 PCB的設(shè)計(jì)制作與安裝31</p><p> 4.3 調(diào)試過程31</p><p><b> 結(jié)束語32</b></p><p>
10、<b> 致謝32</b></p><p><b> 參考文獻(xiàn)33</b></p><p><b> 摘要</b></p><p> 超聲波具有指向性強(qiáng),能量消耗緩慢,傳播距離較遠(yuǎn)等優(yōu)點(diǎn),所以,在利用傳感器技術(shù)和自動控制技術(shù)相結(jié)合的測距方案中,超聲波測距是目前應(yīng)用最普遍的一種,它廣泛應(yīng)用于
11、防盜、倒車?yán)走_(dá)、水位測量、建筑施工工地以及一些工業(yè)現(xiàn)場。 </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á)到性能要求。<
12、;/p><p> 該測距儀主要由超聲波發(fā)射器電路、超聲波接收器電路、單片機(jī)控制電路、環(huán)境溫度檢測電路及顯示電路構(gòu)成。</p><p> 關(guān)鍵詞:超聲波測距,51單片機(jī),傳感器,LED顯示屏等</p><p><b> 前言</b></p><p> 隨著我國汽車產(chǎn)業(yè)的高速發(fā)展,我國已開始進(jìn)入私家車時代,而隨之增加的是
13、交通事故的發(fā)生的頻率。為了提高汽車運(yùn)行的安全性,倒車?yán)走_(dá)預(yù)警系統(tǒng)的問世不僅受到了廣大顧客的青睞,也使電子產(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ù)的改良。最早的是倒車防撞儀,功能單一只能測試車后限定范
14、圍內(nèi)的障礙物,然后發(fā)出警報(bào)。慢慢的倒車?yán)走_(dá)發(fā)展到可以根據(jù)距離遠(yuǎn)近程度分段報(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)警提示距離,讓駕駛員全神貫注地注視場景。汽
15、車電子系統(tǒng)網(wǎng)絡(luò)化發(fā)展還要求作為駕駛輔助系統(tǒng)子系統(tǒng)的倒車?yán)走_(dá)具有通信功能,能夠把數(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>&l
16、t;/p><p> 1.1AVR單片機(jī)的選擇</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)在相同的系
17、統(tǒng)時鐘下AVR運(yùn)行速度最快。</p><p> 1.1.2 AVR單片機(jī)用于超聲波測距儀的缺點(diǎn):</p><p> 1)功能寄存器多,不適合初學(xué)者。</p><p> 2)供貨不穩(wěn)定,導(dǎo)致價格起伏波動較大,對于長期產(chǎn)品的成本核算不利。不過總的說來這幾年還是處于價格下降趨勢,畢竟是較新的芯片系列。</p><p> 3)型號較少,且價格
18、在15以下的型號均沒有開放總線,對于低成本應(yīng)用比較困難。</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)核,但做了很多
19、的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的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用來測量超聲波的傳輸時間。
20、</p><p> 1.2.2 C51單片機(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)品
21、。</p><p> 1.2.3 C51單片機(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è)
22、計(jì)方案:</p><p> C51單片機(jī)廣泛應(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ī)作為控制
23、系統(tǒng),用單片機(jī)產(chǎn)生40kHz的超聲波,脈沖持續(xù)時間為0.2ms左右,時隔59.8ms反復(fù)進(jìn)行。此脈沖信號作為計(jì)時的起始脈沖,由單片機(jī)輸出的端口的高頻脈沖經(jīng)過74LS04六反相器功率放大、升壓后與超聲波探頭產(chǎn)生共振,使超聲波探頭工作,則超聲波由超聲波發(fā)射頭發(fā)射出去。接收電路由超聲波接收器、CX20106A集成電路組成。使用CX20106A集成電路對接收探頭收到的信號進(jìn)行放大、濾波。當(dāng)CX20106A接收到反射40kHz的信號時,會在第7腳
24、產(chǎn)生一個低電平下降脈沖,這個信號可以接到單片機(jī)的外部中斷引腳作為中斷信號輸入,停止計(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
25、.3選題的原因及結(jié)果</p><p> 1)性價比高,控制能力強(qiáng),開發(fā)裝置多。</p><p> 2)低功耗,低電壓,便于生產(chǎn)便攜式產(chǎn)品。</p><p> 3)有眾多芯片制造廠商加盟,可廣泛選擇。</p><p> 4)利用STC89C52能簡單快速解決和實(shí)現(xiàn)我沒想要的各種功能。</p><p> 對于C5
26、1系列單片機(jī)和AVR單片機(jī)哪個更適合超聲波測距儀的控制芯片。就AVR單片機(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>
27、<p> 2.1.1系統(tǒng)硬件總體框圖</p><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>
28、 2.2.1單片機(jī)STC89C52</p><p> 單片機(jī)最小系統(tǒng)電路是整個硬件電路中非常重要的一部分。單片機(jī)系統(tǒng)主要起控制電路中的各部分能夠按照設(shè)計(jì)要求正常工作的作用,在本電路中單片機(jī)采用STC89C52,采用了12MHz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,減小測量誤差。單片機(jī)STC89C52系統(tǒng)電路如圖2-2所示:</p><p> STC89C52的主要性能如下:</p
29、><p> 1. 增強(qiáng)型8051單片機(jī),6 時鐘/機(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<
30、/p><p> 4. 用戶應(yīng)用程序空間為8K字節(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(在
31、系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無 需專用仿真器,可通過串口(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ā)電路,Pow
32、er Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒</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> 常用的
33、時鐘電路設(shè)計(jì)有兩種方式,一種是內(nèi)部時鐘方式,另一種為外部時鐘方式,本系統(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&
34、gt;<p> 本系統(tǒng)設(shè)計(jì)是的上電自動復(fù)位電路,上電自動復(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ā)光二極管的連接方
35、式,數(shù)碼管結(jié)構(gòu)可以分為共陽極型和共陰極型兩種,共陰極型的內(nèi)部發(fā)光二極管是由陰極連在一起接高電平。由于P2口輸出電壓很低,無法驅(qū)動數(shù)碼管點(diǎn)亮,在此用74ls138驅(qū)動;顯示電路如圖2-3所示:</p><p><b> 圖2-3顯示電路</b></p><p> 2.4超聲波發(fā)射電路</p><p> 超聲波發(fā)射電路主要由六反相器74LS0
36、4組成的推挽電路和超聲波發(fā)射傳感器構(gòu)成。超聲波發(fā)射電路如圖3.4所示。單片機(jī)P1.0端口向外輸出超聲波脈沖信號,該信號一路經(jīng)一級反相器后送到超聲波換能器的一個電極,另一路經(jīng)兩極反相器后送到超聲波換能器的另一個電極。用這種推挽形式將方波信號加到超聲波換能器兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采用兩個反相器并聯(lián),用以提高驅(qū)動能力。其中的上拉電阻R1、R2一方面可以提高反相器74LS04輸出高電平的驅(qū)動能力,另一方面可以增加超聲波換能器的阻
37、尼效果,縮短其自由振蕩的時間。</p><p> 圖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><
38、p> 由其引腳結(jié)構(gòu)可知, 7腳接地,14腳接電源,剩下12個管腳可分為六個反相器,其中A為輸入端,Y為輸出端,例如:1A輸入,1Y輸出。</p><p> 2.4.2超聲波傳感器</p><p> 超聲波傳感器是利用晶體的壓電效應(yīng)和電致伸縮效應(yīng),將機(jī)械能與電能相互轉(zhuǎn)換,并利用波的特性,實(shí)現(xiàn)對各種參量的測量。</p><p> 人們能聽到聲音是由于物體振
39、動產(chǎn)生的,它的頻率通常在20Hz-20kHz范圍內(nèi),超過20kHz稱為超聲波,低于20Hz的稱為次聲波。常用的超聲波頻率為幾十kHz-幾十MHz。</p><p> 超聲波是一種在彈性介質(zhì)中的機(jī)械振蕩,它的波形有縱波、橫波、表面波三種。質(zhì)點(diǎn)的振動與波的傳播方向一致的波稱為縱波;質(zhì)點(diǎn)的振動與波的傳播方向垂直的波稱為橫波;質(zhì)點(diǎn)的振動介于縱波與之間,沿著表面?zhèn)鞑?,振幅隨著深度的增加而迅速衰減的波稱為表面波。橫波、表面
40、波只能在固體中傳播,縱波可在固體、液體及氣體中傳播。</p><p> 2.5超聲波檢測接收電路</p><p> 超聲波檢測接收電路主要是由紅外線檢波接收的專用芯片CX20106A以及超聲波接收傳感器R構(gòu)成的,其電路圖如圖3.12所示。考慮到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,而且CX20106A的載波頻率可以通過其5腳與電源所接的電阻大小調(diào)整到40
41、kHz,所以可以利用它制作超聲波檢測接收電路。用CX20106A接收超聲波(無信號時輸出高電平),具有很高的靈敏度和較強(qiáng)的抗干擾能力。以集成片CX20106A的7腳做為指今輸出端,利用單片機(jī)外中斷0口監(jiān)測超聲波接收電路輸出的返回信號;CX20106A的5腳與電源之間所接電阻R7的大小決定著它本身的帶通濾波器的中心頻率 的大小,在本系統(tǒng)中選擇R7的阻值為200k ,此時的中心頻率 =40kHz;超聲波接收傳感器R接在CX20106A的1腳
42、與地所接電容C5的兩端,根據(jù)測量范圍要求不同,可適當(dāng)更改接于超聲波接收傳感器R電極兩端的電容C5的大小,以改變接收電路的接收靈敏度和抗干擾能力。</p><p> 圖2-6 超聲波接收電路</p><p> 紅外線檢波的專用芯片CX20106A是8腳單列直插式塑封結(jié)構(gòu),其各引腳功能如表3.2所示,它的主要功能是對接收到的超聲波信號進(jìn)行放大、濾波。它主要是由前置放大器、限幅放大器、帶通濾
43、波器(BPF)、峰值檢波器和波形整形器等組成。其主要特點(diǎn)如下:</p><p> ?。?)低電壓供電(Vcc=5V),低功耗(Vcc=5V時,典型功耗為9mV)。</p><p> ?。?)帶通濾波器在集成電路內(nèi)部,濾波特性由5腳和電源之間外接電阻的阻值來決定,可不必進(jìn)行調(diào)整,帶通濾波器的頻率范圍為30~60kHz,由于沒有使用電感,可免受磁場的影響。</p><p&g
44、t; ?。?)集電極開路輸出,能直接與TTL或CMOS電路相連</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ò)的一個組
45、成部分,改變它們的數(shù)值能改變前置放大器的增益和頻率特性。增大電阻R1或減小C1,將使負(fù)反饋量增大,放大倍數(shù)下降,反之則放大倍數(shù)增大。但C1的改變會影響到頻率特性,一般在實(shí)際使用中不必改動,推薦選用參數(shù)為R1=4.7Ω,C1=3.3μF。</p><p> 3腳:該腳與地之間連接檢波電容,電容量大為平均值檢波,瞬間相應(yīng)靈敏度低;若容量小,則為峰值檢波,瞬間相應(yīng)靈敏度高,但檢波輸出的脈沖寬度變動大,易造成誤動作,推
46、薦參數(shù)為3.3μf。 </p><p><b> 4腳:接地端。 </b></p><p> 5腳:該腳與電源間接入一個電阻,用以設(shè)置帶通濾波器的中心頻率f0,阻值越大,中心頻率越低。例如,取R=200kΩ時,f0≈42kHz,若取R=220kΩ,則中心頻率f0≈38kHz。 </p><p> 6腳: 該腳與地之間接一個積分電容,標(biāo)準(zhǔn)
47、值為330pF,如果該電容取得太大,會使探測距離變短。 </p><p> 7腳:遙控命令輸出端,它是集電極開路輸出方式,因此該引腳必須接上一個上拉電阻到電源端,推薦阻值為22kΩ,沒有接受信號是該端輸出為高電平,有信號時則產(chǎn)生下降。 </p><p> 8腳:電源正極,4.5~5V。</p><p> 第三章 系統(tǒng)軟件設(shè)計(jì)</p><p&
48、gt; 3.1主程序的設(shè)計(jì):</p><p> 系統(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)低電平則代表收到回
49、波信號,將提出中斷請求進(jìn)入INT0中斷服務(wù)子程序,在INT0中斷服務(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)入下一次
50、測距。主程序的流程圖如圖3-1所示:</p><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的超聲波傳感
51、器T/R40-16(T發(fā)射/R接收),中心頻率為40kHz,在焊接時應(yīng)保持兩傳感器的中心軸線平行并相距4~8cm,其余元器件無特別要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。下面就來說明一下本系統(tǒng)的硬件調(diào)試部分。</p><p> 在焊接顯示部分時,跳線太多結(jié)果把數(shù)碼管兩個引腳焊反了,在調(diào)程序時數(shù)碼管有兩段led顯示反了。后來重新焊接后解決問題。</p><p>
52、用萬用表檢測硬件電路是否有斷接、短接等情況,同時重點(diǎn)檢查一下高、低電平的連接有沒有錯誤。在此檢查中由于焊接的過于密集發(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)是
53、在主程序中的顯示部分用到的延時程序放在了主函數(shù)的后面,而前面又沒有定義,導(dǎo)致無法調(diào)用,后來將程序調(diào)到前面后解決。</p><p> 軟件程序是在KEIL單片機(jī)仿真系統(tǒng)中完成的,軟件程序的主程序以及各部分子程序都編完后,進(jìn)行軟件編譯,編譯不通過,提示說在發(fā)生脈沖程序中的_nop_()沒有定義,原來是頭文件中沒有定義,加上#include <intrins.h>頭文件后,繼續(xù)編譯。之后沒有太大的問題。&
54、lt;/p><p> 所以本程序在設(shè)計(jì)中并沒有太大的邏輯上的錯誤,只是有一些語法上的錯誤,比如重復(fù)定義等,經(jīng)過調(diào)試﹑修改后,沒有了語法上的錯誤,軟件調(diào)試結(jié)束。</p><p><b> 3.4程序清單:</b></p><p> #include<reg52.h></p><p> #include<
55、;intrins.h> //頭文件</p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> sbit out=P1^0;//發(fā)射超聲波端口</p><p> sbit intt=P3^2; //接
56、收超聲波端口</p><p><b> 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&g
57、t;<p> uint COUNT,TIME; //接收變量</p><p> uchar flag; //接收標(biāo)志</p><p> void start(); //初始化函數(shù)</p><p> void delay1()//延時子函數(shù),2個空指令</p><p><b> {<
58、/b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> }</b></p><p> void del1() //延時1</p><p>&
59、lt;b> {</b></p><p> unsigned char i;</p><p> for(i=0;i<255;i++);</p><p><b> }</b></p><p> void Display()</p><p><b> {&l
60、t;/b></p><p> qwei=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&
61、gt;<p><b> P2=0xc0;</b></p><p><b> del1();</b></p><p> P0 = leddata[swei] | 0x80; //0x01 小數(shù)點(diǎn)</p><p><b> P2=0x40;</b></p>
62、<p><b> del1();</b></p><p> P0 = leddata[bwei];</p><p><b> P2=0x80;</b></p><p><b> del1();</b></p><p> P0 = leddata[qwe
63、i];</p><p><b> P2=0x00;</b></p><p><b> del1();</b></p><p><b> }</b></p><p> void Display2()</p><p><b> {<
64、;/b></p><p><b> P0=0x40;</b></p><p><b> P2=0xc0;</b></p><p><b> del1();</b></p><p><b> P0=0x40;</b></p>&l
65、t;p><b> P2=0x40;</b></p><p><b> del1();</b></p><p><b> P0=0x40;</b></p><p><b> P2=0x80;</b></p><p><b> del
66、1();</b></p><p><b> P0=0x40;</b></p><p><b> P2=0x00;</b></p><p><b> del1();</b></p><p><b> }</b></p>&
67、lt;p> void delay(uchar i)</p><p><b> { </b></p><p> while(i!=0)</p><p><b> { </b></p><p><b> i--;</b></p><p&
68、gt;<b> } </b></p><p><b> }</b></p><p> void tim(void) interrupt 3</p><p> { uint i;</p><p><b> ET1=0;</b></p><p>
69、;<b> TR0=0;</b></p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p><b> TR0=1;</b></p><p><b> EX0=1;</b>
70、</p><p> for(i=0;i<4;i++) //超聲波發(fā)射40KHZ</p><p><b> { </b></p><p><b> out=~out;</b></p><p><b> _nop_(); </b></p>
71、<p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b&g
72、t; _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> _nop_(); </b></p><p><b> } </b></p><p> delay(50); </p><p
73、> IT0=1;//下降邊延 </p><p> ET1=1; </p><p><b> TH1=0Xb0;</b></p><p> TL1=0X3c; </p><p><b> EX0=1; </b></p><p><
74、b> }</b></p><p> /*=======接收到超聲波觸發(fā)中斷0============*/ </p><p> void r_int() interrupt 0//接收超聲波</p><p><b> { </b></p><p><b> _nop
75、_();</b></p><p> if(intt==0) //判接收到</p><p><b> {</b></p><p><b> TR0=0;</b></p><p><b> EX0=0;</b></p><p> T
76、IME=TH0*256+TL0;//數(shù)據(jù)轉(zhuǎn)換</p><p> COUNT=TIME*0.17;</p><p> flag=1; //置位標(biāo)志位</p><p> while(!intt); //判是否已經(jīng)完成轉(zhuǎn)換</p><p><b> } </b></p>
77、<p><b> EX0=1;</b></p><p><b> }</b></p><p> void start() //初始化</p><p><b> {</b></p><p><b> ET1=1;</b></
78、p><p><b> TR1=1;</b></p><p> TMOD=0X11;</p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p> TH1=0Xb0;//50ms</p>
79、;<p><b> TL1=0X3c;</b></p><p><b> IT0=1; </b></p><p><b> EX0=1;</b></p><p><b> EA=1;</b></p><p><b>
80、}</b></p><p> void main(void)</p><p><b> { </b></p><p> start(); //程序初始化</p><p><b> while(1)</b></p><p><b> { &
81、lt;/b></p><p> if(flag==1) //判是否接收到</p><p><b> { </b></p><p><b> flag=0;</b></p><p> sec=COUNT; //將接收并轉(zhuǎn)換后的數(shù)據(jù)賦給顯示變量</p><p&g
82、t;<b> }</b></p><p> if(sec<=100) Display2();</p><p> else if(sec>=3000)Display2();</p><p> else Display() ;</p><p><b> }</b></p&
83、gt;<p><b> }</b></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)用知識的能
84、力,也為將來的工作打下了堅(jiān)實(shí)的基礎(chǔ),同時也讓我對電子技術(shù)產(chǎn)生了更加濃厚的興趣,更加深了對本專業(yè)知識的熱愛與追求。</p><p> 在做單片機(jī)課程設(shè)計(jì)的過程中,我將這幾年里所學(xué)的有關(guān)本次設(shè)計(jì)的基礎(chǔ)知識和專業(yè)知識又復(fù)習(xí)了一遍,特別是單片機(jī)方面的知識,對單片機(jī)的原理以及接口方面的知識做了進(jìn)一步的理解,以便能夠更加順利地完成此次畢業(yè)設(shè)計(jì)。同時在焊接過程中,一定要先弄明白且讀懂原理圖。搞明白整個電路圖的原理,還要細(xì)心和
85、仔細(xì),因?yàn)槊恳粋€焊點(diǎn)你都要牢固以保持它的耐用性,更不能出現(xiàn)虛焊和漏焊的事情發(fā)生。同時你必須對芯片的特性都非常清楚,這樣你才能讓你的實(shí)際電路達(dá)到你所要求的性能,雙列直插的芯片引腳彼此都挨得很近。而每一個引腳都有不同的功用,有的是輸出端,有的是輸入端,所以在焊接時這些點(diǎn)都是應(yīng)該特別注意的地方。否則輕者電路的功能實(shí)現(xiàn)不了,重者會造成芯片永久的損壞。所以在以后的學(xué)習(xí)和工作中,當(dāng)我要使用某個器件時一定要先查資料,將它的工作原理搞清楚,然后再進(jìn)行實(shí)
86、際的操作。這樣往往會事半功倍。還有我體會到的一點(diǎn)是電路仿真和實(shí)際有一定的差別,在仿真中我們只需要明白電路的工作原理即可,在實(shí)際組裝電路時,我們要根據(jù)實(shí)際器件的性能和仿真圖的原理來進(jìn)行調(diào)試,二者都很重要。</p><p> 根據(jù)以上設(shè)計(jì)的完成功能來看,已基本上完成了本次設(shè)計(jì)的題目要求,但由于個人能力有限,設(shè)計(jì)中也難免會有錯誤和疏漏,所以還肯請各位老師以及同學(xué)多多批評指正。</p><p>
87、<b> 致謝</b></p><p> 首先感謝我的專業(yè)老師梁召峰,在梁老師的耐心指導(dǎo)、幫助下,我才能順利完成畢業(yè)設(shè)計(jì)。從電路的設(shè)計(jì)到調(diào)試整個過程中,我都從梁老師那里學(xué)會了很多專業(yè)方面的知識。其次感謝郭志林師兄,在我的畢業(yè)設(shè)計(jì)中給單片機(jī)燒錄程序和焊接電路的過程中給予了我?guī)椭?。最后感謝在這整個設(shè)計(jì)過程中幫助過我的所有朋友們。</p><p><b>
88、參考文獻(xiàn)</b></p><p> [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]
89、陳國成.新型電力電子變換技術(shù)[M].北京:中國電力出版社,2004.</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版.
90、 北京:北京郵電大學(xué)出版社,20003.2電機(jī)驅(qū)動程序</p><p> #include <REGX52.H> </p><p> sbit LeftLed=P2^0; //定義前方左側(cè)指示燈端口</p><p> sbit RightLed=P0^7; //定義前方右側(cè)指示燈端口</p>
91、<p> sbit FontLled=P1^0;</p><p> sbit LeftIR=P3^5; //定義前方左側(cè)紅外探頭端口</p><p> sbit RightIR=P3^6; //定義前方右側(cè)紅外探頭端口</p><p> sbit FontIR=P3^7;
92、 //定義前方正前方紅外探頭端口</p><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端&l
93、t;/p><p> sbit M2B=P0^3; //定義右側(cè)電機(jī)驅(qū)動B端</p><p> sbit B1=P0^4; //定義語音識識別傳感器端口</p><p> sbit SB1=P0^6; //定義蜂鳴器端口</p><p> void
94、 tingzhi()</p><p><b> {</b></p><p> M1A=0; //將M1電機(jī)A端初始化為0</p><p> M1B=0; //將M1電機(jī)B端初始化為0</p><p> M2A=0;
95、 //將M2電機(jī)A端初始化為0</p><p><b> M2B=0;</b></p><p><b> }</b></p><p> void qianjin()</p><p><b> {</b></p><p>
96、 M1A=1; </p><p> M1B=0; </p><p> M2A=1; </p><p><b> M2B=0;</b>&
97、lt;/p><p><b> }</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
99、()</p><p><b> {</b></p><p> M1A=0; </p><p> M1B=1; </p><p> M2A=1;
100、 </p><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>
102、<p><b> }</b></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&g
103、t;<p> while(--i);</p><p><b> } </b></p><p> void delay_nms(unsigned int n) //延時n ms</p><p><b> { </b></p><p><b> n=n+1;
104、</b></p><p> while(--n) </p><p> delay_nus(900); //延時 1ms,同時進(jìn)行補(bǔ)償</p><p><b> } </b></p><p> void ControlCar(unsigned char C
105、onType) //定義電機(jī)控制子程序</p><p><b> {</b></p><p> tingzhi();</p><p> switch(ConType) //判斷用戶設(shè)定電機(jī)形式</p><p><b> {</b><
106、/p><p> case 1: //前進(jìn) //判斷用戶是否選擇形式1</p><p><b> { </b></p><p> qianjin();</p><p><b> break;</b></p><p><
107、b> }</b></p><p> case 2: //后退 //判斷用戶是否選擇形式2</p><p><b> { </b></p><p> houtui(); //M2電機(jī)反轉(zhuǎn)</p>
108、<p><b> break;</b></p><p><b> }</b></p><p> case 3: //左轉(zhuǎn) //判斷用戶是否選擇形式3</p><p><b> { </b></p><p>
109、zuozhuan(); //M2電機(jī)正轉(zhuǎn)</p><p><b> break;</b></p><p><b> }</b></p><p> case 4: //右轉(zhuǎn) //判斷用戶是否選擇形式4</
110、p><p><b> { </b></p><p> youzhuan(); //M1電機(jī)正轉(zhuǎn)</p><p><b> //M2電機(jī)反轉(zhuǎn)</b></p><p><b> break;</b></p>
111、;<p><b> }</b></p><p> case 8: //停止 //判斷用戶是否選擇形式8</p><p><b> {</b></p><p> tingzhi();</p><p> break;
112、 //退出當(dāng)前選擇</p><p><b> }</b></p><p><b> } }</b></p><p> 3.4避障模塊、避障框圖</p><p><b> 圖3-3 避障框圖</b></p&g
113、t;<p><b> 紅外程序:</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>
115、<p> if (IRIN==1) //判斷紅外信號是否消失</p><p><b> { </b></p><p> EX1 =1; //外部中斷開</p><p> ret
116、urn; //返回</p><p><b> } </b></p><p> while (!IRIN) //等IR變?yōu)楦唠娖剑^9ms的前導(dǎo)低電平信號。</p><p><b> {</b></
117、p><p> delayms(1); //延時等待</p><p><b> }</b></p><p> for (j=0;j<4;j++) //采集紅外遙控器數(shù)據(jù)</p><p>&
118、lt;b> { </b></p><p> for (k=0;k<8;k++) //分次采集8位數(shù)據(jù)</p><p><b> {</b></p><p> while (IRIN) //等
119、 IR 變?yōu)榈碗娖?,跳過4.5ms的前導(dǎo)高電平信號。</p><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>
121、; while (IRIN) //計(jì)算IR高電平時長</p><p><b> {</b></p><p> delayms(1); //延時等待</p><p> N++;
122、 //計(jì)數(shù)器加加</p><p> if (N>=30) //判斷計(jì)數(shù)器累加值</p><p><b> { </b></p><p> EX1=1; //打開外部中斷功能&
123、lt;/p><p> return; //返回</p><p> } </p><p><b> }</b></p><p> IRCOM[j]=IRCOM[j] >> 1;
124、 //進(jìn)行數(shù)據(jù)位移操作并自動補(bǔ)零</p><p> if (N>=8) //判斷數(shù)據(jù)長度 </p><p><b> {</b></p><p> IRCOM[j] = IRCOM[j] | 0x80; //數(shù)據(jù)
125、最高位補(bǔ)1</p><p><b> } </b></p><p> N=0; //清零位數(shù)計(jì)錄器</p><p><b> }</b></p><p><b> }</b></p>
126、;<p> if (IRCOM[2]!=~IRCOM[3]) //判斷地址碼是否相同</p><p><b> { </b></p><p> EX1=1; //打開外部中斷</p><p&g
127、t; return; //返回</p><p><b> }</b></p><p> for(j=0;j<10;j++) //循環(huán)進(jìn)行鍵碼解析</p><p><b>
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文_超聲波測距儀
- 超聲波測距儀畢業(yè)論文
- 超聲波測距儀畢業(yè)論文
- 超聲波測距儀的設(shè)計(jì)畢業(yè)論文
- 超聲波測距儀的設(shè)計(jì)畢業(yè)論文
- 超聲波測距儀
- 超聲波測距儀畢業(yè)設(shè)計(jì)論文
- 超聲波測距儀畢業(yè)論文-智能遙控小車
- 超聲波測距儀畢業(yè)設(shè)計(jì)論文
- 超聲波測距儀畢業(yè)設(shè)計(jì)論文
- 超聲波測距儀的設(shè)計(jì)和實(shí)現(xiàn)畢業(yè)論文
- 超聲波測距儀畢業(yè)設(shè)計(jì)
- 超聲波測距儀設(shè)計(jì)
- 超聲波測距儀畢業(yè)設(shè)計(jì)
- 超聲波測距儀畢業(yè)設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的超聲波測距儀
- 畢業(yè)論文--基于單片機(jī)的超聲波測距儀
- 外文翻譯---超聲波測距儀
- 畢業(yè)設(shè)計(jì)---超聲波測距儀設(shè)計(jì)
- 外文翻譯超聲波測距儀
評論
0/150
提交評論