超聲波模塊DYPME和c的數(shù)據(jù)資料_第1頁
超聲波模塊DYPME和c的數(shù)據(jù)資料_第2頁
超聲波模塊DYPME和c的數(shù)據(jù)資料_第3頁
超聲波模塊DYPME和c的數(shù)據(jù)資料_第4頁
超聲波模塊DYPME和c的數(shù)據(jù)資料_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、超聲波模塊DYP-ME007和單片機(jī)的使用隨著科學(xué)技術(shù)的快速發(fā)展,超聲波將在科學(xué)技術(shù)中的應(yīng)用越來越廣。本設(shè)計(jì)對(duì)超聲波傳感器測(cè)距的可能性進(jìn)行了理論分析,利用單片機(jī)以及超聲波在介質(zhì)的傳播特性等知識(shí),采用DS18B20作為溫度反饋,在此基礎(chǔ)上設(shè)計(jì)了系統(tǒng)的總體方案,最后通過硬件和軟件實(shí)現(xiàn)了各個(gè)功能模塊。為了保證超聲波測(cè)距模塊的可靠性和穩(wěn)定性,其本身采取了相應(yīng)的抗干擾措施。該測(cè)距儀最大測(cè)量距離是80cm,最小測(cè)量距離是4cm,精確度是3cm。這套系統(tǒng)軟硬件設(shè)計(jì)合理、抗干擾能力強(qiáng)且實(shí)時(shí)性良好,經(jīng)過系統(tǒng)擴(kuò)展和升級(jí),可以廣泛應(yīng)用于工業(yè)生產(chǎn)、醫(yī)學(xué)檢查、日常生活、無人駕駛汽車、自動(dòng)作業(yè)現(xiàn)場(chǎng)的自動(dòng)引導(dǎo)小車及機(jī)器人等

2、。關(guān)鍵詞:超聲波測(cè)距;單片機(jī);溫度傳感器目 錄第一章 緒論11.1 選題背景及目的11.2 超聲波介紹及其應(yīng)用領(lǐng)域11.3 本設(shè)計(jì)的主要研究?jī)?nèi)容21.3.1 超聲波測(cè)距的原理21.3.2 設(shè)計(jì)的主要內(nèi)容3第二章 超聲波測(cè)距系統(tǒng)42.2 單片機(jī)AT89C51的特性52.3 超聲波探頭介紹6第三章 超聲波測(cè)距硬件電路設(shè)計(jì)83.1超聲波測(cè)距系統(tǒng)電路總體設(shè)計(jì)方案83.2 超聲波測(cè)距系統(tǒng)電路各部分模塊的設(shè)計(jì)93.2.1 超聲波發(fā)射接收電路的設(shè)計(jì)93.2.2 溫度補(bǔ)償電路的設(shè)計(jì)113.2.3 顯示模塊的設(shè)計(jì)12第四章 系統(tǒng)軟件設(shè)計(jì)144.1 顯示子程序154.2 外部中斷子程序164.3 測(cè)量溫度子程序1

3、7第一章 緒論1.1 選題背景及目的1.2 超聲波介紹及其應(yīng)用領(lǐng)域當(dāng)物體振動(dòng)時(shí)會(huì)發(fā)出聲音。科學(xué)家們將每秒鐘振動(dòng)的次數(shù)稱為聲音的頻率,它的單位是赫茲。人類耳朵能聽到的聲波頻率為2020K赫茲。當(dāng)聲波的振動(dòng)頻率大于20K赫茲或小于20赫茲時(shí),人們便聽不見了。因此,把頻率高于20K赫茲的聲波稱為“超聲波”。通常用于醫(yī)學(xué)診斷的超聲波頻率為15兆赫。超聲波具有方向性好,穿透能力強(qiáng),易于獲得較集中的聲能,在水中傳播距離遠(yuǎn)等特點(diǎn)??捎糜跍y(cè)距,測(cè)速,清洗,焊接和碎石等。在醫(yī)學(xué),軍事,工業(yè)以及農(nóng)業(yè)上有明顯的作用。理論研究表明,在振幅相同的條件下,一個(gè)物體振動(dòng)的能量與振動(dòng)頻率成正比,超聲波在介質(zhì)中傳播時(shí),介質(zhì)質(zhì)點(diǎn)

