1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2024|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

超聲波測距含程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:373359 發(fā)表于 2018-7-17 22:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
《單片機(jī)原理及應(yīng)用》

單片機(jī)課程設(shè)計(jì)報(bào)告

超聲波測距報(bào)告





















1 課程設(shè)計(jì)概述……………………………………………………………2
1.1  課程設(shè)計(jì)選題及原理………………………………………………2
1.2  課程設(shè)計(jì)選題調(diào)研…………………………………………………2
1.2.1 選題目的與意義………………………………………………2
1.2.2 國內(nèi)外研究綜述………………………………………………3
2   方案設(shè)計(jì)……………………………………………………………………………4
        2.1  主要任務(wù)…………………………………………………………………… 4
        2.2  設(shè)計(jì)框圖…………………………………………………………………… 4
2.3  設(shè)計(jì)所需元器件及簡介………………………………………………… 4
2.4  設(shè)計(jì)程序流程簡圖…………………………………………………………5
2.5  編程語言的選擇
3   電路及部分代碼設(shè)計(jì)…………………………………………………………… 6
3.1  Stc12c5a60s2最小系統(tǒng)……………………………………………………6
3.2  超聲波測距模塊……………………………………………………7
3.3  數(shù)碼管顯示模塊…………………………………………………………… 8
3.4  蜂鳴器報(bào)警模塊…………………………………………………………… 9
3.5  總仿真結(jié)果及實(shí)物測量結(jié)果……………………………………………10
4   課程設(shè)計(jì)心得體會(huì)和總結(jié)………………………………………………………11
4.1  心得體會(huì)…………………………………………………………………… 11
4.2   總結(jié)……………………………………………………………… 11
1  課程設(shè)計(jì)仿真圖…………………………………………………………
2  課程設(shè)計(jì)實(shí)物圖…………………………………………………………
3  課程設(shè)計(jì)程序設(shè)計(jì)代碼……………………………………………………………
















第1 章  課程設(shè)計(jì)概述

1.1  課程設(shè)計(jì)選題及原理

課程設(shè)計(jì)題目

超聲波測距儀

設(shè)計(jì)原理

通過超聲波發(fā)射裝置發(fā)出超聲波,根據(jù)接收器接到超聲波時(shí)的時(shí)間差就可以知道距離了。這與雷達(dá)測距原理相似。 超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí)。
最常用的超聲測距的方法是回聲探測法,超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)計(jì)數(shù)器開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物面阻擋就立即反射回來,超聲波接收器收到反射回的超聲波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為340m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物面的距離s,即:s=340t/2。   
由于超聲波也是一種聲波,其聲速V與溫度有關(guān)。在使用時(shí),如果傳播介質(zhì)溫度變化不大,則可近似認(rèn)為超聲波速度在傳播的過程中是基本不變的。如果對測距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒▽y量結(jié)果加以數(shù)值校正。聲速確定后,
只要測得超聲波往返的時(shí)間,即可求得距離。這就是超聲波測距儀的基本原理。

1.2  課程設(shè)計(jì)選題調(diào)研

1.2.1 選題目的與意義

超聲波是指頻率在20KHz以上的聲波,它屬于機(jī)械波的范疇,可用于非接觸測量,具有不受光、電磁波以及粉塵等外界因素的干擾的優(yōu)點(diǎn),利用計(jì)算超聲波在發(fā)送端和接收端之間的傳輸時(shí)間和聲速來測量距離,對被測目標(biāo)無損害。而且超聲波傳播速度在很大范圍內(nèi)與頻率無關(guān)。超聲波的這些獨(dú)特優(yōu)點(diǎn)越來越受到人們的重視。
目前對于超聲波精確測距的需求也越來越大,比如油庫和水箱液面的精確測量和控制,汽車輔助泊位系統(tǒng)的應(yīng)用,物體內(nèi)氣孔大小的檢測和機(jī)械內(nèi)部損傷的檢測等。在機(jī)械制造,電子冶金,航海,宇航,石油化工,等工業(yè)領(lǐng)域也有廣泛地應(yīng)用。此外,在材料科學(xué),醫(yī)學(xué),生物科學(xué)等領(lǐng)域中也占具重要地位。

