//////////////////////////////////////////////////////////////////////
//@date
2012/04/21
// @author:高謹 孫娜 馬浩
//@E-mail:abc231@126.com
//參考資料:《全站儀紅外測距系統(tǒng)的研究》王萍 張志強
基于AT89S51單片機的超聲波測距系統(tǒng)
//2012/5/23日補充超聲波測距原理
//
//
/////////////////////////////////////////////////////////////////////
一、紅外測距小談
1、
光波測距原理:
利用電磁波在空氣中傳播速度c已知,測量其在待測距離D上的傳播時間t,利用下面的公式求解:D=c*t/2.
(1)
關(guān)鍵是求時間t。再按(1)求解。以下介紹三種方法來求解D。分別如下:
1.1脈沖法測距原理:
直接求得電磁波脈沖信號在待測距離D上的傳播時間t,利用式(1)求解。
1.2相位法測距原理:
目前,精度較高的測距中,都采用測定“調(diào)制光波”往返于被測距離的相位差,間接求得距離。
一、調(diào)制光波
紅外線光波長0.76um~1mm,光的傳播速度c=3×108
m/s相應(yīng)地紅外線頻率約為3×1011
Hz~4×1014Hz
。要精確測量這樣高頻率光波是不可能的。因此,目前使用相位法測距時,都是對光波再加一調(diào)制信號,使光波信號隨所加調(diào)制信號變化。這種光強最所加信號變化的光稱為調(diào)制光。調(diào)制信號時加在光波上傳輸出去的,這時光波又稱為載波。
二、相位法測距基本公式:
設(shè)調(diào)制光波頻率f,在待測距AB上所用時間t,其相位移為Φ,如下圖1:

