超聲波測距系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  摘 要</p><p>  本文采用以單片機為核心成本,高精度,顯示超聲測距儀的硬件電路和軟件設(shè)計方法。各探頭的信號經(jīng)單片機綜合分析處理,實現(xiàn)超聲測距的各種功能。經(jīng)實驗表明,這套系統(tǒng)軟件,硬件都設(shè)計合理,抗干擾能力強,實時性良好。</p><p>  關(guān)鍵詞:51,單片機,超聲波,測距 </p><p><b>  A

2、BSTRACT</b></p><p>  At the core of the desing using low-cost,high accuracy,Micro figures show that the ultrasonic range finder hardware and software design methods.SCM comprchensive analysis of the pr

3、obe signel processing,and the ultrasonic range finder function.The research has led to the discovery that the softuare and nardware designing.</p><p>  KEY WORDS: 51,low-cost,uitrasonic,destance measure</

4、p><p><b>  目錄</b></p><p><b>  一 前言1</b></p><p>  1. 研究背景1</p><p>  2. 國內(nèi)外研究情況1</p><p>  3. 本文主要內(nèi)容及安排2</p><p>  二

5、 控制系統(tǒng)主要硬件介紹2</p><p>  1. 單片機STC89C52的選型2</p><p> ?。?) STC89C52介紹2</p><p> ?。?) STC89C52引腳介紹3</p><p>  2. 超聲波測距模塊選型5</p><p> ?。?) HC-SR04介紹5</p

6、><p>  3. 顯示器件的選型6</p><p>  (1)數(shù)碼管的選型6</p><p>  三 硬件電路設(shè)計8</p><p>  1. 單片機最小系統(tǒng)的設(shè)計8</p><p>  2. 超聲波測距顯示電路系統(tǒng)設(shè)計9</p><p>  3. 超聲波系統(tǒng)設(shè)計10</p&g

7、t;<p>  四 系統(tǒng)軟件設(shè)計10</p><p><b>  1.流程圖10</b></p><p>  2. 單片機測距程序11</p><p>  五 實物性能測試15</p><p>  1.單片機測試15</p><p><b>  2程序調(diào)試1

8、5</b></p><p>  六 編程和下載軟件的介紹16</p><p>  1. Keil的簡介16</p><p>  2.Altium Designer 6.0的簡介23</p><p>  3. STC_ISP_V480的簡介25</p><p>  七 總結(jié)與展望27</p&g

9、t;<p>  參 考 文 獻28</p><p><b>  致 謝29</b></p><p>  一 前言</p><p><b>  1. 研究背景</b></p><p>  隨著科技的迅猛發(fā)展越來越多的科

10、技成果被廣泛的運用到人們的日常生活當中,給我們的生活帶來了諸多方便。本設(shè)計就是本著這個宗旨出發(fā),利用超聲波的特性來為我們服務(wù)。</p><p>  聲波是物體機械振動狀態(tài)(或能量)的傳播形式。所謂振動是指物質(zhì)的質(zhì)點在其平衡位置附近進行的往返運動。譬如,鼓面經(jīng)敲擊后,它就上下振動,這種振動狀態(tài)通過空氣媒質(zhì)向四面八方傳播,這便是聲波。 超聲波是指振動頻率大于20000Hz以上的,其每秒的振動次數(shù)(頻率)甚高,超出了人

11、耳聽覺的上限(20000Hz),人們將這種聽不見的聲波叫做超聲波。超聲和可聞聲本質(zhì)上是一致的,它們的共同點都是一種機械振動,通常以縱波的方式在彈性介質(zhì)內(nèi)會傳播,是一種能量的傳播形式,其不同點是超聲波頻率高,波長短,在一定距離內(nèi)沿直線傳播具有良好的束射性和方向性。 </p><p>  由于超聲波指向性強,能量消耗緩慢,在介質(zhì)中傳播的距離較遠,因而超聲波經(jīng)常用于距離的測量。超聲波測距由于其能進行非接觸測量和相對較高

12、的精度,越來越被人們所重視。超聲波測量技術(shù)利用回波測距原理,技術(shù)發(fā)展已經(jīng)成熟,應(yīng)用也積累了很多經(jīng)驗。 </p><p>  超聲波測距儀,可以應(yīng)用于汽車倒車、建筑施工工地以及一些工業(yè)現(xiàn)場的位置監(jiān)控,也可用于液位、井深、管道長度的測量等場合。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時監(jiān)控,并且在測量精度方面能達到工業(yè)實用的要求。 </p><p>  隨著科學技術(shù)的快速發(fā)展,超