1.2.2 國內(nèi)外研究綜述

歷史上使用超聲波來測量距離是從第二次世界大戰(zhàn)時(shí)海軍的聲納技術(shù)的發(fā)展開始。聲納是一種利用聲波在水下測定目標(biāo)距離和運(yùn)動(dòng)速度的儀器。經(jīng)過幾個(gè)世紀(jì),科學(xué)家們對此反復(fù)研究,最終發(fā)現(xiàn)了超聲波的原理。超聲波測距應(yīng)用于各種工業(yè)領(lǐng)域,如工業(yè)自動(dòng)控制,建筑工程測量和機(jī)器人視覺識別等方面。
超聲波作為一種檢測技術(shù),采用的是非接觸式測量,由于它具有不受外界因素影響,對環(huán)境有一定的適應(yīng)能力,且操作簡單,測量精度高等優(yōu)點(diǎn)而被廣泛應(yīng)用。這些特點(diǎn)可使測量儀器不受被測介質(zhì)的影響,大大解決了傳統(tǒng)測量儀器存在的問題,比如,在粉塵多的情況下對人引起的身體接觸傷害,腐蝕性質(zhì)的被測物對測量儀器腐蝕,觸電接觸不良造成的誤測等。此外該技術(shù)對被測元件無磨損,使測量儀器牢固耐用,使用壽命加長,而且還降低了能量損耗,節(jié)省人力和勞動(dòng)的強(qiáng)度。因此,利用超聲波檢測既迅速、方便、計(jì)算簡單,又易于實(shí)時(shí)控制,在測量精度方面能達(dá)到工業(yè)實(shí)用的要求。
然而超聲波測距在實(shí)際應(yīng)用中也有很多局限性。由于超聲波在傳播過程中,聲壓會(huì)隨距離的增大而呈指數(shù)規(guī)律衰減,遠(yuǎn)目標(biāo)的回波信號幅度小,信噪比低,用固定閾值的比較器檢測回波,可能導(dǎo)致越過門檻的時(shí)間前后移動(dòng),從而影響計(jì)時(shí)的準(zhǔn)確性,這必然會(huì)影響到測距的準(zhǔn)確度。此外,構(gòu)成超聲波傳感器的壓電陶瓷片在壓電的雙向轉(zhuǎn)換過程中,存在慣性,滯后等現(xiàn)象,以及超聲波脈沖在空氣中傳播本身及多重的反射路徑,均導(dǎo)致回波信號被展寬,也會(huì)使測量產(chǎn)生較大的誤差,影響了測距的分辨率。其它如溫度,風(fēng)速等也會(huì)對測量造成一定的影響。工程師針對這些誤差提出的可變閾值的超聲波測距方法,從回波信號處理的角度出發(fā),分析了超聲波回波曲線的特性,利用回波包絡(luò)的峰值檢測技術(shù)以確定回波到達(dá)的時(shí)刻,另外,利用溫度補(bǔ)償電路可以降低溫度對聲速的影響,這些改進(jìn)都大大的提高了超聲波測距的準(zhǔn)確性。
計(jì)量學(xué)在制造業(yè)中越來越重要。直接在機(jī)器上測量尤其能推動(dòng)制造業(yè)的發(fā)展。目前為止大部分還是采用視覺的或觸覺的測量方法。但是墻的厚度就不能用這些來測量,因此德國人把超聲系統(tǒng)結(jié)合到機(jī)器設(shè)計(jì)出了測距方法。隨著超聲波的發(fā)展,早在2000年時(shí)英國人就設(shè)計(jì)出了可觀察,識別并測距的超聲波集成系統(tǒng)。

2 方案設(shè)計(jì)

2.1  主要任務(wù)