圖(1)相位法測距原理示意圖
起始時刻t1發(fā)射的調(diào)制光光強為
I1=Asin(ωt1+Φ0)
接收時調(diào)制光強為:
I2=Asin(ωt1+ωt+Φ0)
則接收與發(fā)射時刻相位差:Φ=(ωt1+ωt+Φ0)-
(ωt1+Φ0)=
ωt=2πft
t=Φ/(2πf)
(2)
將(2)代入(1)式得:D=ct/2=(c/2)*(
Φ/(2πf)=cΦ/(4πf)
(3)
可改寫為:
D=
λ/2(N+△φ/2/π)=L(N+△n)
式中,λ=
c/f,N為整形波(2π)數(shù),△n為不足整形的尾數(shù)。
三、相位法測距簡略框圖(2)

發(fā)出的光波,經(jīng)調(diào)制器成調(diào)制波,經(jīng)發(fā)射器發(fā)出調(diào)制光,沿測線傳播被返射器反回后,被接收器接收,得到測距信號,經(jīng)放大送到相位計,與發(fā)射時刻送到相位計的起始信號進行比較,得到發(fā)射時刻與接收時刻調(diào)制光波的相位差,然后由計數(shù)顯示單元計算并顯示相位距離值。
局限性:相位計只能辨認0~360°的相位差△φ,不能測出整相位2π個數(shù),因此只能測出不足整測尺的距離值,常用多把測尺即多個調(diào)制頻率的方法來解決。
1.3變頻法測距原理:
由相位法測距可知,一般情況,在二倍待測距離上除了有整波數(shù)N外,還有不足整波的部分△φ/2π。變頻法則是在任何距離上都可以改變調(diào)制信號頻率,即改變測尺長,是在二倍待測距上正好是測尺長的整數(shù)倍,從而使△φ=0。
變頻法必須附有頻率計,結(jié)構(gòu)較復(fù)雜(如變頻裝置,判零裝置等),因而在中短程測距儀中被淘汰。
2、測距實例:(以超聲波測距為例淺談紅外測距)
基于AT89S51單片機的超聲波測距系統(tǒng)
超聲波具有指向性強,能量消耗緩慢,傳播距離較遠等優(yōu)點,所以,在利用傳感器技術(shù)和自動控制技術(shù)相結(jié)合的測距方案中,超聲波測距是目前應(yīng)用最普遍的一種,它廣泛應(yīng)用于防盜、倒車雷達、水位測量、建筑施工工地以及一些工業(yè)現(xiàn)場。
1、基于單片機的超聲波測距系統(tǒng)
基于單片機的超聲波測距系統(tǒng),是利用單片機編程產(chǎn)生頻率為40kHz的方波,經(jīng)過發(fā)射驅(qū)動電路放大,使超聲波傳感器發(fā)射端震蕩,發(fā)射超聲波。超聲波波經(jīng)反射物反射回來后,由傳感器接收端接收,再經(jīng)接收電路放大、整形,控制單片機中斷口。其系統(tǒng)框圖如圖1-1所示。

圖1-1
基于單片機的超聲波測距系統(tǒng)框圖
這種以單片機為核心的超聲波測距系統(tǒng)通過單片機記錄超聲波發(fā)射的時間和收到反射波的時間。當收到超聲波的反射波時,接收電路輸出端產(chǎn)生一個負跳變,在單片機的外部中斷源輸入口產(chǎn)生一個中斷請求信號,單片機響應(yīng)外部中斷請求,執(zhí)行外部中斷服務(wù)子程序,讀取時間差,計算距離,結(jié)果輸出給LED顯示。利用本測距系統(tǒng)測量范圍應(yīng)在
40cm~599cm,其誤差1cm。
利用單片機準確計時,測距精度高,而且單片機控制方便,計算簡單。許多超聲波測距系統(tǒng)都采用這種設(shè)計方法。
2、超聲波測距原理概述
超聲波是由機械振動產(chǎn)生的,可在不同介質(zhì)中以不同的速度傳播。由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波經(jīng)常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實現(xiàn)。超聲測距是一種非接觸式的檢測方式。與其它方法相比,如電磁的或光學(xué)的方法,它不受光線、被測對象顏色等影響。對于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力。因此在液位測量、機械手控制、車輛自動導(dǎo)航、物體識別等方面有廣泛應(yīng)用。特別是應(yīng)用于空氣測距,由于空氣中波速較慢,其回波信號中包含的沿傳播方向上的結(jié)構(gòu)信息很容易檢測出來,具有很高的分辨力,因而其準確度也較其它方法為高;而且超聲波傳感器具有結(jié)構(gòu)簡單、體積小、信號處理可靠等特點。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求。
超聲波測距的方法有多種,如相位檢測法、聲波幅值檢測法和渡越時間檢測法等。相位檢測法雖然精度高,但檢測范圍有限;
聲波幅值檢測法易受反射波的影響。
本測距系統(tǒng)采用超聲波渡越時間檢測法。其原理為:
檢測從超聲波發(fā)射器發(fā)出的超聲波,經(jīng)氣體介質(zhì)的傳播到接收器的時間,即渡越時間。渡越時間與氣體中的聲速相乘,就是聲波傳輸?shù)木嚯x。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時單片機開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。再由單機計算出距離,送LED數(shù)碼管顯示測量結(jié)果。
超聲波在空氣中的傳播速度隨溫度變化,其對應(yīng)值如表2-1
,根據(jù)計時器記錄的時間t
(見圖2-1),就可以計算出發(fā)射點距障礙物的距離( s )
,即: s = v t / 2
。
表2-1
聲速與溫度的關(guān)系
|
溫度(℃)
|
-30
|
-20
|
-10
|
0
|
10
|
20
|
30
|
100
|
|
聲速(m/s)
|
313
|
319
|
325
|
323
|
338
|
344
|
349
|
386
|

