導航:首頁 > 操作系統 > 基於單片機超聲波測距

基於單片機超聲波測距

發布時間:2025-04-25 08:24:07

㈠ 關於用單片機控制超聲波測距模塊的問題

這可能是你的超消賀改聲波模塊設計就如此.
模塊在發射超聲波時輸出高電平,在接收到反射信號後,將輸出復位成低電平。這個高電平時間就是超聲波在某塊與障礙物之間往返一次所需的時間。

當無障礙物時,高電平會無限期延續下去,這樣就無法啟動下一個超聲波發送,必須在經過一個特定的時間後,強制復位。這個時間也拿判就決定了這個模塊的最大檢測距離。

超聲波脈沖有一定寬度,當超聲波在模塊與障礙物之間來回一次所需時間小於脈沖寬度,反射信號與發射信號重疊,某塊也無法識拍檔別。超聲波的脈沖寬度決定了最小探測距離。

㈡ 求一篇關於基於單片機的超聲波測距儀設計的英文資料(附中文翻譯更美,呵呵),畢業設計用。謝謝

This article described the three directions (before, left, right) ultrasonic ranging system is to understand the front of the robot, left and right environment to provide a movement away from the information. (Similar to GPS Positioning System)
A principle of ultrasonic distance measurement
1, the principle of piezoelectric ultrasonic generator
Piezoelectric ultrasonic generator is the use of piezoelectric crystal resonators to work. Ultrasonic generator, the internal structure as shown in Figure 1, it has two piezoelectric chip and a resonance plate. When it's two plus pulse signal, the frequency equal to the intrinsic piezoelectric oscillation frequency chip, the chip will happen piezoelectric resonance, and promote the development of plate vibration resonance, ultrasound is generated. Conversely, if the two are not inter-electrode voltage, when the board received ultrasonic resonance, it will be for vibration suppression of piezoelectric chip, the mechanical energy is converted to electrical signals, then it becomes the ultrasonic receiver.

2, the principle of ultrasonic distance measurement
Ultrasonic transmitter in a direction to launch ultrasound, in the moment to launch the beginning of time at the same time, the spread of ultrasound in the air, obstacles on his way to return immediately, the ultrasonic reflected wave received by the receiver immediately stop the clock. Ultrasound in the air as the propagation velocity of 340m / s, according to the timer records the time t, we can calculate the distance between the launch distance barrier (s), that is: s = 340t / 2
Ultrasonic Ranging System for the Second Circuit Design