設(shè)計(jì)制作一個(gè)超聲波測距儀,通過單片機(jī)控制超聲波測距模塊,計(jì)算并顯示所測距離以及實(shí)現(xiàn)報(bào)警功能。
整體電路的控制核心為單片機(jī)STC12C5A60S2。超聲波發(fā)射和接收電路中都對相應(yīng)信號進(jìn)行整形及放大,以保證測量結(jié)果盡可能精確。超聲波探頭接OUT口實(shí)現(xiàn)超聲波的發(fā)射和接收。另外超聲波發(fā)射和接受模塊hc-sr04還有具有溫度補(bǔ)償?shù)淖饔茫箿y量精度能夠達(dá)到要求。整體結(jié)構(gòu)圖包括超聲波發(fā)射接收電路,單片機(jī)電路,顯示電路與蜂鳴器報(bào)警電路等幾部分模塊組成。

2.2  設(shè)計(jì)框圖

本設(shè)計(jì)主要的四個(gè)模塊:超聲波發(fā)射和接收模塊,蜂鳴器報(bào)警模塊,單片機(jī)
STC12C5A60S2,四位數(shù)碼管顯示模塊。以下是設(shè)計(jì)框圖
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif
                         圖1 設(shè)計(jì)框圖

2.3  設(shè)計(jì)所需元器件及簡介

STC12C5A60S2

增強(qiáng)型 8051 CPU,1T,單時(shí)鐘/ 機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051。工作電壓5.5V-3.3V。STC12C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對電機(jī)控制,強(qiáng)干擾場合。
通用I/O口(36/40/44個(gè)),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口) 可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏每個(gè)I/O口驅(qū)動(dòng)能力均可達(dá)到20mA,但整個(gè)芯片最大不要超過55mA。
本設(shè)計(jì)中用到的單片機(jī)管腳有P1,P2.0-P2.3,P3.5-P3.7。

超聲波測距模塊HC-SR04

超聲波測距模塊HC-SR04 可提供2-400cm的非接觸式距離感測功能,測距精度可高達(dá)3mm。模塊包括超聲波發(fā)器、接收器與控制電路本模塊性能穩(wěn)定,測度距離精確。能和國外的SRF05,SRF02等超聲波測距模塊相媲美。模塊高精度,盲區(qū)(2cm)超近,穩(wěn)定的測距是此產(chǎn)品成功走向市場的有力根據(jù)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.gif
     圖2 HC-SR04正面圖

主要技術(shù)參數(shù):1:使用電壓:DC5V         2:靜態(tài)電流:小于2mA
                 3:電平輸出:高5V         4:電平輸出:底0V
                  5:感應(yīng)角度:不大于15度   6:高精度 可達(dá)0.2cm
7:探測距離:2cm-450cm   
接線方式:VCC,trig(控制端),echo(接收端),GND
模塊工作原理:(1)采用IO觸發(fā)測距,給至少10us的高電平信號;
(2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測是否有信號返回;
(3)有信號返回,通過IO輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間.測試距離=(高電平時(shí)間*聲速(340M/S))/2;
   超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射超聲波的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物反射后立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度約為340m/s,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出超聲波發(fā)射點(diǎn)距障礙物的距離(s),即為:s=340t/2,這就是所謂的時(shí)間差測距法。
存在4個(gè)因素限制了該系統(tǒng)的最大可測距離:超聲波的幅度、反射的質(zhì)地、反射回波和入射聲波之間的夾角。

四位數(shù)碼管顯示模塊

數(shù)碼管(LED SegmentDisplays)是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個(gè)小數(shù)點(diǎn),還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等....,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類。本設(shè)計(jì)用到的是共陽極,靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)數(shù)碼管。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。
共陽TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,088H

本設(shè)計(jì)還需要的元件有蜂鳴器,電阻,電容,12M晶振,按鍵,三極管,面包板等

2.4  設(shè)計(jì)程序流程簡圖
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif
                 圖3 設(shè)計(jì)程序流程簡圖

設(shè)計(jì)流程圖說明:本設(shè)計(jì)P3.5連接超聲波發(fā)射端,P3.7口接超聲波接收端。首先單片機(jī)開始工作,系統(tǒng)初始化后單片機(jī)向P3.5口發(fā)送40KHZ的方波,使超聲波發(fā)射和接受模塊開始工作,當(dāng)P3.7口接收到高電平時(shí)計(jì)時(shí)器開始計(jì)時(shí),選用的是計(jì)時(shí)器工作方式1,16位。當(dāng)P3.7口接收到低電平的時(shí)候計(jì)時(shí)器關(guān)閉。此時(shí)時(shí)間存在TH0,TL0中,這是通過計(jì)算子程序把時(shí)間換算成距離四位,從高到底分別存在78H,77H,76H,75H。此時(shí)調(diào)用顯示子程序把距離顯示在四位數(shù)碼管中。再調(diào)用報(bào)警子程序,根據(jù)距離的判斷,使蜂鳴器發(fā)出不同頻率的聲音。延時(shí)很短的時(shí)間,繼續(xù)下次的測量。