圖2-1
超聲波測距時序圖
超聲波測距的步驟[1]:(1)采取IO觸發(fā)測距,給至少10微秒的高電平信號;
(2)模塊自動會發(fā)送8個40KHZ的方波,自動檢測是否有信號返回;(無需編程干預(yù),由
模塊自動完成)
(3)模塊通過IO返回8051單片機一個高電平信號,高電平持續(xù)的時間就是超聲波從發(fā)
射到返回的時間。
2.1超聲波傳感器
2.1.1
超聲波發(fā)生器
為了研究和利用超聲波,人們已經(jīng)設(shè)計和制成了許多超聲波發(fā)生器。總體上講,超聲波發(fā)生器可以分為兩大類:
一類是用電氣方式產(chǎn)生超聲波,一類是用機械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等;
機械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。
2.1.2
壓電式超聲波發(fā)生器原理
壓電型超聲波傳感器的工作原理:它是利用壓電效應(yīng)的原理,壓電效應(yīng)有逆效應(yīng)和順效應(yīng),超聲波傳感器是可逆元件,超聲波發(fā)送器就是利用壓電逆效應(yīng)的原理。所謂壓電逆效應(yīng)如圖2-2所示,是在壓電元件上施加電壓,元件就變形,即稱應(yīng)變。若在圖a所示的已極化的壓電陶瓷上施加如圖b所示極性的電壓,外部正電荷與壓電陶瓷的極化正電荷相斥,同時,外部負電荷與極化負電荷相斥。由于相斥的作用,壓電陶瓷在厚度方向上縮短,在長度方向上伸長。若外部施加的極性變反,如圖c所示那樣,壓電陶瓷在厚度方向上伸長,在長度方向上縮短。

圖2-2壓電逆效應(yīng)圖
2.1.3單片機超聲波測距系統(tǒng)構(gòu)成
單片機AT89S51發(fā)出短暫的40kHz信號,經(jīng)放大后通過超聲波換能器輸出;反射后的超聲波經(jīng)超聲波換能器作為系統(tǒng)的輸入,鎖相環(huán)對此信號鎖定,產(chǎn)生鎖定信號啟動單片機中斷程序,讀出時間t,再由系統(tǒng)軟件對其進行計算、判別后,相應(yīng)的計算結(jié)果被送至LED數(shù)碼管進行顯示。
限制超聲波系統(tǒng)的最大可測距離存在四個因素:超聲波的幅度、反射物的質(zhì)地、反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小可測距離。

圖2-3
超聲波測距系統(tǒng)框圖
3、 設(shè)計方案
按照系統(tǒng)設(shè)計的功能的要求,初步確定設(shè)計系統(tǒng)由單片機主控模塊、顯示模塊、超聲波發(fā)射模塊、接收模塊共四個模塊組成。
單片機主控芯片使用51系列AT89S51單片機,該單片機工作性能穩(wěn)定,同時也是在單片機課程設(shè)計中經(jīng)常使用到的控制芯片。
發(fā)射電路由單片機輸出端直接驅(qū)動超聲波發(fā)送。
接收電路使用三極管組成的放大電路,該電路簡單,調(diào)試工作小較小。

圖3-1:系統(tǒng)設(shè)計框圖
硬件電路的設(shè)計主要包括單片機系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波接收電路三部分。單片機采用AT89S51。采用12MHz高精度的晶振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差。單片機用P0.0端口輸出超聲波換能器所需的40kHz的方波信號,P3.7端口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采用簡單實用的3位共陽LED數(shù)碼管,段碼輸出端口為單片機的P2口,位碼輸出端口分別為單片機的P0.2、P0.3、P0.4口,數(shù)碼管位驅(qū)運用PNP三極管S9012三極管驅(qū)動。
3.1 AT89S51單片機介紹見后面
3.2
超聲波測距系統(tǒng)構(gòu)成
本系統(tǒng)由單片機AT89S51控制,包括單片機系統(tǒng)、發(fā)射電路與接收放大電路和顯示電路幾部分組成。硬件電路的設(shè)計主要包括單片機系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波接收電路三部分。單片機采用AT89S51。采用12MHz高精度的晶振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差。單片機用P0.0端口輸出超聲波換能器所需的40kHz的方波信號,P3.7端口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采用簡單實用的3位共陽LED數(shù)碼管,段碼輸出端口為單片機的P2口,位碼輸出端口分別為單片機的P0.2、P0.3、P0.4口,數(shù)碼管位驅(qū)運用PNP三極管S9012三極管驅(qū)動。
超聲波接收頭接收到反射的回波后,經(jīng)過接收電路處理后,向單片機P3.7輸入一個低電平脈沖。單片機控制著超聲波的發(fā)送,超聲波發(fā)送完畢后,立即啟動內(nèi)部計時器T0計時,當檢測到P3.7由高電平變?yōu)榈碗娖胶?/font>,立即停止內(nèi)部計時器計時。單片機將測得的時間與聲速相乘再除以2即可得到測量值,最后經(jīng)3位數(shù)碼管將測得的結(jié)果顯示出來。
3.2.1
超聲波測距單片機系統(tǒng)
超聲波測距單片機系統(tǒng)主要由:AT89S51單片機、晶振、復(fù)位電路、電源濾波部份構(gòu)成。由K1、K2、K3組成測距系統(tǒng)的按鍵電路。用于設(shè)定超聲波測距報警值。如圖3-3。

