版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> ********* 大 學(xué) ****學(xué) 院</p><p> 本 科 生 課 程 設(shè) 計(jì)</p><p> 課 程 名 稱: 單片機(jī)課程設(shè)計(jì) </p><p> 題 目: 超聲波測(cè)距儀 </p><p> 專 業(yè) 班 級(jí): 08 電信
2、 </p><p> 學(xué) 生 姓 名: ******* </p><p> 學(xué) 生 學(xué) 號(hào): ******* </p><p> 日 期: 2011年6月14 </p><p> 指 導(dǎo) 教 師:
3、 ******* </p><p> 指導(dǎo)教師簽字: </p><p> 年 月 日</p><p><b> 目 錄</b></p><p><b> 目 錄I</b></p><p>&
4、lt;b> 摘 要I</b></p><p> AbstractII</p><p><b> 1 緒論1</b></p><p><b> 1.1設(shè)計(jì)背景1</b></p><p><b> 1.2設(shè)計(jì)目的1</b></p>
5、<p> 1.3 基本原理1</p><p> 2 設(shè)計(jì)方案簡(jiǎn)述2</p><p><b> 2.1方案討論2</b></p><p><b> 2.2方案論證2</b></p><p><b> 3 詳細(xì)設(shè)計(jì)3</b></p>
6、<p><b> 3.1硬件設(shè)計(jì)3</b></p><p> 3.1.1 AT89S52外圍電路設(shè)計(jì)3</p><p> 3.1.2數(shù)碼管顯示電路設(shè)計(jì)4</p><p> 3.1.3超聲波發(fā)射電路設(shè)計(jì)5</p><p> 3.1.4超聲波接收6</p><p><
7、;b> 3.2軟件部分7</b></p><p> 3.2.1系統(tǒng)軟件設(shè)計(jì)說明7</p><p> 3.2.2編程語言的選擇7</p><p> 3.2.3超聲波測(cè)距儀的算法設(shè)計(jì)7</p><p> 3.2.4主程序流程圖8</p><p> 3.2.5超聲波發(fā)生子程序和超聲波接
8、收中斷程序9</p><p> 3.2.6系統(tǒng)的軟硬件的調(diào)試10</p><p> 4 設(shè)計(jì)結(jié)果及分析11</p><p><b> 5 總結(jié)12</b></p><p><b> 參考文獻(xiàn)13</b></p><p><b> 附錄114&l
9、t;/b></p><p><b> 附錄22</b></p><p><b> 摘 要</b></p><p> 由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量。利用超聲波檢測(cè)距離,設(shè)計(jì)比較方便,計(jì)算處理也較簡(jiǎn)單,并且在測(cè)量精度方面也能達(dá)到日常使用的要求。</
10、p><p> 設(shè)計(jì)的超聲波測(cè)距器利用超聲波傳輸中距離與時(shí)間的關(guān)系,采用以AT89S52單片機(jī)為核心進(jìn)行控制及數(shù)據(jù)處理,最終完成低成本、高精度、微型化數(shù)字顯示超聲波測(cè)距器的硬件電路和軟件設(shè)計(jì)。該測(cè)距器主要由超聲波發(fā)射器電路、超聲波接收器電路、單片機(jī)控制電路、系統(tǒng)電源電路及顯示電路構(gòu)成。整個(gè)程序采用模塊化設(shè)計(jì),由主程序、發(fā)射子程序、接收子程序、顯示子程序等模塊組成。各探頭的信號(hào)經(jīng)單片機(jī)綜合分析處理,實(shí)現(xiàn)超聲波測(cè)距器的各
11、種功能。在此基礎(chǔ)上設(shè)計(jì)了系統(tǒng)的總體方案,最后通過硬件和軟件實(shí)現(xiàn)了各個(gè)功能模塊。</p><p> 經(jīng)過實(shí)驗(yàn)表明,這套系統(tǒng)軟硬件設(shè)計(jì)合理、抗干擾能力強(qiáng)、實(shí)時(shí)性良好,經(jīng)過系統(tǒng)擴(kuò)展和升級(jí),可應(yīng)用于汽車倒車、建筑施工工地以及一些工業(yè)現(xiàn)場(chǎng)的位置監(jiān)控,還能有效地解決汽車倒車,液位、水深、管道長(zhǎng)度的測(cè)量問題。</p><p> 關(guān)鍵詞:超聲波;AT89S52;數(shù)碼管;測(cè)距</p>&l
12、t;p><b> Abstract</b></p><p> The strong point of ultrasonic energy consumption is slow, the spread in the medium distance, and therefore frequently used ultrasonic distance measurement. Dist
13、ance using ultrasonic testing, the design is more convenient, computing is also relatively simple, and precision in the measurement can achieve the requirements of daily use.</p><p> Design of ultrasonic di
14、stance measurement device using ultrasonic transmission distance of time, with the AT89S52 microcontroller as the core for control and data processing, the final completion of low-cost, high precision, miniature digital
15、display ultrasonic ranging device hardware and software design . The probe by the single chip integrated analysis of signal processing, and ultrasonic ranging device features. On this basis, the overall design of the sys
16、tem program, and finally achieved thr</p><p> Experimental results show that the system software and hardware designed, anti-interference ability, good real-time, after the system expansion and upgrades, ca
17、n be applied to car parking, construction sites and the location of some industrial-site monitoring, but also effectively solve the vehicle Reverse, liquid level, water depth, pipeline length measurements.</p><
18、;p> Key words: ultrasonic; AT89S52; digital; location</p><p><b> 1 緒論</b></p><p><b> 1.1設(shè)計(jì)背景</b></p><p> 隨著科學(xué)技術(shù)的快速發(fā)展,超聲波將在測(cè)距儀中的應(yīng)用越來越廣。但就目前技術(shù)水平來說,人們可以具
19、體利用的測(cè)距技術(shù)還十分有限,因此,這是一個(gè)正在蓬勃發(fā)展而又有無限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。展望未來,超聲波測(cè)距儀作為一種新型的非常重要有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會(huì)需求,如聲納的發(fā)展趨勢(shì)基本為:研制具有更高定位精度的被動(dòng)測(cè)距聲納,以滿足水中武器實(shí)施全隱蔽攻擊的需要;繼續(xù)發(fā)展采用低頻線譜檢測(cè)的潛艇拖曳線列陣聲納,實(shí)現(xiàn)超遠(yuǎn)程的被動(dòng)探測(cè)和識(shí)別;研制更適合于淺海工作的潛艇聲納,特別是
20、解決淺海水中目標(biāo)識(shí)別問題;大力降低潛艇自噪聲,改善潛艇聲納的工作環(huán)境。無庸置疑,未來的超聲波測(cè)距儀將與自動(dòng)化智能化接軌,與其他的測(cè)距儀集成和融合,形成多測(cè)距儀。隨著測(cè)距儀的技術(shù)進(jìn)步,測(cè)距儀將從具有單純判斷功能發(fā)展到具有學(xué)習(xí)功能,最終發(fā)展到具有創(chuàng)造力。在新的世紀(jì)里,面貌一新的測(cè)距儀將發(fā)揮更大的作用。</p><p><b> 1.2設(shè)計(jì)目的</b></p><p>
21、 通過該課程設(shè)計(jì)使學(xué)生進(jìn)一步了解和加深智能化儀器設(shè)計(jì)的一般原則;熟練掌握智能化儀器與裝置的軟、硬件設(shè)計(jì)方法;掌握儀器的軟件調(diào)試及軟硬件聯(lián)合統(tǒng)調(diào)方法與技能。掌握儀器的接口技術(shù)和程控方法;熟練掌握儀表總線的工作原理、設(shè)計(jì)步驟、編程及調(diào)試;掌握C語言設(shè)計(jì)軟件的編程與調(diào)試方法;掌握網(wǎng)絡(luò)化儀器設(shè)計(jì)編程與調(diào)試方法。</p><p><b> 1.3 基本原理</b></p><p&
22、gt; 超聲波傳感器的工作原理是陶瓷的壓電效應(yīng)。超聲波傳感器在測(cè)量過程中,超聲測(cè)距器是根據(jù)超聲波遇到障礙物反射回來的特性進(jìn)行測(cè)量的。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即中斷停止計(jì)時(shí)。 通過不斷檢測(cè)產(chǎn)生波發(fā)射后遇到障礙物所反射的回波,從而測(cè)出發(fā)射超聲波和接收到回波的時(shí)間差△T,然后求出距離L。</p><p> 基本的
23、測(cè)距公式為:L=(△T/2)*V 式中 L——被測(cè)距離;△T——發(fā)射波和反射波之間的時(shí)間間隔;V——超聲波在空氣中的聲速,常溫下取為340m/s 。聲速確定后,只要測(cè)出超聲波往返的時(shí)間,即可求得L。 為測(cè)試更精確,鑒于聲波受溫度影響最大,測(cè)距數(shù)據(jù)處理過程可以采用了溫度補(bǔ)償,以提高測(cè)量精度。</p><p><b> 2 設(shè)計(jì)方案簡(jiǎn)述</b></p><p><
24、b> 2.1方案討論</b></p><p> 超聲波測(cè)距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時(shí)間來計(jì)算出傳播距離。實(shí)用的測(cè)距方法有兩種,一種是在被測(cè)距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計(jì);一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測(cè)距儀。此次設(shè)計(jì)采用反射波方式。</p><p> 超聲波發(fā)生器可以分為兩大類:一類是用電氣方
25、式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。電氣方式包括壓電型、電動(dòng)型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前在近距離測(cè)量方面常用的是壓電式超聲波換能器。根據(jù)設(shè)計(jì)要求并綜合各方面因素,本文采用AT89S52單片機(jī)作為控制器,用動(dòng)態(tài)掃描法實(shí)現(xiàn)LED數(shù)字顯示,超聲波驅(qū)動(dòng)信號(hào)用單片機(jī)的定時(shí)器。</p><p> 圖2.1 超聲波測(cè)距器系統(tǒng)設(shè)計(jì)框
26、圖</p><p><b> 2.2方案論證</b></p><p> 測(cè)距儀的分辨率取決于對(duì)超聲波傳感器的選擇。超聲波傳感器是一種采用壓電效應(yīng)的傳感器,常用的材料是壓電陶瓷。由于超聲波在空氣中傳播時(shí)會(huì)有相當(dāng)?shù)乃p,衰減的程度與頻率的高低成正比;而頻率高分辨率也高,故短距離測(cè)量時(shí)應(yīng)選擇頻率高的傳感器,而長(zhǎng)距離的測(cè)量時(shí)應(yīng)用低頻率的傳感器。</p>&l
27、t;p><b> 3 詳細(xì)設(shè)計(jì)</b></p><p><b> 3.1硬件設(shè)計(jì)</b></p><p> 硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測(cè)接收電路四部分。單片機(jī)采用AT89S52,采用12MHz高精度的晶振,以獲得穩(wěn)定時(shí)鐘頻率,減小測(cè)量誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需的40kHz的
28、方波信號(hào),利用外中斷0口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡(jiǎn)單實(shí)用的4位共陽LED數(shù)碼管,位碼用PNP三極管9013驅(qū)動(dòng)。</p><p> 3.1.1 AT89S52外圍電路設(shè)計(jì)</p><p> 單片機(jī)AT89S52作為主控芯片,控制整個(gè)電路的運(yùn)行。單片機(jī)外圍需要一個(gè)復(fù)位電路,復(fù)位電路的功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤消復(fù)位信號(hào)。為可靠起見,電源穩(wěn)
29、定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。該設(shè)計(jì)在電源電壓瞬間下降時(shí)可以使電容迅速放電,可令系統(tǒng)可靠復(fù)位。</p><p> 圖3.1.1 復(fù)位電路圖 圖3.1.2 時(shí)鐘電路</p><p> AT89S52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別為該反向放大器的輸入
30、端和輸出端。這個(gè)反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器。</p><p> 外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1、C2雖然沒有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性。如果使用石英晶體,電容應(yīng)該使用30pF。</p><p> 還可
31、以使用外部時(shí)鐘。這種情況下,外部時(shí)鐘脈沖接XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端, XTAL2應(yīng)懸空。</p><p> 由于外部時(shí)鐘信號(hào)是通過一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以外部時(shí)鐘信號(hào)的占空比沒有特殊要求,但最小高電平持續(xù)時(shí)間和最大低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。</p><p> 3.1.2數(shù)碼管顯示電路設(shè)計(jì)</p><p> 該設(shè)計(jì)中
32、有4個(gè)八段數(shù)碼顯示管,由于單片機(jī)本身端口驅(qū)動(dòng)能力有限,所以,在單片機(jī)AT89S52外圍需要接入4個(gè)三極管來驅(qū)動(dòng)數(shù)碼顯示管。八段數(shù)碼顯示管有兩種,一種是共陽數(shù)碼管,其內(nèi)部是由八個(gè)陽極相連接的發(fā)光二極管組成;另一種是共陰數(shù)碼管,其內(nèi)部是由八個(gè)陰極相連接的發(fā)光二極管組成。二者原理不同但功能相同,本設(shè)計(jì)選用四位共陽極數(shù)碼管。</p><p> 圖3.1.3 數(shù)碼管顯示及其驅(qū)動(dòng)電路</p><p>
33、; 3.1.3超聲波發(fā)射電路設(shè)計(jì)</p><p> 單片機(jī)發(fā)出超聲波測(cè)距是通過不斷檢測(cè)超聲波發(fā)射后遇到障礙物所反射的回波,從而測(cè)出發(fā)射和接收回波的時(shí)間差△T,然后求出距離S=V△T/2,式中的V為超聲波波速。限制該系統(tǒng)的最大可測(cè)距離存在4個(gè)因素:超聲波的幅度、反射的質(zhì)地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對(duì)聲波脈沖的直接接收能力將決定最小的可測(cè)距離。為了增加所測(cè)量的覆蓋范圍、減小測(cè)量誤
34、差,可采用多個(gè)超聲波換能器分別作為多路超聲波發(fā)射/接收的設(shè)計(jì)方法。由于超聲波屬于聲波范圍,其波速V與溫度有關(guān)。</p><p> 測(cè)距系統(tǒng)中的超聲波傳感器采用壓電陶瓷傳感器,因?yàn)槌暡ㄔ诳諝庵袀鞑r(shí)衰減很大,衰減的程度與頻率成正比,但是頻率越高則分辨力也會(huì)越高,頻率為40kHz左右的超聲波在空氣中傳播的效率最佳,工作所需40kHz的脈沖信號(hào),由單片機(jī)執(zhí)行相應(yīng)程序來產(chǎn)生。關(guān)于40KHz信號(hào)的產(chǎn)生,利用單片機(jī)定時(shí)器
35、中斷產(chǎn)生,要特別注意中斷服務(wù)程序的編寫。中斷服務(wù)不能過長(zhǎng),如果過長(zhǎng)單片機(jī)在前一個(gè)中斷服務(wù)程序還沒執(zhí)行完之前又會(huì)有下一個(gè)中斷產(chǎn)生。所以單片機(jī)將會(huì)產(chǎn)生一個(gè)錯(cuò)誤頻率的信號(hào),往往這個(gè)錯(cuò)誤的頻率會(huì)比預(yù)期的值偏低。測(cè)距系統(tǒng)由單片機(jī)系統(tǒng)、超聲波發(fā)射電路和超聲波檢測(cè)接收電路三部分組成。AT89S52輸出超聲波換能器所需的40K方波信號(hào),利用外中斷0口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào), 并實(shí)現(xiàn)對(duì)CX20106接收芯片和TCT40-10系列超聲波轉(zhuǎn)換模塊的
36、控制。</p><p> 超聲波發(fā)射電路原理圖如圖3.6所示。發(fā)射電路主要由反相器4069和超聲波發(fā)射換能器T構(gòu)成,單片機(jī)P1.0端口輸出的40kHz的方波信號(hào)一路經(jīng)一級(jí)反向器后送到超聲波換能器的一個(gè)電極,另一路經(jīng)兩級(jí)反向器后送到超聲波換能器的另一個(gè)電極,用這種推換形式將方波信號(hào)加到超聲波換能器的兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采兩個(gè)反向器并聯(lián),用以提高驅(qū)動(dòng)能力。上位電阻R6、R8一方面可以提高反向器40
37、69輸出高電平的驅(qū)動(dòng)能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩時(shí)間。</p><p> 圖3.1.4 超聲波發(fā)射電路</p><p> 壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內(nèi)部有兩個(gè)壓電晶片和一個(gè)換能板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng)產(chǎn)生超聲波,這時(shí)它就是一個(gè)超聲波發(fā)生器;反之,
38、如果兩電極問未外加電壓,當(dāng)共振板接收到壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內(nèi)部有兩個(gè)壓電晶片和一個(gè)換能板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng)產(chǎn)生超聲波,這時(shí)它就是一個(gè)超聲波發(fā)生器;反之,如果兩電極問未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收換能器。超聲波發(fā)射換能器與接收換能器在結(jié)構(gòu)上稍有不同,
39、使用時(shí)應(yīng)分清器件上的標(biāo)志。</p><p> 3.1.4超聲波接收</p><p> 集成電路CX20106A是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器。考慮到紅外遙控常用的載波頻率38 kHz與測(cè)距的超聲波頻率40 kHz較為接近,可以利用它制作超聲波檢測(cè)接收電路。實(shí)驗(yàn)證明用CX20106A接收超聲波(無信號(hào)時(shí)輸出高電平),具有很好的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)更改
40、電容C8的大小,可以改變接收電路的靈敏度和抗干擾能力。</p><p> 使用CX20106A作為超聲波檢測(cè)接收電路,原理圖如圖3.7所示。CX20106A的第5腳的電阻決定接收的中心頻率,220k的電阻決定了接收的中心頻率為40KHz。CX20106A接收到40KHz的信號(hào)時(shí),會(huì)在第7腳產(chǎn)生一個(gè)低電平下降脈沖,這個(gè)信號(hào)可以接到單片機(jī)的外部中斷引腳作為中斷信號(hào)輸入。R3和C13 是控制CX20106A內(nèi)部放大增
41、益,R5控制帶通濾波器的中心頻率。一般取R3=4.7歐,C13=1Uf.。其余元件按圖3.7取值。OUT_INT當(dāng)收到超聲波是產(chǎn)生一個(gè)下降沿,接到單片機(jī)的外部中斷上。只要通過單片機(jī)來來計(jì)算發(fā)射信號(hào)時(shí)到收到信號(hào)是產(chǎn)生下降沿這段時(shí)間的長(zhǎng)度,再通過數(shù)學(xué)計(jì)算得出當(dāng)前距離,程序?qū)⒋藬?shù)值與設(shè)定的閾值相比較并作出相應(yīng)動(dòng)作。</p><p> 圖3.1.7 超聲波接收電路</p><p><b&g
42、t; 3.2軟件部分</b></p><p> 3.2.1系統(tǒng)軟件設(shè)計(jì)說明</p><p> 進(jìn)行測(cè)量控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)測(cè)量對(duì)象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)測(cè)量控制系統(tǒng)設(shè)計(jì)中占重要地位。對(duì)于本系統(tǒng),軟件設(shè)計(jì)更為重要。</p><p> 在單片機(jī)測(cè)量控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過程控
43、制兩個(gè)基本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波、標(biāo)度變換等。過程控制程序主要是使單片機(jī)按一定的方法進(jìn)行計(jì)算,然后再輸出,以便達(dá)到測(cè)量控制目的。</p><p> 本軟件設(shè)計(jì)主要是對(duì)距離進(jìn)行測(cè)量、顯示。因此,整個(gè)軟件可分為按照硬件電路對(duì)單片機(jī)位定義;發(fā)射子程序;接收子程序;顯示子程序;延時(shí)子程序等。</p><p> 3.2.2編程語言的選擇</p><p>
44、 本設(shè)計(jì)是硬件電路和軟件編程相結(jié)合的設(shè)計(jì)方案,選擇合適的編程語言是一個(gè)重要的環(huán)節(jié)。在單片機(jī)的應(yīng)用系統(tǒng)程序設(shè)計(jì)時(shí),常用的是匯編語言和C語言。匯編語言是一種用文字助記符來表示機(jī)器指令的符號(hào)語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高,而且執(zhí)行速度快。但是不同的CPU,其匯編語言可能有所差異,即依賴于計(jì)算機(jī)硬件,程序可讀性和可移植性比較差。</p><p> C語言是編譯型程序設(shè)計(jì)語言,兼
45、顧高級(jí)語言的特點(diǎn),并具備匯編語言的功能。C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,它支持當(dāng)前程序設(shè)計(jì)中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。此外,C語言程序具有完善的模塊程序結(jié)構(gòu)。C語言執(zhí)行效率沒有匯編語言高,但語言簡(jiǎn)潔,使用方便,靈活,運(yùn)算豐富,表達(dá)化類型多樣化,數(shù)據(jù)結(jié)構(gòu)類型豐富,具有結(jié)構(gòu)化的控制語句,程序設(shè)計(jì)自由度大,有很好的可重用性,可移植性等特點(diǎn)?;贑語言的眾多優(yōu)點(diǎn)本設(shè)計(jì)選擇此語言來編程。</p><p> 3
46、.2.3超聲波測(cè)距儀的算法設(shè)計(jì)</p><p> 圖3.2.1示意了超聲波測(cè)距的原理,即超聲波發(fā)生器T在某一時(shí)刻發(fā)出一個(gè)超聲渡信號(hào),當(dāng)這個(gè)超聲波遇到被測(cè)物體后反射回來,就被超聲波接收器R所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。</p><p> 距離的計(jì)算公式為:L=S/2=(V×△T)/2
47、 (1)</p><p> 其中,L為被測(cè)物與測(cè)距儀的距離,s為聲波的來回的路程,V為聲速,△T為聲波來回所用的時(shí)間。</p><p> 圖3.2.1 超聲波測(cè)距原理圖</p><p> 由于超聲波也是一種聲波,其聲速V與溫度有關(guān),表3.1列出了幾種不同溫度下的超聲波聲速。在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速是基本不變的
48、。如果測(cè)距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?。聲速確定后,只要測(cè)得超聲波往返的時(shí)間,即可求得距離。</p><p> 表3.1 不同溫度下超聲波聲速表</p><p> 在啟動(dòng)發(fā)射電路的同時(shí)啟動(dòng)單片機(jī)內(nèi)部的定時(shí)器T0,利用定時(shí)器的計(jì)數(shù)功能記錄超聲波發(fā)射的時(shí)間和收到反射波的時(shí)間。當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生一個(gè)負(fù)跳變,在INT0或INT1端產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),單
49、片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷服務(wù)子程序,讀取時(shí)間差,計(jì)算距離。</p><p> 3.2.4主程序流程圖</p><p> 軟件分為兩部分,主程序和中斷服務(wù)程序。主程序完成初始化工作、各路超聲波發(fā)射和接收順序的控制。外部中斷服務(wù)子程序主要完成時(shí)間值的讀取、距離計(jì)算、結(jié)果的輸出等工作。</p><p> 圖3.2.2 主程序 圖3.2
50、.3定時(shí)中斷服務(wù)子程序 圖3.2.4 外部中斷服務(wù)子程序</p><p> 主程序首先是對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位定時(shí)計(jì)數(shù)器模式。置位總中斷允許位EA并給顯示端口P1和P3清0。然后調(diào)用超聲波發(fā)生子程序送出一個(gè)超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時(shí)約0.1 ms(這也就是超聲波測(cè)距儀會(huì)有一個(gè)最小可測(cè)距離的原因)后,才打開外中斷0接收返回的超聲波信
51、號(hào)。由于采用的是12 MHz的晶振,計(jì)數(shù)器每計(jì) 一個(gè)數(shù)就是1μs,當(dāng)主程序檢測(cè)到接收成功的標(biāo)志位后,將計(jì)數(shù)器T0中的數(shù)(即超聲波來回所用的時(shí)間)按式(2)計(jì)算,即可得被測(cè)物體與測(cè)距儀之間的距離,設(shè)計(jì)時(shí)取20℃時(shí)的聲速為344 m/s則有:L=(V×△T)/2=172T0/10000cm (2)</p><p> 測(cè)出距離后結(jié)果將以十進(jìn)制BCD碼方式送往LED
52、顯示約0.5s,然后再發(fā)超聲波脈沖重復(fù)測(cè)量過程。</p><p> 3.2.5超聲波發(fā)生子程序和超聲波接收中斷程序</p><p> 超聲波發(fā)生子程序的作用是通過P1.0端口發(fā)送2個(gè)左右超聲波脈沖信號(hào)(頻率約40kHz的方波),脈沖寬度為12μs左右,同時(shí)把計(jì)數(shù)器T0打開進(jìn)行計(jì)時(shí)。超聲波發(fā)生子程序較簡(jiǎn)單,但要求程序運(yùn)行準(zhǔn)確,所以采用C語言編程。</p><p>
53、 超聲波測(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。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測(cè)到超聲波返回信號(hào),則定時(shí)器T0溢出中斷將外中斷0關(guān)閉,并將測(cè)距成功標(biāo)志字賦值2以表示此次測(cè)距不成功。</p><p> 3.2.6系統(tǒng)的軟硬件的調(diào)試</p><p> 超
54、聲波發(fā)射和接收采用Φ15的超聲波換能器TCT40-10F1(T發(fā)射)和TCT40-10S1(R接收),中心頻率為40kHz,安裝時(shí)應(yīng)保持兩換能器中心軸線平行并相距4~8cm,其余元件無特殊要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。根據(jù)測(cè)量范圍要求不同,可適當(dāng)調(diào)整與接收換能器并接的濾波電容C4的大小,以獲得合適的接收靈敏度和抗干擾能力。</p><p> 硬件電路制作完成并調(diào)試好后,便可將程
55、序編譯好下載到單片機(jī)試運(yùn)行。根據(jù)實(shí)際情況可以修改超聲波發(fā)生子程序每次發(fā)送的脈沖寬度和兩次測(cè)量的間隔時(shí)間,以適應(yīng)不同距離的測(cè)量需要。根據(jù)所設(shè)計(jì)的電路參數(shù)和程序,測(cè)距儀能測(cè)的范圍為0.10~5.00m,測(cè)距儀最大誤差不超過1cm。系統(tǒng)調(diào)試完后應(yīng)對(duì)測(cè)量誤差和重復(fù)一致性進(jìn)行多次實(shí)驗(yàn)分析,不斷優(yōu)化系統(tǒng)使其達(dá)到實(shí)際使用的測(cè)量要求。</p><p><b> 4 設(shè)計(jì)結(jié)果及分析</b></p>
56、;<p> 設(shè)計(jì)的最終結(jié)果是使超聲波測(cè)距儀能夠產(chǎn)生超聲波,實(shí)現(xiàn)超聲波的發(fā)送與接收,從而實(shí)現(xiàn)利用超聲波方法測(cè)量物體間的距離,以數(shù)字的形式顯示測(cè)量距離。</p><p> 它的硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、系統(tǒng)電源、超聲波發(fā)射電路和超聲波檢測(cè)接收電路四部分。單片機(jī)采用AT89S52,采用12MHz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測(cè)量誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需
57、的40kHz的方波信號(hào),利用外中斷0口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡(jiǎn)單實(shí)用的4位共陽LED數(shù)碼管,段碼用單片機(jī)直接驅(qū)動(dòng),位碼用NPN三極管9013驅(qū)動(dòng)。實(shí)現(xiàn)測(cè)距,并且在數(shù)碼管上顯示距離。。</p><p> 超聲波測(cè)距器的軟件設(shè)計(jì)主要由主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及顯示子程序組成。 超聲波測(cè)距的算法設(shè)計(jì)原理為超聲波發(fā)生器T在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波遇到被測(cè)物體后
58、反射回來,就被超聲波接收器R所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。</p><p> 經(jīng)過實(shí)驗(yàn)表明,這套系統(tǒng)軟硬件設(shè)計(jì)合理、抗干擾能力強(qiáng)、實(shí)時(shí)性良好,實(shí)驗(yàn)結(jié)果完全符合預(yù)期要求。</p><p><b> 5 總結(jié)</b></p><p> 這幾周的方向課程設(shè)計(jì)分為兩個(gè)部分
59、:硬件制作和軟件設(shè)計(jì)。學(xué)院出于這樣安排也是基于一些現(xiàn)實(shí)的原因:隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,。課本上的理論知識(shí)無法滿足實(shí)際生活中工程項(xiàng)目的開發(fā)需要,而我們平時(shí)又缺乏工程實(shí)踐。課程設(shè)計(jì)過程是培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)實(shí)際工作能力的具體訓(xùn)練和考察過程。所以安排了我們進(jìn)行了這一次硬件制作和軟件設(shè)計(jì)的課程設(shè)計(jì)。</p><
60、p> 前期我們主要是進(jìn)行硬件的設(shè)計(jì)制作與焊接,由于我們以前做過很多硬件焊接與制作相關(guān)的練習(xí),所以焊接這一塊兒我們并沒有遇到太多問題。這一塊兒主要是得耐心細(xì)致。需要注意各個(gè)輸入、輸出引腳,因?yàn)槊總€(gè)引腳都是不一樣的,只有讓各個(gè)引腳互相對(duì)應(yīng),才能得出準(zhǔn)確的結(jié)果,任何一點(diǎn)小的誤差都不可能得出正確的運(yùn)行結(jié)果。</p><p> 回顧起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,的確,在這幾個(gè)星期中,可以說得是苦多于甜,但是
61、可以學(xué)到很多很多的的東西,不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次的課程設(shè)計(jì)作品的制作讓我對(duì)單片機(jī)的理論有了更加深入的了解,同時(shí)在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識(shí)與實(shí)際的應(yīng)用存在著不小的差距,書本上的知識(shí)很多都是理想化后的結(jié)論,忽略了很多實(shí)際的因素,或者涉及的不全面,可在實(shí)際的應(yīng)用時(shí)這些是不能被忽略的,我們不得不考慮這方面的問題,這讓我們無法根據(jù)書上的理論就輕易得到預(yù)想中的結(jié)果,有時(shí)結(jié)果甚至
62、很差別很大。在設(shè)計(jì)的過程中也遇到過很多問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對(duì)C語言掌握得不全面等等。這次的課程設(shè)計(jì)讓我受益匪淺,無論從知識(shí)上還是其他的各個(gè)方面。上課時(shí)候的學(xué)習(xí)只是從理論的角度去理解枯燥乏味。但在課程設(shè)計(jì)中使用了單片機(jī)及其系統(tǒng)進(jìn)行實(shí)際項(xiàng)目的開發(fā)。能夠理論聯(lián)系實(shí)際的學(xué)習(xí)
63、,開闊了眼界,提高了單片機(jī)知識(shí)的理</p><p><b> 參考文獻(xiàn)</b></p><p> 1.謝自美. 電子線路設(shè)計(jì)-實(shí)驗(yàn)-測(cè)試[M] .武漢:華中科技大學(xué)出版社, 2000</p><p> 2.樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京航天航空大學(xué)出版社,2007</p><p> 3.張齊,朱寧
64、西.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)[M].電子工業(yè)出版社,2010</p><p> 4.周新華.手把手叫你學(xué)單片機(jī)C程序設(shè)計(jì)[M].北京航天航空大學(xué)出版社,2009</p><p><b> 附錄1</b></p><p> 超聲測(cè)距器單片機(jī)程序(部分)</p><p> #include <reg51.h>
65、;</p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #define ulong unsigned long</p><p> extern void cs_t(void);</p><p> ex
66、tern void delay(uint);</p><p> extern void display(uchar*);</p><p> data uchar testok;</p><p><b> /*主程序*/</b></p><p> void main(void)</p><p&g
67、t;<b> {</b></p><p> data uchar dispram[5];</p><p> data uint i;</p><p> data ulong time;</p><p> P0 = 0xff;</p><p> P2 = 0xff;</p>
68、<p> TMOD = 0x11;</p><p> IE = 0x80;</p><p><b> while (1)</b></p><p><b> {</b></p><p><b> cs_t();</b></p><p>
69、;<b> delay(1);</b></p><p> testok = 0;</p><p><b> EX0 = 1;</b></p><p><b> ET0 = 1;</b></p><p> while (!testok) display(dispram)
70、;</p><p> if (1 == testok)</p><p><b> {</b></p><p> time = TH0;</p><p> time = (time<<8) | TL0;</p><p> time *=172;</p><p
71、> time /= 10000;</p><p> dispram[0] = (uchar) (time % 10);</p><p> time /= 10;</p><p> dispram[1] = (uchar) (time % 10);</p><p> time /= 10;</p><p>
72、; dispram[2] = (uchar) (time % 10);</p><p> dispram[3] = (uchar) (time / 10);</p><p> if (0 == dispram[3]) dispram[3] = 17;</p><p><b> } else</b></p><p>
73、;<b> {</b></p><p> dispram[0] = 16;</p><p> dispram[1] = 16;</p><p> dispram[2] = 16;</p><p> dispram[3] = 16;</p><p><b> }</b&g
74、t;</p><p> for (i=0; i<300; i++) display(dispram);</p><p><b> }</b></p><p><b> }</b></p><p><b> //</b></p><p>
75、/*超聲接收程序(外中斷0)*/</p><p> void cs_r(void) interrupt 0</p><p><b> {</b></p><p><b> TR0 = 0;</b></p><p><b> ET0 = 0;</b></p>
76、<p><b> EX0 = 0;</b></p><p> testok = 1;</p><p><b> }</b></p><p> /*超時(shí)清除程序(內(nèi)中斷T0)*/</p><p> void overtime(void) interrupt 1</p>
77、<p><b> {</b></p><p><b> EX0 = 0;</b></p><p><b> TR0 = 0;</b></p><p><b> ET0 = 0;</b></p><p> testok = 2;<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)超聲波測(cè)距儀設(shè)計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--超聲波測(cè)距儀的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)超聲波測(cè)距儀的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的超聲波測(cè)距儀
- 基于單片機(jī)的超聲波測(cè)距儀課程設(shè)計(jì)
- 課程設(shè)計(jì)--- 基于51單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)
- 基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)
- 基于51單片機(jī)超聲波測(cè)距儀設(shè)計(jì)
- 超聲波測(cè)距儀課程設(shè)計(jì)
- 超聲波測(cè)距儀課程設(shè)計(jì)
- 基于單片機(jī)的超聲波測(cè)距儀
- 基于51單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-超聲波測(cè)距
- 單片機(jī)課程設(shè)計(jì)--超聲波測(cè)距
- 單片機(jī)課程設(shè)計(jì)-超聲波測(cè)距
- 基于51單片機(jī)超聲波測(cè)距儀
- 超聲波測(cè)距儀課程設(shè)計(jì) (2)
- 基于單片機(jī)的超聲波測(cè)距儀畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的超聲波測(cè)距儀設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)控制超聲波測(cè)距儀畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論