System is characterized by single-chip microcomputer to control the use of ultrasonic transmitter and ultrasonic receiver since the launch from time to time, single-chip selection of 8751, economic-to-use, and the chip has 4K of ROM, to facilitate programming. Circuit schematic diagram shown in Figure 2. Draw only the front range of the circuit wiring diagram, left and right in front of Ranging Ranging circuits and the same circuit, it is omitted.
1,40 kHz ultrasonic pulse generated with the launch
Ranging system using the ultrasonic sensor of piezoelectric ceramic sensors UCM40, its operating voltage of the pulse signal is 40kHz, which by the single-chip implementation of the following proceres to generate.
puzel: mov 14h, # 12h; ultrasonic firing continued 200ms
here: cpl p1.0; output 40kHz square wave
nop;
nop;
nop;
djnz 14h, here;
ret
Ranging in front of single-chip termination circuit P1.0 input port, single chip implementation of the above procere, the P1.0 port in a 40kHz pulse output signal, after amplification transistor T, the drive to launch the first ultrasonic UCM40T, issued 40kHz ultrasonic pulse, and the continued launch of 200ms. Ranging the right and the left side of the circuit, respectively, then input port P1.1 and P1.2, the working principle and circuit in front of the same location.
2, reception and processing of ultrasonic
Used to receive the first launch of the first pair UCM40R, the ultrasonic pulse molation signal into an alternating voltage, the op-amp amplification IC1A and after polarization IC1B to IC2. IC2 is locked loop with audio decoder chip LM567, internal voltage-controlled oscillator center frequency of f0 = 1/1.1R8C3, capacitor C4 determine their target bandwidth. R8-conditioning in the launch of the carrier frequency on the LM567 input signal is greater than 25mV, the output from the high jump 8 feet into a low-level, as interrupt request signals to the single-chip processing.
Ranging in front of single-chip termination circuit output port INT0 interrupt the highest priority, right or left location of the output circuit with output gate IC3A access INT1 port single-chip, while single-chip P1.3 and P1. 4 received input IC3A, interrupted by the process to identify the source of inquiry to deal with, interrupt priority level for the first left right after. Part of the source code is as follows:
receive1: push psw
push acc
clr ex1; related external interrupt 1
jnb p1.1, right; P1.1 pin to 0, ranging from right to interrupt service routine circuit
jnb p1.2, left; P1.2 pin to 0, to the left ranging circuit interrupt service routine
return: SETB EX1; open external interrupt 1
pop? acc
pop? psw
reti
right: ...?; right location entrance circuit interrupt service routine
? Ajmp? Return
left: ...; left Ranging entrance circuit interrupt service routine
? Ajmp? Return
4, the calculation of ultrasonic propagation time
When you start firing at the same time start the single-chip circuitry within the timer T0, the use of timer counting function records the time and the launch of ultrasonic reflected wave received time. When you receive the ultrasonic reflected wave, the receiver circuit outputs a negative jump in the end of INT0 or INT1 interrupt request generates a signal, single-chip microcomputer in response to external interrupt request, the implementation of the external interrupt service subroutine, read the time difference, calculating the distance . Some of its source code is as follows:
RECEIVE0: PUSH PSW
PUSH ACC
CLR EX0; related external interrupt 0
? MOV R7, TH0; read the time value
MOV R6, TL0?
CLR C
MOV A, R6
SUBB A, # 0BBH; calculate the time difference
MOV 31H, A; storage results
MOV A, R7
SUBB A, # 3CH
MOV 30H, A?
SETB EX0; open external interrupt 0
POP ACC?
POP PSW
RETI
Fourth, the ultrasonic ranging system software design

Software is divided into two parts, the main program and interrupt service routine, shown in Figure 3 (a) (b) (c) below. Completion of the work of the main program is initialized, each sequence of ultrasonic transmitting and receiving control.
Interrupt service routines from time to time to complete three of the rotation direction of ultrasonic launch, the main external interrupt service subroutine to read the value of completion time, distance calculation, the results of the output and so on.
V. CONCLUSIONS
Required measuring range of 30cm ~ 200cm objects inside the plane to do a number of measurements found that the maximum error is 0.5cm, and good reprocibility. Single-chip design can be seen on the ultrasonic ranging system has a hardware structure is simple, reliable, small features such as measurement error. Therefore, it can be used not only for mobile robot can be used in other detection systems.
Thoughts: As for why the receiver do not have the transistor amplifier circuit, because the magnification well, CX20106 integrated amplifier, but also with automatic gain control level, magnification to 76dB, the center frequency is 38k to 40k, is exactly resonant ultrasonic sensors frequency

=====
本文所介紹的三方向(前、左、右)超聲波測距系統,就是為機器人了解其前方、左側和右側的環境而提供一個運動距離信息。(類似GPS定位系統)
一 超聲波測距原理
1、壓電式超聲波發生器原理
壓電式超聲波發生器實際上是利用壓電晶體的諧振來工作的。超聲波發生器內部結構如圖1所示,它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等於壓電晶片的固有振盪頻率時,壓電晶片將會發生共振,並帶動共振板振動,便產生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波 時,將壓迫壓電晶片作振動,將機械能轉換為電信號,這時它就成為超聲波接收器了。

2、超聲波測距原理
超聲波發射器向某一方向發射超聲波,在發射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離(s),即:s=340t/2
二 超聲波測距系統的電路設計