2.5   編程語言的選擇
在編程語言的選擇上,我們主要考慮使用我所學(xué)過的匯編語言和C語言。
匯編語言是一種面向機(jī)器的低級的程序設(shè)計(jì)語言。它直接利用機(jī)器提供的指令系統(tǒng)編寫程序,該類程序的可執(zhí)行指令是與機(jī)器語言程序的指令一一對應(yīng)的。匯編語言由于是面向機(jī)器的程序設(shè)計(jì)語言,與具體的計(jì)算機(jī)硬件有著密切的關(guān)系,因此,可移植性差。但由于匯編指令與機(jī)器語言指令一一對應(yīng),即一條匯編語言的可執(zhí)行指令對應(yīng)著一條機(jī)器語言指令,反之亦然。因此,匯編語言可直接利用機(jī)器硬件系統(tǒng)的許多特性,如寄存器、標(biāo)志位以及一些特殊指令等,具有執(zhí)行速度快、占用內(nèi)存少等優(yōu)點(diǎn)。
在本設(shè)計(jì)中,設(shè)計(jì)程序過程相對不復(fù)雜,用匯編語言完全可以實(shí)現(xiàn),所以本設(shè)計(jì)選擇了使用匯編語言進(jìn)行編程。
3 電路及部分代碼設(shè)計(jì)

3.1   Stc12c5a60s2最小系統(tǒng)
在電源旁接了開關(guān)控制電源。復(fù)位電路旁還接了按鍵,方便復(fù)位操作。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
         圖4 單片機(jī)工作最小系統(tǒng)

3.2   超聲波測距模塊
設(shè)計(jì)思路:單片機(jī)P3.5發(fā)送40KHZ的方波,超聲波接收到后開始測距,返回一段高電平到P3.7就是超聲波的測量的時(shí)間,所以程序設(shè)計(jì)時(shí)P3.7接收到高電平時(shí)開啟定時(shí)器,P3.7口接收到低電平時(shí)關(guān)閉定時(shí)器,這樣定時(shí)器TH0,TL0里存儲的就是測量的時(shí)間,根據(jù)公式s=340t/2就可以計(jì)算出距離。
流程圖
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image007.gif
              圖5超聲波發(fā)射和接收流程圖
電路部分
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg
圖6 超聲波發(fā)射和接收電路
根據(jù)超聲波測距模塊原理代碼設(shè)計(jì)部分如下
P3.5發(fā)射,P3.7接受
MOV TMOD,#01H         ;置定時(shí)器T0工作方式樣3,對內(nèi)部機(jī)器周期計(jì)數(shù)
     CJZCX: MOV TL0,#00H   ;裝入定時(shí)器初值
            MOV TH0,#00H
      puzel:MOV 14H,#08H    ;超聲波發(fā)射持續(xù)200us
       Here:CPL P3.5        ;輸出40kHz方波
            NOP             ;
            NOP             ;
            NOP             ;
            DJNZ 14H,Here   ;
        QBA:JB P3.7,QBC     ;等待1跳到QBC
            DJNZ R1,QBA
            DJNZ R0,QBA
        QBC:SETB TR0        ;測到1開始計(jì)時(shí)
            SETB P3.2
        QBB:JNB P3.7,QBD    ;等待0跳到QBD
            JMP QBB
        QBD:CLR P2.3        ;測到0關(guān)閉計(jì)時(shí)
            CLR TR0
3.3  數(shù)碼管顯示模塊

