用AT89C2051設(shè)計超聲波測距儀_第1頁
用AT89C2051設(shè)計超聲波測距儀_第2頁
用AT89C2051設(shè)計超聲波測距儀_第3頁
用AT89C2051設(shè)計超聲波測距儀_第4頁
用AT89C2051設(shè)計超聲波測距儀_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、用AT89C2051設(shè)計超聲波測距儀摘要:本文介紹了AT89C2051單片機的性能和特點,并在分析了超聲波測距原理的基本系統(tǒng)框圖。該設(shè)計系統(tǒng)經(jīng)校正后,其測量精度可達0.1米。   超聲波測距主要應(yīng)用于倒車?yán)走_、建筑施工工地以及一些工業(yè)現(xiàn)場,例如:液位、井深、管道長度等場合。目前國內(nèi)一般使用專用集成電路設(shè)計超聲波測距儀,但是專用集成電路的成本很高,并且沒有顯示,操作使用很不方便。本文介紹一種以AT89C2051或GSM97C2051單片機為核心的低成本、高精度、微型化數(shù)字顯示超聲波測距儀的硬件電路和軟件設(shè)計方法。實際使用證明該儀器工作穩(wěn)定,性能良好。1 超聲波測距原理

2、0;   超聲波測距是通過不斷檢測超聲波發(fā)射后遇到障礙物所反射的回波,從而測出發(fā)射和接收回波的時間差t,然后求出距離S=Ct/2,式中的C為超聲波波速。    由于超聲波也是一種聲波,其聲速C與溫度有關(guān),表1列出了幾種不同溫度下的聲速。在使用時,如果溫度變化不大,則可認(rèn)為聲速是基本不變的。如果測距精度要求很高,則應(yīng)通過溫度補償?shù)姆椒右孕U?。聲速確定后,只要測得超聲波往返的時間,即可求得距離。這就是超聲波測距儀的機理。其系統(tǒng)框圖如圖1所示。2 AT89C2051的功能特點    AT89C2051是一個2k字節(jié)可編

3、程EPROM的高性能微控制器。它與工業(yè)標(biāo)準(zhǔn)MCS-51的指令和引腳兼容,因而是一種功能強大的微控制器,它對很多嵌入式控制應(yīng)用提供了一個高度靈活有效的解決方案。AT89C2051有以下特點:2k字節(jié)EPROM、128字節(jié)RAM、15根I/O線、2 個16位定時/計數(shù)器、5個向量二級中斷結(jié)構(gòu)、1個全雙向的串行口、并且內(nèi)含精密模擬比較器和片內(nèi)振蕩器,具有4.25V至5.5V的電壓工作范圍和12MHz/24MHz工作頻率,同時還具有加密陣列的二級程序存儲器加鎖、掉電和時鐘電路等。此外,AT89C2051還支持二種軟件可選的電源節(jié)電方式??臻e時,CPU停止,而讓RAM、定時/計數(shù)器、串行口和中斷系統(tǒng)繼續(xù)

4、工作??傻綦姳4鍾AM的內(nèi)容,但可使振蕩器停振以禁止芯片所有的其它功能直到下一次硬件復(fù)位。    AT89C2051有2個16位計時/計數(shù)器寄存器Timer0t Timer1。作為一個定時器,每個機器周期寄存器增加1,這樣寄存器即可計數(shù)機器周期。因為一個機器周期有12個振蕩器周期,所以計數(shù)率是振蕩器頻率的1/12。作為一個計數(shù)器,該寄存器在相應(yīng)的外部輸入腳P3.4/T0和P3.5/T1上出現(xiàn)從1至0的變化時增1。由于需要二個機器周期來辨認(rèn)一次1到0的變化,所以最大的計數(shù)率是振蕩器頻率的1/24,可以對外部的輸入端P3.2/INT0和P3.3/INT1編程,便于測量

5、脈沖寬度的門。表1 聲速與溫度關(guān)系表溫度()-30-20-100102030100聲速(米/稱)313319325323338344349386    充分利用AT89C2051的片內(nèi)資源,即可在很少外圍電路的情況下構(gòu)成功能完善的超聲波測距系統(tǒng)。3 系統(tǒng)硬件電路設(shè)計    超聲波測距儀的硬件電路如圖2所示。    AT89C2051通過外部引腳P1.6輸出脈沖寬度為250s,載波為40kHz的10個脈沖的脈沖群,以推挽形式加到變壓器的初級,經(jīng)升壓變換推動超聲波換能器發(fā)射出去。在發(fā)射的同時,P1.7輸出一個

