日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]超聲波測(cè)距主要應(yīng)用于倒車?yán)走_(dá)、建筑施工工地以及一些工業(yè)現(xiàn)場(chǎng),例如:液位、井深、管道長(zhǎng)度等場(chǎng)合。目前國(guó)內(nèi)一般使用專用集成電路設(shè)計(jì)超聲波測(cè)距儀,但是專用集成電路的成本很高,并且沒(méi)有顯示,操作使用很不方便。

超聲波測(cè)距主要應(yīng)用于倒車?yán)走_(dá)、建筑施工工地以及一些工業(yè)現(xiàn)場(chǎng),例如:液位、井深、管道長(zhǎng)度等場(chǎng)合。目前國(guó)內(nèi)一般使用專用集成電路設(shè)計(jì)超聲波測(cè)距儀,但是專用集成電路的成本很高,并且沒(méi)有顯示,操作使用很不方便。本文介紹一種以AT89C2051或GSM97C2051單片機(jī)為核心的低成本、高精度、微型化數(shù)字顯示超聲波測(cè)距儀的硬件電路和軟件設(shè)計(jì)方法。實(shí)際使用證明該儀器工作穩(wěn)定,性能良好。

1 超聲波測(cè)距原理

超聲波測(cè)距是通過(guò)不斷檢測(cè)超聲波發(fā)射后遇到障礙物所反射的回波,從而測(cè)出發(fā)射和接收回波的時(shí)間差t,然后求出距離S=Ct/2,式中的C為超聲波波速。

由于超聲波也是一種聲波,其聲速C與溫度有關(guān),表1列出了幾種不同溫度下的聲速。在使用時(shí),如果溫度變化不大,則可認(rèn)為聲速是基本不變的。如果測(cè)距精度要求很高,則應(yīng)通過(guò)溫度補(bǔ)償?shù)姆椒右孕U?。聲速確定后,只要測(cè)得超聲波往返的時(shí)間,即可求得距離。這就是超聲波測(cè)距儀的機(jī)理。其系統(tǒng)框圖如圖1所示。

2 AT89C2051的功能特點(diǎn)

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

AT89C2051有2個(gè)16位計(jì)時(shí)/計(jì)數(shù)器寄存器Timer0t Timer1。作為一個(gè)定時(shí)器,每個(gè)機(jī)器周期寄存器增加1,這樣寄存器即可計(jì)數(shù)機(jī)器周期。因?yàn)橐粋€(gè)機(jī)器周期有12個(gè)振蕩器周期,所以計(jì)數(shù)率是振蕩器頻率的 1/12。作為一個(gè)計(jì)數(shù)器,該寄存器在相應(yīng)的外部輸入腳P3.4/T0和P3.5/T1上出現(xiàn)從1至0的變化時(shí)增1。由于需要二個(gè)機(jī)器周期來(lái)辨認(rèn)一次1到 0的變化,所以最大的計(jì)數(shù)率是振蕩器頻率的1/24,可以對(duì)外部的輸入端P3.2/INT0和P3.3/INT1編程,便于測(cè)量脈沖寬度的門。

充分利用AT89C2051的片內(nèi)資源,即可在很少外圍電路的情況下構(gòu)成功能完善的超聲波測(cè)距系統(tǒng)。

3 系統(tǒng)硬件電路設(shè)計(jì)

超聲波測(cè)距儀的硬件電路如圖2所示。

AT89C2051通過(guò)外部引腳P1.6輸出脈沖寬度為250μs,載波為40kHz的10個(gè)脈沖的脈沖群,以推挽形式加到變壓器的初級(jí),經(jīng)升壓變換推動(dòng)超聲波換能器發(fā)射出去。在發(fā)射的同時(shí),P1.7輸出一個(gè)高電平啟動(dòng),給電容C4充電。發(fā)射結(jié)束時(shí)高電平翻轉(zhuǎn)為低電平,C4開(kāi)始對(duì)R2、R3組成的分壓器放電并輸出到比較器的負(fù)端。超聲波接收換能器將接收到的障礙物反射的超聲波送到放大器進(jìn)行放大,這是一個(gè)高增益、低噪聲放大器,在對(duì)放大后的信號(hào)進(jìn)行檢波后將檢測(cè)回波送到比較器的正輸入端。發(fā)射時(shí)P1.7輸出的電平可以抑制比較器的翻轉(zhuǎn),這樣就可以抑制發(fā)射器發(fā)射的超聲波直接輻射到接收器而導(dǎo)致錯(cuò)誤檢測(cè)。

圖3是超聲波測(cè)距原理的波形圖,從圖中可以看到,測(cè)出回波和發(fā)射脈沖之間的時(shí)間間隔,利用S=Ct/2就可以算出距離,再在LCD上顯示出來(lái)。當(dāng)然還可以設(shè)置若干個(gè)鍵,以用來(lái)控制電路的工作狀態(tài)。限制系統(tǒng)的最大可測(cè)距離存在四個(gè)因素:超聲波的幅度,反射而的質(zhì)地,反射而和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對(duì)聲波脈沖的直接接收能力將決定最小的可測(cè)距離。