13、聲波在測距儀中的應(yīng)用越來越廣。展望未來,超聲波測距儀作為一種非常重要的工具在各方面都將有很大的發(fā)展空間,它將朝著更加高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求。</p><p>  2. 國內(nèi)外研究情況</p><p>  國內(nèi)超聲波技術(shù)現(xiàn)已日趨成熟,穩(wěn)定度也相當高,適合大部分環(huán)境下使用;應(yīng)用領(lǐng)域。包括:測距、避障、機器人定位、曲面仿真等。雖然如此,但也存在一些急待攻克的問題,主要包括:

14、測量精度的級別有待提高,測量距離不夠遠,普遍只有10米之內(nèi),最遠也只有幾十米;一些高精度或遠距離的產(chǎn)品的電路復(fù)雜,成本較高;依然存在一定距離的育盲區(qū)等等;這些問題限制了超聲波的應(yīng)用。</p><p>  針對上述存在的問題,國內(nèi)外的相關(guān)人員進行了努力的攻關(guān)。研究主要集中在以下幾個方面:超聲波回波處理、新型換能器研發(fā)、發(fā)射脈沖選取等等,并且針對超聲測距儀器的常見影響因素提出了溫度補償、接收回路串入自動增益調(diào)節(jié)環(huán)節(jié)等

15、提高超聲波測距精度的措施。目前在國內(nèi)的研究成果主要有:超聲波回波處理方面,最小均方自適應(yīng)時延估計算法;一體化換能器;專用脈沖發(fā)生器;采用功率驅(qū)動芯片和升壓變壓器等,還通過超聲波測距儀專用集成電路通過分析超聲波測距誤差產(chǎn)生的原因,來提高測量時間差到微秒級,以及用溫度傳感器來進行聲波傳播速度的補償后,其高精度超聲波測距儀也可以達到毫米級的測量精度。這些新的技術(shù)都大大提高了超聲波</p><p>  測距的精度和距離。

16、國內(nèi)的超聲波測量品牌有古大,飛鷹,百特等。他們的技術(shù)在國內(nèi)應(yīng)該處于領(lǐng)先地位,但是低端的很多。而在國外,超聲測量技術(shù)也有迅速發(fā)展。國外西門子,HAWK的產(chǎn)品比較齊全,質(zhì)量比較穩(wěn)定。</p><p>  3. 本文主要內(nèi)容及安排</p><p>  本文主要內(nèi)容是對超聲波測距系統(tǒng)的分析。本文的安排為:第1章是研究背景的介紹;第2章是對控制系統(tǒng)主要硬件的介紹,包括單片機、超聲波模塊、數(shù)碼管;第

17、3章是介紹硬件電路設(shè)計;第4章是介紹系統(tǒng)軟件設(shè)計;第5章是介紹實物性能測試;第6章編程和下載軟件;第7章是總結(jié)與未來展望。</p><p>  二 控制系統(tǒng)主要硬件介紹</p><p>  1.單片機STC89C52的選型</p><p> ?。?)STC89C52介紹</p><p>  STC89C52是由深圳宏晶科技公司生產(chǎn)的與工業(yè)標

18、準MCS-51指令集和輸出管腳相兼容的單片機。STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。</p><p>  具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB E

19、EPROM,MAX810復(fù)位電路,2個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口。另外, STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35MHz,6T/12T可選。</p><p&g

20、t;  其PDIP封裝如圖2-1所示。</p><p>  圖2-1 STC89C52 PDIP封裝圖</p><p> ?。?) STC89C52引腳介紹 </p><p>  管腳說明:     VCC:供電電壓。     GND:接地。   

21、  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。     P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TT

22、L門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。      P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是

23、由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)</p><p>  EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源

24、(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。</p><p>  2. 超聲波測距模塊選型</p><p> ?。?) HC-SR04介紹</p><p>  HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。&

