四川大學(xué)電子信息超聲波測(cè)距綜合設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁(yè)
四川大學(xué)電子信息超聲波測(cè)距綜合設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁(yè)
四川大學(xué)電子信息超聲波測(cè)距綜合設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁(yè)
四川大學(xué)電子信息超聲波測(cè)距綜合設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁(yè)
四川大學(xué)電子信息超聲波測(cè)距綜合設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

四川大學(xué)電子信息學(xué)院12-綜合設(shè)計(jì)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:超聲波測(cè)距系統(tǒng)班級(jí):6組員:114211420511摘要 -1-第一章緒論 -1-1.1系統(tǒng)總體介紹 -1-1.2超聲波測(cè)量原理 -1-第二章方案擬定 -2-2.1系統(tǒng)控制模塊 -2-2.2距離測(cè)量模塊 -2-2.3溫度測(cè)量模塊 -2-2.4實(shí)時(shí)顯示模塊 -3-第三章硬件電路設(shè)計(jì) -3-3.1超聲波收發(fā)電路 -3-3.2蜂鳴器報(bào)警電路 -4-3.3溫度補(bǔ)償電路 -4-3.4數(shù)碼管顯示電路 -5-第四章軟件設(shè)計(jì) -7-第五章功能測(cè)試及性能指標(biāo) -8-第六章問(wèn)題解決及總結(jié) -9-附件 -10-進(jìn)度分工表 -10-電路原理圖 -10-PCB原理圖 -11-程序代碼 -11-摘要本系統(tǒng)是一個(gè)以單片機(jī)技術(shù)為核心,實(shí)現(xiàn)實(shí)時(shí)測(cè)量并顯示距離的超聲波測(cè)距系統(tǒng),系統(tǒng)主要由4部分組成:超聲波收發(fā)電路、溫度補(bǔ)償電路、LED顯示電路、CPU處理電路。系統(tǒng)測(cè)量距離的原理是先通過(guò)單片機(jī)發(fā)出40KHz方波串,然后檢測(cè)超聲波接收端是否接收到遇到障礙物反射的回波,得到來(lái)回路程的時(shí)間計(jì)算距離,同時(shí)測(cè)溫裝置檢測(cè)環(huán)境溫度來(lái)校準(zhǔn)速度。單片機(jī)利用收到回波所用的時(shí)間和溫度補(bǔ)償?shù)玫降穆曀儆?jì)算出距離,顯示當(dāng)前距離與溫度。由于利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用的要求,因此超聲測(cè)距在工業(yè)上得到廣泛的應(yīng)用,例如在自動(dòng)避障機(jī)器人、汽車倒車?yán)走_(dá)、汽車追尾報(bào)警等,具有重大的現(xiàn)實(shí)社會(huì)意義。第一章緒論1.1系統(tǒng)總體介紹超聲波測(cè)距儀主要由超聲波收發(fā)裝置、單片機(jī)、測(cè)溫裝置、報(bào)警裝置、LCD顯示等組成。系統(tǒng)檢測(cè)距離的原理是通過(guò)單片機(jī)發(fā)出40kHz的方波脈沖信號(hào)后,檢測(cè)接收端是否能夠接收到遇障礙物反射的回波,同時(shí),測(cè)溫裝置檢測(cè)環(huán)境溫度。單片機(jī)利用收到回波所用的時(shí)間和溫度補(bǔ)償?shù)玫降穆曀儆?jì)算出距離,同時(shí)顯示出當(dāng)前距離與溫度。測(cè)量距離范圍為2~400cm??蓽y(cè)量溫度范圍為-30~150°C。有溫度與距離顯示,誤差小,精度高。蜂鳴器預(yù)警和距離采樣頻率動(dòng)態(tài)變化,距離越遠(yuǎn),采樣越慢。1.2超聲波測(cè)量原理超聲波傳感器分機(jī)械方式和電氣方式兩類,它實(shí)際上是一種換能器,在發(fā)射端它把電能或機(jī)械能轉(zhuǎn)換成聲能,接收端則反之。本次設(shè)計(jì)超聲波傳感器采用電氣方式中的壓電式超聲波換能器,它是利用壓電晶體的諧振來(lái)工作的。它有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號(hào)頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng),產(chǎn)生超聲波。反之,如果兩電極間沒(méi)有外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),就成為超聲波接收器。在超聲波電路中,發(fā)射端輸出一系列脈沖方波,脈沖寬度越大,輸出的個(gè)數(shù)越多,能量越大,所能測(cè)的距離也越遠(yuǎn)。超聲波測(cè)距的原理有很多種,本次實(shí)驗(yàn)采用往返時(shí)間計(jì)算法。由于超聲波指向性強(qiáng),能量消耗緩慢,在空氣中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測(cè)量。利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用的要求。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開(kāi)始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來(lái),超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為C,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s),即:s=Ct/2

