版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 論文題目:基于藍(lán)牙控制的智能小車</p><p><b> 摘要:</b></p><p> 隨著科學(xué)技術(shù)的快速發(fā)展,超聲波將在測(cè)距儀中的應(yīng)用越來(lái)越廣。但就目前技術(shù)水平來(lái)說(shuō),人們可以具體利用的測(cè)距技術(shù)還十分有限,因此,這是一個(gè)正在蓬勃發(fā)展而又有無(wú)限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。展望未來(lái),超聲波測(cè)距儀作為一種新型的非常重要有用的工具在各方面都將有很大的
2、發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會(huì)需求,如聲納的發(fā)展趨勢(shì)基本為:研制具有更高定位精度的被動(dòng)測(cè)距聲納,以滿足水中武器實(shí)施全隱蔽攻擊的需要;繼續(xù)發(fā)展采用低頻線譜檢測(cè)的潛艇拖曳線列陣聲納,實(shí)現(xiàn)超遠(yuǎn)程的被動(dòng)探測(cè)和識(shí)別;研制更適合于淺海工作的潛艇聲納,特別是解決淺海水中目標(biāo)識(shí)別問(wèn)題;大力降低潛艇自噪聲,改善潛艇聲納的工作環(huán)境。無(wú)庸置疑,未來(lái)的超聲波測(cè)距儀將與自動(dòng)化智能化接軌,與其他的測(cè)距儀集成和融合,形成多測(cè)距儀。
3、隨著測(cè)距儀的技術(shù)進(jìn)步,測(cè)距儀將從具有單純判斷功能發(fā)展到具有學(xué)習(xí)功能,最終發(fā)展到具有創(chuàng)造力。在新的世紀(jì)里,面貌一新的測(cè)距儀將發(fā)揮更大的作用。</p><p> 本設(shè)計(jì)采用以AT89C51單片機(jī)為核心的低成本、高精度、微型化數(shù)字顯示超聲波測(cè)距儀的硬件電路和軟件設(shè)計(jì)方法。整個(gè)電路采用模塊化設(shè)計(jì),由主程序、中斷程序、發(fā)射子程序、接收子程序、顯示子程序等模塊組成。各探頭的信號(hào)經(jīng)單片機(jī)綜合分析處理,實(shí)現(xiàn)超聲波測(cè)距儀的各種功
4、能。在此基礎(chǔ)上設(shè)計(jì)了系統(tǒng)的總體方案,最后通過(guò)硬件和軟件實(shí)現(xiàn)了各個(gè)功能模塊。 </p><p><b> 目錄</b></p><p><b> 1.設(shè)計(jì)課題</b></p><p><b> 2.電路設(shè)計(jì)</b></p><p><b> 3.程序設(shè)計(jì)<
5、;/b></p><p><b> 4.調(diào)試及性能分析</b></p><p><b> 5.設(shè)計(jì)總結(jié)</b></p><p><b> 6.附件</b></p><p><b> 7.設(shè)計(jì)體會(huì)</b></p><p>
6、;<b> 8.參考文獻(xiàn)</b></p><p><b> 1.設(shè)計(jì)課題</b></p><p> 本文所研究的超聲波測(cè)距儀利用超聲波指向性強(qiáng)、能量消耗緩慢、傳播距離較遠(yuǎn)等優(yōu)點(diǎn),即用超聲波發(fā)射器向某一方向發(fā)送超聲波,同時(shí)在發(fā)射的時(shí)候開(kāi)始計(jì)時(shí),在超聲波遇到障礙物的時(shí)候反射回來(lái),超聲波接收器在接收到反射回來(lái)的超聲波時(shí),停止計(jì)時(shí)。設(shè)超聲波在空氣中
7、的傳播速度為V,在空氣中的傳播時(shí)間為T,汽車與障礙物的距離為S,S=VT/2,這樣可以測(cè)出汽車與障礙物之間的距離,然后在LED顯示屏上顯示出來(lái)。</p><p> 其工作機(jī)理是依據(jù)壓電材料的正逆壓電效應(yīng),利用逆壓電效應(yīng)產(chǎn)生超聲波,即逆壓電效應(yīng)是在壓電材料上加上某種特定頻率的交變正弦信號(hào),材料就會(huì)產(chǎn)生隨所加電壓的變化規(guī)律而變化的機(jī)械形變,這種機(jī)械形變推動(dòng)周圍介質(zhì)振動(dòng),產(chǎn)生疏密相間的機(jī)械波,如果其振動(dòng)頻率在超聲范圍
8、內(nèi),這種機(jī)械波就是超聲波。</p><p> 本文所設(shè)計(jì)的超聲波測(cè)距儀主要由AT89C52單片機(jī)、超聲波發(fā)射電路、超聲波接收放大電路、顯示電路.</p><p> 首先由單片機(jī)驅(qū)動(dòng)產(chǎn)生12MHZ晶振,由超聲波發(fā)射探頭發(fā)送出去,在遇到障礙物反射回來(lái)時(shí)由超聲波接收探頭檢測(cè)到信號(hào),然后經(jīng)過(guò)濾波、放大、整形之后送入單片機(jī)進(jìn)行計(jì)算,把計(jì)算結(jié)果輸出到LED液晶顯示屏上。超聲波發(fā)生器可以分為兩大類:
9、一類是用電氣方式產(chǎn)生超聲波;另一類是用機(jī)械方式。產(chǎn)生超聲波。電氣方式包括壓電型、電動(dòng)型等;機(jī)械方式有加爾統(tǒng)笛、液 和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率,功率和聲波特性各不相同,因而用途也各不相同。目前在近距離測(cè)量方面較為常用的是壓電式超聲波換能器。</p><p> 根據(jù)設(shè)計(jì)要求并綜合各方面因素,本例決定采用AT89C51單片機(jī)作為主控制器,用動(dòng)態(tài)掃描法實(shí)現(xiàn)LED數(shù)字顯示,超聲波驅(qū)動(dòng)信號(hào)用單片機(jī)的定時(shí)器完成。
10、超聲波測(cè)距器系統(tǒng)設(shè)計(jì)如圖3.1所示。</p><p> 圖3.1 超聲波測(cè)距器系統(tǒng)設(shè)計(jì)框圖</p><p><b> 2.硬件電路設(shè)計(jì)</b></p><p> 硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測(cè)接收電路三部分。單片機(jī)采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減
11、小測(cè)量誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需的40kHz的方波信號(hào),利用外中斷0口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡(jiǎn)單實(shí)用的4位共陽(yáng)LED數(shù)碼管,段碼用74LS244驅(qū)動(dòng),位碼用PNP三極管9012驅(qū)動(dòng)。</p><p> 主要由單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測(cè)接收電路三</p><p> 部分組成。采用AT89S51來(lái)實(shí)現(xiàn)對(duì)超聲波模組進(jìn)行控制,然
12、后單片機(jī)不停的檢測(cè)INT0引腳,當(dāng)INT0引腳的電平由高電平變?yōu)榈碗娖綍r(shí)就認(rèn)為超聲波已經(jīng)返回。計(jì)數(shù)器所計(jì)的數(shù)據(jù)就是超聲波所經(jīng)歷的時(shí)間,通過(guò)換算就可以得到傳感器與障礙物之間的距離。2.1超聲波發(fā)射和接收模組(V2.0)</p><p> 本文采用的超聲波測(cè)距模組集發(fā)射和接受為一體,內(nèi)部超聲波傳感器諧振頻率40KHz,模組傳感器工作電壓4.5V~9V,模組接口電壓4.5V~5.5V。提供三種測(cè)距模式,選擇跳線可以
13、選擇短距、中距和可調(diào)距。本實(shí)驗(yàn)采用短距(20~100cm)精度1cm。模組結(jié)構(gòu)示意圖如下:</p><p> 應(yīng)用時(shí)只需要用J5的第1個(gè)口與單片機(jī)Vcc連接,最后一個(gè)口與單片機(jī)GND連接,第4個(gè)接口與 單片機(jī)的INT0口相連接,J4的第3個(gè)接口與單片機(jī)1.0口連接,同時(shí)將J1跳線設(shè)置為短距模式,J2跳線設(shè)置為非外部電源供電方式(此時(shí)開(kāi)發(fā)板通過(guò)10PIN排線為模組供電,板上J5選擇5V,要把J2跳接到5v的一端)
14、。這就完成了模組硬件的連接。超聲波諧振頻率調(diào)理電路圖如下:</p><p> 由單片機(jī)產(chǎn)生40KHz的方波由P1.0口送出,連接模組接口J4到模組的CD4049,而后面的CD4049則對(duì)40KHz頻率信號(hào)進(jìn)行調(diào)理,以使超聲波傳感器產(chǎn)生諧振。</p><p> 上圖為超聲波回波接收處理電路,超聲波接受處理部分電路前級(jí)采用NE5532構(gòu)成10000倍放大器,對(duì)接收信號(hào)進(jìn)行放大;后級(jí)采用LM
15、311比較器對(duì)接收信號(hào)進(jìn)行調(diào)整,比較電壓為L(zhǎng)M311的3管腳的輸入。</p><p> 接收回路中測(cè)得的超聲波信號(hào)共有兩個(gè)波束,第一個(gè)為余波信號(hào),即超聲波接收頭在發(fā)射頭發(fā)射信號(hào)(一組40KHz的脈沖)后,馬上就接收到了超聲波信號(hào),并持續(xù)一段時(shí)間。另一個(gè)波束為有效信號(hào),即經(jīng)過(guò)被測(cè)物表面反射的回波信號(hào)。超聲波測(cè)距時(shí),需要測(cè)的是開(kāi)始發(fā)射到接收到信號(hào)的時(shí)間差,要盡量避免檢測(cè)到余波信號(hào),這也是檢測(cè)中存在最小測(cè)量盲區(qū)的主要
16、原因。</p><p> 單片機(jī)控制模組每次發(fā)生若干完整的40KHz的脈沖信號(hào),發(fā)射信號(hào)前打開(kāi)計(jì)數(shù)器T0,進(jìn)行計(jì)時(shí),等計(jì)時(shí)到達(dá)一定值后再開(kāi)啟檢測(cè)回波信號(hào),以避免余波信號(hào)的干擾。采用外部中斷INT0對(duì)回波信號(hào)進(jìn)行檢測(cè),接收到回波信號(hào)后馬上讀取計(jì)數(shù)器中的數(shù)值,此數(shù)據(jù)即為需要測(cè)量的時(shí)間差數(shù)據(jù)。</p><p><b> 2.2數(shù)據(jù)顯示模塊</b></p>
17、<p> 顯示電路采用簡(jiǎn)單實(shí)用的4位共陽(yáng)LED數(shù)碼管,斷碼用74LS244驅(qū)動(dòng),位碼用PNP三極管9012驅(qū)動(dòng)。由P0口輸出顯示數(shù)據(jù),P2.0~P2.3用來(lái)位選。顯示電路如下圖:</p><p><b> 3.系統(tǒng)程序的設(shè)計(jì)</b></p><p> 超聲波測(cè)距器的軟件設(shè)計(jì)主要由主程序,超聲波發(fā)生子程序,超聲波接收中斷程序及顯示子程序組成,由于C語(yǔ)言程
18、序有利于實(shí)現(xiàn)較復(fù)雜的算法,匯編語(yǔ)言程序則具有較高的效率并且容易精確計(jì)算程序行動(dòng)的時(shí)間,而超聲波測(cè)距器的程序既有較復(fù)雜的計(jì)算(計(jì)算距離時(shí)),又要求精確計(jì)算程序運(yùn)行時(shí)間(超聲波測(cè)距時(shí)),所以控制程序可采用C語(yǔ)言和匯編語(yǔ)言混合編程。下面對(duì)超聲波測(cè)距器的算法,主程序,超聲波發(fā)生子程序和超聲波接收中斷程序逐一介紹。</p><p> 3.1 超聲波測(cè)距器的算法設(shè)計(jì)</p><p> 圖3.6示
19、意了超聲波測(cè)距的原理,既超聲波發(fā)生器T在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波遇到被測(cè)物體后反射回來(lái),就會(huì)被超聲波接收器R接收到。這樣,只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器于反射物體的距離。該距離的計(jì)算公式如下:</p><p> d=s/2(v×t)/2</p><p> 其中:d為被測(cè)物于測(cè)距器的距離;s為聲波的來(lái)回路程;v為聲速;
20、t為聲波來(lái)回所用的時(shí)間。</p><p> 超聲波也是一種聲波,其聲速v于溫度有關(guān)。表3.1列出了幾種不同溫度下的超聲波聲速。在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速基本不變的。如果測(cè)距精度要求很高,則應(yīng)通過(guò)溫度補(bǔ)償?shù)姆椒右孕U?。聲速確定后,只要測(cè)得超聲波往返的時(shí)間,即可求得距離。表3.1不同溫度下超聲波聲速表</p><p><b> 3.2 主程序</b>
21、</p><p> 主程序首先要對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位定時(shí)/計(jì)數(shù)器模式,置位總中斷允許位EA并對(duì)顯示端口P0和P2清0;然后調(diào)用超聲波發(fā)生子程序送出一個(gè)超聲波脈沖。為了避免超聲波從發(fā)射器直接傳到接收器引起的直射波,需要延時(shí)約0.1ms(這也就是超聲波測(cè)距器會(huì)有一個(gè)最小可測(cè)距離的原因)后才可打開(kāi)外中斷0接收返回的超聲波信號(hào)。由于采用的是12MHz的晶振,計(jì)數(shù)器每計(jì)一個(gè)數(shù)就是1us,所以當(dāng)
22、主程序檢測(cè)到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超聲波來(lái)回所用的時(shí)間)按式(3—2)計(jì)算,即可得被測(cè)物體與測(cè)距器之間的距離。設(shè)計(jì)時(shí)取20℃時(shí)的聲速為344m/s,則有</p><p> d=(v×t)/2=(172T/10000)cm (3—2)</p><p> 其中:T為計(jì)數(shù)器T0的計(jì)數(shù)值。</p><p> 測(cè)出距離后,結(jié)果將以
23、十進(jìn)制BCD碼方式送往LED顯示約為0.5s,然后再發(fā)超聲波脈沖重復(fù)測(cè)量過(guò)程。圖3.7所示為主程序流程圖。</p><p> ※※※※※※主程序※※※※※※</p><p> START: MOV SP, #4FH</p><p> MOV R0, #40H ;40H~43H為顯示數(shù)據(jù)存放單元(40H為最高位)</p>
24、<p> MOV R7, #0BH</p><p> CLEARDISP: MOV @R0, #00H</p><p> INC R0</p><p> DJNZ R7, CLEARDISP</p><p> MOV 20H, #00H</p><p&
25、gt; MOV TMOD, #21H ;T1為8位自動(dòng)重裝模式,T0為16位定時(shí)器</p><p> MOV TH0, #00H ;65ms初值</p><p> MOV TL0, #00H</p><p> MOV TH1, #0F2H ;40kHz初值</p><p> MOV
26、 TL1, #0F2H</p><p> MOV P0, #0FFH</p><p> MOV P1, #0FFH</p><p> MOV P2, #0FFH</p><p> MOV P3, #0FFH</p><p> MOV R4, #04H
27、 ;超聲波脈沖個(gè)數(shù)控制(為賦值的一半)</p><p> SETB PX0</p><p> SETB ET0</p><p> SETB EA</p><p> SETB TR0 ;開(kāi)啟測(cè)試定時(shí)器</p><p> START1:
28、 LCALL DISPLAY</p><p> JNB 00H, START1 ;收到反射信號(hào)時(shí)標(biāo)志位為1</p><p> CLR EA</p><p> LCALL WORK</p><p> SETB EA</p><p> CLR 00H<
29、;/p><p> SETB TR0 ;重新開(kāi)啟測(cè)試定時(shí)器</p><p> MOV R2, #64H ;測(cè)量間隙控制(約4ms×100=400ms)</p><p> LOOP: LCALL DISPLAY</p><p> DJNZ R2,LOOP</
30、p><p> SJMP START1</p><p> 3.3 超聲波發(fā)生子程序和超聲波接收中斷程序</p><p> 超聲波發(fā)生子程序的作用是通過(guò)P1.0端口發(fā)送兩個(gè)左右的超聲波脈沖信號(hào)(頻率40KHz的方波),脈沖寬度為12us左右,同時(shí)把計(jì)數(shù)器T0打開(kāi)進(jìn)行時(shí)。超聲波發(fā)生子程序較簡(jiǎn)單,但要求程序運(yùn)行時(shí)間準(zhǔn)確,所以采用匯編語(yǔ)言編程。</p>
31、<p> ORG 0000H</p><p> LJMP START</p><p> ORG 0003H</p><p> LJMP PINT0</p><p> ORG 000BH</p><p> LJMP INTT0</p>
32、;<p> ORG 0013H</p><p><b> RETI</b></p><p> ORG 001BH</p><p> LJMP INTT1</p><p> ORG 0023H</p><p><b> RET
33、I</b></p><p> ORG 002BH</p><p><b> RETI</b></p><p> 超聲波測(cè)距器主程序利用外中斷0檢測(cè)返回超聲波信號(hào),一旦接收到返回超聲波信號(hào)(即INT0引腳出現(xiàn)低電平),立即進(jìn)入超聲波接收中斷程序。進(jìn)入該中斷后,就立即關(guān)閉計(jì)時(shí)器T0,停止計(jì)時(shí),并將測(cè)距成功標(biāo)志字賦值1.
34、</p><p> ※※※※※※中斷程序※※※※※※</p><p> ;T0中斷,65ms中斷一次</p><p> INTT0: CLR EA</p><p> CLR TR0</p><p> MOV TH0,#00H</p><p&
35、gt; MOV TL0,#00H</p><p> SETB ET1</p><p> SETB EA</p><p> SETB TR0 ;啟動(dòng)計(jì)數(shù)器T0,用以計(jì)算超聲來(lái)回時(shí)間</p><p> SETB TR1 ;開(kāi)啟發(fā)超聲波用定時(shí)器T1
36、</p><p> OUT: RETI</p><p> ?。籘1中斷,發(fā)超聲波用</p><p> INTT1: CPL VOUT</p><p> DJNZ R4,RETOUT</p><p> CLR TR1 ;
37、超聲波發(fā)完畢,關(guān)T1</p><p> CLR ET1</p><p> MOV R4,#04H</p><p> SETB EX0 ;開(kāi)啟接收回波中斷</p><p> RETIOUT: RETI</p><p> ;外中斷0,收到回波時(shí)
38、進(jìn)入</p><p> PINT0: CLR TR0 ;關(guān)計(jì)數(shù)器</p><p> CLR TR1</p><p> CLR ET1</p><p> CLR EA</p><p> CLR E
39、X0</p><p> MOV 44H,TL0 ;將計(jì)數(shù)值移入處理單元</p><p> MOV 45H,TH0</p><p> SETB 00H ;接收成功標(biāo)志</p><p><b> RETI</b></p><p&
40、gt; 如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測(cè)到超聲波返回信號(hào),則定時(shí)器T0溢出中斷將外中斷0關(guān)閉,并將測(cè)距成功標(biāo)志字賦值2,以表示本次測(cè)距不成功。</p><p><b> 4.調(diào)試及性能分析</b></p><p><b> 4.1 調(diào)試</b></p><p> 超聲波測(cè)距器的制作和調(diào)試都較為簡(jiǎn)單,其中超聲波發(fā)射和接收采
41、用ø15的超聲波換能器TCT40—10F1(T發(fā)射)和TCT40—10S1(R接收),中心頻率為40KHz,安裝時(shí)應(yīng)保持兩換能器中心軸線平行并相距4~8cm,其余元件無(wú)特殊要求。若能將超聲接收電路用金屬殼屏蔽起來(lái),則可提高抗干擾性能。根據(jù)測(cè)量范圍要求不同,可適當(dāng)?shù)卣{(diào)整與接收換能器并接的濾波電容C4的大小,以獲得合適的接收靈敏度和抗干擾能力。</p><p> 硬件電路制作完成并調(diào)整好后,便可將程序編譯
42、好下載到單片機(jī)試運(yùn)行。根據(jù)實(shí)際情況,可以修改超聲波子程序每次發(fā)送的脈沖個(gè)數(shù)和兩次測(cè)量的間隔時(shí)間,以適應(yīng)不同距離的測(cè)量需要。</p><p><b> 4.2 性能指示</b></p><p> 根據(jù)文中電路參數(shù)和程序,測(cè)距器可測(cè)量的范圍為0.07~5.50m。實(shí)驗(yàn)中,對(duì)測(cè)量范圍為0.07~2.50m的平面物體做了多次測(cè)試,測(cè)距器的最大誤差不超過(guò)1cm,重復(fù)性很好。
43、</p><p><b> 5.設(shè)計(jì)總結(jié)</b></p><p> 在本次設(shè)計(jì)中,我們廣泛借鑒了各種設(shè)計(jì)的優(yōu)點(diǎn),充分考慮了整個(gè)設(shè)計(jì)中的各個(gè)環(huán)節(jié)。包括產(chǎn)生40KHz的方波,在接收電路中,對(duì)所接收方波進(jìn)行濾波、放大、整形等步驟。但由于條件和技術(shù)所限,對(duì)于很多以上所分析的在發(fā)射和接收過(guò)程中所產(chǎn)生的誤差沒(méi)有得到有效的校正。比如溫度誤差、硬件電路誤差等。</p>
44、<p> 在我們?yōu)槠谝粋€(gè)學(xué)期的設(shè)計(jì)中,我們用到了以前學(xué)到的很多知識(shí),比如電工、單片機(jī)、和匯編語(yǔ)言等。這使我們意識(shí)到,任何一件產(chǎn)品的產(chǎn)生,都不是單一知識(shí)所能實(shí)現(xiàn)的。而且在電路的設(shè)計(jì)和程序的編制過(guò)程中,出現(xiàn)了很多意想不到的錯(cuò)誤,讓我們措手不及,有些甚至是一些非常低級(jí)的錯(cuò)誤,但是這些錯(cuò)誤也同樣讓我們獲益非淺,它使我們意識(shí)到,研究是一個(gè)非常嚴(yán)肅的過(guò)程,來(lái)不得半點(diǎn)馬虎。必須有一個(gè)嚴(yán)謹(jǐn)?shù)膽B(tài)度,加上100%的努力才有可能獲得成功的喜悅
45、。</p><p> 總之,在本課題的設(shè)計(jì)過(guò)程中盡管走了很多的彎路,但是還是學(xué)到了不少知識(shí),從中受益匪淺。了解了超聲波傳感器的原理,學(xué)會(huì)了各種放大電路的分析、設(shè)計(jì),也掌握了單片機(jī)的開(kāi)發(fā)過(guò)程中所用到的開(kāi)發(fā)方法和工具。動(dòng)手能力與自學(xué)能力得到了鍛煉與提高,對(duì)待事物的態(tài)度也發(fā)生了變化。理論總是離不開(kāi)實(shí)踐的,設(shè)計(jì)制作過(guò)程中,盲目地追尋理論知識(shí)根本不足以解決任何問(wèn)題,一味的死研究課本是不會(huì)真正掌握單片機(jī)的。只有真正動(dòng)手去做
46、才能發(fā)現(xiàn)問(wèn)題,解決問(wèn)題,提高能力。</p><p><b> 6.附件</b></p><p><b> 6.1控制源程序</b></p><p><b> 單片機(jī)匯編源程序</b></p><p><b> 超聲波測(cè)距器</b></p>
47、;<p> 采用AT89C51 12MHz晶振</p><p> 采用共陽(yáng)LED顯示器</p><p> 測(cè)試范圍為0.07~4m,堆棧在4FH以上,20H用于標(biāo)志</p><p> 顯示緩沖單元在40H~43H,內(nèi)存44H~46H用于計(jì)算距離</p><p> VOUT EQU P1.0
48、 ;脈沖輸出端口</p><p> ※※※※※※中斷入口程序※※※※※※</p><p> ORG 0000H</p><p> LJMP START</p><p> ORG 0003H</p><p> LJMP PINT0</p>
49、;<p> ORG 000BH</p><p> LJMP INTT0</p><p> ORG 0013H</p><p><b> RETI</b></p><p> ORG 001BH</p><p> LJMP INT
50、T1</p><p> ORG 0023H</p><p><b> RETI</b></p><p> ORG 002BH</p><p><b> RETI</b></p><p> ※※※※※※主程序※※※※※※</p>&l
51、t;p> START: MOV SP, #4FH</p><p> MOV R0, #40H ;40H~43H為顯示數(shù)據(jù)存放單元(40H為最高位)</p><p> MOV R7, #0BH</p><p> CLEARDISP: MOV @R0, #00H</p><p> I
52、NC R0</p><p> DJNZ R7, CLEARDISP</p><p> MOV 20H, #00H</p><p> MOV TMOD, #21H ;T1為8位自動(dòng)重裝模式,T0為16位定時(shí)器</p><p> MOV TH0, #00H ;65ms初值</p>
53、<p> MOV TL0, #00H</p><p> MOV TH1, #0F2H ;40kHz初值</p><p> MOV TL1, #0F2H</p><p> MOV P0, #0FFH</p><p> MOV P1, #0FFH</p>
54、<p> MOV P2, #0FFH</p><p> MOV P3, #0FFH</p><p> MOV R4, #04H ;超聲波脈沖個(gè)數(shù)控制(為賦值的一半)</p><p> SETB PX0</p><p> SETB ET0&
55、lt;/p><p> SETB EA</p><p> SETB TR0 ;開(kāi)啟測(cè)試定時(shí)器</p><p> START1: LCALL DISPLAY</p><p> JNB 00H, START1 ;收到反射信號(hào)時(shí)標(biāo)志位為1</p>
56、<p> CLR EA</p><p> LCALL WORK</p><p> SETB EA</p><p> CLR 00H</p><p> SETB TR0 ;重新開(kāi)啟測(cè)試定時(shí)器</p><p> MOV
57、 R2, #64H ;測(cè)量間隙控制(約4ms×100=400ms)</p><p> LOOP: LCALL DISPLAY</p><p> DJNZ R2,LOOP</p><p> SJMP START1</p><p> ※※※※※※中斷程序※※※※※
58、※</p><p> ??;T0中斷,65ms中斷一次</p><p> INTT0: CLR EA</p><p> CLR TR0</p><p> MOV TH0,#00H</p><p> MOV TL0,#00H</p>
59、<p> SETB ET1</p><p> SETB EA</p><p> SETB TR0 ;啟動(dòng)計(jì)數(shù)器T0,用以計(jì)算超聲來(lái)回時(shí)間</p><p> SETB TR1 ;開(kāi)啟發(fā)超聲波用定時(shí)器T1</p><p> OUT:
60、 RETI</p><p> ??;T1中斷,發(fā)超聲波用</p><p> INTT1: CPL VOUT</p><p> DJNZ R4,RETOUT</p><p> CLR TR1 ;超聲波發(fā)完畢,關(guān)T1</p><p>
61、; CLR ET1</p><p> MOV R4,#04H</p><p> SETB EX0 ;開(kāi)啟接收回波中斷</p><p> RETIOUT: RETI</p><p> ;外中斷0,收到回波時(shí)進(jìn)入</p><p>
62、PINT0: CLR TR0 ;關(guān)計(jì)數(shù)器</p><p> CLR TR1</p><p> CLR ET1</p><p> CLR EA</p><p> CLR EX0</p><p&g
63、t; MOV 44H,TL0 ;將計(jì)數(shù)值移入處理單元</p><p> MOV 45H,TH0</p><p> SETB 00H ;接收成功標(biāo)志</p><p><b> RETI</b></p><p> ※※※※※※顯示程序※※※※※
64、※</p><p> ?。?0H為最高位,43H為最低位,先掃描高位</p><p> DISPLAY: MOV R1,#40H;G</p><p> MOV R5,#0E7H;G</p><p> PLAY: MOV A,R5</p><
65、;p> MOV P0,#0FEH</p><p> MOV P2,A</p><p> MOV @R1</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p
66、> MOV P0,A</p><p> LCALL DL1MS</p><p> INC R1</p><p> MOV A,R5</p><p> JNB ACC.0,ENDOUT;G</p><p>
67、RR A</p><p> MOV R5,A</p><p> AJMP PLAY</p><p> ENDOUT: MOV P2,#0FEH</p><p> MOV P0,#0FEH</p><p>
68、;<b> RET</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,</p><p> 0FEH,88H,0BFH</p><p> ;共陽(yáng)段碼表 “0”,“1”,“2”,“3”,“4
69、”,“5”,“6”,“7”,“8”,“9”,</p><p> “不亮”,“A”,“-”</p><p> ※※※※※※延時(shí)程序※※※※※※</p><p> DL1MS: MOV R6, #14H</p><p> DL1: MOV R7, #19H</p>&
70、lt;p> DL2: DJNZ R7, DL2</p><p> DJNZ R6, DL1</p><p><b> RET</b></p><p> ※※※※※※距離計(jì)算程序※※※※※※</p><p> Work: PUSH A
71、CC</p><p> PUSH PSW</p><p> PUSH B</p><p> MOV PSW, #18h</p><p> MOV R3, 45H</p><p> MOV R2, 44H</p
72、><p> MOV R1, #00D</p><p> MOV R0, #17D</p><p> LCALL MUL2BY2</p><p> MOV R3, #03H</p><p> MOV R2, #0E8H&
73、lt;/p><p> LCALL DIV4BY2</p><p> LCALL DIV4Y2</p><p> MOV 400H, R4</p><p> MOV A, 40H</p><p> JNZ JJ0</p
74、><p> MOV 40H,#0AH ;最高位為0,不點(diǎn)亮</p><p> JJ0: MOV A, R0</p><p> MOV R4, A</p><p> MOV A, R1</p><p> MOV
75、 R5, A</p><p> MOV R3, #00D</p><p> MOV R2, #100D</p><p> LCALL DIV4BY2</p><p> MOV 41H, R4</p><p> MO
76、V A, 41H</p><p> JNZ JJ1</p><p> MOV A, 40H ;次高位為0,先看最高位是否為不亮</p><p> SUBB A, #0AH</p><p> JNZ JJ1</p>
77、<p> MOV 41H, #0AH ;最高位不亮,次高位也不亮</p><p> JJ1: M0V A, R0</p><p> MOV R4, A</p><p> MOV A, R1</p><p> MOV
78、 R5, A</p><p> MOV R3, #00D</p><p> MOV R2, #10D</p><p> LCALL DIV4BY2</p><p> MOV 42H, R4</p><p>
79、 MOV A, 42H</p><p> JNZ JJ2</p><p> MOV A, 41H ;次次高位為0,先看次高位是否為不亮</p><p> SUBB A, #0AH</p><p> JNZ JJ2</
80、p><p> MOV 42H, #0AH ;次高位不亮,次次高位也不亮</p><p> JJ2: MOV 43H, R0</p><p> POP B</p><p> POP PSW</p><p> P
81、OP ACC</p><p><b> RET</b></p><p> ※※※※※※2字節(jié)無(wú)符號(hào)數(shù)乘法程序※※※※※※</p><p> R7R6R5R4≦R3R2×R1R0</p><p> MUL2BY2: CLR A</p>&
82、lt;p> MOV R7,A</p><p> MOV R6,A</p><p> MOV R5,A</p><p> MOV R4,A</p><p> MOV 46H,#10H</p>&l
83、t;p> MULLOOP1: CLR C</p><p> MOV A,R4</p><p> RLC A</p><p> MOV R4,A</p><p> MOV A,R5</p>&
84、lt;p> RLC A</p><p> MOV R5,A</p><p> MOV A,R6</p><p> RLC A</p><p> MOV R6,A</p><p> M
85、OV A,R7</p><p> RLC A</p><p> MOV R7,A</p><p> MOV A,R0</p><p> RLC A</p><p> MOV
86、 R0,A</p><p> MOV A,R1</p><p> RLC A</p><p> MOV R1,A</p><p> JNC MULLOOP2</p><p> MOV
87、A,R4</p><p> ADD A,R2</p><p> MOV R4,A</p><p> MOV A,R5</p><p> ADDC A,R3</p><p> MOV R5,A&
88、lt;/p><p> MOV A,R6</p><p> ADDC A,#00H</p><p> MOV R6,A</p><p> MOV A,R7</p><p> ADDC A,#00H&l
89、t;/p><p> MOV R7,A</p><p> MULLOOP2: DJNZ 46H,MULLOOP1</p><p><b> RET</b></p><p> ※※※※※※4字節(jié)/2字節(jié)無(wú)符號(hào)數(shù)除法程序※※※※※※</p><p>
90、 ;R7R6R5R4/R3R2=R7R6R5R4(商)…R1R0(余數(shù))</p><p> DIV4BY2: MOV 46H,#20H</p><p> MOV R0,#00H</p><p> MOV R1,#00H</p><p> DIVLOOP1:
91、 MOV A,R4</p><p> RLC A</p><p> MOV R4,A</p><p> MOV A,R5</p><p> RLC A </p><p> MOV
92、 R5,A</p><p> MOV A,R6</p><p> RLC A</p><p> MOV R6,A</p><p> MOV A,R7</p><p> RLC A&
93、lt;/p><p> MOV R7,A</p><p> MOV A,R0</p><p> RLC R0</p><p> MOV R0,A</p><p> MOV A,R1</p>&
94、lt;p> RLC A</p><p> MOV R1,A</p><p> CLR C</p><p> MOV A,R0</p><p> SUBB A,R2</p><p> MOV
95、 B,A</p><p> MOV A,R1</p><p> SUBB A,R3</p><p> JC DIVLOOP2</p><p> MOV R0,B</p><p> MOV
96、 R1,A</p><p> DIVLOOP2: CPL C</p><p> DJNZ 46H,DIVLOOP1</p><p> MOV A,R4</p><p> RLC A</p><p> MOV
97、 R4,A</p><p> MOV A,R5</p><p> RLC A </p><p> MOV R5,A</p><p> MOV A,R6</p><p> RLC
98、 A</p><p> MOV R6,A</p><p> MOV A,R7 </p><p> RLC A</p><p> MOV R7,A</p>&
99、lt;p><b> RET</b></p><p> END ;程序結(jié)束</p><p><b> 6.2電路圖</b></p><p><b> 超聲波發(fā)射電路</b></p><p><
100、b> 超聲波接收電路</b></p><p><b> 六、設(shè)計(jì)的體會(huì)</b></p><p> 通過(guò)這次單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以是在原有的基礎(chǔ)上進(jìn)行改進(jìn),使之功能不斷完善,成為真己的東西。設(shè)計(jì)結(jié)果能夠符合題意,成
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于藍(lán)牙遙控智能小車設(shè)計(jì)
- 基于藍(lán)牙遙控的智能小車設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于安卓手機(jī)藍(lán)牙控制的智能小車設(shè)計(jì)
- 藍(lán)牙智能遙控小車畢業(yè)設(shè)計(jì)論文
- 基于藍(lán)牙的無(wú)線鼠標(biāo)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 基于藍(lán)牙的無(wú)線鼠標(biāo)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 基于藍(lán)牙遙控的多功能智能小車設(shè)計(jì)與制作-高等??茖W(xué)校畢業(yè)設(shè)計(jì)論文
- 基于安卓手機(jī)藍(lán)牙控制的智能小車設(shè)計(jì)
- 基于安卓手機(jī)藍(lán)牙控制的智能小車設(shè)計(jì)
- 基于藍(lán)牙的多功能無(wú)線鼠標(biāo)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 手機(jī)藍(lán)牙智能小車控制
- 基于藍(lán)牙技術(shù)的家庭智能控制系統(tǒng)設(shè)計(jì)文獻(xiàn)綜述畢業(yè)論文
- 基于藍(lán)牙技術(shù)的家庭智能控制系統(tǒng)設(shè)計(jì)文獻(xiàn)綜述
- 課程設(shè)計(jì)--基于藍(lán)牙通信和上位機(jī)控制的智能風(fēng)扇設(shè)計(jì)
- 基于藍(lán)牙控制的LED智能音響燈的設(shè)計(jì)與制造.pdf
- 基于藍(lán)牙的車輛智能管控系統(tǒng)設(shè)計(jì).pdf
- 基于藍(lán)牙的智能康復(fù)病床控制器開(kāi)發(fā).pdf
- 物聯(lián)網(wǎng)論文-基于藍(lán)牙技術(shù)的智能臺(tái)燈設(shè)計(jì)
- 智能小車畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)控制的智能電動(dòng)小車
評(píng)論
0/150
提交評(píng)論