25、lt;/p><p><b>  基本工作原理:</b></p><p>  (1)采用IO口TRIG觸發(fā)測距,給最少10us的高電平信呈。</p><p>  (2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;</p><p>  (3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲&l

26、t;/p><p>  波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2;</p><p><b>  超聲波電氣參數(shù):</b></p><p>  超聲波時序圖如圖2-2所示:</p><p>  圖2-2 超聲波時序圖</p><p>  以上時序圖表明你只需要提供一個10u

27、S 以上脈沖觸發(fā)信號,該模塊內(nèi)部將 發(fā)出8個40kHz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號。 回響信號的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號 時間間隔可以計算得到距離。公式:uS/58=厘米或者uS/148=英寸;或是:距離= 高電平時間*聲速(340M/S)/2;建議測量周期為60ms以上,以防止發(fā)射信號對 回響信號的影響。</p><p>  3. 顯示器件的選型&

28、lt;/p><p><b>  (1)數(shù)碼管的選型</b></p><p>  led數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個小數(shù)點,還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等

29、,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2-3是共陰和共陽極數(shù)碼管的引腳圖,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍,黃等幾種。led數(shù)碼管廣泛用于儀表,時鐘,車站,家電等場合。選用時要注意產(chǎn)品尺寸顏色,功耗,亮度,波長等。下面將介紹常用LED數(shù)碼管內(nèi)部引腳圖片10引腳的LED數(shù)碼管。

30、圖2-4為常用的LED</p><p>  圖2-3 LED數(shù)碼管引腳圖 圖2-4常用LED數(shù)碼管 </p><p>  圖2-3每一筆劃都是對應(yīng)一個字母表示DP是小數(shù)點. </p><p>  LED數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動方式的不同,

31、可以分為靜態(tài)式和動態(tài)式兩類。 </p><p>  1)靜態(tài)顯示驅(qū)動: </p><p>  靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O埠進行驅(qū)動,或者使用如BCD碼二-十進位寄存器進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O口來驅(qū)動,要知道一個89S51單片機可用的I

32、/O口才32個呢。故實際應(yīng)用時必須增加驅(qū)動器進行驅(qū)動,增加了硬體電路的復(fù)雜性。 </p><p>  2)動態(tài)顯示驅(qū)動: </p><p>  數(shù)碼管動態(tài)顯示介面是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp "的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨立的I/

33、O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會亮。 </p><p>  透過分時輪流控制各個LED數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位元數(shù)碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象

34、及發(fā)光二極體的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O口,而且功耗更低。</p><p>  下面介紹四位七段數(shù)碼管引腳圖,內(nèi)部的四個數(shù)碼管共用a~dp這8根數(shù)據(jù)線,為人們的使用提供了方便,因為里面有四個數(shù)碼管,所以它有四個公共端,加上a~dp,共有12個引腳,圖2-5是一個共陰的四位

35、數(shù)碼管的內(nèi)部結(jié)構(gòu)圖,圖2-6為四位共陽數(shù)碼管。引腳排列依然是從左下角的那個腳(1腳)開始,以逆時針方向依次為1~12腳,下圖中的數(shù)字與之一一對應(yīng)。</p><p>  圖2-5 四位共陰數(shù)碼管</p><p>  圖2-6 四位共陽數(shù)碼管</p><p>  其中,6,8,9,12,引腳是四位數(shù)碼管的四個公共端,控制著四個關(guān)鍵,就可以控制數(shù)碼管的關(guān)斷和導(dǎo)通。&l

36、t;/p><p>  圖2-7 四位共陽極數(shù)碼管實物圖</p><p>  圖2-7是四位共陽極數(shù)碼的實物圖,從左下角的那個腳(1腳)開始,以逆時針方向依次為1~12腳。識別引腳是在實際焊接中非常重要的部分,否則可能出現(xiàn)燒毀數(shù)碼管,或數(shù)碼管不亮的情況。</p><p><b>  三 硬件電路設(shè)計</b></p><p>

37、;  本部分介紹系統(tǒng)的硬件電路設(shè)計,包括單片機最小系統(tǒng),超聲波傳感器采集電路及距離顯示電路。</p><p>  1. 單片機最小系統(tǒng)的設(shè)計</p><p>  最小系統(tǒng)是指能進行正常工作的最簡單電路。STC89C52最小應(yīng)用系統(tǒng)電路如圖3-1所示。它包含五個電路部分:電源電路、時鐘電路、復(fù)位電路、片內(nèi)外程序存儲器選擇電路、輸入/輸出接口電路。其中電源電路、時鐘電路、復(fù)位電路是保證單片機系

38、統(tǒng)能夠正常工作的最基本的三部分電路,缺一不可。</p><p>  圖3-1 單片機最小系統(tǒng)</p><p>  下面簡單介紹下單片機最小系統(tǒng)的三個主要部分:</p><p> ?、匐娫措娐?芯片引腳VCC一般接上直流穩(wěn)壓電源+5V,引腳GND接電源+5V的負極,電源電壓范圍在4~5.5之間,可保證單片機系統(tǒng)能正常工作。為了確定單片機是否供上電,在VCC和地之間

39、連接了一個發(fā)光二極管和1K的電阻。</p><p> ?、跁r鐘電路 單片機引腳18和引腳19外接晶振及電容, STC89C52芯片的工作頻率可在2~33MHz范圍之間選,單片機工作頻率取決于晶振XT的頻率,通常選用11.0592MHz晶振。兩個小電容通常取值30pF,以保證振蕩器電路的穩(wěn)定性及快速性。</p><p> ?、蹚?fù)位電路 一般若在引腳RST上保持24個工作主頻周期的高電平