。從上面超聲波特性可以知道:超聲波在空氣中的傳播速度與溫度有關(guān):C=331.5+0.607t/0C(m/s),如果溫度變化不大,則可認(rèn)為聲速是基本不變的,典型的環(huán)境溫度與超聲波的傳播速度的關(guān)系為:溫度(℃)-30-20-100102030100聲速(米/稱)313319325323338344349386第二章方案擬定2.1系統(tǒng)控制模塊采用AT89S52作為系統(tǒng)控制器。它的運(yùn)算功能強(qiáng),軟件編程靈活,自由度大,可用軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并且其功耗低,成本低,技術(shù)成熟??刂疲⑶夜牡?,成本低,技術(shù)成熟。其程序可以采用C語(yǔ)言編寫,可讀性強(qiáng),燒寫程序容易,這大大加快了系統(tǒng)的開(kāi)發(fā)與調(diào)試。AT89S52有2個(gè)獨(dú)立的定時(shí)器,兩個(gè)獨(dú)立的外部中斷,IO足夠,還可外拓功能,做冗余設(shè)計(jì)??梢赃_(dá)到要求。2.2距離測(cè)量模塊采用超聲波傳感器測(cè)距。由于超聲波的波長(zhǎng)短,超聲波射線可以和光線一樣,能夠反射、折射、也能夠聚焦,而且遵循幾何光學(xué)上的定律。即超聲波從一種物質(zhì)表面反射時(shí),反射角等于入射角。且超聲波具有較好的指向性,頻率越高,指向性越強(qiáng),具有較高的分辨率,因而其測(cè)試精度也較其他方法高。而且超聲波傳感器具有體積小,結(jié)構(gòu)簡(jiǎn)單,信號(hào)處理可靠性高的特點(diǎn),且價(jià)格較便宜,成功案例較多,可行性很高。本次實(shí)驗(yàn)采用的是超聲波收發(fā)模塊(HC-SR04),該模塊收發(fā)一體,大大節(jié)約了硬件開(kāi)銷,2.3溫度測(cè)量模塊溫度測(cè)量模塊采用數(shù)字溫度芯片DS18B20測(cè)量溫度,測(cè)溫范圍為-55—+125攝氏度,固有測(cè)溫分辨率為1攝氏度,外圍電路簡(jiǎn)單,輸出信號(hào)為數(shù)字信號(hào),便于數(shù)據(jù)處理。同時(shí)該芯片物理化學(xué)性質(zhì)穩(wěn)定,線性良好,能夠滿足此次測(cè)溫要求。2.4實(shí)時(shí)顯示模塊顯示模塊使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有:低能耗、低損耗、壽命長(zhǎng),耐老化、對(duì)外界環(huán)境要求低,易于維護(hù)等特點(diǎn),同時(shí)其精度比較高,操作簡(jiǎn)單。數(shù)碼管采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。方案設(shè)計(jì)中采用電源接通或復(fù)位開(kāi)關(guān)后先顯示當(dāng)前環(huán)境溫度,停頓一秒然后顯示測(cè)量距離。第三章硬件電路設(shè)計(jì)3.1超聲波收發(fā)電路HC-SR04特性:探測(cè)距離:2cm-400cm;測(cè)量精度:3mm;模塊工作原理:(1)采用IO觸發(fā)測(cè)距,給至少10us的高電平信號(hào);(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過(guò)IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2。圖1HC-SR04電氣參數(shù)圖2HC-SR04實(shí)物正反兩面圖圖3HC-SR04連接電路3.2蜂鳴器報(bào)警電路蜂鳴器報(bào)警用S8550三極管驅(qū)動(dòng)蜂鳴器報(bào)警,P1.0口控制蜂鳴器,具體電路如下所示:圖4蜂鳴器報(bào)警電路3.3溫度補(bǔ)償電路由于聲音的速度在不同的溫度下有所不同,為提高系統(tǒng)的精度,采用了溫度補(bǔ)償功能。這里采用的主要元器件是DS18B20芯片,DS18B20是美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。與其它溫度傳感器相比,DS18B20具有以下特性:(1)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。(2)DS18B2支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。(3)DS1820在使用中不需要任何外圍元件。(4)溫范圍-55℃~+125℃,固有測(cè)溫分辨率1℃。(5)測(cè)量結(jié)果以9位數(shù)字方式串行傳送。DS18B20內(nèi)部結(jié)構(gòu)框圖如圖4所示:圖5DS18B20內(nèi)部結(jié)構(gòu)圖本系統(tǒng)中DS1820由單片機(jī)P2.0控制,由LED顯示電路動(dòng)態(tài)顯示溫度。電路原理圖如圖:圖6DS18B20電路3.4數(shù)碼管顯示電路數(shù)碼管由7個(gè)發(fā)光二極管組成,行成一個(gè)日字形,通過(guò)解碼電路得到的數(shù)碼接通相應(yīng)的發(fā)光二極管而形成相應(yīng)的字,這就是它的工作原理。數(shù)碼管按各發(fā)光二極管電極的連接方式分為共陽(yáng)數(shù)碼管和共陰數(shù)碼管兩種,如圖7。數(shù)碼管的顯示方式可以分為靜態(tài)顯示與動(dòng)態(tài)顯示兩類。其中動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃“a,b,c,d,e,f,g,dp“的同名端連在一起,其余的為每個(gè)數(shù)碼管的公共極COM由位選通控制電路控制,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,但是能夠節(jié)省大量的I/O端口,功耗更低。本系統(tǒng)的顯示電路采用簡(jiǎn)單實(shí)用的4位共陽(yáng)數(shù)碼管,段碼輸出端口為單片機(jī)的P0口,位碼輸出端口分別為單片機(jī)的P2.1、P2.3、P2.5、P2.7口。為了減少硬件開(kāi)銷,提高系統(tǒng)可靠性并降低成本,此超聲波測(cè)距的單片機(jī)控制系統(tǒng)采用動(dòng)態(tài)掃描顯示,并且軟件消影。顯示電路如圖8所示。圖7數(shù)碼管圖8數(shù)碼管電路第四章軟件設(shè)計(jì)下圖示意了超聲波測(cè)距的原理,即超聲波發(fā)射器在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)超聲波遇到物體后反射回來(lái),就被超聲波接收器所接到。這樣,只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可以算出超聲波發(fā)生器與反射物體的距離。距離的計(jì)算公式為:d=s/2=(c*t)/2其中d為被測(cè)物與測(cè)距器的距離,s為聲波的來(lái)回路程,c為聲速,t為聲波來(lái)回所用的時(shí)間。圖9超聲波測(cè)距原理超聲波測(cè)距的軟件設(shè)計(jì)主要由主程序、超聲波發(fā)射子程序及顯示子程序,報(bào)警子程序組成。由于C語(yǔ)言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,所以采用C語(yǔ)言來(lái)實(shí)現(xiàn)軟件部分。具體流程圖如下所示:圖10程序流程圖詳細(xì)程序見(jiàn)附件。第五章功能測(cè)試及性能指標(biāo)為了驗(yàn)證系統(tǒng)的測(cè)量精度,在宿舍進(jìn)行了實(shí)地測(cè)量。我們選取墻面為被測(cè)對(duì)象,利用本系統(tǒng)對(duì)2-400cm范圍進(jìn)行了多次測(cè)試,隨機(jī)抽取3次測(cè)量結(jié)果,求平均值,其中2-350cm精度達(dá)到±1cm,大于350cm誤差變大,根據(jù)多次的測(cè)量與計(jì)算,本系統(tǒng)經(jīng)補(bǔ)償后,線性度、穩(wěn)定性和重復(fù)性都比較好。實(shí)際距離24681015202530354045測(cè)量距離12.03.96.07.910.014.920.225.130.235..040.345.4測(cè)量距離21.94.05.98.010.115.120.125.330.235.240.345.2測(cè)量距離32.04.16.18.09.915.120.125.230.435.140.245.3平均值1.964.006.07.9610.015.0320.1325.230.2635.140.2645.3誤差-0.0400-0.0400.030.130.20.260.10.260.3實(shí)際距離50556065707580859095100105測(cè)量距離150.355.560.265.270.275.480.485.490.295.3100..4105.2測(cè)量距離250.255.260.165.370.275.280.485.390.395.3100.3105.3測(cè)量距離350.355.260.165.370.375.380.385.590.395.5100.3105.5平均值50.2655.360.1365.2670.2375.3803385.490.2695.36100.3105.3誤差0.260.30.130.260.230.30.330.40.260.360.30.3實(shí)際距離110115120125130135140145150155160165測(cè)量距離1110.5115.4120.5125.4130.2135.5140.5145.5150.3155.4160.4165.2測(cè)量距離2110.5115.3120.5125.4130.5135.6140.2145.4150.4155.4160.5165.2測(cè)量距離3110.3115.3120.4125.4130.4135.4140.3145.4150.4155.4160.5165.3平均值110.4115.3120.4125.4130.3135.5140.3145.4150.4155.4160.5165.2誤差0.4030.40.40.30.50.30.40.40.40.50.2實(shí)際距離170175180185190195200205210215220225測(cè)量距離1170.5175.5180.5185.3190.5195.6200.4205.4210.4215.5220.4225.4測(cè)量距離2170.4175.4180.5185.4190.4195.4200.3205.4210.5215.4220.6225.6測(cè)量距離3170.5175.4180.4185.5190.3195.5200.3205.4210.4215.5220.5225.6平均值170.5175.4180.5185.4190.4195.5200.3205.4210.4215.5220.5225.5誤差0.50.40.50.40.40.50.30.40.40.50.50.5實(shí)際距離230235240245250255260265270275280285測(cè)量距離1230.6235.4240.3240.5250.6255.6260.5265.6270.4175.6280.6285.6測(cè)量距離2230.5235.5240.4240.4250.4255.6260.5265.6270.6275.7280.7285.5測(cè)量距離3230.5235.5240.5240.5250.5255.6260.6265.5270.6275.5280.7285.5平均值230.5235.5240.4240.5250.5255.6260.6265.6270.5270.6280.7285.5誤差0.50.50.40.50.50.60.60.60.50.60.70.5實(shí)際距離290295300305310315320325330335340345測(cè)量距離1290.5295.6300.6305.6310.7315.7320.8325.8330.7335.8340.8345.9測(cè)量距離2290.6295.6300.7305.7310.7315.8320.6325.9330.9335.9340.9345.8測(cè)量距離3290.6295.7300.7305.7310.6315.8320.7325.7330.8335.9340.9345.9平均值290.6295.6300.7305.7310.7315.7320.7325.8330.8335.8340.8345.8誤差0.60.60.70.70.70.80.70.80.80.80.90.8系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、體積小、實(shí)時(shí)LED顯示、帶溫度補(bǔ)償、抗干擾性能好等優(yōu)點(diǎn)。系統(tǒng)的誤差主要來(lái)自于發(fā)射探頭發(fā)出的超聲波是呈喇叭狀擴(kuò)散傳播、被測(cè)物的表面不光滑且不一定垂直于兩探頭的軸線而導(dǎo)致所反射回來(lái)的超聲波也許是從不同點(diǎn)獲得,此外電子元器件自身的時(shí)延、干擾等也造成一定影響。可以根據(jù)具體場(chǎng)合,選擇合適功率的探頭,以及調(diào)整程序中脈沖的頻率、寬度和個(gè)數(shù)等提高精度或測(cè)量距離,擴(kuò)大系統(tǒng)的應(yīng)用范圍。第六章問(wèn)題解決及總結(jié) 在實(shí)驗(yàn)方案確定之后,我們先買好器件在萬(wàn)用板上面焊接調(diào)試電路,成功符合要求之后才做的電路板。在萬(wàn)用板上面實(shí)驗(yàn)的時(shí)候由于溫度測(cè)量模塊正負(fù)反接,導(dǎo)致模塊燒毀,但是一開(kāi)始不知道是什么原因,先是把距離部分程序燒進(jìn)去,數(shù)碼管可以顯示程序設(shè)定的值,但是把溫度顯示部分程序燒進(jìn)去數(shù)碼管不能顯示,經(jīng)過(guò)多次檢查,確定是溫度測(cè)量模塊有問(wèn)題,換了一個(gè)新的DS18B20模塊溫度能正常顯示。蜂鳴器報(bào)警電路開(kāi)始用的驅(qū)動(dòng)三極管2N3904,發(fā)現(xiàn)NPN三極管電路設(shè)計(jì)不能報(bào)警,后來(lái)修改了電路設(shè)計(jì),把NPN的2N3904改成PNP的S8550三極管,蜂鳴器能進(jìn)行正常報(bào)警。在確定萬(wàn)用板符合要求,電路無(wú)誤之后,進(jìn)行PCB設(shè)計(jì)環(huán)節(jié),采用的設(shè)計(jì)軟件是AltiumDesigner10.0,設(shè)計(jì)的原理圖時(shí)發(fā)現(xiàn)很多原件的封裝都沒(méi)有,然后查了資料自建封裝庫(kù)。由于是第一次正式的做PCB板,布局布線方面經(jīng)驗(yàn)不夠,導(dǎo)致前期線路交叉打了很多孔,后面做了很多優(yōu)化把孔的數(shù)量減少到正常值。畫好之后聯(lián)系了城隍廟的商家做板子,4天之后成功拿到板子,進(jìn)行PCB板的焊接。在PCB焊接完成之后,發(fā)現(xiàn)不能燒程序進(jìn)單片機(jī),經(jīng)過(guò)跟萬(wàn)用板的對(duì)比,發(fā)現(xiàn)是晶振震蕩電路的電容有問(wèn)題,PCB板設(shè)計(jì)的封裝是貼片電容,萬(wàn)用板用的是瓷片電容,后來(lái)改用跟萬(wàn)用板一樣的瓷片電容之后,該問(wèn)題得到解決。本次設(shè)計(jì)過(guò)程中花時(shí)間最多的是軟件調(diào)試,根據(jù)老師提供的資料部分代碼寫完代碼之后,發(fā)現(xiàn)溫度一直不能正常顯示,選用DS18B20的很大一部分原因就是其硬件開(kāi)銷小,但是軟件開(kāi)銷較大,程序和硬件都檢查了很多遍,最后查了大量資料才知道是溫度模塊DS18B20的復(fù)位函數(shù)有問(wèn)題,DS18B20模塊不能正常復(fù)位,因此也不能正常輸出溫度數(shù)值。修改時(shí)延函數(shù)之后問(wèn)題得到解決。附件進(jìn)度分工表陸順杰范烈嚴(yán)萬(wàn)志兵規(guī)定時(shí)間實(shí)際時(shí)間文獻(xiàn)閱讀10%4%3%3%33器件選型購(gòu)買6%3%3%11樣機(jī)40%設(shè)計(jì)原理圖、代碼25%15%10%57焊接制作測(cè)試15%6%9%22成品35%pcb設(shè)計(jì)15%3%2%10%35焊接調(diào)試10%6%4%21校準(zhǔn)10%1%2%7%25報(bào)告9%2%7%11小計(jì)40%40%20%1925電路原理圖PCB原理圖程序代碼#include<reg52.h>#include<intrins.h>#defineulongunsignedlong#defineucharunsignedchar#defineuintunsignedintdataulonglength,speed;datauchartempl,temph;sbitwendu=P2^0;//接收溫度引腳sbitfashe=P1^0;//產(chǎn)生脈沖引腳sbitjshou=P1^1;//接收回波引腳sbitS1=P2^1;//ledsbitS2=P2^3;//ledsbitS3=P2^5;//ledsbitS4=P2^7;//ledsbitbeep=P1^3;//蜂鳴器charidatadisp[5]={0x00,0x00,0x00,0x00,0x00};charidatanumber[5]={0x00,0x00,0x00,0x00,0x00}; ucharcodeshuma[11]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0x7f};//0~9個(gè)數(shù)字和—constunsignedchartabl3[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//查表得溫度小數(shù)位voiddelay(intj){ inti; for(i=0;i<j;i++); }voiddelayms(uintms){uchara,b;while(ms--){_nop_();a=2;b=239;do{ while(--b); }while(--a);}}voiddelay20us(){uchari;_nop_();i=7;while(--i);}voidrest_ds18b20(void)//DS18B20復(fù)位函數(shù){charpre=1;while(pre){while(pre){wendu=1;_nop_();_nop_();wendu=0;delay(50);wendu=1;delay(6);pre=wendu;}delay(45);pre=~wendu;}}voidw_1byte_ds18b20(ucharvalue)//向DS18B20寫一字節(jié)的數(shù)據(jù){uchari=0;for(i=0;i<8;i++){wendu=1;_nop_();_nop_();wendu=0;_nop_();_nop_();_nop_();_nop_();_nop_(); wendu=value&0x01;//最低位移出delay(6);value>>=1;}wendu=1;}ucharr_1byte_ds18b20(void)//讀一個(gè)字節(jié){uchari=0;ucharvalue=0;for(i=0;i<8;i++){value>>=1;wendu=0;_nop_();_nop_();_nop_();wendu=1;_nop_();_nop_();_nop_();_nop_();if(wendu==1)value|=0x80;delay(6);}wendu=1;returnvalue;}readtemp_ds18b20()//讀取溫度{rest_ds18b20();//復(fù)位w_1byte_ds18b20(0xcc);//跳過(guò)讀序列號(hào)的操作w_1byte_ds18b20(0x44);//啟動(dòng)溫度轉(zhuǎn)換delay(6);rest_ds18b20();w_1byte_ds18b20(0xcc);//跳過(guò)讀序列號(hào)的操作w_1byte_ds18b20(0xbe);//讀取溫度寄存器templ=r_1byte_ds18b20();//溫度低8位temph=r_1byte_ds18b20();//溫度高8位 number[0]=tabl3[templ&0x0f]; number[4]=(((templ&0xf0)>>4)|((temph&0x0f)<<4)); if(number[4]>=-20){speed=319;} elseif(number[4]>=-10){speed=325;} elseif(number[4]>=0){speed=323;} elseif(number[4]>=10){speed=338;} elseif(number[4]>=20){speed=344;} elseif(number[4]>=30){speed=349;} elseif(number[4]>=100){speed=386;}else{speed=313;} number[3]=number[4]/100; number[1]=number[4]%100; number[2]=number[1]/10; number[1]=number[1]%10;}voidTimetojuli(void)//將測(cè)量的時(shí)間轉(zhuǎn)換為距離{ disp[4]=length/1000;//m length=length-disp[4]*1000; disp[3]=length/100;//dm length=length-disp[3]*100; disp[2]=length/10;//cm length=length-disp[2]*10; disp[1]=length;//mm }wendu_display(void)//溫度顯示函數(shù){intj; rest_ds18b20(); w_1byte_ds18b20(0xcc); w_1byte_ds18b20(0x44); readtemp_ds18b20(); for(j=0;j<5000;j++) { P0=shuma[number[0]]; S1=0; delay20us(); S1=1; P0=shuma[number[1]]&0xdf; S2=0; delay20us(); S2=1; P0=shuma[number[2]]; S3=0; delay20us(); S3=1; } }voidjuli_display(void)//距離顯示函數(shù){ P0=shuma[disp[1]]; S1=0; delay20us(); S1=1; P0=shuma[disp[2]]&0xdf; S2=0; delay20us(); S2=1; P0=shuma[disp[3]]; S3=0; delay20us(); S3=1; P0=shuma[disp[4]]; S4=0; delay20us(); S4=1;}floatmeas(){ uinttime;TH0=0;TL0=0;fashe=1; delay20us(); fashe=0; delay20us(); while(!jshou);TR0=1; while(jshou); TR0=0; time=TH0; time=(TH0<<8)|TL0; length=(speed)*time/2000;//計(jì)算長(zhǎng)度,是擴(kuò)大1000倍 if(length<=35)length=length; elseif(length<=77)length=length*1.053; elseif(length<=463)length=length*1.08; elseif(length<=790)length=le

溫馨提示

  • 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ù)網(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)論