設(shè)計(jì)思路:此時(shí)通過計(jì)算后四位數(shù)據(jù)分別從高到底存在78H,77H,76H,75H里,顯示數(shù)據(jù)時(shí)從高到低,P1口接a-h,P2.0-P2.3口接共陽極。首先賦值P2口0FEH,讓78H中的數(shù)據(jù)給高位,在左移,把77H數(shù)據(jù)給次高位,這樣循環(huán)知道四位數(shù)據(jù)全部顯示,此時(shí)跳到主程序。
電路部分如圖6
代碼部分(說明顯示四位左端為高位,代碼中78H,77H,76H,75H分別存了四位,P1口接a-h,P2.0-P2.3接共陽極)
DISPLAY:    MOV R1,#78H      ;立即數(shù)78H送寄存器中
            MOV R5,#0FEH     ;立即數(shù)FEH送寄存器R5中
    PLAY:  MOV A,R5         ;寄存器R5中的數(shù)值送累加器A中
            MOV P2,A         ;累加器A中的數(shù)值送P2口
            MOV A,@R1        ;以寄存器R1中的數(shù)為地址單元的數(shù)值送累加器中
            MOV DPTR,#TAB    ;16位地址送地址寄存器中
            MOVC A,@A+DPTR   ;以中的地址為基地變址尋址單元中的數(shù)送累加器
            MOV P1,A         ;累加器A中的數(shù)值送P1口
            MOV R6,#14H      ;立即數(shù)據(jù)14送寄存器R6中
        DL1:MOV R7,#19H      ;立即數(shù)據(jù)19送寄存器R7中
        DL2:DJNZ R7,DL2      ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
            DJNZ R6,DL1      ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
            DEC R1           ;寄存器R1中的數(shù)值減1
            MOV A,R5         ;寄存器R5中的數(shù)值送累加器A中
            JNB ACC.3,ENDOUT ;地址位為0則轉(zhuǎn)到ENDOUT
            RL A             ;累加器循環(huán)右移
            MOV R5,A         ;累加器A中的數(shù)值送寄存器R5中
            AJMP PLAY        ;絕對短轉(zhuǎn)移
    ENDOUT: SETB P3.5        ;置P3.5口
            RET              ;返回
       TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,088H

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg
          圖 7 數(shù)碼管顯示電路
3.4  蜂鳴器報(bào)警模塊

設(shè)計(jì)思路:如圖P3.6口接的是蜂鳴器電路,實(shí)現(xiàn)蜂鳴器不同頻率報(bào)警,首先要距離分段,此程序判斷的是最高位,所以是78H里的值,控制蜂鳴器報(bào)警頻率不同是通過改變P3.6口0和1翻轉(zhuǎn)的狀態(tài)時(shí)間不同來實(shí)現(xiàn)的。
電路部分
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image013.jpg
         圖8 蜂鳴器報(bào)警電路
蜂鳴器報(bào)警分5種頻率
分段為<1m,1-2m,2-3m,3-4m,>4m
距離不同設(shè)定的蜂鳴器報(bào)警的頻率不同

3.5   總仿真結(jié)果及其實(shí)物測量結(jié)果

由于沒有超聲波發(fā)射和接收模塊,用按鍵來給P3.7口信號。電路的仿真結(jié)果是單片機(jī)工作后,用按鍵給信號,四位數(shù)碼管可以顯示計(jì)算值出來,蜂鳴器可以正常工作。
本次設(shè)計(jì)的實(shí)物能實(shí)現(xiàn)的功能功能有:
(1)超聲波的發(fā)射和接受控制
(2)對回波信號的檢測
(3)測距時(shí)間到距離的換算
(4)距離不斷測量和不斷顯示
(5)對距離進(jìn)行判斷,并且蜂鳴器報(bào)警