40、,單片機就可以完成復(fù)位,但為了保證系統(tǒng)可靠地復(fù)位,復(fù)位電路應(yīng)使引腳RST保持10ms以上的高電平。如圖復(fù)位電路帶有上電自動復(fù)位功能,當電路上電時,由于C1電容兩端電壓值不能突變,電源+5V會通過電容向RST提供充電電流,因此在RST引腳上產(chǎn)生一高電平,使單片機進入復(fù)位狀態(tài)。隨著電容C1充電,它兩端電壓上升使得RST電位下降,最終使單片機退出復(fù)位狀態(tài)。正常運行時,可按復(fù)位按鈕對單片機復(fù)位</p><p>  2.

41、超聲波測距顯示電路系統(tǒng)設(shè)計</p><p>  圖3-2 數(shù)碼管顯示電路系統(tǒng)</p><p>  本設(shè)計采用了四位共陽極數(shù)碼管作為顯示的器件,6,8,9,12引腳是數(shù)碼管的位選信號端,1,2,3,4,5,7,10,11控制數(shù)碼管的位選,四位數(shù)碼管分別用一個S9015三極管進行驅(qū)動。</p><p>  3. 超聲波系統(tǒng)設(shè)計</p><p>

42、  圖3-3 數(shù)碼管顯示電路系統(tǒng)</p><p><b>  四 系統(tǒng)軟件設(shè)計</b></p><p>  本次軟件開發(fā)是基于windows平臺下開發(fā)的,主要通過c語言為主要編程語言,使用的軟件是Keil編程軟件,電路的繪制使用AD6.9軟件進行設(shè)計。主要的燒錄器使用STC的USB轉(zhuǎn)串口燒錄器STC_ISP_V486。</p><p><

43、;b>  1 流程圖</b></p><p>  根據(jù)硬件電路圖,綜合自己的設(shè)計思路,先畫出程序流程圖,再根據(jù)流程圖編好程序,經(jīng)過整理后最后形成最終的程序。 根據(jù)要求繪制的本設(shè)計的流程圖如圖4-1所示。</p><p>  4-1 程序流程圖</p><p>  2. 單片機測距程序</p><p>  #include

44、 <reg52.h>//器件配置文件</p><p>  #include <intrins.h></p><p>  sbit RX=P1^0;</p><p>  sbit TX=P1^1;</p><p>  unsigned int time=0;</p><p>  unsi

45、gned int timer=0;</p><p>  unsigned char posit=0;</p><p>  unsigned long S=0;</p><p>  bit flag =0;</p><p>  unsigned char const discode[] ={ 0xC0,0xF9,0xA4,0xB0,

46、0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff};</p><p>  unsigned char const positon[4]={ 0xfd,0xfb,0xf7};</p><p>  unsigned char disbuff[4] ={ 0,0,0,0,};</p><p>  /*******************

47、*************************************/</p><p>  void Display(void) //掃描數(shù)碼管</p><p><b>  {</b></p><p>  P0=discode[disbuff[posit]];</p><p>  P2=positon[po

48、sit];</p><p>  if(++posit>=3)</p><p><b>  posit=0;</b></p><p><b>  }</b></p><p>  /********************************************************/&