6、高電平啟動,給電容C4充電。發(fā)射結(jié)束時高電平翻轉(zhuǎn)為低電平,C4開始對R2、R3組成的分壓器放電并輸出到比較器的負(fù)端。超聲波接收換能器將接收到的障礙物反射的超聲波送到放大器進行放大,這是一個高增益、低噪聲放大器,在對放大后的信號進行檢波后將檢測回波送到比較器的正輸入端。發(fā)射時P1.7輸出的電平可以抑制比較器的翻轉(zhuǎn),這樣就可以抑制發(fā)射器發(fā)射的超聲波直接輻射到接收器而導(dǎo)致錯誤檢測。    圖3是超聲波測距原理的波形圖,從圖中可以看到,測出回波和發(fā)射脈沖之間的時間間隔,利用S=Ct/2就可以算出距離,再在LCD上顯示出來。當(dāng)然還可以設(shè)置若干個鍵,以用來控制電路的工作狀態(tài)。

7、限制系統(tǒng)的最大可測距離存在四個因素:超聲波的幅度,反射而的質(zhì)地,反射而和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接接收能力將決定最小的可測距離。4 系統(tǒng)軟件設(shè)計    AT89C2051單片機和其開發(fā)應(yīng)用系統(tǒng)具有語言簡潔、可移植性好、表達能力強、表達方式靈活、可進行結(jié)構(gòu)化設(shè)計、可以直接控制計算機硬件、生成代碼質(zhì)量高、使用方便等諸多優(yōu)點。超聲波測距儀就是用AT89C51單片機開發(fā)設(shè)計的。它采用模塊化設(shè)計,由主程序、發(fā)射子程序、查蟓接收子程序、定時子程序、顯示子程序等模塊組成。    圖4和圖5分別為主程序和測量

8、子程序的框圖。該系統(tǒng)的主程序處于鍵控循環(huán)工作方式,當(dāng)按下測量鍵時,主程序開始調(diào)用發(fā)射子程序、查詢接收子程序、定時子程序,并把測量結(jié)果用顯示子程序在液晶屏上顯示出來。    必須指出的是,由于液晶要使用同一P3口,所以必須全部使用位操作,否則將導(dǎo)致LCD不能正常顯示。另外,在系統(tǒng)還可以加入溫度傳感器來監(jiān)測環(huán)境溫度,把表1所列的數(shù)據(jù)做到程序中可進行溫度被償。為了增強系統(tǒng)的可靠性,應(yīng)在軟硬件上采用一些特殊措施。限于篇幅,下面僅給出部分程序,感興趣者可與作者聯(lián)系。    # pragma DB OE CD OT(5,SPEED) ROM(LA

9、RGE)IV    /*連接所需要的庫*/    #include<reg52.h>    #include<absacc.h>    #include<stdio.h>    /*定義數(shù)據(jù)類型*/    typedef unsingned char byte;    typedef unsigned int word   

10、; #define uchar unsigned char    #define unint unsigned int    #define ulong unsigned long    /*定義系統(tǒng)常數(shù)*/    #define TRUE 1    #define FALSE 0    #define C=340 /*聲速*/    /*定義功能位*/   

11、; sbit bflag=ACC7;    sbit VOLCK=P15;    sbit MING=P35;    sbit QUIET=P13;    sbit BACK=P12;    /*定義顯示緩沖區(qū)*/    uchar idata ON16=,L,E,N,G,T,H,=,8,.,88,m,;    /*主程序用延時子程序*/    woid m

12、ain-delay(void)        register i;    TRO=1;    for(i=0;i<15;i+)        TH0=0;    TL0=0;    Dowhile(!TF0);    TF0=0;        TR0=0;&#

13、160;       */通用延時子程序*/    void delay(void)        unint i;    for(i=0;i<200;i+);        /*鍵盤延時子程序*/    void key-delay(void)        unint

14、i;    for(i=0;i<200;i+);        /*初始化程序*/    void start_main()        tegister i;    uchar a16=,L,E,N,G,T,H,=,8,.,8,8,m,;    for(i=0;<16;i+)    ONi=ai; &#

15、160;  nitlcd();/*初始化液晶*/    display(ON);/*更新顯示*/        /*主程序*/    void main()        register s,keycode;    long idata t;    start-main();/*初始化*/    main-delay();/*延時*/;    if(keycoed= =true)        keycode=key-scan-wait();    /*判斷是否有測量鍵按下*/    t=measure();*/測量*/    S=0.5*t*C;*/換算*/    Decode-bcd(s.0x09); 

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論