4 課程設(shè)計(jì)心得體會(huì)和總結(jié)
4.1   心得體會(huì)
心得:這兩個(gè)星期是一個(gè)不斷發(fā)現(xiàn)問題和解決問題的過程,從調(diào)研選題背景意義,了解了超聲波測距儀的工作原理及其發(fā)展,感覺上通過單片機(jī)控制是一個(gè)相對簡單的過程沒有什么彎路要走。確定方案,購買元件的時(shí)候就發(fā)現(xiàn)有很多的實(shí)際問題,由于第一次實(shí)際做一些東西出來,總覺得不知道從什么地方下手,這個(gè)時(shí)候小組合作就顯得格外重要,大家一起討論,給出不同的意見,完善各自的方案,了解更多實(shí)際電路要考慮到的問題,電阻的限流作用,單片機(jī)工作的電壓電流,電阻選多大,電容選多大,這些對電路都是有影響的,選的不對很可能就把單片機(jī)燒壞。每天都會(huì)有新的問題,解決完一個(gè)就會(huì)發(fā)現(xiàn)那不是結(jié)束僅僅是一個(gè)開始。焊接電路是一項(xiàng)需要有耐心的過程,一不小心就會(huì)犯錯(cuò),那是萬萬不允許的,所以必須檢查每一個(gè)焊接點(diǎn),剛開始做必然做的不太嫻熟,焊接的也不太美觀,但最也算是完成了。調(diào)試電路是最頭疼的,一開始不知道是電路的問題還是程序的問題。這次我們用的是匯編語言,而大部分組用的是C語言,這讓我們在交流程序的時(shí)候顯得有些無奈,開始我們只有一個(gè)部分一個(gè)部分的慢慢調(diào)試,先從四位數(shù)碼顯示部分開始,這部分知道電路連接正確應(yīng)該就不會(huì)有問題。然后我們測蜂鳴器是否工作正常。最后遇到問題是發(fā)現(xiàn)超聲波接收和發(fā)射模塊不能正常工作,找了很多原因,都不行。后來恍然大悟,是我們在一開始是就把超聲波發(fā)射和接收模塊的時(shí)間開始和接受弄錯(cuò)了,所以計(jì)算的時(shí)間總是錯(cuò)的。完成能測距的這一基本任務(wù)讓我們有了信心去做接下來的報(bào)警功能。對于我們這個(gè)超聲波測距模塊,要弄清楚每一個(gè)環(huán)節(jié)的工作原理,才能進(jìn)行電路設(shè)計(jì)及程序編寫。
4.2  總結(jié)
總結(jié):我們使用stc12c5a60s2單片機(jī)控制,hc-sr04超聲波發(fā)射和接受模塊輔助測量,在四位數(shù)碼顯示管顯示結(jié)果,蜂鳴器報(bào)警,這是整個(gè)超聲波測距系統(tǒng)的主要四個(gè)部分。測量范圍在2cm到300cm之間。由于經(jīng)驗(yàn)不足,最后的成品能雖然實(shí)現(xiàn)測量和報(bào)警的功能,但是任然有很多不足的地方,電路排版焊接不美觀,電路測量的有效性不夠強(qiáng),程序的穩(wěn)定性容錯(cuò)性都存在問題。程序在努力改進(jìn)后還需加強(qiáng)。本次課程設(shè)計(jì)學(xué)習(xí)到很多,對課本原理性的內(nèi)容更是加深理解。對實(shí)踐動(dòng)手能力有了很大的鍛煉和提高。
附錄1
課程設(shè)計(jì)仿真圖
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image015.jpg
                         圖9 仿真電路

附錄2
課程設(shè)計(jì)實(shí)物圖
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image017.jpg
               圖10 實(shí)物圖

附錄3
程序設(shè)計(jì)代碼
;   基于STC12C5A60S2單片機(jī)超聲波測距系統(tǒng)
;          測量范圍35-300厘米
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;              中斷入口程序          ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ORG 0000H
            AJMP START
            ORG 000BH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;              主 程 序            ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START:      MOV R0,#70H     ;立即數(shù)70H送寄存器R0中
            MOV R7,#0BH     ;立即數(shù)0BH送寄存器R7中
            MOV 20H,#00H    ;立即數(shù)00H送20H單元中