圖3-3:超聲波測距單片機系統(tǒng)
3.2.2
超聲波發(fā)射、接收電路
超聲波發(fā)射、接收電路如圖3-4。超聲波發(fā)射電路由電阻R2、三極管BG1、超聲波脈沖變壓器B及超聲波發(fā)送頭T40構(gòu)成,超聲波脈沖變壓器,在這里的作用是提高加載到超聲波發(fā)送頭兩端的電壓,以提高超聲波的發(fā)射功率,從而提高測量距離。接收電路由BG1、BG2組成的兩組三級管放大電路構(gòu)成;超聲波的檢波電路、比較整形電路由C7、D1、D2及BG3組成。
40kHz的方波由AT89S51單片機的P0.0輸出,經(jīng)BG1推動超聲波脈沖變壓器,在脈沖變壓器次級形成60VPP的電壓,加載到超聲波發(fā)送頭上,驅(qū)動超聲波發(fā)射頭發(fā)射超聲波。發(fā)送出的超聲波,遇到障礙物后,產(chǎn)生回波,反射回來的回波由超聲波接收頭接收到。由于聲波在空氣中傳播時衰減,所以接收到的波形幅值較低,經(jīng)接收電路放大,整形,最后輸出一負跳變,輸入單片機的P3.7腳。

圖3-4:超聲波測距發(fā)送接收單元、單元
該測距電路的40kHz方波信號由單片機AT89S51
的P0.0發(fā)出。方波的周期為1/40ms,即25μs,半周期為12.5μs。每隔半周期時間,讓方波輸出腳的電平取反,便可產(chǎn)生40kHz方波。由于單片機系統(tǒng)的晶振為12M晶振,因而單片機的時間分辨率是1μs,所以只能產(chǎn)生半周期為12μs或13μs的方波信號,頻率分別為41.67kHz和38.46kHz。本系統(tǒng)在編程時選用了后者,讓單片機產(chǎn)生約38.46kHz的方波。
由于反射回來的超聲波信號非常微弱,所以接收電路需要將其進行放大。接收電路如圖3-4所示。接收到的信號加到BG2、BG3組成的兩級放大器上進行放大。每級放大器的放大倍數(shù)為70倍。放大的信號通過檢波電路得到解調(diào)后的信號,即把多個脈沖波解調(diào)成多個大脈沖波。這里使用的是1N4148檢波二極管,輸出的直流信號即兩二極管之間電容電壓。該接收電路結(jié)構(gòu)簡單,性能較好,制作難度小。
3.2.3顯示電路
本系統(tǒng)采用三位一體L E D
數(shù)碼管顯示所測距離值,如圖3-5。數(shù)碼管采用動態(tài)掃描顯示,段碼輸出端口為單片機的P2口,位碼輸出端口分別為單片機的P0.2、P0.3、P0.4口,數(shù)碼管位驅(qū)運用PNP三極管S9012三極管驅(qū)動。

圖3-5:顯示單元圖
3.2.4
供電電路
本測距系統(tǒng)由于采用的是LED數(shù)碼管用為顯示方式,正常工作時,系統(tǒng)工作電流約為30-45mA,考慮到調(diào)試方便,設(shè)計時直接由電腦的USB口供電。為提高超聲波測距板的供電品質(zhì),板上設(shè)有C1、C2用為濾波。

圖3-6:供電單元電路圖
3.2.4報警輸出電路
為提高測測距系統(tǒng)的實用性,本測距系統(tǒng)的報警輸出提供開關(guān)量信號及聲響信號兩種方式。
報警信號由單片機P3.6口輸出,提供聲響報警信號,電路由電阻R10、三極管BG8、蜂鳴器BY組成,當測量值低于事先設(shè)定的報警值時,單片機P3.6口輸出高電平,三極管BG8導(dǎo)通,蜂鳴器發(fā)出“滴、滴、滴…..”報警聲響信號,測量值高于設(shè)定的報警值時,停止發(fā)出報警聲響。報警輸出電路如圖3-7。

