虞新軍,鄧玉良
1.金山職業技術學院,江蘇鎮江 212200 2.江蘇省金壇中等專業學校,江蘇金壇 212300
基于MSP430單片機控制的超聲波測距儀軟件系統設計
虞新軍1,鄧玉良2
1.金山職業技術學院,江蘇鎮江212200 2.江蘇省金壇中等專業學校,江蘇金壇212300
摘要本設計是一種基MSP430單片機的超聲波測距器。該測距器采用MSP430F123電路,通過主程序設計、中斷程序設計、測溫程序和測距程序設計,實現發射電路的控制和接收數據的處理。利用超聲波檢測可以快速、簡便、容易做到實時控制,具有很強的實用推廣價值。
關鍵詞超聲波傳感器;測距儀;MSP430F123
下圖1可以簡單說明超聲波測距的工作過程,即超聲波發生器(T)在某一時間發出超聲波信號,當這個信號遇到被測物體后立刻反射回來,就被超聲波接收器(R)接收到。只要計算出從發射出超聲波信號到接收到返回超聲波信號所用的時間差,就可以算出超聲波發生器和被測物體之間的距離了。
該距離計算公式表示為:d=s/2=(vt)/2
其中:其中距離d就是被測物體到測距儀之間的距離,s就是超聲波往返經過的距離,v就是超聲波在介質當中的傳播速度,t就是超聲波開始發射到接收時所用時間。
主程序完成單片機初始化,經過延時再判斷是否中斷,若是則進行測量數據的處理;若否則跳轉回延時再判斷是否中斷,重復判斷。數據處理后將處理過后的數據即測量的距離顯示在數碼顯示管上。其主程序流程圖如圖2。
上述主程序是利用外中斷0檢測到返回超聲波信號的,一旦接收成功返回超聲波信號,就立即進入了中斷程序。進入中斷程序后就會立即關閉計時器T0,同時停止計時,并可以將測距成功標志字賦值為1。如果計時器溢出時候還沒有檢測到超聲波的返回信號,那么定時器T0的溢出中斷將會外中斷0立即關閉,同時將測距成功標志字賦值2,表示此次測距失敗。中斷設計流程圖如圖3。
每一個DS18B20在它的內存ROM中都存在其唯一的48位序列號,出廠前都已寫入內存ROM中。操作主機前,進入時必須用讀取ROM(33H)命令將該DS18B20的序列號一一讀出。
圖4所示為測溫程序流程圖。
主程序首先應該對系統環境進行初始化,設置系統定時器T0的工作模式為16位定時計數器模式,置位總的中斷允許位為EA,并同時給顯示端口P0口和P2口清0。緊接著立即送出一個超聲波脈沖,為了避免超聲波產生的直接波觸發,則需要延遲0.1ms后,才可以打開外部
中斷0接收到的返回超聲波信號。
其測距流程圖如圖5所示。
本次設計的超聲波測距儀具有準雙向測距的功能,穩定性很高、較靈敏,盲區范圍很小,分辨率<0.2m,被測量的目標不需要直接垂直于測距儀,測量的角度可以保持在正負30°,還有一個優點就是被測的目標表面可以不平坦。但是缺點還是比較多的,比如測量的距離較小,大概在5米以內;測量時的可靠性還要加強,后續很多地方還要進行改進。
參考文獻
[1]張謙琳.超聲波檢測原理和方法[M].北京:中國科技大學出版社,1993.
[2]周立功.RAM嵌入式系統基礎教育[M].北京:航空航天大學出版社,2005.
[3]樓然苗,李光飛.單片機課程設計知道[M].北京:航空航天大學出版社,2007.
中圖分類號TP39
文獻標識碼A
文章編號1674-6708(2015)139-0161-01