CLEARDISP:  MOV @R0,#00H    ;立即數(shù)立即數(shù)00H送R0中的地址單元中
            INC R0          ;寄存器R0加1
            DJNZ R7,CLEARDISP;寄存器中的數(shù)值減1非零時(shí)轉(zhuǎn)移
            MOV TMOD,#01H   ;置定時(shí)器T0工作方式樣3,對內(nèi)部機(jī)器周期計(jì)數(shù)
     CJZCX: MOV TL0,#00H    ;裝入定時(shí)器初值
            MOV TH0,#00H
            MOV R0,#0FH
            MOV R1,#5bH
      puzel:MOV 14H,#08H    ;超聲波發(fā)射持續(xù)200us
       Here:CPL P3.5        ;輸出40kHz方波
            NOP             ;
            NOP             ;
            NOP             ;
            DJNZ 14H,Here   ;
        QBA:JB P3.7,QBC     ;等待1跳到QBC
            DJNZ R1,QBA
            DJNZ R0,QBA
        QBC:SETB TR0        ;測到1開始計(jì)時(shí)
            SETB P3.2
        QBB:JNB P3.7,QBD    ;等待0跳到QBD
            JMP QBB
        QBD:CLR P2.3        ;測到0關(guān)閉計(jì)時(shí)
            CLR TR0
            MOV 70H,TL0
            MOV 71H,TH0
            MOV R2,71H
            MOV R3,70H
            MOV R6,#11H
            MOV R7,#0H
            LCALL MULD
            MOV R6,#64H
            MOV R7,#0H
            LCALL DIVD
            MOV 73H,R2
            MOV 74H,R3
            MOV R3,#0H
            MOV R4,#0H
            MOV R5,#0H
            MOV R6,73H
            MOV R7,74H
            LCALL HB2
            MOV A,R4       ;分離BCD
            MOV B,#10H
            DIV AB
            MOV 78H,A
            MOV 77H,B
            MOV A,R5
            MOV B,#10H
            DIV AB
            MOV 76H,A
            MOV 75H,B
            MOV 7AH,#0FFH
       XXX:LCALL DISPLAY
             LCALL WARNING
             DJNZ 7AH,XXX