4、振動(dòng)的頻率很高,因而能量很大。在我國(guó)北方干燥的冬季,如果把超聲波通入水罐中,劇烈的振動(dòng)會(huì)使罐中的水破碎成許多小霧滴,再用小風(fēng)扇把霧滴吹入室內(nèi),就可以增加室內(nèi)空氣濕度.這就是超聲波加濕器的原理。應(yīng)用領(lǐng)域1機(jī)械行業(yè):防銹油脂的去除;量具刃具的清洗;機(jī)械零部件的除油除銹發(fā)動(dòng)機(jī)、化油器及汽車零件的清洗,過濾器及濾網(wǎng)的疏通清洗等等。 2表面處理行業(yè):電鍍前的除油除銹;離子鍍前清洗;磷化處理;清除積炭,氧化皮,拋光膏,金屬工件表面活化處理等等。 3醫(yī)療行業(yè):醫(yī)療器械的清洗,消毒,殺菌,實(shí)驗(yàn)器皿的清洗等等。4 儀器儀表行業(yè):精密零件的高清潔度清洗,裝配前清洗等等。5 機(jī)電電子行業(yè):印刷線路板除松香,焊斑;高

5、壓觸點(diǎn),接線柱等機(jī)械電子零件的清洗等等。6 光學(xué)行業(yè):光學(xué)器件的除油、除汗和清灰等。7 半導(dǎo)體行業(yè):半導(dǎo)體晶片的高清潔度清洗。8 科教文化:化學(xué)生物等實(shí)驗(yàn)器皿的清洗和除垢。9 鐘表首飾:清除油泥、灰塵、氧化層和拋光膏等。10石油化工行業(yè):金屬濾網(wǎng)的清洗疏通、化工容器和交換器的清洗等等。11紡織印染行業(yè):清洗紡織錠子和噴絲板等。12其它:超聲清洗:清除污染物,疏通細(xì)小孔洞,如:清潔印章,古董修復(fù)和汽車電噴頭疏通等。超聲攪拌:加快溶解,提高均勻度,加快物理化學(xué)反應(yīng),防止過腐蝕和加速油水乳化,如:溶劑染料混合和超聲磷化等。超聲凝聚:加速沉淀,分離,如:種子浮選和飲料除渣等。超聲殺菌:殺滅細(xì)菌及有機(jī)污

6、染物,如:污水處理和除氣等。超聲粉碎:降低溶質(zhì)顆粒度,如:細(xì)胞粉碎和化學(xué)檢測(cè)等。超聲封孔:排除間隙氣體,提高整體密度,如:工件浸漆等。1.3 本設(shè)計(jì)的主要研究?jī)?nèi)容1.3.1 超聲波測(cè)距的原理超聲波測(cè)距是通過不斷檢測(cè)超聲波發(fā)射后遇到障礙物所反射的回波, 從而測(cè)出發(fā)射和接收回波的時(shí)間差t,然后求出距離 (1-1)式(1-1)中的c為超聲波在空氣中傳播的速度。限制該系統(tǒng)的最大可測(cè)距離存在四個(gè)因素:超聲波的幅度、反射物的質(zhì)地、反射和入射聲波之間的夾角以及接收裝置的靈敏度。接收裝置對(duì)聲波脈沖的直接接收能力將決定最小可測(cè)距離。超聲波的波速c與溫度有關(guān),表1-1列出了幾種不同溫度下的波速。表1-1 聲速與溫

7、度的關(guān)系溫度()3020100102030100聲速(m/s)313319325331338344349386可以推導(dǎo)得出,溫度和波速大概有c=331.5+0.607T這樣的規(guī)律,波速確定后,只要測(cè)得超聲波往返的時(shí)間t,即可求得距離S。1.3.2 設(shè)計(jì)的主要內(nèi)容單片機(jī)控制超聲波模塊發(fā)射及檢波接收,其系統(tǒng)原理框圖如圖1-3所示。 圖1-3 超聲波測(cè)距系統(tǒng)框圖先驅(qū)動(dòng)DS18B20溫度傳感器,測(cè)出當(dāng)前溫度,然后根據(jù)公式換算出當(dāng)前波速,然后控制口P1.0(Trig引腳)發(fā)一個(gè)10US以上的高電平,就可以在接收口P3.2(Echo引腳)等待高電平輸出。一有輸出就可以開定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就進(jìn)入