系統的特點是利用單片機控制超聲波的發射和對超聲波自發射至接收往返時間的計時,單片機選用8751,經濟易用,且片內有4K的ROM,便於編程。電路原理圖如圖2所示。其中只畫出前方測距電路的接線圖,左側和右側測距電路與前方測距電路相同,故省略之。
1、40kHz 脈沖的產生與超聲波發射
測距系統中的超聲波感測器採用UCM40的壓電陶瓷感測器,它的工作電壓是40kHz的脈沖信號,這由單片機執行下面程序來產生。
puzel: mov 14h, #12h;超聲波發射持續200ms
here: cpl p1.0 ; 輸出40kHz方波
nop ;
nop ;
nop ;
djnz 14h,here;
ret
前方測距電路的輸入端接單片機P1.0埠,單片機執行上面的程序後,在P1.0 埠輸出一個40kHz的脈沖信號,經過三極體T放大,驅動超聲波發射頭UCM40T,發出40kHz的脈沖超聲波,且持續發射200ms。右側和左側測 距電路的輸入端分別接P1.1和P1.2埠,工作原理與前方測距電路相同。
2、超聲波的接收與處理
接收頭採用與發射頭配對的UCM40R,將超聲波調制脈沖變為交變電壓信號,經運算放大器IC1A和IC1B兩極放大後加至IC2。IC2是帶有鎖 定環的音頻解碼集成塊LM567,內部的壓控振盪器的中心頻率f0=1/1.1R8C3,電容C4決定其鎖定帶寬。調節R8在發射的載頻上,則LM567 輸入信號大於25mV,輸出端8腳由高電平躍變為低電平,作為中斷請求信號,送至單片機處理.
前方測距電路的輸出端接單片機INT0埠,中斷優先順序最高,左、右測距電路的輸出通過與門IC3A的輸出接單片機INT1埠,同時單片機P1.3和P1.4接到IC3A的輸入端,中斷源的識別由程序查詢來處理,中斷優先順序為先右後左。部分源程序如下:
receive1:push psw
push acc
clr ex1 ; 關外部中斷1
jnb p1.1, right ; P1.1引腳為0,轉至右測距電路中斷服務程序
jnb p1.2, left ; P1.2引腳為0,轉至左測距電路中斷服務程序
return: SETB EX1; 開外部中斷1
pop? acc
pop? psw
reti
right: ...? ; 右測距電路中斷服務程序入口
? ajmp? return
left: ... ; 左測距電路中斷服務程序入口
? ajmp? return
4、計算超聲波傳播時間
在啟動發射電路的同時啟動單片機內部的定時器T0,利用定時器的計數功能記錄超聲波發射的時間和收到反射波的時間。當收到超聲波反射波時,接收電路 輸出端產生一個負跳變,在INT0或INT1端產生一個中斷請求信號,單片機響應外部中斷請求,執行外部中斷服務子程序,讀取時間差,計算距離。其部分源程序如下:
RECEIVE0: PUSH PSW
PUSH ACC
CLR EX0 ; 關外部中斷0
? MOV R7, TH0 ; 讀取時間值
MOV R6, TL0?
CLR C
MOV A, R6
SUBB A, #0BBH; 計算時間差
MOV 31H, A ; 存儲結果
MOV A, R7
SUBB A, #3CH
MOV 30H, A?
SETB EX0 ; 開外部中斷0
POP ACC?
POP PSW
RETI
四、超聲波測距系統的軟體設計

