基于單片機(jī)的超聲波液位測量系統(tǒng)-(盧瑞)_第1頁
基于單片機(jī)的超聲波液位測量系統(tǒng)-(盧瑞)_第2頁
基于單片機(jī)的超聲波液位測量系統(tǒng)-(盧瑞)_第3頁
基于單片機(jī)的超聲波液位測量系統(tǒng)-(盧瑞)_第4頁
基于單片機(jī)的超聲波液位測量系統(tǒng)-(盧瑞)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章緒論課題研究的背景及意義目前,液位測量技術(shù)已經(jīng)廣泛的運(yùn)用在工業(yè)部門和日常檢測部門中。例如:液位測量技術(shù)在石油、化工、氣象等部門的應(yīng)用。在測量條件和環(huán)境來說,有的測量系統(tǒng)被運(yùn)用在十分復(fù)雜的條件與環(huán)境中。例如:有的是高溫高壓,有的是低溫或真空,有的需要防腐蝕、防輻射,有的從安裝上提出苛刻的限制,有的從維護(hù)上提出嚴(yán)格的要求等。這些都大大的提高了對(duì)測量技術(shù)的要求。所以能實(shí)現(xiàn)測量的無接觸與智能化是液位測量計(jì)現(xiàn)在的主要開展方向。近年來,隨著工業(yè)的開展,計(jì)算機(jī)、微電子、傳感器等高新技術(shù)的應(yīng)用和研究,液位儀表的研制得到了長足的開展,以適應(yīng)越來越高的應(yīng)用要求。在現(xiàn)代工業(yè)生產(chǎn)中,常常需要測量容器中液體的液位。在一般的生產(chǎn)過程中,液位測量的目的主要是通過液位測量來確定容器里的原料、半成品或產(chǎn)品的數(shù)量,以保證生產(chǎn)過程各環(huán)節(jié)物料平衡以及為進(jìn)行經(jīng)濟(jì)核算提供可靠的依據(jù);另外還為了在連續(xù)生產(chǎn)的情況下,通過液位測量,了解液位是否在規(guī)定的范圍內(nèi),從而維持正常生產(chǎn)、保證產(chǎn)品的產(chǎn)量和質(zhì)量以及保證平安生產(chǎn)。液位的測量在工業(yè)生產(chǎn)過程中的作用已經(jīng)相當(dāng)重要。隨著各行業(yè)的快速開展,液位測量已應(yīng)用到越來越多的領(lǐng)域,不僅用于各種容器、管道內(nèi)液體液位的測量,還用于水渠、水庫、江河、湖海水位的測量。這些領(lǐng)域使用傳統(tǒng)的液位測量手段已經(jīng)無法滿足對(duì)其精確性的要求,所以超聲波液位測量這種新的測量方向已經(jīng)成為一種新的手段被廣泛的應(yīng)用。在目前市場上,按測量液位的感應(yīng)元件與被測液體是否接觸,液位儀表可以分為接觸型和非接觸型兩大類[3]。接觸型液位測量主要有:人工檢尺法、浮子測量裝置、伺服式液位計(jì)、電容式液位計(jì)以及磁致伸縮液位計(jì)等。它們的共同點(diǎn)是測量的感應(yīng)元件與被測液體接觸,即都存在著與被測液體相接觸的測量部件且多數(shù)帶有可動(dòng)部件。因此存在一定的磨損且容易被液體沾污或粘住,尤其是桿式結(jié)構(gòu)裝置,還需有較大的安裝空間,不方便安裝和檢修。非接觸型液位測量主要有微波雷達(dá)液位計(jì)、射線液位計(jì)以及激光液位計(jì)等。顧名思義,這類測量儀表的共同特點(diǎn)是測量的感應(yīng)元件與被測液體不接觸。因此測量部件不受被測介質(zhì)影響,也不影響被測介質(zhì),因而其適用范圍較為廣泛,可用于接觸型測量儀表不能滿足的特殊場合,如粘度高、腐蝕性強(qiáng)、污染性強(qiáng)、易結(jié)晶的介質(zhì)。超聲波液位測量計(jì)就屬于非接觸型液位測量的一種,所以它也有不受被測介質(zhì)影響,不影響被測介質(zhì),能適應(yīng)粘度高、腐蝕性強(qiáng)、污染性強(qiáng)、易結(jié)晶、高溫、高壓、低溫、低壓、有輻射性、毒性、易揮發(fā)易爆等特殊介質(zhì)的測量的特點(diǎn),能適應(yīng)的范圍比其它的測量手段更廣泛。隨著科學(xué)的開展液位的檢測方法也在變化,精度也有了更佳的提高。單片機(jī)技術(shù)和傳感器技術(shù)的開展使液位測量方法得到了更進(jìn)一步的開展。超聲波在液位測量中的應(yīng)用也越來越廣,但是就目前的開展水平來說,超聲波在測距系統(tǒng)中的應(yīng)用還有一定的限度,因此研究超聲波的液位檢測是很有開展前景的。它在技術(shù)和產(chǎn)業(yè)領(lǐng)域具有廣闊的開展空間。本次設(shè)計(jì)中,通過外界環(huán)境溫度的檢測提高了超聲波測距的精度。通過延時(shí)防止了接收未經(jīng)液面反射的超聲波,其次利用溫度傳感器檢測外界溫度,采用當(dāng)前溫度下的超聲波速度去計(jì)算,從而提高了距離計(jì)算的精度。在未來,超聲波的液位測量將有更大的用途,更大的應(yīng)用范圍。它不但可以幫助人們解決很多生活中的困難,還可以作為科學(xué)探測和研究的手段。特別是水位的測量,可以幫助確定水位的高度,以便于其他工作的順利進(jìn)行。本設(shè)計(jì)中采用反射式的方式,超聲波傳感器發(fā)射超聲波,遇到液面后超聲波被反射回來,超聲波接收探頭接收超聲波。其間通過單片機(jī)的控制,P1.0口輸出控制信號(hào)從555振蕩器輸入到驅(qū)動(dòng)電路驅(qū)動(dòng)超聲波發(fā)射電路,超聲波發(fā)生電路產(chǎn)生40KHz的調(diào)制脈沖,經(jīng)換能器轉(zhuǎn)換為超聲波信號(hào)向前方空間發(fā)射。經(jīng)過液面反射后超聲波接收探頭將接收到的超聲波送到單片機(jī)進(jìn)行處理。單片機(jī)通過各個(gè)引腳來實(shí)現(xiàn)和各電路模塊的接口連接。并通過軟件的設(shè)計(jì)來控制整個(gè)檢測過程。一步一步,從發(fā)射到接收超聲波,定時(shí)器的初始化,中斷程序的編寫,溫度的采樣,距離的計(jì)算,單片機(jī)都發(fā)揮了重要的最用。它是整個(gè)檢測系統(tǒng)的內(nèi)部核心。這次對(duì)超聲波液位檢測的設(shè)計(jì)獲得了具有很大的成果和意義,在這個(gè)科學(xué)技術(shù)是第一生產(chǎn)力的時(shí)代,應(yīng)用科學(xué)技術(shù)去解決生活中和工作的困難變得具有更高的價(jià)值。在設(shè)計(jì)中,我加深了對(duì)超聲波的認(rèn)識(shí),對(duì)它的原理掌握的更好了。目前超聲波已廣泛運(yùn)用于診斷學(xué)、治療學(xué)、工程學(xué)、生物學(xué)等領(lǐng)域。此外我認(rèn)識(shí)到單片機(jī)在各方面都有很大的應(yīng)用潛能,在自動(dòng)控制領(lǐng)域它更是發(fā)揮了不可替代的作用。本設(shè)計(jì)利用超聲波實(shí)現(xiàn)液位的測量,檢測方便,易于實(shí)時(shí)控制,到達(dá)了工業(yè)的要求,因此具有實(shí)際的意義和廣泛的應(yīng)用前景。國內(nèi)外開展的現(xiàn)狀隨著電子技術(shù)的開展出現(xiàn)了微波雷達(dá)測距、激光測距及超聲波測距。前2種方法由于技術(shù)難度大本錢高一般僅用于軍事工業(yè)而超聲波測距那么由于其技術(shù)難度相對(duì)較低且本錢低廉適于民用推廣。這項(xiàng)技術(shù)也可用于工業(yè)測量領(lǐng)域。由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波常常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實(shí)現(xiàn)。利用超聲波檢測往往比擬迅速、方便、計(jì)算簡單、易于做到實(shí)時(shí)控制,并且在測量精度方面能到達(dá)工業(yè)實(shí)用的要求,因此在移動(dòng)機(jī)器人的研制上也得到了廣泛的應(yīng)用。隨著自動(dòng)測量和微機(jī)技術(shù)的開展,超聲波測距的理論已經(jīng)成熟,超聲波測距的應(yīng)用也非常廣泛。超聲測距是一種非接觸式的檢測方式。與其它方法相比,如電磁的或光學(xué)的方法,它不受光輝、被測對(duì)象顏色等影響。對(duì)于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力。因此在液位測量、機(jī)單片機(jī)畢業(yè)論文械手控制、車輛自動(dòng)導(dǎo)航、物體識(shí)別等方面有廣泛應(yīng)用。特殊是應(yīng)用于空氣測距,由于空氣中波速較慢,其回波信號(hào)中包含的沿傳播方向上的結(jié)構(gòu)信息很輕易檢測出來,具有很高的分辨力,因而其正確度也較其它方法為高;而且超聲波傳感器具有結(jié)構(gòu)簡單、體積小、信號(hào)處理可靠等特點(diǎn)。因此本設(shè)計(jì)也是利用超聲波來測量距離。液位計(jì)的類型按測量液位的感應(yīng)元件與被測液體是否接觸,液位儀表可以分為接觸型和非接觸型兩大類。一、接觸型液位儀表:接觸型液位儀表主要有:人工檢尺法、浮子測量裝置、伺服式液位計(jì)、電容式液位計(jì)以及磁致伸縮液位計(jì)。它們的共同特點(diǎn)是測量的感應(yīng)元件與被測液體接觸。1.人工檢尺法:計(jì)量員上到罐頂,自計(jì)量孔投放測深鋼卷尺,然后取出尺子,觀測液面浸濕尺子的刻度,此為人工檢尺法。人工檢尺法具有測量簡單、直觀、本錢低等特點(diǎn),但由于其是人工測量,故不適合在惡劣的情況下使用,另外需要較長的測量時(shí)間,難以實(shí)現(xiàn)在線實(shí)時(shí)測量,不僅如此,還容易造成人為的測量誤差。2.浮子測量裝置:它是由浮子、傳感器和二次儀表組成,是通過用浮子測量浮力的大小定量測量液位,將該裝置固定在罐中,使浮子立于罐中處于相對(duì)靜止?fàn)顟B(tài),浮子在罐中所受浮力的大小等于液體的排出量。當(dāng)浮力的大小發(fā)生變化時(shí),變化值通過浮子傳遞給傳感器,經(jīng)過二次儀表顯示出液位的數(shù)值。浮子式液位裝置具有結(jié)構(gòu)簡單、價(jià)格廉價(jià)等優(yōu)點(diǎn),但是浮子會(huì)隨著液面的波動(dòng)而波動(dòng),從而造成讀數(shù)誤差。浮子測量裝置的適用范圍為非腐蝕液體的測量。3.伺服式液位計(jì):伺服式液位計(jì)基于浮力平衡的原理,由微伺服電動(dòng)機(jī)驅(qū)動(dòng)體積較小的浮子,能精確地測出液位等參數(shù)?,F(xiàn)代伺服液位計(jì)的測量精度己到達(dá)40m范圍內(nèi)小于士1mm。但是,由于伺服式液位計(jì)仍屬于機(jī)械測量裝置,存在機(jī)械磨損,影響了測量的精度,因此需要定期維修和重新定標(biāo)且安裝困難。4.電容式液位計(jì):電容液位傳感器是利用被測對(duì)象物質(zhì)的導(dǎo)電率,將液位變化轉(zhuǎn)換成電容變化來進(jìn)行測量的一種液位計(jì)。與其他液位傳感器相比,電容液位傳感器具有靈敏性好、輸出電壓高、誤差小、動(dòng)態(tài)響應(yīng)好、無自熱現(xiàn)象、對(duì)惡劣環(huán)境的適用性強(qiáng)等優(yōu)點(diǎn)。常見的電容傳感器測量電路有變壓器電橋式、運(yùn)算放大器式及脈沖寬度式等。這類儀表適用于腐蝕性液體、沉淀性液體以及其它化工工藝液體液面的連續(xù)測量與位式測量,或單一液面的液位測量。5.磁致伸縮液位計(jì):磁致伸縮液位計(jì)采用磁致伸縮技術(shù)來測量大罐的油水界面和油氣界面。通常情況下,磁致伸縮液位計(jì)安裝有兩個(gè)浮子,其中一個(gè)浮子的密度小一于油品的密度,另一個(gè)浮子的密度大于油品的密度而小于水的密度,它們分別用來檢測油氣界面和油水界面。磁致伸縮液位計(jì)安裝容易,不需要定期維修和重新定標(biāo),工作壽命較長。其測量精度較高,測量的重復(fù)精度也較高,是比擬理想的接觸型液位計(jì)。但是磁致伸縮液位計(jì)與被測液體接觸,儀器容易受到腐蝕,且液體的密度變化會(huì)帶來測量誤差。此外,浮子裝置沿著波導(dǎo)管的護(hù)導(dǎo)管上下移動(dòng),容易被卡死,從而影響液位的止確測量。二、非接觸型液位儀表:非接觸型測量儀表主要包括超聲波液位計(jì)、雷達(dá)液位計(jì)、射線液位計(jì)、激光液位計(jì)以及光纖液位計(jì)等。這類液位測量儀表的共同特點(diǎn)是測量的敏感元件與被測液體不接觸,因此不受被測介質(zhì)影響,也不影響被測介質(zhì),因而適用范圍較為廣泛,可用于接觸式測量儀表不能滿足的特殊場合,如粘度高、腐蝕性強(qiáng)、污染性強(qiáng)、易結(jié)晶的介質(zhì)。1.超聲波液位計(jì):超聲波液位計(jì)是由微處理器控制的數(shù)字物位儀表。在測量中脈沖超聲波由傳感器〔換能器〕發(fā)出,聲波經(jīng)液體外表反射后被同一種傳感器接收,轉(zhuǎn)換成電信號(hào)。并由聲波的發(fā)射和接收之間的時(shí)間來計(jì)算傳感器到被測物體的距離。由于采用非接觸的測量,被測介質(zhì)幾乎不受限制,可廣泛用于各種液體和固體物料高度的測量。目前,智能化的超聲波液位計(jì)能夠?qū)邮招盘?hào)做精確的處理和分析:可以將各種干擾信號(hào)過濾出來;識(shí)別多重回波;分析信號(hào)強(qiáng)度和環(huán)境溫度等有關(guān)信息。這樣即便在有外界干擾的情況下,也能夠進(jìn)行精確的測量。超聲波液位計(jì)不僅能定點(diǎn)和連續(xù)測量,而且能方便地提供遙測和遙控所需的信號(hào)。同時(shí),超聲波液位計(jì)不存在可動(dòng)部件,所以在安裝和維護(hù)上相應(yīng)比擬方便。超聲測位技術(shù)可適用于氣體、液體或固體等多種測量介質(zhì),因而具有較大的適應(yīng)性且價(jià)格較為廉價(jià)。新型氣密結(jié)構(gòu)、耐腐蝕的超聲波傳感器可測量高達(dá)15m的液位。2.雷達(dá)液位計(jì):在罐頂安裝天線,天線發(fā)射的微波是頻率波線性調(diào)制的連續(xù)波,當(dāng)回波被天線接收到時(shí),天線發(fā)射頻率已經(jīng)改變。根據(jù)回波與發(fā)射波的頻率差可以計(jì)算出物料面的距離。FMCW方式測量線路較復(fù)雜,從而測量精確度較高,同時(shí)干擾回波也較易去除,一般用于較高端的測量方案,但是安裝比擬復(fù)雜且價(jià)格不菲。3.射線液位計(jì):核輻射放出的射線(如丫射線等)具有較強(qiáng)的穿透能力,且穿過不同厚度的介質(zhì)有不同的衰減特性,核輻射式液位計(jì)正是利用這一原理來測量液位的。核輻射式液位計(jì)的核輻射源用點(diǎn)式或狹長型結(jié)構(gòu)安裝在油罐的外面,狹長型核輻射源檢測元件也安裝在油罐外面,可實(shí)現(xiàn)對(duì)液位動(dòng)態(tài)變化的檢測。除利用核輻射射線來測量之外,還可采用中子射線來測量液位。射線液位計(jì)安裝非常方便,測量精度較高。因?yàn)樗鼪]有任何部件與被測物體直接接觸,特別適用于傳統(tǒng)測量儀表不能解決的測量問顆。4.激光液位計(jì):其測量原理類似于超聲波液位計(jì),只是采用光波代替了超聲波。發(fā)射傳感器發(fā)射出激光,照射到被測液面,在液面處發(fā)生反射,接收傳感器接收反射光,將從發(fā)射至接收的時(shí)間換算成液位。激光的光束很窄,在液位計(jì)中通過光學(xué)系統(tǒng)轉(zhuǎn)換成約20mm寬的光束,這樣即使被測物面很粗糙,漫反射光也能被傳感器接收。激光液位計(jì)非常適用于開口很狹窄的容器以及高溫、高粘度的測量對(duì)象。而缺點(diǎn)是對(duì)液面的波動(dòng)很敏感,大罐內(nèi)的油蒸汽,水氣等微粒對(duì)測量不利,且光學(xué)鏡頭必須定期保持清潔。5.光纖液位計(jì):光纖液位檢測是近年來出現(xiàn)的一種新技術(shù)。根據(jù)光導(dǎo)纖維中光在不同介質(zhì)中傳輸特性的改變對(duì)液位進(jìn)行測量。這類檢測儀表一般具有體積小、重量輕、無動(dòng)作部件、安裝方便等優(yōu)點(diǎn)、大多可適用于任何液體液位高度的檢測與控制,特別適用于易燃、易爆、腐蝕性液體的檢測。這類檢測儀表檢測精度高但正處于開展階段尚未成熟。本設(shè)計(jì)的主要工作本設(shè)計(jì)主要是針對(duì)類似油罐等封閉式液體的液位的測量,在考慮了各種液位測量方式后,根據(jù)前文所述,決定要超聲波作為主要手段,采用脈沖回波測量法。此次設(shè)計(jì)采用反射波方式,超聲波測距儀硬件電路的設(shè)計(jì)主要包括單片機(jī)系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波檢測接收電路三局部。單片機(jī)采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測量誤差。單片機(jī)用P1.0端口輸出超聲波換能器所需的40kHz的方波信號(hào),利用外中斷0口監(jiān)測超聲波接收電路輸出的返回信號(hào)。顯示電路采用簡單實(shí)用的LED數(shù)碼管。超聲波發(fā)射電路主要由反相器CD4069和超聲波發(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)能力。上位電阻R2、R3一方面可以提高反相器CD4069輸出高電平的驅(qū)動(dòng)能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由震蕩時(shí)間。壓電式超聲波換能器是利用壓電晶體管的諧振來工作的。超聲波換能器內(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)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。超聲波檢測接收電路主要是由集成電路CX20236A組成,它是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路。實(shí)驗(yàn)證明用CX20236A接收超聲波(無信號(hào)時(shí)輸出高電平),具有很好的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)更改電容C16的大小,可以改變接收電路的靈敏度和抗干擾能力。超聲波測距儀的軟件設(shè)計(jì)主要有主程序、超聲波發(fā)生程序、超聲波接收中斷程序及顯示子程序組成。我們知道C語言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,匯編語言程序那么具有較高的效率且容易精細(xì)計(jì)算程序運(yùn)行的時(shí)間,而超聲波測距儀的程序有較復(fù)雜的計(jì)算〔計(jì)算距離時(shí)〕,所以控制程序可采用C語言編程。超聲波測距儀主程序利用外中斷1檢測返回超聲波信號(hào),一旦接收到返回超聲波信號(hào)〔即INT0引腳出現(xiàn)低電平〕,立即進(jìn)入中斷程序。進(jìn)入中斷后就立即關(guān)閉計(jì)時(shí)器T0停止計(jì)時(shí),并將測距成功標(biāo)志字賦值1。如果當(dāng)計(jì)時(shí)器溢出時(shí)還未檢測到超聲波返回信號(hào),那么定時(shí)器T0溢出中斷將外中斷0關(guān)閉,并將測距成功標(biāo)志字賦值2以表示此次測距不成功。超聲波測距的算法設(shè)計(jì)原理為超聲波發(fā)生器T在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波遇到被測物體后反射回來,就被超聲波接收器R所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。在啟動(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端產(chǎn)生一個(gè)中斷請(qǐng)求信號(hào),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷效勞子程序,讀取時(shí)間差,計(jì)算距離。第二章系統(tǒng)的總體方案設(shè)計(jì)2.1系統(tǒng)設(shè)計(jì)內(nèi)容和功能本設(shè)計(jì)中采用反射式的方式,超聲波傳感器發(fā)射超聲波,遇到液面后超聲波被反射回來,超聲波接收探頭接收超聲波。其間通過單片機(jī)的控制,I/O口輸出控制信號(hào)從NE555振蕩器輸入到CD4069驅(qū)動(dòng)電路驅(qū)動(dòng)超聲波發(fā)射電路,超聲波發(fā)生電路產(chǎn)生40KHz的調(diào)制脈沖,經(jīng)換能器轉(zhuǎn)換為超聲波信號(hào)向前方空間發(fā)射。經(jīng)過液面反射后超聲波接收探頭將接收到的超聲波送到單片機(jī)進(jìn)行處理。輸出由LED數(shù)碼管顯示,通過盲區(qū)的消除以及環(huán)境溫度的采樣,提高了測距的精確度。利用超聲波傳輸中距離與時(shí)間的關(guān)系,采用AT89C51單片機(jī)進(jìn)行控制及數(shù)據(jù)處理,設(shè)計(jì)出了能精確測量兩點(diǎn)間距離的超聲波液位檢測系統(tǒng)。利用所設(shè)計(jì)出的超聲波液位檢測系統(tǒng),對(duì)液面進(jìn)行了測試,采集當(dāng)時(shí)的環(huán)境溫度獲得精確的速度,計(jì)算出液面距離。此系統(tǒng)具有易控制、工作可靠、測量精度高的優(yōu)點(diǎn),可實(shí)時(shí)檢測液位。設(shè)計(jì)具體內(nèi)容:(1)AT89C51主控單元電路(2)超聲波發(fā)射電路(3)超聲波接收電路(4)溫度補(bǔ)償電路(5)報(bào)警及顯示電路2.2課題設(shè)計(jì)的任務(wù)和要求:(1)測量距離范圍要求為≤9.99m;(2)精度要求1cm;(3)有溫度補(bǔ)償;(4)顯示方式為數(shù)碼管顯示;(5)具有較強(qiáng)的抗干擾能力。(6)盲區(qū)問題有一定的解決方法。2.3系統(tǒng)方案選擇為使基于單片機(jī)的超聲波液位測量控制系統(tǒng)具有較好的實(shí)用性,并且具有較高的性能/價(jià)格比,對(duì)該系統(tǒng)的硬件電路作了精心設(shè)計(jì)。該系統(tǒng)的硬件設(shè)計(jì)采用了模塊化的設(shè)計(jì)方法。按實(shí)現(xiàn)的功能來分可分為以下幾個(gè)局部。其中AT89C51單片機(jī)是整個(gè)電路的核心,它控制其他模塊來完成各種復(fù)雜的操作。外圍電路包括溫度補(bǔ)償電路、超聲波發(fā)射及接收電路、報(bào)警及顯示電路等等。方案一:我們可以用NE555振蕩產(chǎn)生40KH的方波信號(hào),它是基于硬件的根底上,便于我們可以通過示波器觀察到40KH的方波,具有直觀且易于觀察的特點(diǎn),有利于電路的檢測。方案二:我們可以通過單片機(jī)產(chǎn)生40KH的脈沖信號(hào),在通過CD4069驅(qū)動(dòng),將40KH的脈沖信號(hào)發(fā)射出去,由于是軟件控制,準(zhǔn)確度比擬高。經(jīng)過比擬我們發(fā)現(xiàn),在發(fā)射電路中方案一的設(shè)計(jì)是比擬經(jīng)濟(jì)實(shí)惠而且比擬方便,但方案二中的軟件設(shè)計(jì)使發(fā)射超聲波時(shí)間比擬容易控制,而且超聲波的頻率準(zhǔn)確度比擬高,本設(shè)計(jì)要求測量精度在1cm以內(nèi),在方案二中我們通過采用CX20236可以將信號(hào)進(jìn)行放大和整形處理,在CX20236的5腳和7腳串聯(lián)一個(gè)200K的電阻可以將頻率穩(wěn)定在40KH。因此在本次設(shè)計(jì)中,我們選用的是方案二,以提高測量結(jié)果的準(zhǔn)確度,并且在整個(gè)系統(tǒng)中我們都會(huì)采用單片機(jī)做計(jì)算和顯示。2.4系統(tǒng)總體方案的設(shè)計(jì)本設(shè)計(jì)基于單片機(jī)的超聲波液位測量系統(tǒng)主要由單片機(jī)、溫度檢測電路、超聲波發(fā)射電路、超聲波接收電路、LED顯示電路、報(bào)警電路等組成。本設(shè)計(jì)采用模塊化設(shè)計(jì)思想,以單片機(jī)AT89C51為核心,將其他模塊有機(jī)的整合在一起,形成一個(gè)統(tǒng)一的系統(tǒng),硬件系統(tǒng)的框圖如圖2.1所示。報(bào)警系統(tǒng)超聲波接收?qǐng)?bào)警系統(tǒng)超聲波接收超聲波發(fā)送AT89C51單片機(jī)LED顯示溫度檢測555電路圖2.1超聲波液位測量系統(tǒng)框圖2.5超聲波和超聲波傳感器科學(xué)家們將每秒鐘振動(dòng)的次數(shù)稱為聲音的頻率,它的單位是赫茲。我們?nèi)祟惗淠苈牭降穆暡l率為20~20000赫茲。當(dāng)聲波的振動(dòng)頻率大于20000赫茲或小于20赫茲時(shí),我們便聽不見了。因此,我們把頻率高于20000赫茲的聲波稱為“超聲波〞。超聲波的兩個(gè)主要參數(shù):頻率:F≥20K/Hz;功率密度:p=發(fā)射功率(W)/發(fā)射面積(cm2);通常p≥0.3w/cm2;在液體中傳播的超聲波能對(duì)物體外表的污物進(jìn)行清洗,其原理可用“空化〞現(xiàn)象來解釋:超聲波振動(dòng)在液體中傳播的音波壓強(qiáng)到達(dá)一個(gè)大氣壓時(shí),其功率密度為0.35w/cm2,這時(shí)超聲波的音波壓強(qiáng)峰值就可到達(dá)真空或負(fù)壓,但實(shí)際上無負(fù)壓存在,因此在液體中產(chǎn)生一個(gè)很大的壓力,將液體分子拉裂成空洞—空化核。此空洞非常接近真空,它在超聲波壓強(qiáng)反向到達(dá)最大時(shí)破裂,由于破裂而產(chǎn)生的強(qiáng)烈沖擊將物體外表的污物撞擊下來。這種由無數(shù)細(xì)小的空化氣泡破裂而產(chǎn)生的沖擊波現(xiàn)象稱為“空化〞現(xiàn)象。太小的聲強(qiáng)無法產(chǎn)生空化效應(yīng)。一、超聲波的特性〔1〕超聲波可在氣體、液體、固體、固熔體等介質(zhì)中有效傳播?!?〕超聲波可傳遞很強(qiáng)的能量?!?〕超聲波會(huì)產(chǎn)生反射、干預(yù)、疊加和共振現(xiàn)象?!?〕超聲波在液體介質(zhì)中傳播時(shí),可在界面上產(chǎn)生強(qiáng)烈的沖擊和空化現(xiàn)象。二、超聲波的特點(diǎn)〔1〕超聲波在傳播時(shí),方向性強(qiáng),能量易于集中。〔2〕超聲波能在各種不同媒質(zhì)中傳播,且可傳播足夠遠(yuǎn)的距離?!?〕超聲波與傳聲媒質(zhì)的相互作用適中,易于攜帶有關(guān)傳聲媒質(zhì)狀態(tài)的信息〔診斷或?qū)髀暶劫|(zhì)產(chǎn)生效應(yīng)〕。超聲波是一種波動(dòng)形式,它可以作為探測與負(fù)載信息的載體或媒介〔如B超等用作診斷〕;超聲波同時(shí)又是一種能量形式,當(dāng)其強(qiáng)度超過一定值時(shí),它就可以通過與傳播超聲波的媒質(zhì)的相互作用,去影響,改變以致破壞后者的狀態(tài),性質(zhì)及結(jié)構(gòu)〔用作治療〕。2.6超聲波傳感器的主要應(yīng)用超聲波傳感技術(shù)應(yīng)用在生產(chǎn)實(shí)踐的不同方面,而醫(yī)學(xué)應(yīng)用是其最主要的應(yīng)用之一,下面以醫(yī)學(xué)為例子說明超聲波傳感技術(shù)的應(yīng)用。超聲波在醫(yī)學(xué)上的應(yīng)用主要是診斷疾病,它已經(jīng)成為了臨床醫(yī)學(xué)中不可缺少的診斷方法。超聲波診斷的優(yōu)點(diǎn)是:對(duì)受檢者無痛苦、無損害、方法簡便、顯像清晰、診斷的準(zhǔn)確率高等。因而推廣容易,受到醫(yī)務(wù)工作者和患者的歡送。超聲波診斷可以基于不同的醫(yī)學(xué)原理,我們來看看其中有代表性的一種所謂的A型方法。這個(gè)方法是利用超聲波的反射。當(dāng)超聲波在人體組織中傳播遇到兩層聲阻抗不同的介質(zhì)界面是,在該界面就產(chǎn)生反射回聲。每遇到一個(gè)反射面時(shí),回聲在示波器的屏幕上顯示出來,而兩個(gè)界面的阻抗差值也決定了回聲的振幅的上下。在工業(yè)方面,超聲波的典型應(yīng)用是對(duì)金屬的無損探傷和超聲波測厚兩種。過去,許多技術(shù)因?yàn)闊o法探測到物體組織內(nèi)部而受到阻礙,超聲波傳感技術(shù)的出現(xiàn)改變了這種狀況。當(dāng)然更多的超聲波傳感器是固定地安裝在不同的裝置上,“悄無聲息〞地探測人們所需要的信號(hào)。在未來的應(yīng)用中,超聲波將與信息技術(shù)、新材料技術(shù)結(jié)合起來,將出現(xiàn)更多的智能化、高靈敏度的超聲波傳感器。2.7超聲波傳感器測距原理超聲波傳感器是利用超聲波的特性研制而成的傳感器。超聲波是一種振動(dòng)頻率高于聲波的機(jī)械波,由換能晶片在電壓的鼓勵(lì)下發(fā)生振動(dòng)產(chǎn)生的,它具有頻率高、波長短、繞射現(xiàn)象小,特別是方向性好、能夠成為射線而定向傳播等特點(diǎn)。超聲波對(duì)液體、固體的穿透本領(lǐng)很大,尤其是在陽光不透明的固體中,它可穿透幾十米的深度。超聲波碰到雜質(zhì)或分界面會(huì)產(chǎn)生顯著反射形成反射成回波,碰到活動(dòng)物體能產(chǎn)生多普勒效應(yīng)。因此超聲波檢測廣泛應(yīng)用在工業(yè)、國防、生物醫(yī)學(xué)等方面。以超聲波作為檢測手段,必須產(chǎn)生超聲波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習(xí)慣上稱為超聲換能器,或者超聲探頭。一、超聲波傳感器的性能指標(biāo)超聲探頭的核心是其塑料外套或者金屬外套中的一塊壓電晶片。構(gòu)成晶片的材料可以有許多種。晶片的大小,如直徑和厚度也各不相同,因此每個(gè)探頭的性能是不同的,我們使用前必須預(yù)先了解它的性能。超聲波傳感器的主要性能指標(biāo)包括:〔1〕工作頻率。工作頻率就是壓電晶片的共振頻率。當(dāng)加到它兩端的交流電壓的頻率和晶片的共振頻率相等時(shí),輸出的能量最大,靈敏度也最高?!?〕工作溫度。由于壓電材料的居里點(diǎn)一般比擬高,特別是診斷用超聲波探頭使用功率較小,所以工作溫度比擬低,可以長時(shí)間地工作而不會(huì)失效。醫(yī)療用的超聲探頭的溫度比擬高,需要單獨(dú)的制冷設(shè)備?!?〕靈敏度。主要取決于制造晶片本身。機(jī)電耦合系數(shù)大,靈敏度高;反之,靈敏度低。二、超聲波傳感器的結(jié)構(gòu)超聲波探頭主要由壓電晶片組成,既可以發(fā)射超聲波,也可以接收超聲波。小功率超聲探頭多作探測作用。它有許多不同的結(jié)構(gòu),直探頭、斜探頭、外表波探頭、蘭姆波探頭、雙探頭等。當(dāng)電壓作用于壓電陶瓷時(shí),就會(huì)隨電壓和頻率的變化產(chǎn)生機(jī)械變形。另一方面,當(dāng)振動(dòng)壓電陶瓷時(shí),那么會(huì)產(chǎn)生一個(gè)電荷。利用這一原理,當(dāng)給由兩片壓電陶瓷或一片壓電陶瓷和一個(gè)金屬片構(gòu)成的振動(dòng)器,所謂叫雙壓電晶片元件,施加一個(gè)電信號(hào)時(shí),就會(huì)因彎曲振動(dòng)發(fā)射出超聲波。相反,當(dāng)向雙壓電晶片元件施加超聲振動(dòng)時(shí),就會(huì)產(chǎn)生一個(gè)電信號(hào)?;谝陨献饔?,便可以將壓電陶瓷用作超聲波傳感器。如超聲波傳感器,一個(gè)復(fù)合式振動(dòng)器被靈活地固定在底座上。該復(fù)合式振動(dòng)器是諧振器以及,由一個(gè)金屬片和一個(gè)壓電陶瓷片組成的雙壓電晶片元件振動(dòng)器的一個(gè)結(jié)合體。諧振器呈喇叭形,目的是能有效地輻射由于振動(dòng)而產(chǎn)生的超聲波,并且可以有效地使超聲波聚集在振動(dòng)器的中央部位。室外用途的超聲波傳感器必須具有良好的密封性,以便防止露水、雨水和灰塵的侵入。壓電陶瓷被固定在金屬盒體的頂部內(nèi)側(cè)。底座固定在盒體的開口端,并且使用樹脂進(jìn)行覆蓋。對(duì)應(yīng)用于工業(yè)機(jī)器人的超聲波傳感器而言,要求其精確度要到達(dá)1mm,并且具有較強(qiáng)的超聲波輻射。利用常規(guī)雙壓電晶片元件振動(dòng)器的彎曲振動(dòng),在頻率高于70kHz的情況下,是不可能到達(dá)此目的的。所以,在高頻率探測中,必須使用垂直厚度振動(dòng)模式的壓電陶瓷。在這種情況下,壓電陶瓷的聲阻抗與空氣的匹配就變得十分重要。壓電陶瓷的聲阻抗為2.6×107kg/m2s,而空氣的聲阻抗為4.3×102kg/m2s。5個(gè)冪的差異會(huì)導(dǎo)致在壓電陶瓷振動(dòng)輻射外表上的大量損失。一種特殊材料粘附在壓電陶瓷上,作為聲匹配層,可實(shí)現(xiàn)與空氣的聲阻抗相匹配。這種結(jié)構(gòu)可以使超聲波傳感器在高達(dá)數(shù)百kHz頻率的情況下,仍然能夠正常工作。2.8超聲波測距原理超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為340m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離(s),即:s=340t/2。這就是所謂的時(shí)間差測距法。圖2.2超聲波液位測量示意圖超聲波測距的原理是利用超聲波在空氣中的傳播速度為,測量聲波在發(fā)射后遇到障礙物反射回來的時(shí)間,根據(jù)發(fā)射和接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。由此可見,超聲波測距原理與雷達(dá)原理是一樣的。測距的公式表示為:L=C×T式中L為測量的距離長度;C為超聲波在空氣中的傳播速度;T為測量距離傳播的時(shí)間差(T為發(fā)射到接收時(shí)間數(shù)值的一半)。超聲波測距主要應(yīng)用于倒車提醒、建筑工地、工業(yè)現(xiàn)場等的距離測量,雖然目前的測距量程上能到達(dá)百米,但測量的精度往往只能到達(dá)厘米數(shù)量級(jí)。由于超聲波易于定向發(fā)射、方向性好、強(qiáng)度易控制、與被測量物體不需要直接接觸的優(yōu)點(diǎn),是作為液體高度測量的理想手段。2.9超聲波發(fā)生器選擇超聲波發(fā)生器可以分為兩類:一類是用電氣方式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。本課題屬于近距離測量,可以采用常用的壓電式超聲波換能器來實(shí)現(xiàn)。超聲波測距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時(shí)間來計(jì)算出傳播距離。實(shí)用的測距方法有兩種,一種是在被測距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計(jì);一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測距儀。此次設(shè)計(jì)采用反射波方式。測距儀的分辨率取決于對(duì)超聲波傳感器的選擇。超聲波傳感器是一種采用壓電效應(yīng)的傳感器,常用材料是壓電式陶瓷。由于超聲波在空氣傳播時(shí)會(huì)有相當(dāng)?shù)乃p,衰減的程度與頻率的上下成正比;而頻率高分辨率也高,故短距離測量時(shí)應(yīng)選擇高頻率的傳感器,而長距離測量時(shí)應(yīng)用低頻率的傳感器。一、超聲波接收傳感器及處理芯片CX20236A超聲探頭的核心是其塑料外套或者金屬外套中的一塊壓電晶片。構(gòu)成晶片的材料可以有許多種。晶片的大小,如直徑和厚度也各不相同,因此每個(gè)探頭的性能是不同的,我們使用前必須預(yù)先了解它的性能。超聲波傳感器的主要性能指標(biāo)包括:工作頻率。工作頻率就是壓電晶片的共振頻率。當(dāng)加到它兩端的交流電壓的頻率和晶片的共振頻率相等時(shí),輸出的能量最大,靈敏度也最高。工作溫度。由于壓電材料的居里點(diǎn)一般比擬高,特別時(shí)診斷用超聲波探頭使用功率較小,所以工作溫度比擬低,可以長時(shí)間地工作而不失效。醫(yī)療用的超聲探頭的溫度比擬高,需要單獨(dú)的制冷設(shè)備。靈敏度。主要取決于制造晶片本身。機(jī)電耦合系數(shù)大,靈敏度高;反之,靈敏度低。因此超聲波接受傳感器應(yīng)該應(yīng)用集成電路CX20236A,CX20236A是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路。實(shí)驗(yàn)證明用CX20236A接收超聲波(無信號(hào)時(shí)輸出高電平),具有很好的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)更改電容的大小,可以改變接收電路的靈敏度和抗干擾能力。此局部電路在集成芯片上二、溫度傳感器的選擇大家知道,聲音在不同溫度的空氣中傳播速度是不同的,所以這里要考慮到溫度補(bǔ)償?shù)膯栴}。溫度傳感器有很多種,例如溫度傳感器AD590。AD590是美國模擬器件公司生產(chǎn)的單片集成兩端感溫電流源。流過器件的電流〔mA〕等于器件所處環(huán)境的熱力學(xué)溫度〔開爾文〕度數(shù)。AD590的測溫范圍為-55℃~+150℃。AD590的電源電壓范圍為4V~30V。電源電壓可在4V-6V范圍變化,電流變化1mA,相當(dāng)于溫度變化1K。AD590可以承受44V正向電壓和20V反向電壓,因而器件反接也不會(huì)被損壞。輸出電阻為710WM。它的精度高。AD590共有I、J、K、L、M五檔,其中M檔精度最高,在-55℃~+150℃范圍內(nèi),非線性誤差為±0.3℃。但是考慮到本錢問題我選用TS-18B20數(shù)字溫度傳感器。該產(chǎn)品采用美國DALLAS公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。獨(dú)特的一線接口,只需要一條口線通信多點(diǎn)能力,簡化了分布式溫度傳感應(yīng)用無需外部元件可用數(shù)據(jù)總線供電,電壓范圍為3.0V至5.5V無需備用電源測量。溫度范圍為-55°C至+125℃。-10°C至+85°C范圍內(nèi)精度為±0.5°C