8、外部中斷0,在中斷程序中讀取定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,方可算出距離。如此不斷的周期測(cè),就可以達(dá)到你移動(dòng)測(cè)量的值了相應(yīng)的計(jì)算結(jié)果被送至LED數(shù)碼管進(jìn)行顯示。第二章 超聲波測(cè)距系統(tǒng)本設(shè)計(jì)是基于單片機(jī)控制的,在介紹電路設(shè)計(jì)之前,先簡(jiǎn)單了解一下單片機(jī)的工作原理,即簡(jiǎn)單介紹STC89C51的一些特性。2.1 單片機(jī)基礎(chǔ)知識(shí)單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器(Microcontroller)。單片微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是一種非?;钴S且頗具生命力的機(jī)種。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:CPU(Central Proc

9、essing Unit,中央處理器)、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要與適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)內(nèi)部結(jié)構(gòu)如圖2-1所示。圖2-1 單片機(jī)內(nèi)部結(jié)構(gòu)與單片機(jī)相比,微型計(jì)算機(jī)是一種多片機(jī)系統(tǒng)。它是由中央處理器(CPU)芯片、ROM芯片、RAM芯片和I/O接口芯片等通過印刷電路板上總線(地址總線AB、數(shù)據(jù)總線DB和控制總線CB)連成一體的完整計(jì)算機(jī)系統(tǒng)。其中,中央處理器(CPU)的字長(zhǎng)長(zhǎng),功能強(qiáng)大;ROM和RAM的容量很大;I/O接口的功能也大,這是單片機(jī)無法比擬的。因此,單片機(jī)在結(jié)構(gòu)上與微型計(jì)算機(jī)十分相似,是一種集微型計(jì)算機(jī)主要功能部件于同一塊芯片上

10、的微型計(jì)算機(jī),并由此而得名。2.2 單片機(jī)AT89C51的特性AT89C系列單片機(jī)是Atmel公司生產(chǎn)的一款標(biāo)準(zhǔn)型單片機(jī)。其中數(shù)字89是單片機(jī)AT89C51的特性,C表示CMOS工藝。其管腳圖如圖2-2所示。圖2-2 AT89C51單片機(jī)管腳圖AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩

11、沖器能接收輸出4TTL門電流P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。P3口也可作為AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3

12、口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引

13、腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。2.3 超聲波探頭介紹 超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量,如測(cè)距儀和物 位測(cè)量?jī)x等都可以通過超聲波來實(shí)現(xiàn)。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用的要求本測(cè)距模塊使用的是壓電式超聲波發(fā)生器探頭,壓電式超聲波發(fā)生器實(shí)際上是利用壓電晶體的諧振來工作的。超聲波發(fā)生器內(nèi)部結(jié)構(gòu)如圖2-3所示,它有兩個(gè)壓電陶瓷晶片和一個(gè)金屬片共振板。當(dāng)它的兩極外加脈沖信 號(hào),其頻率等于壓電陶

14、瓷晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng),便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)金屬片共振板接收到超聲波 時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收器了。 圖2-3 壓電式超聲波發(fā)生器第三章 超聲波測(cè)距硬件電路設(shè)計(jì)3.1超聲波測(cè)距系統(tǒng)電路總體設(shè)計(jì)方案由單片機(jī)STC89C51編程產(chǎn)生10US以上的高電平,由P1.0口輸出,就可以在接收口P3.2(Echo引腳)等待高電平輸出。一旦有高電平出處,即在模塊中經(jīng)過放大電路,驅(qū)動(dòng)超聲波發(fā)射探頭發(fā)射超聲波。發(fā)射出去的超聲波經(jīng)障礙物反射回來后,由超聲波接收頭接收到信號(hào),通過接收電路的檢波放大、積分整形