圖3-7
報警輸出電路
4、系統(tǒng)軟件設(shè)計
4.1
主程序設(shè)計
超聲波測距的軟件設(shè)計主要由主程序、超聲波發(fā)生子程序、超聲波接收程序及顯示子程序組成。超聲波測距的程序既有較復(fù)雜的計算(計算距離時),又要求精細計算程序運行時間(超聲波測距時),所以控制程序可采用C語言編程。
主程序首先是對系統(tǒng)環(huán)境初始化,設(shè)定時器0為計數(shù),設(shè)定時器1定時。置位總中斷允許位EA。進行程序主程序后,進行定時測距判斷,當測距標志位ec=1時,測量一次,程序設(shè)計中,超聲波測距頻度是4-5次/秒。測距間隔中,整個程序主要進行循環(huán)顯示測量結(jié)果。當調(diào)用超聲波測距子程序后,首先由單片機產(chǎn)生4個頻率為38.46kHz超聲波脈沖,加載的超聲波發(fā)送頭上。超聲波頭發(fā)送完送超聲波后,立即啟動內(nèi)部計時器T0進行計時,為了避免超聲波從發(fā)射頭直接傳送到接收頭引起的直射波觸發(fā),這時,單片機需要延時約1.5 -2ms時間(這也就是超聲波測距儀會有一個最小可測距離的原因,稱之為盲區(qū)值)后,才啟動對單片機P3.7腳的電平判斷程序。當檢測到P3.7腳的電平由高轉(zhuǎn)為低電平時,立即停止T0計時。由于采用單片機采用的是12 MHz的晶振,計時器每計一個數(shù)就是1μs,當超聲波測距子程序檢測到接收成功的標志位后,將計數(shù)器T0中的數(shù)(即超聲波來回所用的時間)按式(2)計算,即可得被測物體與測距儀之間的距離。
設(shè)計時取15℃時的聲速為340 m/s則有: d=(c×t)/2=172×T0/10000cm其中,T0為計數(shù)器T0的計算值。 測出距離后結(jié)果將以十進制BCD碼方式送往LED顯示約0.5s,然后再發(fā)超聲波脈沖重復(fù)測量過程。
4.2
超聲波測距子程序
void
csbcj()
//超聲波測距子程序
{
if(cl==1)
{
sx=0;
delay(5000);
csbint=1;
TR1=0;
TH0=0x00;
TL0=0x00;
csbfs();
//超聲波發(fā)送
csbout=1;
TR0=1;
while(i--)
{
}
i=0;
while(csbint)
//判斷接收回路是否收到超聲波的回波
{
i++;
if(i>=2000)
//如果達到一定時間沒有收到回波,則將csbint置零,退出接收回波處理程序
csbint=0;
}
csbint=1;
TR0=0;
t=TH0;
t=t*256+TL0;
t=t;
s=t*csbc;
//計算測量結(jié)果
s=s/2;
cl=0;
TH1=0xE7;
TL1=0xC2;
TR1=1;
}
}
產(chǎn)生超聲波的子程序:
為了方便程序移置及準確產(chǎn)生超聲波信號,本測距的超聲波產(chǎn)生程序是用匯編語言編寫的進退聲波產(chǎn)生程序。產(chǎn)生的超聲波個數(shù)為
UCSBFS SEGMENT
CODE
RSEG UCSBFS
PUBLIC
CSBFS
CSBFS:
mov R6,#8h
;超聲波發(fā)射的完整波形個數(shù):共計四個
here:
cpl
p0.0
;輸出40kHz方波
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
djnz
R6,here
RET
END
4.3
超聲波測距程序流程圖

4.4
超聲波測距程子序流程圖

