久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

超聲波測距含程序

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

單片機(jī)課程設(shè)計報告

超聲波測距報告





















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
















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

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

課程設(shè)計題目

超聲波測距儀

設(shè)計原理

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

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

1.2.1 選題目的與意義

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

2 方案設(shè)計

2.1  主要任務(wù)

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

2.2  設(shè)計框圖

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

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

STC12C5A60S2

增強(qiáng)型 8051 CPU,1T,單時鐘/ 機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051。工作電壓5.5V-3.3V。STC12C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)的單時鐘/機(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個),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口) 可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏每個I/O口驅(qū)動能力均可達(dá)到20mA,但整個芯片最大不要超過55mA。
本設(shè)計中用到的單片機(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)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;
(3)有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間.測試距離=(高電平時間*聲速(340M/S))/2;
   超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射超聲波的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物反射后立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度約為340m/s,根據(jù)計時器記錄的時間t,就可以計算出超聲波發(fā)射點距障礙物的距離(s),即為:s=340t/2,這就是所謂的時間差測距法。
存在4個因素限制了該系統(tǒng)的最大可測距離:超聲波的幅度、反射的質(zhì)地、反射回波和入射聲波之間的夾角。

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

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

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

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

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

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

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ī)P3.5發(fā)送40KHZ的方波,超聲波接收到后開始測距,返回一段高電平到P3.7就是超聲波的測量的時間,所以程序設(shè)計時P3.7接收到高電平時開啟定時器,P3.7口接收到低電平時關(guān)閉定時器,這樣定時器TH0,TL0里存儲的就是測量的時間,根據(jù)公式s=340t/2就可以計算出距離。
流程圖
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è)計部分如下
P3.5發(fā)射,P3.7接受
MOV TMOD,#01H         ;置定時器T0工作方式樣3,對內(nèi)部機(jī)器周期計數(shù)
     CJZCX: MOV TL0,#00H   ;裝入定時器初值
            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開始計時
            SETB P3.2
        QBB:JNB P3.7,QBD    ;等待0跳到QBD
            JMP QBB
        QBD:CLR P2.3        ;測到0關(guān)閉計時
            CLR TR0
3.3  數(shù)碼管顯示模塊

設(shè)計思路:此時通過計算后四位數(shù)據(jù)分別從高到底存在78H,77H,76H,75H里,顯示數(shù)據(jù)時從高到低,P1口接a-h,P2.0-P2.3口接共陽極。首先賦值P2口0FEH,讓78H中的數(shù)據(jù)給高位,在左移,把77H數(shù)據(jù)給次高位,這樣循環(huán)知道四位數(shù)據(jù)全部顯示,此時跳到主程序。
電路部分如圖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,不為零時則轉(zhuǎn)移
            DJNZ R6,DL1      ;寄存器中的數(shù)據(jù)減1,不為零時則轉(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  蜂鳴器報警模塊

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

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

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

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

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

附錄3
程序設(shè)計代碼
;   基于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非零時轉(zhuǎn)移
            MOV TMOD,#01H   ;置定時器T0工作方式樣3,對內(nèi)部機(jī)器周期計數(shù)
     CJZCX: MOV TL0,#00H    ;裝入定時器初值
            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開始計時
            SETB P3.2
        QBB:JNB P3.7,QBD    ;等待0跳到QBD
            JMP QBB
        QBD:CLR P2.3        ;測到0關(guān)閉計時
            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        ;計算R3乘R7
            MOV B,R7
            MUL AB
            MOV R4,B        ;暫存部分積
            MOV R5,A
            MOV A,R3        ;計算R3乘R6
            MOV B,R6
            MUL AB
            ADD A,R4        ;累加部分積
            MOV R4,A
            CLR A
            ADDC A,B
            MOV R3,A
            MOV A,R2        ;計算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        ;計算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      ;計算雙字節(jié)商
      DVD2: CLR C           ;部分商和余數(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       ;計算(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     ;計算完十六位商(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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;             報警程序               ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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ū)動電平取反
            MOV R7,#28
      DE1:  DJNZ R7,DE1
            DEC R6
            CJNE R6,#00,W1  ;反復(fù)循環(huán)
            RET
      W2: CPL P3.6         ;蜂鳴器驅(qū)動電平取反
            MOV R7,#228
      DE2:  DJNZ R7,DE2
            DEC R6
            CJNE R6,#00,W2 ;反復(fù)循環(huán)
            RET
      W3: CPL P3.6        ;蜂鳴器驅(qū)動電平取反
            MOV R7,#428
      DE3:  DJNZ R7,DE3
            DEC R6
            CJNE R6,#00,W3 ;反復(fù)循環(huán)
            RET
       W4:   CPL P3.6     ;蜂鳴器驅(qū)動電平取反
              MOV R7,#628
         DE4: DJNZ R7,DE4
              DEC R6
              CJNE R6,#00,W4 ;反復(fù)循環(huán)
              RET
       W5:   CPL P3.6      ;蜂鳴器驅(qū)動電平取反
              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,不為零時則轉(zhuǎn)移
            DJNZ R6,DL1      ;寄存器中的數(shù)據(jù)減1,不為零時則轉(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ù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日操日日干 | 亚洲美乳中文字幕 | 日韩一级欧美一级 | 国产真实精品久久二三区 | 国产精品久久久久久久久 | 亚洲av一级毛片 | 精品日韩一区二区 | 亚洲精品综合 | 国产福利在线视频 | 亚洲精品一二三区 | 国产精品一区久久久 | 日韩www| 欧美专区在线 | 亚洲超碰在线观看 | 欧美一级二级视频 | 久久99精品久久久久久 | 中文字幕第一页在线 | 欧美视频精品 | 欧美不卡一区二区三区 | 日韩影院在线 | 成人精品一区二区 | 一级片免费视频 | 天天天堂| 国产成人精品综合 | 国产伦精品一区二区三区在线 | 日本精品久久 | 午夜久久久久久久久久一区二区 | 国产精品欧美一区二区三区不卡 | 国产内谢 | 在线观看日本高清二区 | 一a一片一级一片啪啪 | 欧美亚州综合 | 国产精品毛片无码 | 国产精品久久久久久影院8一贰佰 | 爱综合| 国产亚洲一区二区三区 | 日韩和的一区二区 | 亚洲国产精品一区二区三区 | 91久久精品一区二区二区 | 欧美激情在线播放 | 欧美人人|