15、及一系列處理,接收口P3.2口即變?yōu)榈碗娖?,讀取單片機(jī)中定時(shí)器的值。單片機(jī)利用聲波的傳播速度和發(fā)射脈沖到接收反射脈沖的時(shí)間間隔計(jì)算出障礙物的距離,并由單片機(jī)控制顯示出來。該測(cè)距裝置是由超聲波模塊、單片機(jī)、和LED顯示電路組成。傳感器輸入端與發(fā)射接收電路組成超聲波測(cè)距模塊,模塊的輸出輸入端與單片機(jī)相連接,單片機(jī)的輸出端與顯示電路輸入端相連接。其時(shí)序圖如圖3-1所示。圖3-1 時(shí)序圖超聲波測(cè)距模塊的發(fā)射端在T0時(shí)刻發(fā)射方波,同時(shí)啟動(dòng)定時(shí)器開始計(jì)時(shí),當(dāng)收到回波后,產(chǎn)生一負(fù)跳變到單片機(jī)中斷口,單片機(jī)響應(yīng)中斷程序,定時(shí)器停止計(jì)數(shù)。計(jì)算時(shí)間差,即可得到超聲波在媒介中傳播的時(shí)間t,由此便可計(jì)算出距離。3.2

16、 超聲波測(cè)距系統(tǒng)電路各部分模塊的設(shè)計(jì)3.2.1 超聲波發(fā)射接收電路的設(shè)計(jì)發(fā)射電路的設(shè)計(jì)由模塊中產(chǎn)生的40kHz的方波需要進(jìn)行放大,才能驅(qū)動(dòng)超聲波傳感器發(fā)射超聲波,發(fā)射驅(qū)動(dòng)電路其實(shí)就是一個(gè)信號(hào)放大電路,本模塊所選用的是74HC04集成芯片,圖3-1為發(fā)射電路圖。圖3-1 發(fā)射電路74HC04內(nèi)部集成了六個(gè)反向器,同時(shí)具有放大的功能。74HC04的管腳如圖3-2所示。圖3-2 74HC04管腳圖接收電路的設(shè)計(jì)超聲波接收頭接收到超聲波后,轉(zhuǎn)換為電信號(hào),此時(shí)的信號(hào)比較弱,必需經(jīng)過放大。本系統(tǒng)采用了LM741對(duì)接收到的信號(hào)進(jìn)行放大,接收電路如圖3-3所示。圖3-3 接收電路超聲波探頭接收到超聲波后,通過

17、聲電轉(zhuǎn)換,產(chǎn)生一正弦信號(hào),其頻率為傳感器的中心頻率,即40kHz。該信號(hào)通過C1高通濾波后經(jīng)LM741放大,最后經(jīng)二極管整形后輸出到單片機(jī)中斷口。LM741是一單運(yùn)放集成芯片,圖3-4為L(zhǎng)M741管腳圖。圖3-4 LM741管腳圖其板上接線方式為,VCC、trig(控制端)、 echo(接收端)、 out(空腳)、 GND 使用方法簡(jiǎn)單,一個(gè)控制口發(fā)一個(gè)10US以上的高電平,就可以在接收口等待高電平輸出。一有輸出就可以開定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,方可算出距離。如此不斷的周期測(cè),就可以達(dá)到移動(dòng)測(cè)量的值了。 圖3-5 超聲波測(cè)距模塊外觀圖DYP-ME

18、007超聲波測(cè)距模塊可提供3cm-3.5m的非接觸式距離感測(cè)功能,圖3-5為DYP-ME007外觀,包括超聲波發(fā)射器、接收器與控制電路。其基本工作原理為給予此超聲波測(cè)距模塊一觸發(fā)信號(hào)后發(fā)射超聲波,當(dāng)超聲波投射到物體而反射回來時(shí),模塊輸出一回響信號(hào),以觸發(fā)信號(hào)和回響信號(hào)間的時(shí)間差,來判定物體的距離。3.2.2 溫度補(bǔ)償電路的設(shè)計(jì)穩(wěn)定準(zhǔn)確的超聲波傳播速度是保證測(cè)量精度的必要條件,而超聲波在空氣中傳播時(shí),其速度受到了溫度,濕度,粉塵,大氣壓,氣流等因素的影響,其中溫度影響最大,而超聲波在空氣中的速度與溫度的關(guān)系的表達(dá)式為c=331.45,由泰勒公式將其展開,可得到近似計(jì)算公式c=331.5+0.60