5、調(diào)試及性能分析
5.1調(diào)試步驟
我們的步驟是先焊接各個模塊,焊接完每個模塊以后,再進行模塊的單獨測試,以確保在整個系統(tǒng)焊接完能正常的工作,原件安裝完畢后,將寫好程序的AT89S51機裝到測距板上,通電后將測距板的超聲波頭對著墻面往復(fù)移動,看數(shù)碼管的顯示結(jié)果會不會變化,在測量范圍內(nèi)能否正常顯示。如果一直顯示“- - -”,則需將下限值增大。本測距板1s測量2-3次,超聲波發(fā)送功率較大時,測量距離遠,則相應(yīng)的下限值(盲區(qū))應(yīng)設(shè)置為高值。試驗板中的聲速沒有進行溫度補償,聲速值為340m/s,該值為15℃時的超聲波值。
5.2
性能分析
從實物測試的總體來說本測距板基本上達到了要求,理想上超聲波測距能達到500到700厘左右,而我們所能實現(xiàn)的最大距離只有699厘,測量結(jié)果受環(huán)境溫度影響。分析原因如下:
1.
超聲波發(fā)射部份由電阻R2、三極管BG1、超聲波脈沖變壓器B及超聲波發(fā)送頭T40構(gòu)成,以提高超聲波的發(fā)射功率,從面提高測量距離。這種方式,加大的超聲波了送頭的余振時間,造成超聲波測距盲區(qū)值較大(本系統(tǒng)盲區(qū)值為40厘米)。
2.本測距板沒有設(shè)計溫度補償對測量結(jié)果進行修正。但在硬件的PCB上預(yù)留的位置。
參考文獻
[1]趙建領(lǐng)
薛園園 51單片機開發(fā)與應(yīng)用技術(shù)詳解北京:電子工業(yè)出版社,2009
[2]
沈紅衛(wèi).
基于單片機智能系統(tǒng)設(shè)計與實現(xiàn).
北京:電子工業(yè)出版社,2005
[3]
楊國田
白
焰
董
玲 51單片機實用C語言程序設(shè)計
中國電力出版社 2009
[4]
李群芳,黃建.
單片機微型計算機與接口技術(shù).
北京:電子工業(yè)出版社,2001
[5]
樓然苗、李光飛.
51系列單片機設(shè)計實例.
北京:北京航空航天大學(xué)出版社,2003
[6]
王守中
51單片機開發(fā)入門與典型實例.
北京:人民郵電出版社,2009
附錄一:基于AT89S51單片機超聲波測距系統(tǒng)電原理圖

附錄二基于AT89S51單片機超聲波測距系統(tǒng)PCB圖

附錄三基于AT89S51單片機超聲波測距系統(tǒng)焊接組裝圖

附錄四
元件清單
|
編號
|
型號、規(guī)格
|
描述
|
數(shù)量
|
編號
|
型號、規(guī)格
|
描述
|
數(shù)量
|
|
R1
|
10k
|
1/4W電阻器
|
1
|
C1
|
220uF
|
電解電容器
|
1
|
|
R2
|
150k
|
1/4W電阻器
|
1
|
C2
|
104
|
瓷片電容器
|
1
|
|
R3
|
4.7k
|
1/4W電阻器
|
1
|
C3
|
30pF
|
電解電容器
|
1
|
|
R4
|
150k
|
1/4W電阻器
|
1
|
C4
|
30pF
|
瓷片電容器
|
1
|
|
R5
|
4.7k
|
1/4W電阻器
|
1
|
C5
|
10 uF
|
瓷片電容器
|
1
|
|
R6
|
4.7k
|
1/4W電阻器
|
1
|
C6
|
103
|
瓷片電容器
|
1
|
|
R7
|
4.7k
|
1/4W電阻器
|
1
|
C7
|
103
|
瓷片電容器
|
1
|
|
R8
|
4.7k
|
1/4W電阻器
|
1
|
IC1
|
AT89S51
|
單片機
|
1
|
|
R9
|
4.7k
|
1/4W電阻器
|
1
|
Y1
|
12MHz
|
晶振
|
1
|
|
R10
|
4.7k
|
1/4W電阻器
|
1
|
T
|
T40-16T
|
傳聲波傳感器
|
1
|
|
BG1
|
9012
|
PNP
|
1
|
R
|
T40-16R
|
傳聲波傳感器
|
1
|
|
BG2
|
9013
|
NPN
|
1
|
D1
|
IN4148
|
開關(guān)二極管
|
1
|
|
BG3
|
9013
|
NPN
|
1
|
D2
|
IN4148
|
開關(guān)二極管
|
1
|
|
BG4
|
9013
|
NPN
|
1
|
J1
|
USB
|
USB接口
|
1
|
|
BG5
|
9012
|
NPN
|
1
|
J2
|
ISP
|
IDC10
|
1
|
|
BG6
|
9012
|
PNP
|
|
BY
|
BEEP
|
5V有源蜂鳴器
|
1
|
|
BG7
|
9012
|
PNP
|
1
|
K1
|
SW-0606
|
輕觸銨鈕
|
1
|
|
BG8
|
909013
|
PNP
|
1
|
K2
|
SW-0606
|
輕觸銨鈕
|
1
|
|
LED
|
HS310561K
|
三位數(shù)碼管
|
1
|
K2
|
SW-0606
|
輕觸銨鈕
|
1
|
|
B
|
7M-7.6
|
高頻變壓器
|
1
|
|
|
|
|
51單片機超聲波DIY
AT89S51簡介:
AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機,片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準8051指令系統(tǒng)及引腳。它集Flash程序存儲器既可在線編程(ISP)也可用傳統(tǒng)方法進行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強大,低價位AT89S51單片機可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。