4 系統(tǒng)軟件設(shè)計(jì)

AT89C2051單片機(jī)和其開(kāi)發(fā)應(yīng)用系統(tǒng)具有語(yǔ)言簡(jiǎn)潔、可移植性好、表達(dá)能力強(qiáng)、表達(dá)方式靈活、可進(jìn)行結(jié)構(gòu)化設(shè)計(jì)、可以直接控制計(jì)算機(jī)硬件、生成代碼質(zhì)量高、使用方便等諸多優(yōu)點(diǎn)。超聲波測(cè)距儀就是用AT89C51單片機(jī)開(kāi)發(fā)設(shè)計(jì)的。它采用模塊化設(shè)計(jì),由主程序、發(fā)射子程序、查蟓接收子程序、定時(shí)子程序、顯示子程序等模塊組成。

圖4和圖5分別為主程序和測(cè)量子程序的框圖。該系統(tǒng)的主程序處于鍵控循環(huán)工作方式,當(dāng)按下測(cè)量鍵時(shí),主程序開(kāi)始調(diào)用發(fā)射子程序、查詢接收子程序、定時(shí)子程序,并把測(cè)量結(jié)果用顯示子程序在液晶屏上顯示出來(lái)。

必須指出的是,由于液晶要使用同一P3口,所以必須全部使用位操作,否則將導(dǎo)致LCD不能正常顯示。另外,在系統(tǒng)還可以加入溫度傳感器來(lái)監(jiān)測(cè)環(huán)境溫度,把表1所列的數(shù)據(jù)做到程序中可進(jìn)行溫度被償。為了增強(qiáng)系統(tǒng)的可靠性,應(yīng)在軟硬件上采用一些特殊措施。限于篇幅,下面僅給出部分程序,感興趣者可與作者聯(lián)系。
    # pragma DB OE CD OT(5,SPEED) ROM(LARGE)IV
    /*連接所需要的庫(kù)*/
    #include<reg52.h>
    #include<absacc.h>
    #include<stdio.h>
    /*定義數(shù)據(jù)類型*/
    typedef unsingned char byte;
    typedef unsigned int word
    #define uchar unsigned char
    #define unint unsigned int
    #define ulong unsigned long
    /*定義系統(tǒng)常數(shù)*/
    #define TRUE 1
    #define FALSE 0
    #define C=340 /*聲速*/
    /*定義功能位*/
    sbit bflag=ACC7;
    sbit VOLCK=P1^5;
    sbit MING=P3^5;
    sbit QUIET=P1^3;
    sbit BACK=P1^2;
    /*定義顯示緩沖區(qū)*/
    uchar idata ON[16]={’,’L’,’E’,’N’,’G’,’T’,’H’,’=’,’8’,’.’,’8’8’,’m’,’’,’’,’’};


    /*主程序用延時(shí)子程序*/
    woid main-delay(void)
    {
    register i;
    TRO=1;
for(i=0;i<15;i++)
    {
    TH0=0;
    TL0=0;
    Do{}while(!TF0);
    TF0=0;
    }
    TR0=0;
    }
    */通用延時(shí)子程序*/
    void delay(void)
    {
    unint i;
    for(i=0;i<200;i++){;}
    }
    /*鍵盤延時(shí)子程序*/
    void key-delay(void)
    {
    unint i;
    for(i=0;i<200;i++){;}
    }
    /*初始化程序*/
    void start_main()
    {
    tegister i;
    uchar a[16]={’’,’L’,’E’,’N’,’G’,’T’,’H’,’=,’8’,’.’,’8’,’8’,’m’,’’,’’,’’};
    for(i=0;<16;i++)
    {ON[i]=a[i];}
    nitlcd();/*初始化液晶*/
    display(ON);/*更新顯示*/
    }
    /*主程序*/
    void main()
    {
    register s,keycode;
    long idata t;
    start-main();/*初始化*/
    main-delay();/*延時(shí)*/;
    if(keycoed= =true)
    {
    keycode=key-scan-wait();
    /*判斷是否有測(cè)量鍵按下*/
    t=measure();*/測(cè)量*/
    S=0.5*t*C;*/換算*/
    Decode-bcd(s.0x09);
    /*把測(cè)量結(jié)果置換入顯示緩沖區(qū)*/
    init-lcd();/*初始化液晶*/
    display(ON);/*更新顯示*/
    }
    }

5 結(jié)束語(yǔ)

雖然用一個(gè)單獨(dú)計(jì)時(shí)器電路也可以測(cè)量超聲波的傳輸時(shí)間,但利用AT89C2051單片機(jī)可以簡(jiǎn)化設(shè)計(jì),便于操作和直觀讀數(shù)。該系統(tǒng)經(jīng)實(shí)際測(cè)試證明,可以滿足大多數(shù)場(chǎng)合的測(cè)距要求。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