49、lt;/p><p>  void Conut(void)</p><p><b>  {</b></p><p>  time=TH0*256+TL0;</p><p><b>  TH0=0;</b></p><p><b>  TL0=0;</b><

50、;/p><p>  S=(time*1.85)/100; //算出來是CM</p><p>  if((S>=700)||flag==1) //超出測量范圍顯示"-"</p><p><b>  { </b></p><p><b>  flag=0;</b><

51、/p><p>  disbuff[0]=10; //"-"</p><p>  disbuff[1]=10; //"-"</p><p>  disbuff[2]=10; //"-"</p><p><b>  }</b></p>&

52、lt;p><b>  else</b></p><p><b>  {</b></p><p>  disbuff[0]=S%1000/100;</p><p>  disbuff[1]=S%1000%100/10;</p><p>  disbuff[2]=S%1000%100 %10;&l

53、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  /********************************************************/</p><p>  void zd0() interrupt 1 //T0中斷

54、用來計數(shù)器溢出,超過測距范圍</p><p><b>  {</b></p><p>  flag=1; //中斷溢出標志</p><p><b>  }</b></p><p>  /**************************************************

55、******/</p><p>  void zd3() interrupt 3 //T1中斷用來掃描數(shù)碼管和計800MS啟動模塊</p><p><b>  {</b></p><p><b>  TH1=0xf8;</b></p><p><b>  TL1=0x30;<

56、;/b></p><p><b>  timer++;</b></p><p>  if(timer>=6){</p><p>  Display();}</p><p>  if(timer>=400)</p><p><b>  {</b></p&

57、gt;<p><b>  timer=0;</b></p><p>  TX=1; //800MS 啟動一次模塊</p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p>&

58、lt;p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>

59、;  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); <

60、/b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p>

61、<p><b>  _nop_(); </b></p><p><b>  _nop_();</b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b&

62、gt;  _nop_(); </b></p><p><b>  _nop_();</b></p><p><b>  TX=0;</b></p><p><b>  } </b></p><p><b>  }</b></p>

63、<p>  /*********************************************************/</p><p>  void main( void )</p><p><b>  { </b></p><p>  TMOD=0x11; //設(shè)T0為方式1,GATE=1;</p&

64、gt;<p><b>  TH0=0;</b></p><p>  TL0=0; </p><p>  TH1=0xf8; //2MS定時</p><p><b>  TL1=0x30;</b></p><p>  ET0=1; //允

65、許T0中斷</p><p>  ET1=1; //允許T1中斷</p><p>  TR1=1; //開啟定時器</p><p>  EA=1; //開啟總中斷</p><p><b>  while(1)</b></p><p><b>  {</b

66、></p><p>  while(!RX);//當RX為零時等待</p><p>  TR0=1; //開啟計數(shù)</p><p>  while(RX);//當RX為1計數(shù)并等待</p><p>  TR0=0;//關(guān)閉計數(shù)</p><p>  Conut();//計算<

67、;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  五 實物性能測試</b></p><p><b>  1.單片機測試</b></p><p>  判斷單片機是否處于正常工作的

68、狀態(tài),就要判斷單片機電源,復(fù)位電路及時鐘電路是否正常工作有一個簡單的辦法,首先打開電源觀察led是否亮起,如果亮起證明有電供應(yīng)。接下來,用萬用表檢測單片機的20和40腳之間的電壓是不是為5V,這兩項測試表明單片機已經(jīng)正常供電。接下來檢查復(fù)位電路是否正常工作,將萬用表的紅色針放在9號引腳上,黑色針放在20腳上,檢測電壓為0V,按下復(fù)位按鍵,測到的電壓為5V,說明復(fù)位電路工作正常。</p><p><b>

69、  2.程序調(diào)試</b></p><p>  調(diào)試程序是意見非常鍛煉人的工作,寫程序是需要一步步來的,有時是缺個符號,少個分號,有時是大小寫的問題,有時候甚至不知道是什么問題,導(dǎo)致程序編譯出現(xiàn)問題。有時,程序進行不下去,耽誤很長時間。但是,經(jīng)過不斷的寫程序,改程序,最后終于通過了編譯。如圖5-1所示,為編譯成功后的KEIL編程的界面。</p><p>  圖5-1 編譯成功的

70、界面</p><p>  六 編程和下載軟件的介紹</p><p><b>  1.Keil的簡介</b></p><p>  Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。它是本設(shè)計的編程環(huán)境,Keil提供了包

71、括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。</p><p>  單片機開發(fā)中除必要的硬

72、件外,同樣離不開軟件,我們寫的C語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Ke

73、il即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不

74、二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯</p><p>  下面介紹KEIL的編程使用方法:</p><p> ?。?)使用Keil前必須先安裝。安裝過程簡單,這里不在進行詳細的敘述。</p><p>  (2)安裝好了Keil軟件以后,我們打開它。打開以后界面如圖6-1所示:</p><

75、;p><b>  圖 6-1</b></p><p>  (3)我們先新建一個工程文件,點擊“Project->New Project…”菜單,如圖6-2所示:</p><p><b>  圖6-2</b></p><p>  (4)選擇工程文件要存放的路徑 ,輸入工程文件名 LED(名字根據(jù)需要可以

76、隨便設(shè)置), 最后單擊保存。</p><p><b>  圖 6-3</b></p><p>  (5)在彈出的對話框中選擇 CPU 廠商及型號。</p><p><b>  圖 6-4</b></p><p>  (6)選擇好 Atmel 公司的 AT89S52(在實際使用中根據(jù)自己的芯片的型號選

77、擇) 后 , 單擊確定。</p><p><b>  圖 6-5</b></p><p>  (7)在接著出現(xiàn)的對話框中選擇“是”。</p><p><b>  圖 6-6</b></p><p> ?。?)新建一個 C51 文件 , 單擊左上角的 New File 如圖6-7所示。</p&g