19、7T。式中T是環(huán)境攝氏溫度,所以溫度每變化1攝氏度,聲速的變化為0.6m/s,可見溫度對(duì)聲速的影響很大,測(cè)量時(shí)必須進(jìn)行溫度補(bǔ)償。DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司推出的一種改進(jìn)型智能溫度傳感器,測(cè)溫范圍為-55125攝氏度,最大分辨率可達(dá)0.0625攝氏度。DS18B20可以直接讀出被測(cè)溫度值,而且采用了線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn),測(cè)溫電路如圖3-5所示。 圖3-5 測(cè)溫電路原理圖3.2.3 顯示模塊的設(shè)計(jì) LED(Light-Emitting Diode,發(fā)光二極管)有七段和八段之分,也有共陰和共陽兩種。LED數(shù)碼管結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜。

20、下圖示出了八段LED數(shù)碼顯示管的結(jié)構(gòu)和原理圖。圖(a)為八段共陰數(shù)碼顯示管結(jié)構(gòu)圖,圖(b)是它的原理圖,圖(c)為八段共陽LED顯示管原理圖。八段LED顯示管由八只發(fā)光二極管組成,編號(hào)是a、b、c、d、e、f、g和SP,分別與同名管腳相連。七段LED顯示管比八段LED少一只發(fā)光二極管SP,其他與八段相同。圖3-6 8段數(shù)碼管示意圖單片機(jī)對(duì)LED管的顯示可以分為靜態(tài)和動(dòng)態(tài)兩種。靜態(tài)顯示的特點(diǎn)是各LED管能穩(wěn)定地同時(shí)顯示各自字形;動(dòng)態(tài)顯示是指各LED輪流地一遍一遍顯示各自字符,人們由于視覺器官惰性,從而看到的是各LED似乎在同時(shí)顯示不同字形。為了提高系統(tǒng)可靠性并降低成本,單片機(jī)控制系統(tǒng)通常采用動(dòng)態(tài)

21、掃描顯示。所以本系統(tǒng)采用了兩片74HC573分別作為斷碼和位碼的選通芯片,并用一片10K的排阻提供上拉電流,以達(dá)到數(shù)碼管動(dòng)態(tài)描顯示,電路原理圖如圖3-6所示。圖3-6 顯示電路原理圖第四章 系統(tǒng)軟件設(shè)計(jì) 軟件分為兩部分,主程序和中斷服務(wù)程序,如圖4-1所示。主程序完成初始化工作、超聲波發(fā)射和接收,距離計(jì)算、結(jié)果的輸出。 外部中斷服務(wù)子程序主要完成時(shí)間值的讀取。外部中斷子程序計(jì)算距離結(jié)果輸出定時(shí)器及中斷初始化發(fā)射超聲波開外部中斷指示燈閃爍單片機(jī)初始化DS18B20初始化開 始收到回波? NO YES 圖4-1 主程序流程圖主程序首先是對(duì)系統(tǒng)環(huán)境初始化,設(shè)置定時(shí)器T0工作模式為16位定時(shí)計(jì)數(shù)器模式

22、。置位總中斷允許位EA。然后給Trig一個(gè)20us的高電平,然后在Echo引腳等待其變?yōu)楦唠娖剑坏┹敵隽烁唠娖?,表明超聲波已開始發(fā)射,此刻即計(jì)時(shí),等待Echo變?yōu)榈碗娖剑从|發(fā)外部中斷0的跳變沿方式中斷。讀取當(dāng)前定時(shí)器的值,換算成時(shí)間,乘以溫度補(bǔ)償后的波速,即得到測(cè)距距離。由于采用的是11.0592MHz的晶 振,計(jì)數(shù)器每計(jì)一個(gè)數(shù)大概就是1s,當(dāng)主程序檢測(cè)到接收成功的標(biāo)志位后,將計(jì)數(shù)器T1中的數(shù)(即超聲波來回所用的時(shí)間)按式計(jì)算,即可得被測(cè)物體與測(cè)距儀之間的距離。測(cè)出距離后結(jié)果將以十進(jìn)制BCD碼方式送往LED顯示約0.5s,然后再發(fā)超聲波脈沖重復(fù)測(cè)量過程。為了有利于程序結(jié)構(gòu)化和容易計(jì)算出距離

