




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1 引言1.1 課題提出的背景 一些傳統(tǒng)的距離測量方式在某些特殊場合存在不可克服的缺陷。例如,液面測量就是一種距離測量,傳統(tǒng)的電極法是采用差位分布電極,通過給電或脈沖來檢測液面,電極長期浸泡于水中或其他液體中,極易被腐蝕、電解,失去靈敏性。利用超聲波就可以解決這些問題。隨著經(jīng)濟發(fā)展,電子測量技術應用越來越廣泛,而超聲波測量精確度高,成本低,性能穩(wěn)定則備受青睞。超聲波是指頻率在20kHz以上的聲波,它屬于機械波的范疇。超聲波也遵循一般機械波在彈性介質(zhì)中的傳播規(guī)律,如在介質(zhì)的分界面處發(fā)生反射和折射現(xiàn)象,在進入介質(zhì)后被介質(zhì)吸收而發(fā)生衰減等。正是因為具有這些性質(zhì),使得超聲波可以用于距離的測量中,超聲波
2、測距技術正在被廣泛應用于人們?nèi)粘9ぷ骱蜕钪小?.2 課題研究的意義由于超聲測距是一種非接觸檢測技術,不受光線、被測對象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護、不污染、高可靠、長壽命等特點。因此可廣泛應用于紙業(yè)、礦業(yè)、電廠、化工業(yè)、農(nóng)業(yè)用水、環(huán)保檢測、食品、防汛、水文、空間定位、公路限高等行業(yè)中??稍诓煌h(huán)境中進行距離準確度在線標定,可直接用于水、酒、糖、飲料等液位控制,可進行差值設定,直接顯示各種液位罐的液位、料位高度,在特殊環(huán)境下有較廣泛的應用。利用超聲波檢測往往比較迅速、方便、計算簡單、易于實現(xiàn)實時控制,并且在測量精度方面能達到工業(yè)實用的指
3、標要求。同時由于超聲波測距系統(tǒng)具有以上的這些優(yōu)點,因此在移動機器人的研究和汽車倒車雷達的研制方面也得到了廣泛的應用。1.3 超聲波測距的發(fā)展狀況一般認為,關于超聲波的研究最初始于1876年F.Galton的氣哨實驗。當時Galton哨在空氣中產(chǎn)生的頻率達300KHz,這是人類首次有效產(chǎn)生的高頻聲波。這些年來,隨著超聲波技術研究的不斷深入,再加上其具有的高精度、無損、非接觸等優(yōu)點,超聲波的應用變得越來越普及。目前已經(jīng)廣泛地應用在機械制造、電子冶金、交通等工業(yè)領域。此外在材料科學、醫(yī)學、等領域中也占據(jù)重要地位。 國外在提高超聲波測距方面做了大量的研究,國內(nèi)一些學者也作了相關的研究。超聲波測距的精度
4、主要取決于所測的超聲波傳輸時間和超聲波在介質(zhì)中的傳輸速度,二者中以傳輸時間的精度影響較大,所以大部分文獻采用降低傳輸時間的不確定度來提高測距精度。目前相位探測法和聲譜輪廓分析法或二者結合起來的方法是主要的降低探測傳輸不確定度的方法。 意大利的Carullo等人介紹了一種自適應系統(tǒng),采用特殊的發(fā)射波形來獲得好的回波包絡,同時采用對環(huán)境的噪聲進行估測,設置一定的回波開門電平,且采用自動增益的控制放大器,通過這些措施來提高超聲波的探測精度。另外也有大量的文獻研究采用數(shù)字信號處理技術和小波變換理論來提高傳輸時間的精度。這些處理方法都取得了較好的結果。隨著科學技術的快速發(fā)展,超聲波將在測距儀中的應用越來
5、越廣泛。當今對超聲波測距儀方面的技術是比較成熟的,在國內(nèi)市場上,有多種超聲波測距儀,且其性能和測量范圍都是非常優(yōu)越的,完全滿足實際應用的需要。 當然,這方面的技術雖然已經(jīng)相當?shù)某墒炝?,并不是說已經(jīng)沒有了研究其的必要性了。其實不然,多數(shù)測距儀由于其功能的復雜,導致其市場價格飆升,而限制了它在一些特殊場合的應用,例如物位(液位)檢測,機器人防撞,各種超聲波接近開關,以及防盜報警等相關領域,只需作為整個系統(tǒng)的一部分而使用,因而需要研究一種既簡單,又實用;既經(jīng)濟又實惠的超聲波測距系統(tǒng),是勢在必行的。因此利用超聲波是一個正在蓬勃發(fā)展而又有無限前景的技術及產(chǎn)業(yè)領域。展望未來,超聲波測距儀作為一種新型的非常
6、重要有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求,如聲吶的發(fā)展趨勢基本為:研制具有更高定位精度的被動測距聲吶,以滿足水中武器實施全隱蔽攻擊的需要;繼而發(fā)展采用低頻線譜檢測的潛艇拖拽線列陣聲吶,實現(xiàn)超遠程的被動探測和識別。毋庸置疑,未來的超聲波測距儀將與自動化智能化接軌,與其他的測距儀集成和融合,形成多測距儀。隨著測距儀的技術進步,面貌一新的測距儀將發(fā)揮更大的作用。1.4超聲波測距的基本原理超聲波為直線傳播方式,頻率越高,繞射能力越弱,但反射能力越強。利用超聲波的這種性能就可制成超聲傳感器,或稱為超聲換能器,它是一種既可以把電能轉(zhuǎn)化為機械能
7、、又可以把機械能轉(zhuǎn)化為電能的器件或裝置。換能器在電脈沖激勵下可將電能轉(zhuǎn)換為機械能,向外發(fā)送超聲波;反之,當換能器處在接收狀態(tài)時,它可將聲能(機械能)轉(zhuǎn)換為電能。1.4.1 超聲波發(fā)生器原理 為了研究和利用超聲波,人們已經(jīng)設計和制成了許多超聲波發(fā)生器??傮w上講,超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;機械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。壓電式超聲波發(fā)生器實際上是利用壓電晶體的諧振來工作的。超聲波發(fā)生器內(nèi)部
8、有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收器了。 1.4.2 超聲波測距原理最常用的超聲測距的方法是回聲探測法,超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為C,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的距離s,即:s=Ct/2. 由于超聲波也
9、是一種聲波,其聲速C與溫度有關。在使用時,如果傳播介質(zhì)溫度變化不大,則可近似認為超聲波速度在傳播的過程中是基本不變的。如果對測距精度要求很高,則應通過溫度補償?shù)姆椒▽y量結果加以數(shù)值校正。聲速確定后,只要測得超聲波往返的時間,即可求得距離。這就是超聲波測距儀的基本原理。s=Ct/2 (11)式中,C為超聲波在空中的傳播速度,0時為331m/s,25時為347m/s,其與環(huán)境溫度T()的關系如式(1-2)。 C=331.4+0.61T (12)超聲波發(fā)射超聲波接收圖1.1超聲波測量距離原理示意圖由此可見,聲速與溫度有密切關系。如果溫度變化不大,并且無特殊精度要求,可認為聲速是基本不變的。否則,必
10、須進行溫度補償。溫度補償通常有兩種方法:補償方法1:每次先按照式(1-2)計算當時聲速C,然后再按照式(1-1)計算距離。其特點是:根據(jù)當時的溫度得到當時的精確聲速,從而計算得到的距離也比較精確;但程序中牽涉到浮點數(shù)運算,對于微處理器系統(tǒng)實現(xiàn),難度相對較大。補償方法2:根據(jù)當前的環(huán)境溫度,查取特征溫度值-聲速表中最接近溫度對應的聲速值,作為當前聲速,然后按照式(1-1)進行距離計算。其特點是:避免了復雜的聲速計算,可采用事先計算得到溫度-聲速二維表,將之固化到系統(tǒng)程序中,然后直接使用查表法得到聲速值,程序?qū)崿F(xiàn)比較簡單,但精度沒有方法1高。另外,從圖1-1還可以看出,由于超聲波利用接收發(fā)射波來進
11、行距離的計算,因而不可避免地存在發(fā)射與反射之間的夾角,其大小為2。當很小時,可直接按式(1-1)進行計算得到距離;但較大時,則必須進行距離修正,修正公式為式(1-3)。S=cos (13) 在式(13)中,傾角與超聲波發(fā)射裝置和接收裝置的安裝位置有關。我們在實際應用時應注意適當安裝。2 超聲波測距硬件設計概況超聲波測距儀主要包括:溫度檢測電路,超聲波發(fā)射及控制電路,超聲波接收及信號處理電路,顯示電路,微處理器及其輔助電路5部分組成。2.1 整體電路設計整體電路的控制核心為單片機AT89S52。超聲波發(fā)射和接收電路中都對相應信號進行整形及放大,以保證測量結果盡可能精確。超聲波探頭接OUT口實現(xiàn)超
12、聲波的發(fā)射和接收。另外還有溫度測量電路測量當時的空氣溫度,等到把數(shù)據(jù)送到單片機后使用軟件對超聲波的傳播速度進行調(diào)整,使測量精度能夠達到要求。整體結構圖包括超聲波發(fā)射電路,超聲波接收電路,單片機電路,顯示電路與溫度測量電路等幾部分模塊組成。而超聲波發(fā)射與接收電路還要加入放大電路。在發(fā)射后把信號放大,接收前也要再次放大。整體電路結構圖如圖2.1。圖2.1超聲波測距結構圖單片機發(fā)出40kHZ的信號,經(jīng)放大后通過超聲波發(fā)射器輸出;超聲波接收器將接收到的超聲波信號經(jīng)放大器放大,用鎖相環(huán)電路進行檢波處理后,啟動單片機中斷程序,測得時間為t,再由軟件進行判別、計算,得出距離數(shù)并送LED顯示。2.2 超聲波發(fā)
13、送器超聲波發(fā)送器包括超聲波產(chǎn)生電路和超聲波發(fā)射控制電路兩個部分,可采用軟件發(fā)生法和硬件發(fā)聲法產(chǎn)生超聲波。前者利用軟件產(chǎn)生40kHz的超聲波信號,通過輸出引腳輸入至驅(qū)動器,經(jīng)過驅(qū)動器驅(qū)動后推動探頭產(chǎn)生超聲波。這種方法的特點是充分利用軟件,靈活性好,但需要設計一個驅(qū)動電流為100mA以上的驅(qū)動電路。第二種方法是利用超聲波專用發(fā)生電路或通用發(fā)生電路產(chǎn)生超聲波信號,并直接驅(qū)動換能器產(chǎn)生超聲波。這種方法的特點是無需驅(qū)動電路,但缺乏靈活性。超聲波發(fā)射電路原理圖如圖2.2。圖2.2超聲波產(chǎn)生原理圖 2.3 超聲波接收器超聲波接收器包括超聲波接收探頭、信號放大電路及波形變換電路三部分。超聲波探頭必須采用與發(fā)射
14、探頭對應的型號,主要是頻率要一致,否則,因無法產(chǎn)生共振而影響接收效果。由于經(jīng)探頭變換后的正弦波電信號非常弱,因此必須經(jīng)放大電路放大。正弦波信號不能直接被微處理器接收,因此必須進行波形變換。超聲波在空氣中傳播時,其能量的衰減程度與距離成正比,即距離越近,信號越強,距離越遠,信號越弱,通常在1mV-1V之間。當然,不同的接收探頭的輸出信號強度存在差異。由于輸入信號的范圍較大,對放大電路的增益提出了兩個要求:(1)放大增益要大,以適應小信號時的需要;(2)放大增益要能變化,以適應信號變化范圍大的需要。另外,由于輸入信號為正弦波,因此必須將放大電路設計成交流放大電路。圖2.3 超測聲波檢接收電路原理圖
15、2.4 DS18B20的溫度測量電路 在精度有要求的情況下,需要考慮溫度對超聲波傳播速度的影響,對超聲波傳播速度加以修正,以減小誤差。下面公式是超聲波傳播速度與空氣溫度的關系。V = 3314 + 0607T 式中,T為實際溫度單位為,v為超聲波在介質(zhì)中的傳播速度單位為ms。表 2.1 超聲波波速與溫度的關系表溫度()-30-20-100102030100聲速(ms)313319325323338344349386這里采用的主要元器件是是美國Dallas半導體公司生產(chǎn)的單總線數(shù)字溫度傳感器DS18B20,其具有精度高、智能化、體積小、線路簡單等特點。將DS18B20數(shù)據(jù)線與單片機的P1.1口相
16、連,就可以實現(xiàn)溫度測量。溫度測量電路基于DS18B20數(shù)字溫度傳感器,電路非常簡潔。DS18B20是美國DALLS公司推出的DS1820的替代品,具有9、10、11和12位轉(zhuǎn)換精度,未編程時默認精度為12位,測量精度一般為0.5,軟件處理后可達0.1。溫度輸出以16位符號擴展的二進制形式提供,低位在先,以0.0625/LSB形式表達。十六位溫度讀數(shù)形式如表2.2:表2.2十六位溫度讀數(shù)形式SSSSS262524232221202-12-22-32-4其中,高五位為擴展符號位。轉(zhuǎn)換周期與轉(zhuǎn)換精度設定有關,9位精度時,最大轉(zhuǎn)換時間為93.75ms;12位精度時,最大轉(zhuǎn)換時間為750ms。DS18B
17、20的引腳判斷方法是:字面朝人,從左到右分別是1(GND)、2(輸出/輸入)、3(VDD)。DS18B20數(shù)字溫度計以9位數(shù)字量的形式反映器件的溫度值。DS18B20通過一個單線接口發(fā)送或接收信息,因此在中央微處理器和DS18B20之間僅需一條連接線(加上地線)。用于讀寫和溫度轉(zhuǎn)換的電源可以從數(shù)據(jù)線本身獲得,無需外部電源。因為每個DS18B20都有一個獨特的片序列號,所以多只DS18B20可以同時連在一根單線總線上,這樣就可以把溫度傳感器放在許多不同的地方。 2.5 AT89S52微處理器及輔助電路主機電路設計的關鍵是AT89S52微處理器及其輔助電路的設計,另外還包括基于MAX7219串行數(shù)
18、碼管驅(qū)動接口電路的設計。2.5.1 AT89S52簡介圖2.4 AT89S52引腳圖2.5.2 AT89S52主要性能1、與MCS-51單片機產(chǎn)品兼容;2、8K字節(jié)在系統(tǒng)可編程Flash存儲器;3、1000次擦寫周期;4、全靜態(tài)操作:0Hz-33MHz;5、三級加密程序存儲器;6、32個可編程I/O口線;7、三個16位定時器/計數(shù)器;8、六個中斷源;9、全雙工UART串行通道;10、低功耗空閑和掉電模式;11、掉電后中斷可喚醒;12、看門狗定時器;13、雙數(shù)據(jù)指針;14、掉電標識符。2.5.3 AT89S52功能描述AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程F
19、lash 存儲器。使用Atmel 公司高密度非易失性存儲器技術,與工業(yè)標準80C51 產(chǎn)品指令和引腳兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,也適于常規(guī)編程器。在單芯片上,擁有多功能的8 位CPU 和在系統(tǒng)可編程Flash,Atmel的AT89S52功能強大,為眾多嵌入式控制應用系統(tǒng)提供解決方案。AT89S52具有以下標準功能: 三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM
20、內(nèi)容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。2.5.4 MAX7219驅(qū)動電路 6位共陰極數(shù)碼管采用MAX7219進行驅(qū)動,MAX7219是微處理器和共陰極七段-八位LED顯示,片內(nèi)包括BCD譯碼器、多路掃描控制器、字和位驅(qū)動器和8X8靜態(tài)RAM。外部只需要一個電阻設置所有LED顯示器字段電流。MAX7219和微處理器只需三根導線連接,每位顯示數(shù)字有一個地址由微處理器寫入。允許使用者選擇每位是BCD譯碼或不譯碼。使用者還可選擇停機模式、數(shù)字亮度控制、從18選擇掃描位數(shù)和對所有LED顯示器的測試模式。MAX7219工作原理如下:MAX7219和單片機連接有三條引線
21、(DIN、CLK、LOAD),采用l6位數(shù)據(jù)串行移位接收方式,即單片機將l6位二進制數(shù)逐位發(fā)送到DIN端,在CLK上升沿到來前準備就緒,CLK的每個上升沿將一位數(shù)據(jù)移入MAX7219內(nèi)移位寄存器,當l6位數(shù)據(jù)移入完,在LOAD引腳信號上升沿將l6位數(shù)據(jù)裝MAX7219內(nèi)的相應位置,在MAX7219內(nèi)部硬件動態(tài)掃描顯示控制電路作用下實現(xiàn)動態(tài)顯示。3 軟件設計3.1 程序完成的功能本次設計的程序需要完成的功能有:(1)超聲波的發(fā)射和接受控制; (2)消除余振(3)對回波信號的檢測(4)測距時間到距離的換算(5)距離的顯示3.2 編程語言的選擇 計算機的程序設計中可以用到三種語言: 1.機器語言 機
22、器語言就是用二進制(可縮寫為十六進制)代碼來表示指令和數(shù)據(jù),也稱為機器代碼、指令代碼。機器語言是計算機唯一能識別和執(zhí)行的語言,用其編寫的程序執(zhí)行效率最高,速度最快,但由于指令的二進制碼很難記憶和辨認,給程序的編寫、閱讀和修改帶來很多困難,所以幾乎沒有人直接使用機器語言來編寫程序。 2.匯編語言 計算機所能執(zhí)行的每條指令都對應一組二進制碼。為了容易理解和記憶計算機的指令,人們用一些英語單詞和字符等作為助記符來描述每一條指令的功能。用助記符表示的指令就是計算機的匯編語言,匯編語言與機器語言一一對應。用匯編語言編寫程序,每條指令的意義一目了然,給程序的編寫、閱讀和修改帶來很大的方便。而且用匯編語言編
23、寫的程序占用內(nèi)存小,執(zhí)行速度快,尤其適用于實時應用場合的程序設計,因此在單片機應用系統(tǒng)中主要使用匯編語言來編寫程序。匯編語言也有它的缺點:缺乏通用性,程序不易移植,是一種面向機器的低級語言。即使用匯編語言編寫程序時,仍必須熟悉機器的指令系統(tǒng)、尋址方式、寄存器的設置和使用方法。每個計算機系統(tǒng)都有它自己的匯編語言,不同計算機的匯編語言之間不能通用,但是掌握了一種計算機的匯編語言,卻有助于學習其他計算機的匯編語言。 3.高級語言高級語言是一種面向算法、過程和對象的程序設計語言,它采用更接近人們自然語言和習慣的數(shù)學表達式及直接命令的方法來描述算法、過程和對象,如BASIC、C語言等。高級語言的語句直觀
24、、易學、通用性強,便于推廣、交流,但高級語言編寫的程序經(jīng)編譯后所產(chǎn)生的目標程序大,占用內(nèi)存多,運行速度較慢,這在實時應用是一個突出的問題。 在編程語言的選擇上,我主要考慮使用我所學過的匯編語言。3.3超聲波測距儀的軟件規(guī)劃超聲波測距儀的程序主要包括以下功能模塊:(1) DS18B20溫度傳感器接口模塊,分為初始化子程序、寫入子程序及讀取子程序等部分;(2) 基于MAX7219的顯示模塊,分為MAX7219初始化子程序、寫入子程序及顯示子程序等部分;(3) 溫度補償與距離計算模塊,分為超聲波發(fā)射控制程序、接收處理子程序、溫度補償子程序及距離計算子程序等部分;(4) 主模塊,分為系統(tǒng)的初始化、按鍵
25、處理及各子程序的調(diào)度管理等部分。系統(tǒng)框圖3.1形象地描述了各模塊功能及相互之間的關系。DS18B20初始化溫度檢測溫度補償超聲波發(fā)射顯示模塊距離計算超聲波接收按鍵處理圖3.1 系統(tǒng)軟件方框圖3.4超聲波發(fā)生和接收中斷子程序3.4.1超聲波發(fā)生子程序超聲波發(fā)生子程序在P1.0產(chǎn)生40KHz方波脈沖寬度約12us,作為超聲波發(fā)射器的輸出信號。同時打開計數(shù)器T0計時。流程圖如圖3.2所示。圖3.2 超聲波發(fā)生子程序流程圖3.4.2超聲波接收中斷子程序 超聲波測距器主程序利用外中斷0檢測返回超聲波信號,一旦接收到返回超聲波信號(INT0引腳出現(xiàn)低電平),立即進入中斷程序。進入該中斷后就立即關閉計時器T
26、0停止計時,并將測距成功標志字賦值1.如果當計時器溢出時還未檢測到超聲波返回信號,則定時器T0溢出中斷將外中斷0關閉,并將測距成功標志字賦值2以表示此次測距不成功。圖3.3 接收中斷子程序流程圖3.5 DS18B20的接口程序設計DS18B20的一線工作協(xié)議流程是,初始化ROM操作指令存儲器操作指令數(shù)據(jù)傳輸。其工作時序包括:初始化時序、寫時序和讀時序,每種工作時序都有相應的要求。3.5.1 DS18B20的初始化DS18B20初始化的實質(zhì)是使DS18B20復位,主要是通過判斷存在脈沖的形式來實現(xiàn)的。首先,主機發(fā)復位脈沖,即寬度范圍為480ust960us的負脈沖,拉高1590us以延時等待,然
27、后通過輸入/輸出線讀出存在脈沖,為低則說明存在,復位成功;否則說明不存在,復位失敗,必須對DS18B20重新初始化。3.5.2字節(jié)寫DS18B20程序字節(jié)寫的時序是拉低輸入/輸出線至少15us以作為起始信號,按從低位到高位順序取出預寫字節(jié)中的1位數(shù)據(jù),寫入輸入/輸出線,延時等待15us后將輸入/輸出線拉高作為停止信號,以等待下一位的寫入。字節(jié)寫DS18B20的程序設計只要嚴格按照上述時序即可。3.5.3讀DS18B20程序字讀DS18B20的程序設計思想結合程序代碼進行闡述,16位數(shù)據(jù)同樣也是從低位到高位被逐一讀出并存儲的。而且,由于讀出的溫度值是補碼形式,在使用前必須進行補碼轉(zhuǎn)換,默認12位
28、精度的轉(zhuǎn)換時間為750ms,即要等到750ms后才能讀到新溫度值。對DS18B20進行溫度讀取操作的流程可用圖3.4描述。圖3.4溫度讀取操作流程圖3.6 顯示程序設計基于MAX7219的6位數(shù)碼管顯示程序?qū)嶋H上包括以下幾個部分:(1) 對MAX7219初始化部分;(2) 對MAX7219的字寫入操作部分;(3) 顯示子程序部分(也即寫MAX7219的8字節(jié)顯示RAM的部分)。前兩個為低層接口子程序,后一個為應用層子程序。3.6.1 MAX7219初始化對于MAX7219的初始化,實際上就是指對MAX7219的掃描限制寄存器(掃描數(shù)碼管個數(shù))、亮度寄存器、譯碼式寄存器及工作寄存器進行正確設置。
29、在進行程序前,必須清楚一點,那就是MAX7219采用16位數(shù)據(jù)包的形式,也就是說對MAX7219寫入時是以16位數(shù)作為一個整體進行的,也即兩個字節(jié),高字節(jié)為寄存器地址或顯示RAM地址,低字節(jié)為命令或數(shù)據(jù)。地址字節(jié)的高4位為無關位,通常全取為1。 3.6.2 字寫MAX7219程序字寫MAX7219也就是將16位數(shù)據(jù)包寫入MAX7219,其程序設計只要遵循MAX7219的時序要求即可,簡要描述為:在時鐘的上升沿數(shù)據(jù)被鎖入片內(nèi)16位移位寄存器;16位數(shù)據(jù)的輸出順序必須是從高到低。對于微處理器來說,一般均自然滿足MAX7219對串行時鐘不能高于10MHz的要求。16位寫入完成后,必須通過12腳(LO
30、AD)正跳變(即上升沿)將數(shù)據(jù)鎖入,從而使新數(shù)據(jù)(命令)有效。3.6.3 顯示子程序顯示子程序的作用是將非壓縮BCD碼形式的顯示代碼寫入對應的數(shù)碼管顯示RAM寄存器,常用的09和AF的顯示代碼對應為00H09H和0AH0FH。如果在對應位上顯示小數(shù)點,只要將對應的顯示代碼的最高位置為1即可。例如,要顯示“0.”,其顯示代碼應為80H。3.7 距離計算及其程序?qū)崿F(xiàn)距離計算程序設計中設計到溫度補償問題、聲速 計算問題、數(shù)制轉(zhuǎn)換(十六進制數(shù)轉(zhuǎn)換為BCD碼)與數(shù)據(jù)標定問題,以及多字節(jié)十六進制數(shù)大小比較問題等。以下主要討論溫度補償、數(shù)制轉(zhuǎn)換于數(shù)據(jù)標定處理及距離計算等問題。距離計算及轉(zhuǎn)換程序流程圖如下圖3
31、.5。圖3.5 距離計算及轉(zhuǎn)換程序流程圖3.7.1 距離計算表3.1 溫度與聲速的二維關系表溫度聲速(m/s)折合后的聲速對應的十六進制數(shù)303138492212CH20319865421CEH1032588172271H03329007232FH10338917023D2H2034493332475H30349946824FCH403559631259FH5036197942642H距離計算式見式(1-1),程序設計的關鍵在于根據(jù)溫度值進行聲速的溫度補償,得到聲速,以及超聲波的發(fā)送與接收的時間差的獲取。溫度補償及聲速計算已在上面進行了介紹,時間差的獲取則是通過定時器1的計數(shù),得到第1回波信號
32、停止計數(shù)。假定時間值為2字節(jié)(單位:us),高字節(jié)在JSH中,低字節(jié)在JSL中。計數(shù)值為兩字節(jié)整數(shù)值,該乘法運算已在聲速的溫度補償過程中事先進行,不需要在程序中進行處理了。3.7.2 數(shù)制轉(zhuǎn)換與數(shù)據(jù)標定處理數(shù)制轉(zhuǎn)換的原因在于:經(jīng)過求補得到的16位的原碼為十六進制數(shù),無法直接進行顯示,必須轉(zhuǎn)換為能為MAX7219所接收的BCD顯示代碼。數(shù)據(jù)標定的原因在于:在溫度補償和距離計算過程中沒有考慮小數(shù)的存在,而實際顯示結果必須考慮小數(shù)和有效位,這樣勢必要對計算得到的結果進行取舍,取舍的過程就是標定的過程。就本系統(tǒng)而言,標定的依據(jù)是:(1)溫度標定處理依據(jù)溫度只能以2位方式進行顯示,而DS18B20的測量
33、溫度范圍為55125,因此取常用的溫度部分,不考慮小數(shù)部分,即5599。據(jù)前所述,16位原碼中的最高5位為擴展符號位,0表示正數(shù),1表示負數(shù),最低4位為小數(shù)部分,其余7位為整數(shù)部分。例如,溫度值018CH對應的溫度是+24.75,而FF5EH對應的二進制為11110,首先從擴展符號位可知,其為負溫度,求補操作后得到原碼為00001,顯然其整數(shù)部分為10,即10,而精度溫度為10.125。(2)距離標定處理依據(jù)距離只能顯示4位整數(shù),不考慮小數(shù)部分。由于在距離計算過程中沒有考慮物理單位,標定時通常采用從高到低取前4位即可。數(shù)據(jù)轉(zhuǎn)換程序包括溫度轉(zhuǎn)換和距離轉(zhuǎn)換。其中,溫度具有正負屬性,可直接從16位數(shù)
34、據(jù)的擴展符號位得到正負符號通過設置FUHAO位標志傳遞給顯示子程序。十六進制數(shù)轉(zhuǎn)換為十進制數(shù)顯示代碼的原理以兩字節(jié)十六進制數(shù)53A1H(十進制數(shù)為21049)為例加以說明:兩字節(jié)無符號數(shù)的最大值為65535,因此轉(zhuǎn)換的過程就是余數(shù)依次除以10000、1000、100、10的過程。首次是53A1H除以10000,其商2即為對應的最高位BCD碼,余數(shù)為1409,除以1000,得千位BCD碼為1,余數(shù)409除以100,得百位BCD碼為4,依次完成轉(zhuǎn)換。3.8 主程序與AT89S52的初始化程序3.8.1 AT89S52的初始化程序設計為對基于AT89S52開發(fā)的應用程序進行匯編(或編譯),必須首先對
35、AT89S52的特殊功能寄存器(SFR)進行定義,否則無法生成所需的機器代碼。從這個意義上說,這也是AT89S52的初始化工作之一。就測距儀而言,由于使用了AT89S52的若干個端口,以及使用了片內(nèi)復位電路、時鐘電路,因此對它的初始化包含兩個方面:(1) 編程時的配置;(2) 程序中對微處理器的初始化,3.8.2主程序設計按照自上而下的設計理念,主程序設計是整個軟件系統(tǒng)設計的關鍵。主程序設計的過程實際上包含著軟件規(guī)劃的過程。從這個意義上說,構建主程序框架是一個反反復復的過程。不同的系統(tǒng)有不同的構建要求,也就會出現(xiàn)不同的構建過程和構建結果。主程序首先是對系統(tǒng)環(huán)境初始化,設置定時器T0工作模式為1
36、6位定時計數(shù)器模式。置位總中斷允許位EA并給顯示端口P0和P1清零。然后調(diào)用超聲波發(fā)生子程序送出一個超聲波脈沖,為了避免超聲波從發(fā)射器直接傳送到接收器引起的直射波觸發(fā),需要延時約0.1ms(這也就是超聲波測距儀會有一個最小可測距離的原因)后,才打開外中斷1接收返回的超聲波信號。主程序流程圖如3.6所示。圖3.6 主程序流程圖4 系統(tǒng)軟件調(diào)試4.1 Keil uVision2集成開發(fā)環(huán)境系統(tǒng)軟件的調(diào)試主要是通過用Keil uVision2軟件來實現(xiàn)的。Keil uVision2是美國Keil Software 公司出品的51系列兼容單片機,使用接近于傳統(tǒng)c語言的語法來開發(fā),保留了匯編代碼高效,快
37、速的特點。uVision2集成開發(fā)環(huán)境包括以下兩個部分:項目管理:工程(project)是由源文件、開發(fā)工具選項以及編程說明三部分組成的。一個單一的uVision2工程能夠產(chǎn)生一個或多個目標程序。產(chǎn)生目標程序的源文件構成“組”。開發(fā)工具選項可以對應目標,組或單個文件。 uVision2包含一個器件數(shù)據(jù)庫(device database),可以自動設置匯編器、編譯器、連接定位器及調(diào)試器選項,來滿足用戶充分利用特定微控制器的要求。此數(shù)據(jù)庫包含:片上存儲器和外圍設備的信息,擴展數(shù)據(jù)指針(extra data pointer)或者加速器(math accelerator)的特性。 uVision2可以
38、為片外存儲器產(chǎn)生必要的連接選項:確定起始地址和規(guī)模。集成功能:uVision2的強大功能有助于用戶按期完工。用詳細的符號信息來優(yōu)化用戶變數(shù)存儲器。 文件尋找功能:在特定文件中執(zhí)行全局文件搜索。工具菜單:允許在V2集成開發(fā)環(huán)境下啟動用戶功能。 可配置SVCS接口:提供對版本控制系統(tǒng)的入口。 PCLINT接口:對應用程序代碼進行深層語法分析。Infineon的EasyCase接口:集成塊集代碼產(chǎn)生。Infineon的DAVE功能:協(xié)助用戶的CPU和外部程序。DAVE工程可被直接輸入uVision2。4.2 代碼調(diào)試 在Keil 軟件中編寫并運行調(diào)試程序,在編譯時給出的語法錯誤的信息,根據(jù)提示的信息
39、具體找出程序中錯誤之處并改之,從上至下逐一改正。應當注意的是:有的提示出錯行并不是真正出錯的行,如果在提示出錯的行上找不到錯誤的話,則應該到上行再找。圖4.1為在Keil中的編寫和調(diào)試界面。圖4.1 程序在KEIL_uVision2軟件中的調(diào)試界面結論通過這幾個月的努力,基于單片機的超聲波測距儀設計的軟件部分終于完成了。這次畢業(yè)設計,這不僅是對我的一種鍛煉,也是對我大學四年所學知識的綜合考核。從開始設計到設計的完成,我感覺收獲甚多,不僅是理論上的升華,還有實踐中的鍛煉,這次的畢業(yè)設計激發(fā)了我對電子技術的濃厚興趣,這對我以后進一步學習電子方面的知識都有很大幫助。由于個人水平有限,所以在設計思路和
40、實現(xiàn)功能上難免有不足之處,望各位老師多多指正。致謝畢業(yè)設計是對我們大學四年學習的一次綜合考核,在整個畢業(yè)設計過程中,非常感謝我的指導老師張月紅老師的遠程精心指導,他們不僅在百忙之中通過郵件等通訊工具耐心的輔導我對設計提出的疑問,而且特別注意引導我獨立思考,啟發(fā)我自主解決問題。從老師一絲不茍的鉆研態(tài)度中,我看到了治學嚴謹?shù)目蒲芯瘢瑫r激勵了我在學業(yè)上不斷進取的精神。在老師的諄諄指導下,使我的專業(yè)水平得到很大的提高。在實際操作調(diào)試過程中,我也遇到困難,在老師的指導和硬件部分合作者陳辰同學的幫助下一一得到解決。在此,我向所有幫助我的老師和同學表示忠心的感謝,正是得意于他們的幫助,才使我的畢業(yè)設計順
41、利完成。最后感謝學校和老師們大學四年對我的培養(yǎng)。感謝父母對我的養(yǎng)育之恩,同時向答辯委員會審閱我論文的各位專家領導表示衷心感謝。參考文獻 1 李錫雄,陳婉兒 .微型計算機控制技術.第1版.北京:科學出版社,1999.8 2 潘新民,王燕芳.微型計算機控制技術.第1版.北京:電子工業(yè)出版社,2003. 3 胡漢才.單片機原理及接口技術.北京:北京航空航天大學出版社,1993.11 4 孫育才.MCS-51系列單片微型計算機及其應用.第3版.東南大學出版社,1997.3 5 黃勝軍等.微機控制應用實驗與實例.北京:清華大學出版社,1999.11 6 章兼源.微機控制技術 .北京:電子工業(yè)出版社,20
42、037 王福瑞.單片微機測控系統(tǒng)設計大全.北京:北京航空航天出版社,1998.4 8 丁鎮(zhèn)生.傳感器及傳感技術應用.電子工業(yè)出版社,1998 9 張謙琳.超聲波檢測原理和方法.北京:中國科技大學出版社,1993 10 時德剛,劉嘩.超聲波測距的研究.計算機測量與控制,2002.10 11 蘇偉,鞏壁建.超聲波測距誤差分析.傳感器技術,2004.5 12 康華光.電子技術基礎(數(shù)字部分)北京:高等教育出版社,2000附錄A:系統(tǒng)硬件總圖附錄B:程序清單*; DS18B20初始化(復位)子程序;如果存在,則EXIST1,否則0*DS18B20_RST:CLR WDIOMOV R7, #32LCAL
43、L DELAY15USSETB WDIOMOV R7, #4LCALL DELAY15USCLR EXISTJB WDOP, DS18B20_RST_0SETB EXISTMOV R7, #28LCALL DELAY15USDS18B20_RST_0:RST*;DS18B20寫字節(jié)子程序;待寫字節(jié)數(shù)據(jù)在A中*DS18B20_WRITE:CLR CMOV R1, #8DS18B20_WR_1:CLR WDIOMOV R7, #1LCALL DELAY15USRRC AMOV WDIO, CLCALL DELAY15USMOV R7, #1LCALL DELAY15USSETB WDIONOPDJ
44、NZ R1,DS18B20_WR_1SETB WDIO RET*;DS18B20連續(xù)2字節(jié)子程序;讀出值儲存在全局變量:TEMP,TEMP+1*DS18B20_READ:CLR C MOV R1, #2MOV R0, #TEMPDS18B20_RD_1:MOV R2, #8DS18B20_RD_2:SETB WDIO NOPNOPCLR WDIONOPNOPSETB WDIOMOV R7, #1LCALL DELAY15USMOV C, WDIORRC ADJNZ R2, DS18B20_RD_2MOV R0, AINC R0DJNZ R1, DE18B20_RD_1RET*;啟動DS18B2
45、0轉(zhuǎn)換子程序;默認12位精度的轉(zhuǎn)換時間為750ms,即要等到750ms后才能讀到新溫度值*DS18B20_START:LCALL DS18B20_RSTJNB EXIST, DS18B20_ST_0MOV A, #0CCHLCALL DS18B20_WRITEMOV A, #44HLCALL DS18B20_WRITEDS18B20_ST_0:RET*;讀取DS18B20溫度子程序*DS18B20_GET:LCALL DS18B20_RSTMOV A, #0CCHLCALL DS18B20_WRITELCALL DS18B20_READRET*;部分AT89S52特殊功能寄存器定義*sfr P
46、0=0x80;sfr P1=0x90;sfr P2=0xA0;sfr P3=0xB0;sfr TMOD=0x89;sfr TL0=0x8A;sfr TL1=0x8B;sfr TH0=0x8C;sfr TH1=0x8D;sfr IE=0xA8;sfr IP=0xB8;sfr SCON=0x98;sfr SBUF=0x99;*;MAX7219初始化程序*INIT_7219:MOV R3, #0CHMOV R4, #0LCALL WRITE7219LCALL DELAY1MSLCALL DELAY1MSLCALL DELAY1MSMOV R3, #0BHMOV R4, #07LCALL WRITE7
47、219MOV R3, #0AHMOV R4, #0DHLCALL WRITE7219MOV R3, #09HMOV R4, #0FFHLCALL WRI TE7219MOV R3, #0CHMOV R4, #01HRET*;MAX7219有關引腳定義*CLK7219 EQU P2.0DIN7219 EQU P2.2LOAD7219 EQU P2.1*;MAX7219寫入程序;入口參數(shù):R3寄存器地址,R4為命令數(shù)據(jù)*WRITE7219:MOV R2, #8MOV A, R3SETB LOAD7219W7219_1: RLC AMOV DIN7219, CNOPNOPNOPCLR CLK7219NOPNOPNOPSETB CLK7219DJNZ R2, W7219_1MOV A, R4MOV R2, #8W7219_2: RLC AMOV DIN7219, CNOPNOPNOPC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度中醫(yī)藥文化交流中醫(yī)師聘任協(xié)議
- 科技在農(nóng)業(yè)廢棄物處理中的應用與創(chuàng)新研究
- 中國名片切卡機項目投資可行性研究報告
- 2025年度安防產(chǎn)品研發(fā)合伙人股份合同
- 二零二五年度員工入股分紅協(xié)議:股權分紅與績效考核掛鉤
- 2025年度土地使用權出讓合同主體變更與土地流轉(zhuǎn)金融支持協(xié)議
- 二零二五年度消防安全咨詢與地方單位合作實施協(xié)議
- 二零二五年度購房合同房屋使用年限確認協(xié)議
- 產(chǎn)業(yè)園區(qū)房產(chǎn)居間協(xié)議樣本
- 2025年啟動線圈項目投資可行性研究分析報告
- YAMAHA(雅馬哈)貼片機編程培訓教材
- JGJ162-2014建筑施工模板安全技術規(guī)范-20211102195200
- 公司解散清算的法律意見書、債權處理法律意見書
- 2024-2025學年初中信息技術(信息科技)七年級下冊蘇科版(2023)教學設計合集
- 中華小廚神(教學設計)-五年級下冊勞動人教版1
- 世界建筑史學習通超星期末考試答案章節(jié)答案2024年
- 公路橋梁工程施工安全風險評估指南
- 《齊桓晉文之事》+課件+2023-2024學年統(tǒng)編版必修下冊+
- 《創(chuàng)傷失血性休克中國急診專家共識(2023)》解讀課件
- 八年級美術下冊第1課文明之光省公開課一等獎新名師課獲獎課件
- 2024年全國體育單招英語考卷和答案
評論
0/150
提交評論