78、t;<p><b>  圖 6-7</b></p><p> ?。?)保存新建的文件,單擊SAVE如圖6-8所示。</p><p><b>  圖 6-8</b></p><p>  (10)在出現(xiàn)的對話框中輸入保存文件名MAIN.C(注意后綴名必須為.C),再單擊“保存”,如圖6-9所示;</p>

79、;<p><b>  圖 6-9</b></p><p> ?。?1)保存好后把此文件加入到工程中方法如下 : 用鼠標在 Source Group1 上單擊右鍵 , 然后再單擊 Add Files to Group ‘Source Group 1' 如圖6-10所示:</p><p><b>  圖 6-10</b><

80、;/p><p> ?。?2)選擇要加入的文件 , 找到 MAIN.C 后 , 單擊 Add, 然后單擊 Close 。</p><p><b>  圖 6-11</b></p><p>  (13)在編輯框里輸入如下代碼 : </p><p><b>  圖 6-12</b></p>&

81、lt;p> ?。?4)到此我們完成了工程項目的建立以及文件加入工程 , 現(xiàn)在我們開始編譯工程如下圖6-13和6-14所示 : 我們先單擊編譯, 如果在錯誤與警告處看到 0 Error(s) 表示編譯通過 。 </p><p><b>  圖 6-13</b></p><p><b>  圖6-14</b></p><p&

82、gt; ?。?5)生成 .hex 燒寫文件,先單擊Options for Target,如圖6-15所示。</p><p><b>  圖6-15</b></p><p> ?。?6)在圖6-16中,我們單擊 Output, 選中 Create HEX F。再單擊“確定”。</p><p><b>  圖6-16</b>&

83、lt;/p><p> ?。?7)打開文件夾‘實驗1’,查看是否生成了HEX文件,生成的hex文件如圖6-17所示。如果沒有生成,在執(zhí)行一遍步驟10到步驟12,直到生成。</p><p><b>  圖6-17</b></p><p>  2.Altium Designer 6.0的簡介</p><p>  2005年年底,P

84、rotel軟件的原廠商 Altium公 司推出了Protel系列的最新高端版本Altium Designer 6.0。 Altium Designer 6.0,它是完全一體化電子產(chǎn)品開發(fā)系統(tǒng)的一個新版本,也是業(yè)界第一款也是唯一一種完整的板級設(shè)計解決方案。Altium Designer 是業(yè)界首例將設(shè)計流程、集成化 PCB 設(shè)計、可編程器件(如 FPGA)設(shè)計和基于處理器設(shè)計的嵌入式軟件開發(fā)功能整合在一起的產(chǎn)品,一種同時進行PCB和FPG

85、A設(shè)計以及嵌入式設(shè)計的解決方案,具有將設(shè)計方案從概念轉(zhuǎn)變?yōu)樽罱K成品所需的全部功能。 </p><p>  這款最新高端版本Altium Designer 6.除了全面繼承包括99SE,Protel2004在內(nèi)的先前一系列版本的功能和優(yōu)點以外,還增加了許多改進和很多高端功能。Altium Designer 6.0拓寬了板級設(shè)計的傳統(tǒng)界限,全面集成了FPGA設(shè)計功能和 SOPC設(shè)計實現(xiàn)功能,從而允許工程師能將系統(tǒng)設(shè)計

86、中的FPGA與PCB設(shè)計以及嵌入式設(shè)計集成在一起。 </p><p>  首先:在PCB部分,除了Protel2004中的多通道復(fù)制;實時的、阻抗控制布線功能;SitusTM自動布線器等新功能以外,Altium Designer 6.0還著重在:差分對布線,F(xiàn)PGA器件差分對管腳的動態(tài)分配, PCB和FPGA之間的全面集成,從而實現(xiàn)了自動引腳優(yōu)化和非凡的布線效果。還有PCB文件切片,PCB多個器件集體操作,在PC

87、B文件中支持多國語言 (中文、英文、德文、法文、日文),任意字體和大小的漢字字符輸入,光標跟隨在線信息顯示功能,光標點可選器件列表,復(fù)雜BGA器件的多層自動扇出,提供 了對高密度封裝(如 BGA)的交互布線功能, 總線布線功能,器件精確移動,快速鋪銅等功能。 </p><p>  交互式編輯、出錯查詢、布線和可視化功能,從而能更快地實現(xiàn)電路板布局,支持高速電路設(shè)計,具有成熟的布線后信號完整性分析工具. Altiu