23、,主程序采用C語言編寫。4.1 顯示子程序 本系統(tǒng)的LED顯示采用了動(dòng)態(tài)顯示方式,用兩塊74HC573分別選通段碼和位碼,沒顯示一根管延時(shí)2ms,利用人眼的視覺暫留效應(yīng),達(dá)到靜態(tài)顯示的效果,C程序如下。void display(uint distance_date) uchar dm,cm,mm; dm=distance_date/100; cm=distance_date%100/10; mm=distance_date%10; dula=0; P0=tabledm; dula=1; dula=0; wela=0; P0=0x7f; wela=1; wela=0; delay(2); dul

24、a=0; P0=table1cm; dula=1; dula=0; wela=0; P0=0xbf; wela=1; wela=0; delay(2); P0=tablemm; dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(2); 4.2 外部中斷子程序 因本設(shè)計(jì)把數(shù)據(jù)換算,計(jì)算距離以及顯示子程序都放在了主程序中,所以外部中斷子程序比較簡(jiǎn)單,它實(shí)現(xiàn)了對(duì)T1數(shù)值讀取,以及關(guān)閉外部中斷的功能。流程圖如圖4-2所示。外部中斷入口關(guān)外部中斷讀取時(shí)間值返回 圖4-2 外部中斷程序流程圖 c程序如下:INTO_() interrupt 0 outcomeH

25、=TH1; outcomeL =TL1; succeed_flag=1; EX0=0; 4.3 測(cè)量溫度子程序測(cè)溫電路由美國(guó)DALLAS公司的DS18B20芯片完成,其初始化過程如下: DS18B20的初始化(1) 先將數(shù)據(jù)線置高電平“1”。 (2) 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn))(3) 數(shù)據(jù)線拉到低電平“0”。(4) 延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480到960微秒)。(5) 數(shù)據(jù)線拉到高電平“1”。(6) 延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無限的進(jìn)行等待,不然

26、會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。(7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第(5)步的時(shí)間算起)最少要480微秒。(8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。DS18B20的寫操作(1) 數(shù)據(jù)線先置低電平“0”。(2) 延時(shí)確定的時(shí)間為15微秒。(3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。(4) 延時(shí)時(shí)間為45微秒。(5) 將數(shù)據(jù)線拉到高電平。(6) 重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。(7) 最后將數(shù)據(jù)線拉高。DS18B20的讀操作(1)將數(shù)據(jù)線拉高“1”。(2)延時(shí)2微秒。(3)將數(shù)據(jù)線拉低“0”

27、。(4)延時(shí)15微秒。(5)將數(shù)據(jù)線拉高“1”。(6)延時(shí)15微秒。(7)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。(8)延時(shí)30微秒。開始初始化初始化寫命令:跳過讀序列號(hào)操作(0XCC)寫命令:?jiǎn)?dòng)溫度轉(zhuǎn)換(0X44)溫度轉(zhuǎn)換結(jié)束?寫命令:讀溫度寄存器(0XBE)寫命令:跳過讀序列號(hào)操作(0XCC)寫EEPROM,存儲(chǔ)結(jié)果根據(jù)讀寫操作,其流程圖如4-3 轉(zhuǎn)換完畢 圖4-3 DS18B20初始化流程圖具體的各部分C程序如下:void dsreset(void) /send reset and initialization command uint i; DS=0; i=103; while

28、(i>0)i-; DS=1; i=4; while(i>0)i-;bit tmpreadbit(void) /read a bit uint i; bit dat; DS=0;i+; /i+ for delay DS=1;i+;i+; dat=DS; i=8;while(i>0)i-; return (dat);uchar tmpread(void) /read a byte date uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit();dat=(j<<7)|(dat>>1);/讀出的數(shù)據(jù)最