溫度傳感器可編程的分辨率為9~12位溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒用戶可定義的非易失性溫度報(bào)警設(shè)置應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費(fèi)電子產(chǎn)品溫度計(jì),或任何熱敏感系統(tǒng)。2.10盲區(qū)處理超聲波是由壓電晶片振動(dòng)產(chǎn)生的,壓電晶片的振動(dòng)是由信號(hào)控制的,當(dāng)信號(hào)停止的同時(shí),晶片由于慣性要等一段時(shí)間才能停下來,之后才能接收回波信號(hào),這段時(shí)間內(nèi)超聲波傳感器仍然在發(fā)射信號(hào),因此不能接收回波信號(hào),故稱之為盲區(qū)。當(dāng)發(fā)射超聲波時(shí),雖然發(fā)射信號(hào)只保持一個(gè)很短的時(shí)間,但停止發(fā)射信號(hào)后,超聲波探頭上還存在一定的余振,因此在發(fā)射信號(hào)停止后的一段時(shí)間內(nèi),加在回波檢測電路輸入端的發(fā)射信號(hào)幅值仍是相當(dāng)強(qiáng)的,可以到達(dá)電路的限幅電平。另一方面超聲波探頭上接收到的反射信號(hào)卻遠(yuǎn)比發(fā)射信號(hào)小,即使是離探頭較近處的障礙物發(fā)射信號(hào)也達(dá)不到電路的限幅電平。當(dāng)障礙物離探頭越來越遠(yuǎn)時(shí),接收信號(hào)與發(fā)射信號(hào)相隔時(shí)間越來越長,發(fā)射信號(hào)的幅值也相應(yīng)地越來越小。在超聲波檢測中,接收信號(hào)的衰減程度設(shè)計(jì)的比發(fā)射信號(hào)余振的衰減慢得多,如圖中實(shí)線所示。圖2.3測量盲區(qū)示意圖為了保證有一定的信噪比,接收信號(hào)的幅值規(guī)定了一個(gè)閥值,也就是說接收信號(hào)的幅值必須大于這一閥值時(shí)才能使回波接收電路有輸入信號(hào)。從圖中可見,從b點(diǎn)以后接收信號(hào)將低于閥值,這相當(dāng)于所測距離的最大值。從圖中的a點(diǎn)以后,接收信號(hào)才開始比發(fā)射信號(hào)大,但還將與發(fā)射信號(hào)相互迭加,較難分辨,因此這段時(shí)間內(nèi)不能進(jìn)行測量。從圖中的c點(diǎn)以后,發(fā)射信號(hào)己低于閥值,接收信號(hào)才根本上擺脫了發(fā)射信號(hào)的影響而能明顯地分辨出來。所以在要求較高時(shí),把oc這段時(shí)間規(guī)定為盲區(qū)時(shí)間。從距離上說,可根據(jù)盲區(qū)時(shí)間和聲速,求得盲區(qū)距離。因此,oc為盲區(qū)時(shí)間,cb為可測范圍,b為可測距離的最遠(yuǎn)點(diǎn)。對(duì)盲區(qū)問題普遍處理方法是對(duì)繞射虛假信號(hào)作屏蔽,而屏蔽方法多種多樣??梢詮挠布掀帘?,也可以從軟件上采用信號(hào)濾波,或者延時(shí)接收。如果從發(fā)射開始一直到“虛假反射波〞結(jié)束這段時(shí)間,采取關(guān)閉中斷的方法,從而不會(huì)發(fā)生中斷申請(qǐng),躲避繞射干擾。這種方法優(yōu)點(diǎn)是處理簡潔,故本系統(tǒng)就選用這種方法。第三章各單元硬件電路設(shè)計(jì)3.1單片機(jī)最小系統(tǒng)電路AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。如圖3.1所示。圖3.1AT89C51引腳圖AT89C51的主要特點(diǎn):與MCS-51兼容4K字節(jié)可編程閃爍存儲(chǔ)器壽命:1000寫/擦循環(huán)數(shù)據(jù)保存時(shí)間:10年全靜態(tài)工作:0Hz-24Hz三級(jí)程序存儲(chǔ)器鎖定128×8位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路管腳說明:VCC:供電電壓。GND:接地。P0,P1,P2,P3:輸入/輸出端口。P3.0/RXD:串行輸入口。P3.1/TXD:串行輸出口。P3.2/INT0:外部中斷0。P3.3/INT1:外部中斷1。P3.4/T0:計(jì)時(shí)器0外部輸入。P3.5T1:計(jì)時(shí)器1外部輸入。P3.6/WR:外部數(shù)據(jù)存儲(chǔ)器寫選通。P3.7/RD:外部數(shù)據(jù)存儲(chǔ)器讀選通。P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/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編程期間,此引腳也用于施加12V編程電源〔VPP〕。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1〞且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。3.2溫度補(bǔ)償電路設(shè)計(jì)DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司推出的一種改良型智能溫度傳感器,測溫范圍為-55~125℃,最大分辨率可達(dá)0.0625℃。DS18B20可以直接讀出被測溫度值,而且采用了一線制與單片機(jī)相連,減少了外部的硬件電路,具有低本錢和易使用的特點(diǎn)。測溫電路圖3.2所示。圖3.2DS18B20DS18B20溫度傳感器:(1):技術(shù)性能描述獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。測溫范圍-55℃~+125℃,固有測溫分辨率0.5℃。工作電源:3~5V/DC。在使用中不需要任何外圍元件。測量結(jié)果以9~12位數(shù)字量方式串行傳送。不銹鋼保護(hù)管直徑Φ6。適用于DN15~25,DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測溫。標(biāo)準(zhǔn)安裝螺紋M10X1,M12X1.5,G1/2任選。PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接。(2):應(yīng)用范圍該產(chǎn)品適用于冷凍庫,糧倉,儲(chǔ)罐,電訊機(jī)房,電力機(jī)房,電纜線槽等測溫和控制領(lǐng)域。軸瓦,缸體,紡機(jī),空調(diào),等狹小空間工業(yè)設(shè)備測溫和控制。汽車空調(diào)、冰箱、冷柜、以及中低溫枯燥箱等。供熱/制冷管道熱量計(jì)量,中央空調(diào)分戶熱能計(jì)量和工業(yè)領(lǐng)域測溫和控制。3.3超聲波發(fā)射電路設(shè)計(jì)壓電式超聲波換能器是利用壓電晶體的諧振來工作的。超聲波換能器內(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)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。圖3.3超聲波發(fā)射電路電路的設(shè)計(jì)思想超聲波發(fā)射電路由超聲波換能器〔或稱超聲波振頭〕和超聲波發(fā)生器兩局部組成,40KHz的超聲波信號(hào)是利用NE555時(shí)基電路振蕩產(chǎn)生的,振蕩頻率,通過調(diào)節(jié)信號(hào)頻率,使之與換能器的40KHz固有頻率一致,為保證555時(shí)基具有足夠的驅(qū)動(dòng)能力,宜采用+12V電源。工作時(shí),單片機(jī)通過P1.0口向超聲波發(fā)生電路發(fā)出控制信號(hào)從555振蕩電路的3腳輸入到CD4069驅(qū)動(dòng)器,經(jīng)驅(qū)動(dòng)器驅(qū)動(dòng)后推動(dòng)探頭產(chǎn)生超聲波,超聲波發(fā)生電路產(chǎn)生40KHz的調(diào)制脈沖,經(jīng)換能器轉(zhuǎn)換為超聲波信號(hào)向前方空間發(fā)射。3.4超聲波接收電路設(shè)計(jì)超聲波接收電路CX20236A是一款紅外線檢波接收的專用芯片,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波檢測接收電路。實(shí)驗(yàn)證明用CX20236A接收超聲波(無信號(hào)時(shí)輸出高電平),具有很好的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)更改電容的大小,可以改變接收電路的靈敏度和抗干擾能力。其電路由圖3.4所示。圖3.4超聲波檢測接收電路圖3.4超聲波檢測接收電路CX20236A的引腳注釋:1腳IN:超聲波信號(hào)輸入端,該腳的輸入阻抗約為40kΩ。2腳AGC:該腳與GND之間連接RC串聯(lián)網(wǎng)絡(luò),它們是負(fù)反應(yīng)串聯(lián)網(wǎng)絡(luò)的一個(gè)組成局部,改變它們的數(shù)值能改變前置放大器的增益和頻率特性。增大電阻R或減小C,將使負(fù)反應(yīng)量增大,放大倍數(shù)下降,反之那么放大倍數(shù)增大。但C的改變會(huì)影響到頻率特性,一般在實(shí)際使用中不必改動(dòng),推薦選用參數(shù)為R=4.7Ω,C=3.3μF。3腳C0:該腳與GND之間連接檢波電容,電容量大為平均值檢波,瞬間相應(yīng)靈敏度低;假設(shè)容量小,那么為峰值檢波,瞬間相應(yīng)靈敏度高,但檢波輸出的脈沖寬度變動(dòng)大,易造成誤動(dòng)作,推薦參數(shù)為3.3μF。4腳GND:接地端。5腳RC0:該腳與電源端VCC接入一個(gè)電阻,用以設(shè)置帶通濾波器的中心頻率f0,阻值越大,中心頻率越低。例如,取R=200kΩ時(shí),fn≈42kHz,假設(shè)取R=220kΩ,那么中心頻率f0≈38kHz。6腳C:該腳與GND之間接入一個(gè)積分電容,標(biāo)準(zhǔn)值為330pF,如果該電容取得太大,會(huì)使探測距離變短。7腳OUT:遙控命令輸出端,它是集電極開路的輸出方式,因此該引腳必須接上一個(gè)上拉電阻到電源端,該電阻推薦阻值為22kΩ,沒有接收信號(hào)時(shí)該端輸出為高電平,有信號(hào)時(shí)那么會(huì)下降。8腳RC1:電源正極,4.5V~5V。3.5顯示電路設(shè)計(jì)在單片機(jī)應(yīng)用系統(tǒng)中,LED數(shù)碼管的顯示常用兩種方法:靜態(tài)顯示和動(dòng)態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個(gè)顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機(jī)只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種方法較為簡單與便利。在顯示電路的設(shè)計(jì)上,利用單片機(jī)的P0~P2口來控制數(shù)碼管顯示,這種接法雖然比擬浪費(fèi)管腳資源,但是對(duì)單片機(jī)的理論知識(shí)要求相比照擬低,而且超聲波發(fā)射和接收電路并不需要很多的管腳來支持,所以我選擇這種方案。數(shù)碼管的選擇上,為了使數(shù)碼管亮度大,本人選擇了共陰極的數(shù)碼管,數(shù)碼管管腳接到高電平發(fā)亮。顯示及其驅(qū)動(dòng)電路的原理圖見圖3.5。圖3.5圖3.5顯示單元電路3.6電源電路設(shè)計(jì)本系統(tǒng)采用市電220V,50Hz供電,而單片機(jī)以及其它芯片均采用直流5V和12V電壓供電。故需要設(shè)計(jì)降壓電路。本電路使用了由LM7805和LM7812構(gòu)成的橋式穩(wěn)壓整流電路。電路如圖3.6所示。圖3.6電源電路經(jīng)過降壓、橋式整流、濾波后通過LM7805穩(wěn)壓并直接為單片機(jī)和其它器件供電,作為齊納二極管/電阻組合的替換方案時(shí),LM7805和LM7812通??梢愿纳朴行л敵鲎杩惯_(dá)兩個(gè)數(shù)量級(jí),并降低靜態(tài)電流。LM7805和LM7812可提供本地卡上穩(wěn)壓,結(jié)合單點(diǎn)調(diào)節(jié),解決分配問題。由于足夠的散熱設(shè)置,LM7805和LM7812穩(wěn)壓器可提供100mA的輸出電流,同時(shí)還包含限流功能,以限制峰值輸出在平安值的范圍內(nèi)。LM7805和LM7812為輸出晶體管提供了平安區(qū)域保護(hù),限制內(nèi)部功耗。假設(shè)內(nèi)部功耗超出了散熱范圍,熱關(guān)斷電路將會(huì)啟動(dòng),防止芯片過熱。3.7LED顯示系統(tǒng)設(shè)計(jì)微機(jī)化測控系統(tǒng)中常用的測量數(shù)據(jù)的顯示器有發(fā)光二極管顯示器(簡稱LED或數(shù)碼管)和液晶顯示器(簡稱LCD)。這兩種顯示器都具有線路簡單、耗電少、本錢低、壽命長等優(yōu)點(diǎn),本系統(tǒng)輸出結(jié)果選用4個(gè)LED顯示。數(shù)碼管有共陰共陽之分,本系統(tǒng)采用8段共陰型LED,其原理圖如下圖,每位數(shù)碼管內(nèi)部有8個(gè)發(fā)光二極管,公共端由8個(gè)發(fā)光二極管的陰極并接而成,正常顯示時(shí)公共端接低電平(GND),各發(fā)光二極管是否點(diǎn)亮取決于a-dp各引腳上是否是高電平。LED數(shù)碼管的外形結(jié)構(gòu)如圖,外部有12個(gè)引腳,其中數(shù)字1,2,3,4為公共端也稱位選端,其余8個(gè)引腳稱為段選端,當(dāng)要使某一位數(shù)碼管顯示某一數(shù)字((0-9中的一個(gè))必須在這個(gè)數(shù)碼管的段選端加上與數(shù)字顯示數(shù)字對(duì)應(yīng)的8位段選碼(也稱字形碼),在位選端加上低電平即可。由于系統(tǒng)要顯示的內(nèi)容比擬簡單,顯示量不多,所以選用數(shù)碼管既方便又經(jīng)濟(jì)。LED有共陰極和共陽極兩種。如下圖。二極管的陰極連接在一起,通常此公共陰極接地,而共陽極那么將發(fā)光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個(gè)發(fā)光二極管組成,其中7個(gè)發(fā)光二極管構(gòu)成字型“8〞的各個(gè)筆劃〔段〕a~g,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時(shí),該段筆劃即亮;不加電壓那么暗。為了保護(hù)各段LED不被損壞,需外加限流電阻。符號(hào)和引腳共陰極共陽極圖3.7數(shù)碼管類型數(shù)碼管顯示器有兩種工作方式,即靜態(tài)顯示方式和動(dòng)態(tài)掃描顯示方式。為節(jié)省端口及降低功耗,本系統(tǒng)采用動(dòng)態(tài)掃描顯示方式。動(dòng)態(tài)掃描顯示方式需要解決多位LED數(shù)碼管的“段控〞和“位控〞問題,本電路的通過P0口實(shí)現(xiàn):而每一位的公共端,即LED數(shù)碼管的“位控〞,那么由P2口控制。這種連接方式由于多位字段線連在一起,因此,要想顯示不同的內(nèi)容,必然要采取輪流顯示的方式,即在某一瞬間,只讓其中的某一位的字位線處于選通狀態(tài),其它各位的字位線處于斷開狀態(tài),同時(shí)字段線上輸出這一位相應(yīng)要顯示字符的字段碼。在這一瞬時(shí),只有這一位在顯示,其他幾位那么暗。在本系統(tǒng)中,字位線的選通與否是通過NPN8050三極管的導(dǎo)通與截止來控制,即三極管處于“開頭〞狀態(tài)。3.8報(bào)警電路設(shè)計(jì)為了在某些緊急狀態(tài)或反常狀態(tài)下,能使操作人員不致無視,以便及時(shí)處理,往往需要有某種更能引起人們注意提起警覺的報(bào)警信號(hào)產(chǎn)生,這種報(bào)警信號(hào)通常有三種類型:閃光報(bào)警、鳴音報(bào)警、語音報(bào)警,本系統(tǒng)采用簡單易行的壓電式蜂鳴器報(bào)警電路。如圖3.8所示報(bào)警電路,報(bào)警設(shè)備選用壓電式蜂鳴器,它約需要10mA的驅(qū)動(dòng)電流,只需在其兩條引線上加3一15V的直流電壓,即可產(chǎn)生3KHz左右的蜂鳴聲音,圖中蜂鳴器的一端接在高電平+5V,另一端接Pl.4,在初態(tài)Pl.4始終輸出高電平1,當(dāng)需要報(bào)警時(shí),程序?qū)ζ涠丝谇辶慵纯?,聲音的長短可用延時(shí)程序控制實(shí)現(xiàn)。圖3.8報(bào)警電路第四章系統(tǒng)軟件的設(shè)計(jì)超聲波測距儀的軟件設(shè)計(jì)主要有主程序、超聲波發(fā)生程序、超聲波接收中斷程序及顯示子程序組成。我們知道C語言程序有利于實(shí)現(xiàn)較復(fù)雜的算法,匯編語言程序那么具有較高的效率且容易精細(xì)計(jì)算程序運(yùn)行的時(shí)間,而超聲波測距儀的程序需要有較復(fù)雜的計(jì)算〔計(jì)算距離時(shí)〕,所以控制程序可采用C語言編程。4.1超聲波測距儀的算法設(shè)計(jì)超聲波測距的原理為超聲波發(fā)生器T在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波遇到被測物體后反射回來,就被超聲波接收器R所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間,就可算出超聲波發(fā)生器與反射物體的距離。距離的計(jì)算公式為:〔4-1〕其中,d為被測物與測距儀的距離,s為聲波的來回的路程,c為聲速,t為聲波來回所用的時(shí)間。在啟動(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),單片機(jī)響應(yīng)外部中斷請(qǐng)求,執(zhí)行外部中斷效勞子程序,讀取時(shí)間差,計(jì)算距離。4.2主程序流程圖1.單片機(jī)C語言C語言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語言,它的特點(diǎn)就是可以盡量減少你對(duì)硬件進(jìn)行操作,具有很強(qiáng)的結(jié)構(gòu)性、功能性和可移植性,常常被用來作為單片機(jī)系統(tǒng)的編程語言。但是用于單片機(jī)的C語言和標(biāo)準(zhǔn)C語言區(qū)別很大。如何結(jié)合單片機(jī)的系統(tǒng)資源,用C語言開發(fā)符合實(shí)際工程需要的單片機(jī)系統(tǒng),對(duì)編程者來說具有十分重要的意義。用C編寫程序比匯編更符合人們的思考習(xí)慣,開發(fā)者可以擺脫與硬件無必要的接觸,更專心的考慮功能和算法而不是考慮一些細(xì)節(jié)問題,這樣就減少了開發(fā)和調(diào)試的時(shí)間。C語言具有良好的程序結(jié)構(gòu),適用于模塊化程序設(shè)計(jì),因此采用C語言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序時(shí),首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計(jì)方法,將功能模塊化,由不同的模塊完成不同的功能,這樣可使整個(gè)應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護(hù)。不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),對(duì)于一些要重復(fù)調(diào)用的程序一般把其編成函數(shù),這樣可以減少程序代碼的長度,又便于整個(gè)程序的管理,還可增強(qiáng)可讀性和移植性。應(yīng)用C語言的優(yōu)越性:(1)不懂得單片機(jī)的指令集,也能夠編寫完美的單片機(jī)程序;(2)無須懂得單片機(jī)的具體硬件,也能夠編出符合硬件實(shí)際的專業(yè)水平的程序;(3)不同函數(shù)的數(shù)據(jù)實(shí)行覆蓋,有效利用片上有限的RAM空間;(4)程序具有鞏固性:數(shù)據(jù)被破壞是導(dǎo)致程序運(yùn)行異常的重要因素。C語言對(duì)數(shù)據(jù)進(jìn)行了許多專業(yè)性的處理,防止了運(yùn)行中間非異步的破壞;(5)C語言提供復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強(qiáng)了程序處理能力和靈活性;(6)中斷效勞程序的現(xiàn)場保護(hù)和恢復(fù),中斷向量表的填寫,是直接與單片機(jī)相關(guān)的,都由C編譯器代辦;(7)提供常用的標(biāo)準(zhǔn)函數(shù)庫,以供用戶直接使用;(8)頭文件中定義宏、說明復(fù)雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機(jī)的系列化產(chǎn)品的開發(fā);(9)有嚴(yán)格的句法檢查,錯(cuò)誤很少,可容易地在高級(jí)語言的水平上很快被排除。2.定時(shí)控制部件定時(shí)控制部件起著控制器作用,由定時(shí)控制邏輯、指令存放器〔IR〕和振蕩器〔OSC〕等電路組成。指令存放器〔IR〕用于存放從程序存儲(chǔ)器中取出的指令碼,定時(shí)控制邏輯用于對(duì)IR中指令碼譯碼,并在OSC配合下產(chǎn)生指令的時(shí)序脈沖,以完成相應(yīng)指令的執(zhí)行[18]。定時(shí)控制部件起著控制器作用,由定時(shí)控制邏輯、指令存放器〔IR〕和振蕩器〔OSC〕等電路組成。指令存放器〔IR〕用于存放從程序存儲(chǔ)器中取出的指令碼,定時(shí)控制邏輯用于對(duì)IR中指令碼譯碼,并在OSC配合下產(chǎn)生指令的時(shí)序脈沖,以完成相應(yīng)指令的執(zhí)行。OSC是控制器的心臟,能為控制器提供時(shí)鐘脈沖。引腳XTAL1為反向放大管Q4的輸入端,XTAL2為Q2的輸出端。只要在引腳XTAL1與XTAL2上外接定時(shí)反應(yīng)回路,OSC振蕩器產(chǎn)生矩形時(shí)鐘脈沖序列,其頻率是單片機(jī)的重要性能指標(biāo)之一。時(shí)鐘頻率越高,單片機(jī)控制器的控制節(jié)拍就越快,運(yùn)算速度也就越快。而且也決定著系統(tǒng)時(shí)鐘和定時(shí)器時(shí)鐘與頻率。3.中斷系統(tǒng)計(jì)算機(jī)中的中斷是指CPU暫停原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備效勞,并在效勞完后回到原程序執(zhí)行的過程。中斷系統(tǒng)是指能夠處理上述中斷過程所需要的那局部電路。CIP-51包含一個(gè)擴(kuò)展的中斷系統(tǒng),支持20個(gè)中斷源,每個(gè)中斷源有兩個(gè)優(yōu)先級(jí)。中斷源在片內(nèi)外設(shè)與外部輸入引腳之間的分配隨器件的不同而變化。每個(gè)中斷源可以在一個(gè)SFR中有一個(gè)或多個(gè)中斷標(biāo)志。當(dāng)一個(gè)外設(shè)或外部源滿足有效的中斷條件時(shí),相應(yīng)的中斷標(biāo)志被置為邏輯‘1’。如果中斷被允許,在中斷標(biāo)志被置位時(shí)將產(chǎn)生中斷。一旦當(dāng)前指令執(zhí)行完,CPU產(chǎn)生一個(gè)LCALL到一個(gè)預(yù)定地址,開始執(zhí)行中斷效勞程序〔ISR〕。每個(gè)ISR必須以RETI指令結(jié)束,使程序回到中斷前執(zhí)行完的那條指令的下一條指令。如果中斷未被允許,中斷標(biāo)志將被硬件忽略,程序繼續(xù)正常執(zhí)行。中斷標(biāo)志置1與否不受中斷允許/禁止?fàn)顟B(tài)的影響。每個(gè)中斷源都可以用一個(gè)SFR〔IE-EIE2〕中的相關(guān)中斷允許位允許或禁止,但是必須首先置‘1’EA位〔IE.7〕以保證每個(gè)單獨(dú)的中斷允許位有效。不管每個(gè)中斷允許位的設(shè)置如何,清‘0’EA位將禁止所有中斷。注:任何去除EA位的指令后面應(yīng)立即跟隨一條具有2或多字節(jié)操作碼的指令。例如://在‘C’語言程序中:EA=0;//去除EA位EA=0;//…跟隨一條2字接操作碼的指令//在匯編語言程序中:CLREA;去除EA位CLREA;…跟隨一條2字接操作碼的指令如果在“CLREA〞操作碼〔或任何去除EA位的指令〕的執(zhí)行期間產(chǎn)生了一個(gè)中斷,并且該指令的后面是一條單周期指令,那么中斷可能被響應(yīng)。但是在中斷效勞程序中讀EA位時(shí)將返回‘0’值。當(dāng)“CLREA〞操作碼后面是一條多周期指令時(shí),那么中斷不會(huì)被響應(yīng)。某些中斷標(biāo)志在CPU進(jìn)入ISR時(shí)被自動(dòng)去除。但大多數(shù)中斷標(biāo)志不是由硬件去除的,必須在ISR返回前用軟件去除。如果一個(gè)中斷標(biāo)志在CPU執(zhí)行完中斷返回〔RETI〕指令后仍然保持置位狀態(tài),那么會(huì)立即產(chǎn)生一個(gè)新的中斷請(qǐng)求,CPU將在執(zhí)行完下一條指令后重新進(jìn)入該ISR。(1)MCU中斷源和中斷向量MCU支持20個(gè)中斷源。軟件可以通過將任何一個(gè)中斷標(biāo)志設(shè)置為邏輯‘1’來模擬一個(gè)中斷。如果中斷標(biāo)志被允許,系統(tǒng)將產(chǎn)生一個(gè)中斷請(qǐng)求,CPU將轉(zhuǎn)向與該中斷標(biāo)志對(duì)應(yīng)的ISR地址。表4.2給出了MCU中斷源、對(duì)應(yīng)的向量地址、優(yōu)先級(jí)和控制位一覽表。(2)外部中斷兩個(gè)外部中斷源〔/INT0和/INT1〕可被配置為低電平觸發(fā)或下降沿觸發(fā)輸入,由IT0〔TCON.0和IT1〔TCON.2〕的設(shè)置決定。IE0〔TCON.1〕和IE1〔TCON.3〕分別為外部中斷/INT0和/INT1的中斷標(biāo)志。如果/INT0或/INT1外部中斷被配置為邊沿觸發(fā),CPU在轉(zhuǎn)向ISR時(shí)將自動(dòng)去除相應(yīng)的中斷標(biāo)志。當(dāng)被配置為電平觸發(fā)時(shí),中斷標(biāo)志將跟隨外部中斷輸入引腳的狀態(tài),外部中斷源必須一直保持輸入有效直到中斷請(qǐng)求被響應(yīng)。在ISR返回前必須使該中斷請(qǐng)求無效,否那么將產(chǎn)生另一個(gè)中斷請(qǐng)求。中斷優(yōu)先級(jí)每個(gè)中斷源都可以被獨(dú)立地編程為兩個(gè)優(yōu)先級(jí)中的一個(gè):低優(yōu)先級(jí)或高優(yōu)先級(jí)。一個(gè)低優(yōu)先級(jí)的中斷效勞程序可以被高優(yōu)先級(jí)的中斷所中斷,但高優(yōu)先級(jí)的中斷不能被中斷。每個(gè)中斷在SFR〔IP-EIP2〕中都有一個(gè)配置其優(yōu)先級(jí)的中斷優(yōu)先級(jí)設(shè)置位,缺省值為低優(yōu)先級(jí)。如果兩個(gè)中斷同時(shí)發(fā)生,具有高優(yōu)先級(jí)的中斷先得到效勞。如果這兩個(gè)中斷的優(yōu)先級(jí)相同,那么由固定的優(yōu)先級(jí)順序決定哪一個(gè)先得到效勞。中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間取決于中斷發(fā)生時(shí)CPU的狀態(tài)。中斷系統(tǒng)在每個(gè)系統(tǒng)時(shí)鐘周期對(duì)中斷標(biāo)志采樣并對(duì)優(yōu)先級(jí)譯碼。最快的響應(yīng)時(shí)間為5個(gè)系統(tǒng)時(shí)鐘周期:一個(gè)周期用于檢測中斷,4個(gè)周期完成對(duì)ISR的長調(diào)用〔LCALL〕。如果中斷標(biāo)志有效時(shí)CPU正在執(zhí)行RETI指令,那么需要再執(zhí)行一條指令才能進(jìn)入中斷效勞程序。因此,最長的中斷響應(yīng)時(shí)間〔沒有其它中斷正被效勞或新中斷具有較高優(yōu)先級(jí)〕發(fā)生在CPU正在執(zhí)行RETI指令,而下一條指令是DIV的情況。在這種情況下,響應(yīng)時(shí)間為18個(gè)系統(tǒng)時(shí)鐘周期:一個(gè)時(shí)鐘周期用于檢測中斷,5個(gè)周期執(zhí)行RETI,8個(gè)周期執(zhí)行DIV指令,4個(gè)周期完成對(duì)ISR的長調(diào)用〔LCALL〕。如果CPU正在執(zhí)行一個(gè)具有相同或更高優(yōu)先級(jí)的中斷的ISR,那么新中斷要等到當(dāng)前ISR執(zhí)行完〔包括RETI和下一條指令〕才能得到效勞。4.3系統(tǒng)軟件設(shè)計(jì)框圖根據(jù)以上所述系統(tǒng)硬件設(shè)計(jì)和所完成功能,系統(tǒng)軟件需要實(shí)現(xiàn)以下功能:1.信號(hào)控制在系統(tǒng)硬件中,己經(jīng)完成了超聲波發(fā)射驅(qū)動(dòng)電路、回波檢測電路的設(shè)計(jì)。在系統(tǒng)軟件中,要完成發(fā)射脈沖信號(hào)、采集回波信號(hào)。2.數(shù)據(jù)存儲(chǔ)為了得到發(fā)射信號(hào)與接收回波間的時(shí)間差,要讀出此刻計(jì)數(shù)器的計(jì)數(shù)值,然后存儲(chǔ)在RAM中,而且每次發(fā)射周期的開始,需要對(duì)計(jì)數(shù)器清零。3.信號(hào)處理RAM中存儲(chǔ)的計(jì)數(shù)值并不能作為距離值直接顯示輸出,因?yàn)橛?jì)數(shù)值為十六進(jìn)制數(shù),先要將十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),然后根據(jù)計(jì)數(shù)值與實(shí)際距離的轉(zhuǎn)換公式計(jì)算出距離值。軟件分為兩局部,主程序和中斷效勞程序。如圖4.3圖4.31,圖4.32所示。主程序完成初始化工作。如圖4.3所示為系統(tǒng)的主程序流程。開始開始程序初始化定時(shí)中斷子程序收到回波結(jié)束是否外部中斷子程序圖4.3主程序流程圖定時(shí)中斷效勞子程序完成超聲波的發(fā)射和接收,外部中斷效勞子程序主要完成時(shí)間值的讀取、距離計(jì)算、結(jié)果的輸出等工作。程序流程圖為圖4.4,圖4.5外部中斷入口外部中斷入口關(guān)外部中斷讀取時(shí)間值計(jì)算距離輸出結(jié)果開外部中斷結(jié)束發(fā)射完否否是發(fā)射超聲波定時(shí)器初始化停止發(fā)射定時(shí)中斷入口結(jié)束圖4.4定時(shí)效勞子程序圖4.5外部中斷效勞子程序4.4單片機(jī)的C程序設(shè)計(jì)1、編譯環(huán)境使用C語言肯定要使用到C編譯器,以便把寫好的C程序編譯為機(jī)器碼,這樣單片機(jī)才能執(zhí)行編寫好的程序。KEILuVISION3是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和C語言的程序設(shè)計(jì),它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。因此很多開發(fā)51應(yīng)用的工程師或普通的單片機(jī)愛好者,都對(duì)它十分喜歡。2、C程序//超聲波液位計(jì)程序清單://晶振=12MHz//MCU=AT89C51//P0.0-P0.7共陽數(shù)碼管引腳//Trig=P1^0//Echo=P3^2#include<reg51.h>//包括一個(gè)51標(biāo)準(zhǔn)內(nèi)核的頭文件#defineucharunsignedchar//定義一下方便使用#defineuintunsignedint#defineulongunsignedlong//***********************************************sfrCLK_DIV=0x97;//為AT單片機(jī)定義,系統(tǒng)時(shí)鐘分頻//為AT單片機(jī)的IO口設(shè)置地址定義sfrP0M1=0X93;sfrP0M0=0X94;sfrP1M1=0X91;sfrP1M0=0X92;sfr P2M1=0X95;sfr P2M0=0X96;//***********************************************sbitTrig=P1^0;//產(chǎn)生脈沖引腳sbitEcho=P3^2;//回波引腳sbittest=P1^1;//測試用引腳ucharcodeSEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//數(shù)碼管0-9uintdistance[4];//測距接收緩沖區(qū)ucharge,shi,bai,temp,flag,outcomeH,outcomeL,i;//自定義存放器bitsucceed_flag;//測量成功標(biāo)志//********函數(shù)聲明voidconversion(uinttemp_data);voiddelay_20us();//voidpai_xu();voidmain(void)//主程序{uintdistance_data,a,b;ucharCONT_1;CLK_DIV=0X03;//系統(tǒng)時(shí)鐘為12MHz晶振P0M1=0;//將io口設(shè)置為推挽輸出P1M1=0;P2M1=0;P0M0=0XFF;P1M0=0XFF;P2M0=0XFF;i=0;flag=0; test=0; Trig=0;//首先拉低脈沖輸入引腳 TMOD=0x11;//定時(shí)器0,定時(shí)器1,16位工作方式 TR0=1; //啟動(dòng)定時(shí)器0IT0=0;//由高電平變低電平,觸發(fā)外部中斷 ET0=1;//翻開定時(shí)器0中斷//ET1=1;//翻開定時(shí)器1中斷 EX0=0;//關(guān)閉外部中斷 EA=1;//翻開總中斷0 while(1)//程序循環(huán) {EA=0;Trig=1;delay_20us();Trig=0;//產(chǎn)生一個(gè)20us的脈沖,在Trig引腳while(Echo==0);//等待Echo回波引腳變高電平succeed_flag=0;//清測量成功標(biāo)志EX0=1;//翻開外部中斷TH1=0;//定時(shí)器1清零TL1=0;//定時(shí)器1清零TF1=0;//TR1=1;//啟動(dòng)定時(shí)器1EA=1;while(TH1<30);//等待測量的結(jié)果,周期65.535毫秒〔可用中斷實(shí)現(xiàn)〕TR1=0;//關(guān)閉定時(shí)器1EX0=0;//關(guān)閉外部中斷if(succeed_flag==1){distance_data=outcomeH;//測量結(jié)果的高8位distance_data<<=8;//放入16位的高8位distance_data=distance_data|outcomeL;//與低8位合并成為16位結(jié)果數(shù)據(jù)distance_data*=12;//因?yàn)槎〞r(shí)器默認(rèn)為12分頻distance_data/=58;//微秒的單位除以58等于厘米}//為什么除以58等于厘米,Y米=〔X秒*344〕/2 //X秒=〔2*Y米〕/344==》X秒=0.0058*Y米==》厘米=微秒/58if(succeed_flag==0){distance_data=0;//沒有回波那么清零test=!test;//測試燈變化}///distance[i]=distance_data;//將測量結(jié)果的數(shù)據(jù)放入緩沖區(qū)///i++; /// if(i==3) /// { /// distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4;///pai_xu();///distance_data=distance[1]; a=distance_data;if(b==a)CONT_1=0;if(b!=a)CONT_1++;if(CONT_1>=3) {CONT_1=0; b=a; conversion(b); } /// i=0; /// } }}//***************************************************************//外部中斷0,用做判斷回波電平INTO_()interrupt0//外部中斷是0號(hào){outcomeH=TH1;//取出定時(shí)器的值outcomeL=TL1;//取出定時(shí)器的值succeed_flag=1;//至成功測量的標(biāo)志EX0=0;//關(guān)閉外部中斷}//****************************************************************//定時(shí)器0中斷,用做顯示timer0()interrupt1//定時(shí)器0中斷是1號(hào){ TH0=0xfd;//寫入定時(shí)器0初始值 TL0=0x77; switch(flag){case0x00:P0=ge;P2=0xfd;flag++;break; case0x01:P0=shi;P2=0xfe;flag++;break; case0x02:P0=bai;P2=0xfb;flag=0;break;}}//*****************************************************************/*//定時(shí)器1中斷,用做超聲波測距計(jì)時(shí)timer1()interrupt3//定時(shí)器0中斷是1號(hào){TH1=0;TL1=0;}*///******************************************************************//顯示數(shù)據(jù)轉(zhuǎn)換程序voidconversion(uinttemp_data){ucharge_data,shi_data,bai_data;bai_data=temp_data/100;temp_data=temp_data%100;//取余運(yùn)算shi_data=temp_data/10;temp_data=temp_data%10;//取余運(yùn)算ge_data=temp_data;bai_data=SEG7[bai_data];shi_data=SEG7[shi_data];ge_data=SEG7[ge_data];EA=0;bai=bai_data;shi=shi_data;ge=ge_data; EA=1;}//******************************************************************voiddelay_20us(){ucharbt;for(bt=0;bt<100;bt++);}/*voidpai_xu(){uintt;if(distance[0]>distance[1]){t=distance[0];distance[0]=distance[1];distance[1]=t;}/*交換值if(distance[0]>distance[2]){t=distance[2];distance[2]=distance[0];distance[0]=t;}/*交換值if(distance[1]>distance[2]){t=distance[1];distance[1]=distance[2];distance[2]=t;}/*交換值 }*/4.5系統(tǒng)的軟硬件的調(diào)試超聲波測距儀的制作和調(diào)試都比擬簡單,其中超聲波發(fā)射和接收采用15的超聲波換能器tct40-10f1(T發(fā)射)和CX20236A〔R接收〕,中心頻率為40kHz,安裝時(shí)應(yīng)保持兩換能器中心軸線平行并相距4~8cm,其余元件無特殊要求。假設(shè)能將超聲波接受電路用金屬殼屏蔽起來,那么可能提高抗干擾能力。根據(jù)測量范圍要求不同,可適當(dāng)調(diào)整與接收換能器并接的濾波電容C16的大小,以獲得適宜的接受靈敏度和抗

溫馨提示

  • 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)論