88、m Designer 6.0 對差分信號提供系統(tǒng)范圍內(nèi)的支持,可對高速內(nèi)連的差分信號對進行充分定義、管理和交互式布線。支持包括對在FPGA項目內(nèi)部定義的LVDS信號的物理設(shè)計 進行自動映射。 LVDS 是差分信號最通用的標準,廣泛應(yīng)用于可編程器件。Altium Designer 可充分利用當今FPGA 器件上的擴展I/O管腳。 </p><p>  其次,在原理圖部分,新增加“靈巧粘帖”可以將一些不同的對象拷貝到

89、原理圖當中,比如一些網(wǎng)絡(luò)標號, 一頁圖紙的BOM表,都可以拷貝粘帖到原理圖當中。原理圖文件切片,多個器件集體操作,文本筐的直接編輯,箭頭的添加,器件精確移動,總線走線,自動網(wǎng)標 選擇等! 強大的前端將多層次、多通道的原理圖輸入、VHDL開發(fā)和功能仿真、布線前后的信號完整性分析功能。在信號仿真部分,提供完善的混合信號仿真,在對 XSPICE 標準的支持之外,還支持對Pspice模型和電路的仿真。對FPGA設(shè)計提供了豐富的IP內(nèi)核,包括各種

90、處理器、存儲器、外設(shè)、接口、以及虛擬儀器 。 </p><p>  第三 在嵌入式設(shè)計部分,增強了JTAG器件的實時顯示功能,增強型基于FPGA的邏輯分析儀,可以支持32位或64位的信號輸入。除了現(xiàn)有的多種處理器內(nèi)核 外,還增強了對更多的32位微處理器的支持,可以使嵌入式軟件設(shè)計在軟處理器,F(xiàn)PGA內(nèi)部嵌入的硬處理器,分立處理器之間無縫的遷移。使用了 Wishbone 開放總線連接器允許在FPGA上實現(xiàn)的邏輯模塊

91、可以透明的連接到各種處理器上。Altium Designer 6.0支持 Xilinx MicroBlaze,TSK3000 等32位軟處理器,PowerPC 405 硬核,并且支持AMCC 405和Sharp BlueStreak ARM7 系列分立的處理器。對每一種處理器都提供完備的開發(fā)調(diào)試工具。</p><p>  圖6-18 Altium Designer 6.0軟件打開界面</p>&l

92、t;p>  圖6-19 Altium Designer 6.0繪圖界面</p><p>  3. STC_ISP_V480的簡介</p><p>  STC_ISP_V480是下載程序用的軟件,在運行STC_ISP_V480下載軟件之前,應(yīng)該先給出ISP的C程序源代碼ISP.C.要注意的是:此程序是在Keil-C中要建立工程文件,包含IAP.C函數(shù),并且在IAP.C和ISP.C中都

93、要保留STC的定義.傳入用戶代碼時,需要與計算機進行通信,一般采用RS232串行通信,數(shù)據(jù)協(xié)議采用簡單協(xié)議。</p><p><b>  具體的使用方法:</b></p><p>  一、先把學習實驗板和計算機連接好(接好串口線和電源)</p><p>  二、打開STC-ISP v480,在MCU Type欄目下選中單片機,如STC89C52

94、RC:根據(jù)您的9針的數(shù)據(jù)線連接情況選中COM端口,最好把波特率適當下調(diào)一些,按圖6-20所示選中各項:</p><p>  圖6-20STC-ISP v480的界面圖</p><p>  三、先確認硬件連接正確,按下圖點擊“打開文件”并在對話框內(nèi)找到您要下載的HEX文件:</p><p>  四、選中兩個條件項,這樣可以使您在每次編譯KEIL時HEX代碼能自動加載到

95、STC-ISP,點擊“Download/下載”:</p><p>  五、手動按下電源開關(guān)便即可把可執(zhí)行文件HEX寫入到單片機內(nèi),圖6-21所示是正在寫入程序截圖:</p><p>  圖6-21 單片機程序下載截圖</p><p><b>  7 總結(jié)與展望</b></p><p>  本課題介紹了一種基于單片機的超

96、聲波測距系統(tǒng)的設(shè)計。給出了硬件和軟件的設(shè)計方案。 超聲波傳感器是本系統(tǒng)的核心器件,本論文詳細地介紹了超聲波傳感器的原理、結(jié)構(gòu)、檢測方式以及它的一些特性。只有深入地了解超聲波傳感器的工作原理,才能更好的設(shè)計測距電路。單片機是本系統(tǒng)的控制部分,采用STC89C52單片機。驅(qū)動超聲波傳感器的40kHz的方波信號,就是由單片機編程產(chǎn)生的。通過檢測發(fā)射和接受的時間差值,通過計算得到距離。本系統(tǒng)的LED顯示當前的距離。單片機內(nèi)部采用C語言編程,方波