AJMP CJZCX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           乘34程序(乘聲速)         ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      MULD: MOV A,R3        ;計(jì)算R3乘R7
            MOV B,R7
            MUL AB
            MOV R4,B        ;暫存部分積
            MOV R5,A
            MOV A,R3        ;計(jì)算R3乘R6
            MOV B,R6
            MUL AB
            ADD A,R4        ;累加部分積
            MOV R4,A
            CLR A
            ADDC A,B
            MOV R3,A
            MOV A,R2        ;計(jì)算R2乘R7
            MOV B,R7
            MUL AB
            ADD A,R4        ;累加部分積
            MOV R4,A
            MOV A,R3
            ADDC A,B
            MOV R3,A
            CLR A
            RLC A
            XCH A,R2        ;計(jì)算R2乘R6
            MOV B,R6
            MUL AB
            ADD A,R3        ;累加部分積
            MOV R3,A
            MOV A,R2
            ADDC A,B
            MOV R2,A
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;            除100程序(除法)         ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      DIVD: CLR C           ;比較被除數(shù)和除數(shù)
            MOV A,R3
            SUBB A,R7
            MOV A,R2
            SUBB A,R6
            JC DVD1
            SETB OV         ;溢出
            RET
      DVD1: MOV B,#10H      ;計(jì)算雙字節(jié)商
      DVD2: CLR C           ;部分商和余數(shù)同時(shí)左移一位
           MOV A,R5
            RLC A
            MOV R5,A
            MOV A,R4
            RLC A
            MOV R4,A
            MOV A,R3
            RLC A
            MOV R3,A
            XCH A,R2
            RLC A
            XCH A,R2
            MOV F0,C        ;保存溢出位
            CLR C
            SUBB A,R7       ;計(jì)算(R2R3-R6R7)
            MOV R1,A
            MOV A,R2
            SUBB A,R6
            ANL C,/F0       ;結(jié)果判斷
            JC DVD3
            MOV R2,A        ;夠減,存放新的余數(shù)
            MOV A,R1
            MOV R3,A
            INC R5          ;商的低位置一
      DVD3: DJNZ B,DVD2     ;計(jì)算完十六位商(R4R5)
            MOV A,R4        ;將商移到R2R3中
            MOV R2,A
            MOV A,R5
            MOV R3,A
            CLR OV          ;設(shè)立成功標(biāo)志
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;              BCD轉(zhuǎn)換               ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       HB2: CLR A           ;BCD碼初始化
            MOV R3,A
            MOV R4,A
            MOV R5,A
            MOV R2,#10H     ;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)
       HB3: MOV A,R7        ;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中
            RLC A
            MOV R7,A
            MOV A,R6
            RLC A
            MOV R6,A
            MOV A,R5        ;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2
            ADDC A,R5
            DA A            ;十進(jìn)制調(diào)整
            MOV R5,A
            MOV A,R4
            ADDC A,R4
            DA A
            MOV R4,A
            MOV A,R3
            ADDC A,R3
            MOV R3,A         ;雙字節(jié)十六進(jìn)制數(shù)的萬位數(shù)不超過6,不用調(diào)整
            DJNZ R2,HB3      ;處理完16bit
            RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;             報(bào)警程序               ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WARNING: MOV R6,#10
            MOV A,78H
            CJNE A,#00H,B1
            LJMP W1
      B1:  SUBB A,#01H
            CJNE A,#00H,B2
            LJMP W2
      B2:  SUBB A,#01H
            CJNE A,#00H,B3
            LJMP W3
      B3:  SUBB A,#01H
            CJNE A,#00H,B4
            LJMP W4
      B4:  LJMP W5
            RET
      W1: CPL P3.6          ;蜂鳴器驅(qū)動(dòng)電平取反
            MOV R7,#28
      DE1:  DJNZ R7,DE1
            DEC R6
            CJNE R6,#00,W1  ;反復(fù)循環(huán)
            RET
      W2: CPL P3.6         ;蜂鳴器驅(qū)動(dòng)電平取反
            MOV R7,#228
      DE2:  DJNZ R7,DE2
            DEC R6
            CJNE R6,#00,W2 ;反復(fù)循環(huán)
            RET
      W3: CPL P3.6        ;蜂鳴器驅(qū)動(dòng)電平取反
            MOV R7,#428
      DE3:  DJNZ R7,DE3
            DEC R6
            CJNE R6,#00,W3 ;反復(fù)循環(huán)
            RET
       W4:   CPL P3.6     ;蜂鳴器驅(qū)動(dòng)電平取反
              MOV R7,#628
         DE4: DJNZ R7,DE4
              DEC R6
              CJNE R6,#00,W4 ;反復(fù)循環(huán)
              RET
       W5:   CPL P3.6      ;蜂鳴器驅(qū)動(dòng)電平取反
              MOV R7,#828
         DE5: DJNZ R7,DE5
              DEC R6
              CJNE R6,#00,W5 ;反復(fù)循環(huán)
              RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;             顯示程序                ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   DISPLAY: MOV R1,#78H       ;立即數(shù)76H送寄存器中
            MOV R5,#0FDH     ;立即數(shù)FEH送寄存器R5中
      PLAY: MOV A,R5         ;寄存器R5中的數(shù)值送累加器A中
            MOV P2,A         ;累加器A中的數(shù)值送P3口
            MOV A,@R1         ;以寄存器R1中的數(shù)為地址單元的數(shù)值送累加器中
            MOV DPTR,#TAB    ;16位地址送地址寄存器中
            MOVC A,@A+DPTR   ;以中的地址為基地變址尋址單元中的數(shù)送累加器
            MOV P1,A         ;累加器A中的數(shù)值送P1口
            MOV R6,#14H      ;立即數(shù)據(jù)14送寄存器R6中
        DL1:MOV R7,#19H      ;立即數(shù)據(jù)19送寄存器R7中
        DL2:DJNZ R7,DL2      ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
            DJNZ R6,DL1      ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
            DEC R1           ;寄存器R1中的數(shù)值加1
            MOV A,R5         ;寄存器R5中的數(shù)值送累加器A中
            JNB ACC.3,ENDOUT ;地址位為0則轉(zhuǎn)到ENDOUT
            RL A             ;累加器循環(huán)右移
            MOV R5,A         ;累加器A中的數(shù)值送寄存器R5中
            AJMP PLAY        ;絕對短轉(zhuǎn)移
ENDOUT: SETB P3.5        ;置P3.5口
RET              ;返回
       TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,088H
        EEE:   END              ;結(jié)束

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表