29、低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里 return(dat);void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i>0)i-; else DS=0; /write 0 i=8;while(i>0)i-; DS=1; i+;i+; void tmpchange

30、(void) /DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44); / initiates a single temperature conversionuint tmp() /get the temperature float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread()

31、; temp=b; temp<<=8; /two byte compose a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp;void readrom() /read the serial uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread();前兩章是該課題的重點(diǎn),全面介紹了超聲波測(cè)距系統(tǒng)的原理和設(shè)計(jì)思路,給出了硬件電路和軟件的設(shè)計(jì)。在硬件電路的設(shè)計(jì)中,分別詳細(xì)介紹了發(fā)射電路

32、,接收電路及顯示模塊的設(shè)計(jì)方法。軟件編程部分,給出了整個(gè)程序的思路以及程序流程圖。 結(jié) 論本設(shè)計(jì)介紹了一種基于單片機(jī)的超聲波測(cè)距系統(tǒng)的原理和設(shè)計(jì)。給出了硬件和軟件的設(shè)計(jì)方案。超聲波測(cè)距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時(shí)間來計(jì)算出傳播距離。實(shí)用的測(cè)距方法有兩種,一種是在被測(cè)距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計(jì);一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測(cè)距儀。此次設(shè)計(jì)采用反射波方式。超聲波測(cè)距儀硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射檢測(cè)接收電路,溫度補(bǔ)償電路四部分。單片機(jī)采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以

33、獲得較穩(wěn)定時(shí)鐘頻率,減小測(cè)量誤差。單片機(jī)用P1.0端口輸出超過10us的使能信號(hào),利用外中斷0口監(jiān)測(cè)超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡(jiǎn)單實(shí)用3位共陽LED數(shù)碼管,段碼位碼都用74HC573芯片驅(qū)動(dòng)驅(qū)動(dòng)。本設(shè)計(jì)所設(shè)計(jì)的超聲波測(cè)距系統(tǒng)具有測(cè)量精度較高、速度快、控制簡(jiǎn)單方便等優(yōu)點(diǎn)。測(cè)距范圍從4cm到80cm,測(cè)量精度在±3cm內(nèi)。測(cè)距系統(tǒng)在許多工業(yè)現(xiàn)場(chǎng)和自動(dòng)控制場(chǎng)合,都有很重要的作用。但由于經(jīng)驗(yàn)不足,電路硬件、軟件部分都有不夠完善的地方,在今后的學(xué)習(xí)中會(huì)進(jìn)一步改進(jìn)??傮w來說,最重要的是在本設(shè)計(jì)的設(shè)計(jì)過程中我學(xué)到了很多知識(shí),從中受益匪淺。了解了超聲波傳感器的原理,也掌握了單片機(jī)的開

34、發(fā)過程和利用單片機(jī)設(shè)計(jì)電路的方法。對(duì)一塊電路板的設(shè)計(jì)、焊板、調(diào)試、改進(jìn)等整個(gè)過程,有了更深入的理解和掌握。這些對(duì)我今后的學(xué)習(xí)和工作都會(huì)有很大幫助的。附錄1附錄2#include <reg52.h> #define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit Trig =P10; sbit Echo =P32;sbit test =P11; /測(cè)試燈引腳sbit dula =P26; /段碼選通引腳sbit wela =P27; /位碼選通引腳sbit DS =P22; /測(cè)溫

35、引腳uchar code table=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6;uchar code table1=0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7;uchar flag,outcomeH,outcomeL;bit succeed_flag;void delay(uint count) /延時(shí)程序 uint i; while(count) i=200; while(i>0) i-; count-; void delay_20us() /延時(shí)20us uchar bt

36、 ; for(bt=0;bt<100;bt+); void display(uint distance_date) /距離顯示子程序 uchar dm,cm,mm; dm=distance_date/100; /計(jì)算分米位 cm=distance_date%100/10; /計(jì)算厘米位 mm=distance_date%10; /計(jì)算毫米位 dula=0; P0=tabledm; dula=1; dula=0; wela=0; P0=0x7f; wela=1; wela=0; delay(2); dula=0; P0=table1cm; dula=1; dula=0; wela=0; P