97、信號的產(chǎn)生、時間差的讀取、距離的計算以及顯示輸出都由單片機編程完成。 本課題所設(shè)計的超聲波測距系統(tǒng)具有測量精度較高、速度快、控制簡單方便等優(yōu)點。測距范圍從1cm到300cm,測量精度在±3mm內(nèi)。測距系統(tǒng)在許多工業(yè)現(xiàn)場和自動控制場合,都有很重要的作用。</p><p>  通過調(diào)試,最終實物可以實現(xiàn)功能,達到了設(shè)計的目的。但由于經(jīng)驗不足,電路硬件、軟件部分還有不夠完善的地方,在今后的學習中會進一步改進。

98、 總體來說,最重要的是在本課題的設(shè)計過程中我學到了很多知識,從中受益匪淺。了解了超聲波傳感器的原理,學會了各種放大電路的分析、設(shè)計,也掌握了單片機的開發(fā)過程和利用單片機設(shè)計電路的方法。對一塊電路板的設(shè)計、焊板、調(diào)試、改進等整個過程,有了更深入的理解和掌握。這些對我今后的學習和工作都會有很大幫助的</p><p><b>  參 考 文 獻</b></p><p>  

99、[1]張洪潤等,電子線路與電子技術(shù)[M],北京:清華大學出版社,2005.</p><p>  [2]王松武等,電子創(chuàng)新設(shè)計與實踐[M],北京:國防工業(yè)出版社,2005.</p><p>  [3]李建忠,單片機原理及應(yīng)用[M],西安:西安電子科技大學出版社,2002.</p><p>  [4]黃智偉等,全國大學生電子設(shè)計競賽訓(xùn)練教程[M],北京:電子工業(yè)出版社,

100、2004.</p><p>  [5]樊昌信等.通信原理[M].北京:國防工業(yè)出版社,2001.</p><p>  [6]何希才,新型集成電路及應(yīng)用實例[J],北京:科學出版社,2002.</p><p>  [7]李朝青.單片機原理及接口技術(shù)[M].杭州:北京航空航天大學出版社,1998.</p><p>  [8]李廣弟.單片機基礎(chǔ)[M

101、].北京:北京航空航天大學出版社,1994.</p><p>  [9]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1989.</p><p>  [10]廖常初.現(xiàn)場總線概述[J].電工技術(shù),1999.</p><p>  [11]樓然苗.穎電子模塊應(yīng)用手冊[J]. 北京:機械工業(yè)出版社,2005.</p><p>  [12]樓然

102、苗李光飛.單片機課程設(shè)計指導(dǎo)[M]. 北京:北京航空航天大學出版社,2007.</p><p>  [13]賴壽宏.微型計算機控制技術(shù)[M]. 北京:機械工業(yè)出版社.2003.</p><p>  [14]馬忠梅.單片機的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學出版社,1998.</p><p>  [15]求是科技.單片機典型模塊設(shè)計實例導(dǎo)航[M].人民郵

103、電出版社,2004.</p><p>  [16]何力民系列單片機應(yīng)用系統(tǒng)設(shè)計系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學出版社,2000.</p><p>  [17]周航慈.單片機應(yīng)用程序設(shè)計技術(shù)”(修訂版)[M].北京航空航天大學出版社,2002.</p><p>  [18]李華等.單片機實用接口技術(shù)[M]. 北京:北京航空航天大學出版社,2002.&l

104、t;/p><p><b>  致 謝</b></p><p>  時光如白駒過隙,一眨眼,短暫而又充實的大學生活就要結(jié)束了。在這三年的時間里,我得到了很多,學到了很多。</p><p>  在這期間,我把所學的理論知識應(yīng)用到實踐中去并且用實踐來進一步檢驗理論。而且在我做畢業(yè)論文設(shè)計的過程中,老師對我一直都悉心指導(dǎo),老師為人和藹可親,學識淵博,

105、同時我也感謝在這曾經(jīng)教育過我的老師,在你們一絲不茍,細致嚴謹?shù)淖黠L中,我也漸漸受到你們的熏陶。他們精心的指導(dǎo)和嚴謹?shù)乃悸方o了我許多的啟發(fā)。</p><p>  最后也要感謝我們班一起生活學習的同學們,是你們給了我良好的學習氛圍,沒有你們的幫助和交流,我的畢業(yè)論文也不會如此順利地完成。你們是我這輩子不會忘記的好朋友。</p><p>  更加要感謝我辛勤工作的父母,是你們的汗水換來了我的美滿

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論