軟體分為兩部分,主程序和中斷服務程序,如圖3(a)(b)(c) 所示。主程序完成初始化工作、各路超聲波發射和接收順序的控制。
定時中斷服務子程序完成三方向超聲波的輪流發射,外部中斷服務子程序主要完成時間值的讀取、距離計算、結果的輸出等工作。
五、結論
對所要求測量范圍30cm~200cm內的平面物體做了多次測量發現,其最大誤差為0.5cm,且重復性好。可見基於單片機設計的超聲波測距系統具有硬體結構簡單、工作可靠、測量誤差小等特點。因此,它不僅可用於移動機器人,還可用在其它檢測系統中。
思考:至於為什麼接收不用晶體管做放大電路呢,因為放大倍數搞不好,CX20106集成放大電路,還帶自動電平增益控制,放大倍數為76dB,中心頻率是38k到40k,剛好是超聲波感測器的諧振頻率

㈢ 51單片機 HC-SR04超聲波測距 我寫的C語言代碼,請問

HC-SR04超聲波測距感測器的工作原理是通過觸發端子Trig發送一個10us以上的高電平信號,觸發感測器開始測量。隨後,接收端Echo會輸出一個持續時間與超聲波往返時間成正比的高電平信號。此項目使用51單片機進行測距,編寫了相應的C語言代碼。

代碼中定義了幾個重要的變數:超聲波觸發端、接收端、蜂鳴器、外部中斷0信號。其中,超聲波觸發端為P0.1,接收端為P0.3,蜂鳴器為P2.0,外部中斷0信號為P3.2。

主函數中,首先初始化了觸發端和接收端電平,然後設置了觸發時間(大於10us),並開啟了定時器0中斷、外部中斷0,以及下降沿觸發模式。主循環中,外部中斷0被賦值為接收端信號,當出現下降沿時觸發外部中斷0。如果接收端未接收到高電平,則觸發感測器;若接收到高電平,則啟動定時器,標志位置1,並使蜂鳴器響。

定時器0中斷程序中,定時器設置為10ms,每進入一次中斷t0加1。外部中斷0中斷程序中,一旦進入外部中斷0,關閉定時器0,接收標志位置0,關閉蜂鳴器,測量時間為進入定時器中斷次數t0乘以每次時間10ms,除以1000化為秒為單位。

數碼管顯示函數用於顯示測量時間。此代碼未完全實現,需要進一步完善。

整體程序設計思路清晰,功能實現基本滿足需求,但在實際應用中還需要考慮更多細節,如感測器的誤差校正、數據處理等。

此外,還需注意定時器和中斷的正確配置,確保程序穩定運行。

希望以上信息對你有所幫助。

㈣ 求基於AT89C52超聲波測距簡易設計的源程序,要求用3個LED管顯示其測距,精確到小數點後2位如,X.XX米。