37、0=0xbf; wela=1; wela=0; delay(2); P0=tablemm; dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(2); void dsreset(void) /send reset and initialization command uint i; DS=0; i=103; while(i>0)i-; DS=1; i=4; while(i>0)i-;bit tmpreadbit(void) /read a bit uint i; bit dat; DS=0;i+; /i+ for delay DS=1;i+

38、;i+; dat=DS; i=8;while(i>0)i-; return (dat);uchar tmpread(void) /read a byte date uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit(); dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里 return(dat);void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; fo

39、r(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i>0)i-; else DS=0; /write 0 i=8;while(i>0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44)

40、; / initiates a single temperature conversionuint tmp() /get the temperature float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp<<=8; /two byte compose a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp;v

41、oid readrom() /read the serial uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread();void main(void) uint distance_data; uchar a; float tem; flag=0; /標(biāo)志位,1表示收到回波,0則未收到 test=0; /控制燈閃爍 Trig=0; TMOD=0x11; /對(duì)定時(shí)器1選擇16位模式 IT0=0; /設(shè)置觸發(fā)方式為低電平觸發(fā) IE0=0; EA=1; /開總中斷 tmpchange();

42、/測(cè)出當(dāng)時(shí)溫度 ET0=0; TR0=0; while(1) EA=0; TH1=0; TL1=0; Trig=1; /讓TRIG引腳為高電平 delay_20us(); /延時(shí)20us Trig=0; /產(chǎn)生方波 while(Echo=0); /等待Echo變?yōu)榈碗娖剑撮_始發(fā)射超聲波 TR1=1; /開始計(jì)時(shí) succeed_flag=0; EX0=1; TF1=0; EA=1; while(TH1<25)&&(!IE0); /等待25us或者中斷產(chǎn)生(即收到回波) TR1=0; /停止計(jì)時(shí) EX0=0; /關(guān)閉中斷 if(succeed_flag=1) /如果收到回

43、波 distance_data=outcomeH; /先保存高8位 distance_data<<=8; /將高8位左移,低八位則全置0 distance_data=distance_data|outcomeL; /將高低八位組成新的16位數(shù)據(jù) tem=tmp(); /取得溫度 tem/=10; tem=331.5+0.607*tem; /得出當(dāng)前波速 tem/=2000; distance_data*=tem; distance_data=distance_data*126000/120000; /代入晶振頻率及當(dāng)前波速算出距離 for(a=300;a>0;a-) disp

44、lay(distance_data); /顯示距離 if(succeed_flag=0) /如果沒有收到回波 distance_data=0; test = !test; INTO_() interrupt 0 /外部中斷0 outcomeH =TH1; outcomeL =TL1; succeed_flag=1; EX0=0; 本文所介紹的三方向(前、左、右)超聲波測(cè)距系統(tǒng),就是為機(jī)器人了解其前方、左側(cè)和右側(cè)的環(huán)境而提供一個(gè)運(yùn)動(dòng)距離信息。(類似GPS定位系統(tǒng)) 一 超聲波測(cè)距原理 1、壓電式超聲波發(fā)生器原理壓電式超聲波發(fā)生器實(shí)際上是利用壓電晶體的諧振來工作的。超聲波發(fā)生器內(nèi)部結(jié)構(gòu)如圖1所示,

45、它有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng),便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)共振板接收到超聲波 時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收器了。2、超聲波測(cè)距原理超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為340m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s),即:s=340t/2二 超聲波測(cè)距系統(tǒng)的電路設(shè)計(jì)系統(tǒng)的特點(diǎn)是利用單片機(jī)控制超聲波的發(fā)射和對(duì)超聲波自發(fā)射至接收往返時(shí)間的計(jì)時(shí),單片機(jī)選用8751,經(jīng)濟(jì)易用,且片內(nèi)有4K的ROM,便于編程。電路原理圖如圖2所示。其中只畫出前方測(cè)距電路的接線圖,左側(cè)和右側(cè)測(cè)距電路與前方測(cè)距電路相同,故省略之。

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論