主要性能參數(shù):
·與MCS-51產(chǎn)品指令系統(tǒng)完全兼容
·4k字節(jié)在系統(tǒng)編程(ISP)Flash閃速存儲器
·1000次擦寫周期
·4.0-5.5V的工作電壓范圍
·全靜態(tài)工作模式:0Hz-33MHz
·三級程序加密鎖
·128×8字節(jié)內(nèi)部RAM
·32個可編程I/O口線
·2個16位定時/計數(shù)器
·6個中斷源
·全雙工串行UART通道
·低功耗空閑和掉電模式
·中斷可從空閑模喚醒系統(tǒng)
·看門狗(WDT)及雙數(shù)據(jù)指針
·掉電標識和快速編程特性
·靈活的在系統(tǒng)編程(ISP字節(jié)或頁寫模式)
功能特性概述:
AT89S51
提供以下標準功能:4k
字節(jié)Flash
閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O
口線,看門狗(WDT),兩個數(shù)據(jù)指針,兩個16
位定時/計數(shù)器,一個5
向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM
中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。
引腳功能說明
·Vcc:電源電壓
·GND:地
·P0口:P0口是一組8位漏極開路型雙向I/0口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“l(fā)”可作為高阻抗輸入端用。
在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在F1ash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。
·P1口:Pl
是一個帶內(nèi)部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。
Flash編程和程序校驗期間,Pl接收低8位地址。
端口引腳
第二功能:
P1.5 MOSI(用于ISP編程)
P1.6 MISO(用于ISP編程)
P1.7 SCK
(用于ISP編程)
·P2
口:P2
是一個帶有內(nèi)部上拉電阻的8
位雙向I/O
口,P2
的輸出緩沖級可驅(qū)動(吸收或輸出電流)4
個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。
在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8
位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@Ri
指令)時,P2
口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個訪問期間不改變。
Flash編程或校驗時,P2亦接收高位地址和其它控制信號。
·P3
口:P3
口是一組帶有內(nèi)部上拉電阻的8
位雙向I/0
口。P3
口輸出緩沖級可驅(qū)動(吸收或輸出電流)4
個TTL邏輯門電路。對P3口寫入“l(fā)”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。
P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表所示:
P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。
AT89S51
中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1
和XTAL2
分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖3-2。
外接石英晶體(或陶瓷諧振器)及電容Cl、C2
接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容Cl、C2
雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,推薦電容使用30pF±10pF,而如使用陶瓷諧振器選擇40pF±10F。
用戶也可以采用外部時鐘。采用外部時鐘的電路如圖5右圖所示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。
由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。圖3-2為晶體接線圖和外接時鐘線路圖。

圖3-2
內(nèi)部振蕩電路
[1]http://blog.sina.com.cn/s/blog_4f8cdc9e0100g3e7.html