目前國內超聲波測距器的設計大多採用匯編語言設計。由於單片機應用系統的日趨復雜,要求所寫
的代碼規范化,模塊化,並便於多人以軟體工程的形式進行協同開發,匯編語言作為傳統的單片機應用系
統的編程語言,已經不能滿足這樣的實際需要了,而C語言以其結構化和能產生高效代碼滿足了這樣的需
求,成為電子工程師進行單片機系統編程時的首先編程語言。在本設計中,由於C語言程序有利於實現較
復雜的演算法,匯編語言程序具有較高的效率並且容易精確計算程序運行的時間,而超聲波測距器的程序既
有較復雜的距離計算又要求精確計算超聲波測距時程序運行的時間,所以本設計採用C語言和匯編語言
混合編程來實現。本文論述的是一種基於AT89C52單片機的超聲波測距器,可用於汽車倒車等場合⋯。
1設計要求
設計一個超聲波測距器,可以應用於汽車倒車、建築施工工地以及一些工業現場的位置監控,也可用
於如液位、井深、管道長度的測量等場合。要求測量范圍在0.10—5.00 m,測量精度lem,測量時與被測物
體無直接接觸,能夠清晰穩定地顯示測量結果。
2設計思路
2.1超聲波及其測距原理
超聲波是指頻率高於20KHz的機械波。為了以超聲波作為檢測手段,必須產生超聲波和接收超聲波。
完成這種功能的裝置就是超聲波感測器,習慣上稱為超聲波換能器或超聲波探頭。超聲波感測器有發送
器和接收器,但一個超聲波感測器也可具有發送和接收聲波的雙重作用。超聲波感測器是利用壓電效應
的原理將電能和超聲波相互轉化,即在發射超聲波的時候,將電能轉換為超聲波,發射超聲波;而在收到回
波的時候,則將超聲振動轉換成電信號。
超聲波測距的原理一般採用渡越時間法TOt(time of fliight)。首先測出超聲波從發射到遇到障礙物返
回所經歷的時間,再乘以超聲波的速度就得到二倍的聲源與障礙物之間的距離。測量距離的方法有很多
種,短距離的可以用尺,遠距離的有激光測距等,超聲波測距適用於高精度的中長距離測量。因為超聲波
收稿日期:2008-04-08
作者簡介:周功明(1963一),男,副教授,主要研究方向:電子信息科學技術。
·50· 綿陽師范學院學報(自然科學版) 第27卷
在標准空氣中的傳播速度為331.45粑秒,由單片機負責計時,單片機使用12.0M晶振,所以此系統的測
量精度理論上可以達到毫米級。由於超聲波指向性強,能量消耗緩慢,在介質中傳播距離遠,因而超聲波
可以用於距離的測量。利用超聲波檢測距離,設計比較方便,計算處理也較簡單,並且在測量精度方面也
能達到要求。
超聲波發生器可以分為兩類:一類是用電氣方式產生超聲波,一類是用機械方式產生超聲波。本課題
屬於近距離測量,可以採用常用的壓電式超聲波換能器來實現【7】。
2.2超聲波測距器的系統框圖
根據設計要求並綜合各方面因素,可以採用AT89C52單片機作為主控制器,用動態掃描法實現LED
數字顯示,超聲波驅動信號用單片機的定時器完成,超聲波測距器的系統框圖如下圖l所示¨2|:
3系統組成
3.1硬體部分
主要由單片機系統及顯示電路、超聲波發射電路
和超聲波檢測接收電路三部分組成。採用AT89C52來
實現對CX20106A紅外接收晶元和TCT40—10系列超
聲波轉換模塊的控制。單片機通過P1.0引腳經反相

超聲波接收E :, LED顯示單片機r
/\
Z ∑
超聲波發送高控制器
:> 掃描驅動
圖1 超聲波測距器系統設計框圖
Fig.1 Ultrasonic eLangi.g system design diagram
器來控制超聲波的發送,然後單片機不停的檢測INT0引腳,當INTO引腳的電平由高電平變為低電平時就
認為超聲波已經返回。計數器所計的數據就是超聲波所經歷的時間,通過換算就可以得到感測器與障礙
物之間的距離¨≈J。
3.2軟體部分
主要由主程序、超聲波發生子程序、超聲波接收中斷程序及顯示子程序等部分。
4系統硬體電路設計
4.1單片機系統及顯示電路
單片機採用AT89C52或其兼容系列。採用12MHz高精度的晶振,以獲得較穩定的時鍾頻率,減小測
量誤差。單片機用P1.0埠輸出超聲波轉化器所需的40KHz方波信號,利用外中斷0口檢測超聲波接收
電路輸出的返回信號。顯示電路採用簡單實用的4位共陽LED數碼管,段碼用74LS244驅動,位碼用PNP
三極體驅動。單片機系統及顯示電路如下圖2所示『1。31。
圖2單片機及顯示電路原理圖
Fig.2 MCU and display circuit schematics
第8期周功明等:基於AT89C52單片機的超聲波測距器設計·51.
4.2超聲波發射電路原理圖
壓電超聲波轉換器的功能:利用壓電晶體諧振工作。內部結構如圖3『3Ⅲ1所示,它有兩個壓電晶片和
一個共振板。當它的兩極外加脈沖信號,其頻
率等於壓電晶片的固有振盪頻率時,壓電晶片PI.O
將會發生共振,並帶動共振板振動產生超聲波,
這時它就是一超聲波發生器;如沒加電壓,當共
振板接收到超聲波時,將壓迫壓電振盪器作振
動,將機械能轉換為電信號,這時它就成為超聲
波接收轉換器。超聲波發射轉換器與接收轉換
器其結構稍有不同。
4.3超聲波檢測接收電路圖3發射電路原理圖
參考紅外轉化接收電路,本設計採用集成
F『g·3 U1『ms。nie劬啪mi『婦c『咖1『∞hem蚯c
電路CX20106A,這是一款紅外線檢波接收的專用晶元,常用於電視機紅外遙控接收器。考慮到紅外遙控
常用的載波頻率38KHz與測距超聲波頻率
40KHz較為接近,可以利用它作為超聲波檢測
電路。如圖4【3 J[71超聲波檢測接收電路原理圖
所示,適當改變C4的大小,可改變接收電路的
靈敏度和抗干擾能力。⋯. J。j-二
5系統程序設計
超聲波測距軟體設計主要由主程序,超聲
波發射子程序,超聲波接收中斷程序及顯示子
程序組成。下面對超聲波測距器的演算法,主程
序,超聲波發射子程序和超聲波接收中斷程序
逐一介紹。
5.1超聲波測距器的演算法設計
GND
圖4超聲波檢測接收電路原理圖
Fig.4 Ultrasonic receiver and detection circuit schematic
圖5【_列示意了超聲波測距的原理,即超聲
波發生器T在某一時刻發出的一個超聲波信號,當超聲波遇到被測物
體後反射回來,就被超聲波接收器R所接受。這樣只要計算出發生信
號到接收返回信號所用的時問,就可算出超聲波發生器與反射物體的
距離。
距離計算公式:d=s/2=(c木t)/2,其中d為被測物與測距器的距
離,s為聲波的來迴路程,c為聲速,t為聲波來回所用的時間。
圖5超聲波測距原理圖
Fig.5 Ultrasonic Ranging schematic
聲速c與溫度有關(見表1),如溫度變化不大,則可認為聲速是基
本不變的。如果測距精度要求很高,則應通過溫度補償的方法加以校正。聲速確定後,只要測得超聲波往
返時間,即可求得距離。在系統加入溫度感測器來監測環境溫度,可進行溫度補償。這里可以用DSl8820
測量環境溫度,根據不同的環境溫度確定一聲速提高測距的穩定性。為了增強系統的可靠性,可在軟硬體
上採用抗干擾措施。
表1不同溫度下的超聲波速表
Table I Under different temperatures ultrasonic velocity Table
·52· 綿陽師范學院學報(自然科學版) 第27卷
5.2主程序
主程序首先對系統環境初始化,設置定時器1D工作模式為16位的定時計數器模式,置位總中斷允許
位EA並給顯示端Po和P2清0。然後調用超聲波發生子程序送出一個超聲波脈沖,為避免超聲波從發射
器直接傳送到接收器引起的直接波觸發,需延遲0.1ms(這也就是測距器會有一個最小可測距離的原因)
後,才打開外中斷0接收返回的超聲波信號。由於採用12MHz的晶振,機器周期為lus,當主程序檢測到接
收成功的標志位後,將計數器喲中的數(即超聲波來回所用的時
間)按下式計算即可測得被測物體與測距儀之間的距離,設計時取
20℃時的聲速為344 m/s則有:d=(C木TO)/2=172T0/10000cm
(其中,ID為計數器,ID的計數值)。
測出距離後結果將以十進制BCD碼方式LED,然後再發超聲
波脈沖重復測量過程。主程序框圖如圖6所示。
5.3超聲波發生子程序和超聲波接收中斷程序
超聲波發生子程序的作用是通過PI.0埠發送2個左右的
超聲波信號頻率約40KHz的方波,脈沖寬度為12 US左右,同時把
計數器,ID打開進行計時。超聲波測距器主程序利用外中斷0檢
測返回超聲波信號,一旦接收到返回超聲波信號(INT0引腳出現
低電平),立即進入中斷程序。進入該中斷後就立即關閉計時器
,ID停止計時,並將測距成功標志字賦值l。如果當計時器溢出時
還未檢測到超聲波返回信號,則定時器rID溢出中斷將外中斷0關
閉,並將測距成功標志字賦值2以表示此次測距不成功H旬J。
5.4超聲波測距器的部分程序清單
/宰超聲波測距器彈片機c程序使用Keil C51 ver 7.09

木/
#include<re951.h>
#define uchar unsigned int
#define uint unsigned int
#define ulong unsigned long
Extem void ca_t(void);
Extem void delay(uint);
Extem void display(unchar);
Data unehar testtok;
/木超聲波測距器主程序術/
Void main(void)
{data unchar dispram[5];
data uint i;
data ulong time;
p0=0xff;
pl=0xff;
TMOD=0X11:
IE=0x80;
While(1)
{.「}
開始
系統初始化
發送超聲波脈沖
等待發射超聲波
計算距離
顯示結果0.5s
圖6主程序框圖
diagram of the main program
第8期周功明等:基於AT89C52單片機的超聲波測距器設計·53·
6軟硬體調試
超聲波測距儀的製作和調試,其中超聲波發射和接收採用中15的超聲波換能器TCT40一IOFl(T發
射)和TCT40—10S1(R接收),中心頻率為40kHz,安裝時應保持兩換能器中心軸線平行並相距4—8 cm,
其餘元件無特殊要求。若能將超聲波接收電路用金屬殼屏蔽起來,則可提高抗干擾能力。根據測量范圍
要求不同,可適當調整與接收換能器並接的濾波電容C4的大小,以獲得合適的接收靈敏度和抗干擾能力。
硬體電路製作完成並調試好後,便可將程序編譯好下載到單片機試運行。根據實際情況可以修改超
聲波發生子程序每次發送的脈沖寬度和兩次測量的間隔時間,以適應不同距離的測量需要∞】【71。
7 結束語
本文設計的是基於AT89C52單片機的超聲波測距器,可應用於汽車倒車等場合,提醒駕駛員倒車時有
效的避開可能對倒車造成危害的障礙物和行人,從而有效避免由於倒車造成的汽車碰撞或擦傷經濟損失
和人身安全問題。具有較強的實用性。
參考文獻:
[1] 周功明.基於AT89C2051彈片機的防盜自動報警電子密碼鎖系統設計[J].綿陽師范學院學報,2007,26(5):112—
116.
[14]
張齊.單片機應用系統設計技術一基於c語言編程[M].北京:電子工業出版社,2006.
李光飛.單片機c程序設計實例指導[M].北京:航空航天大學業出版社,2005.
樓燃苗,李光飛.51系列單片機設計實例[M].北京:航空航天大學業出版社,2003.
Zhongbo Li.Electronic Technique[M].Beijing:Mechannic Instrical Prees,2003.
賴麒文.8051單片機c語言徹底應用[M].北京:科學業出版社,2002.
何希才.感測器及其應用電路[M].北京:電子工業出版社,2001.
丁元傑.單片微機原理及應用[M].北京:機械工業出版社,2001.
孫串友,孫曉斌.感測技術基礎[M].北京:電子工業出版社,2001.
馬忠梅.單片機的c語言應用程序設計[M].北京:航空航天大學業出版社,1999.
劉喜昂,周志宇.基予多超聲感測器的機器人安全避障技術[J].測控技術,2003,23(2):71—73.
翟國富,劉茂愷.一種實時高精度的機器人用超聲波測距處理方法[J].應用聲學,1990,15(1):17—24.
Cray C,Swinhoe C F,Myinl.Target controlled infusion of ketamine曲analgessia for TIV A with propof01.Can.J Anesth,1999,
40:957.
R J Higgens.Electronics and Analog Integrated Circuits[M].N.J:Prentice—Hall Inc,2001.

㈤ 基於89C52單片機的HC-SR04超聲波測距系統程序

#include<reg52.h>

#include<intrins.h>

#define uint unsigned int

#define uchar unsigned char


sbit DU=P2^6;

sbit WE=P2^7;

sbit RS=P1^0;

sbit RW=P1^1;

sbit EN=P2^5;

sbit RX=P3^2;

sbit TX=P1^5;


uint time=0;

unsigned long S=0;

bit flag=0;

uchar disdat[]={0,0,0,0};


void delay(uint xms)

{

uint x,y;

for(x=xms;x>0;x--)

for(y=112;y>0;y--);

}


void write_com(uchar com)

{

RS=0;

RW=0;

P0=com;

delay(5);

EN=1;

delay(5);

EN=0;

}


void write_dat(uchar dat)

{

RS=1;

RW=0;

P0=dat;

delay(5);

EN=1;

delay(5);

EN=0;

}


void write_1602(uchar add,uchar dat2)

{

write_com(0x80+0x40+add);

write_dat(dat2);

}


void ZIFU(uchar *ch)

{

while(*ch!=0)

{

write_dat(*ch++);

delay(20);

}

}


void init()

{

DU=0;

WE=0;

EN=0;

write_com(0x38);

delay(2);

write_com(0x0f);

write_com(0x06);

write_com(0x80);

write_com(0x01);

ZIFU(" From JM Xiao");

}


void count()

{

time=TH0*256+TL0;//計時時間

TH0=0;

TL0=0;

S=time/58;

disdat[0]=S%1000/100;

disdat[1]=S%1000%100/10;

disdat[2]=S%1000%10%10;

write_1602(1,'D');

write_1602(2,'i');

write_1602(3,'s');

write_1602(4,'t');

write_1602(5,'a');

write_1602(6,'n');

write_1602(7,'c');

write_1602(8,'e');

write_1602(9,':');

write_1602(10,disdat[0]+0x30);

write_1602(11,disdat[1]+0x30);

write_1602(12,disdat[2]+0x30);

write_1602(13,'C');

write_1602(14,'M');

}


void start()

{

TX=1;

_nop_(); _nop_();

_nop_(); _nop_();

_nop_(); _nop_();

_nop_(); _nop_();

_nop_(); _nop_();

_nop_(); _nop_();

_nop_(); _nop_();

_nop_(); _nop_();

TX=0;

}


void timer0() interrupt 1

{

flag=1;

}


void main()

{

delay(400);

init();

TMOD=0x01;

TH0=0;

TL0=0;

EA=1;

ET0=1;

while(1)

{

start();

while(!RX);

TR0=1;

while(RX);

TR0=0;

count();

delay(20);

}


}


閱讀全文

與基於單片機超聲波測距相關的資料

熱點內容
壓縮層計算深度 瀏覽:388
愛奇藝怎麼不能源碼輸出 瀏覽:831
小孩視力訓練app哪個好 瀏覽:828
表格上加密碼 瀏覽:199
伺服器如何調時間 瀏覽:414
安卓怎麼跟蹤對方蘋果手機位置 瀏覽:829
pptp伺服器地址怎麼設置 瀏覽:940
藍月傳奇bt源碼 瀏覽:832
丹麥丹佛斯壓縮機 瀏覽:773
statapwcorr命令 瀏覽:135
怎樣看文件夾創建程序 瀏覽:641
文明重啟伺服器什麼時候重啟 瀏覽:981
app開發哪個比較好 瀏覽:977
程序員電腦卡了 瀏覽:831
壓縮空氣系統作用 瀏覽:404
三輪車用哪個app 瀏覽:29
手游游戲端源碼 瀏覽:93
沉井腳手架計演算法 瀏覽:922
加密twf文件怎麼列印 瀏覽:252
進入recoveryadb命令 瀏覽:3