2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  題目:基于單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  由于超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而超聲波經(jīng)常用于距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實(shí)現(xiàn)。超聲波測

2、距系統(tǒng),可以應(yīng)用于汽車倒車、建筑施工工地以及一些工業(yè)現(xiàn)場的位置監(jiān)控,也可用于液位、井深、管道長度的測量等場合。利用超聲波檢測往往比較迅速、方便、計(jì)算簡單、易于做到實(shí)時(shí)控制,并且在測量精度方面能達(dá)到工業(yè)實(shí)用的要求。</p><p>  本文介紹了一種基于STC89C52單片機(jī)的超聲波測距系統(tǒng),闡述了超聲波測距系統(tǒng)的硬件電路部分的構(gòu)成、軟件設(shè)計(jì)思路及工作原理。硬件部分采用STC89C52 單片機(jī)作為主控單片機(jī),硬件電

3、路主要由發(fā)射電路、接收電路、顯示電路、報(bào)警電路等幾部分組成;軟件部分由主程序、顯示子程序、超聲波發(fā)射子程序、延遲子程序、計(jì)算子程序、報(bào)警程序等組成。該電路具有結(jié)構(gòu)簡單、操作方便、精度較高、應(yīng)用廣泛的特點(diǎn)。</p><p>  關(guān)鍵詞:超聲波;測距系統(tǒng);單片機(jī)</p><p><b>  Abstract</b></p><p>  Becaus

4、e of the strong point of ultrasonic energy consumption slow, medium of communication in the longer distance, thus frequently used ultrasonic distance measurement, such as the range finder and level measurement and so on

5、can be achieved by ultrasound. Ultrasonic Ranging System, can be used in car reversing, the construction site and the location of some industrial site monitoring, can also be used if the level, depth and length of the pi

6、peline, such as measurement occasions. Use of ultrason</p><p>  The paper describes an ultrasonic measuring system based on the STC89C52, it described an ultrasonic measuring system hardware circuit structur

7、e, working principle and software design methods. Hardware using STC89C52 microcontroller as a master MCU, the hardware circuit part includes main transmitter, receiver circuit, display circuit, warning circuit and so on

8、. The software part includes the main program, display subroutine, ultrasonic transmitter subroutine, delay subroutine, calculation subro</p><p>  Key Words:Ultrasonic wave;Ranging System;MCU</p><

9、p><b>  第1章 緒論</b></p><p>  1.1 測量距離的意義</p><p>  準(zhǔn)確而快速地測定任意兩個(gè)空間點(diǎn)間的距離,對人類活動(dòng)的許多方面都具有十分重要的意義。比如在生活中,你的身高是多少?購買的家具怎樣才能要適合自己家的需求?在生產(chǎn)中,如何為不同身高、胖瘦的人定制衣服?在科技方面,倒車?yán)走_(dá)達(dá)到所設(shè)定的距離就會(huì)報(bào)警等等,這些都需要進(jìn)行測量

10、才能夠解決問題。</p><p>  測量距離的方法有很多種,短距離的可以用尺,遠(yuǎn)距離的有激光測距等,超聲波測距適用于高精度的中長距離測量。目前測量距離一般都采用波在介質(zhì)中的傳播速度和時(shí)間關(guān)系進(jìn)行測量。常用的技術(shù)主要有紅外測距、激光測距和超聲波測距三種。紅外測距的優(yōu)點(diǎn)是便宜,易制,安全,缺點(diǎn)是精度低,距離近,方向性差。激光測距的優(yōu)點(diǎn)是精確,缺點(diǎn)是需要注意人體安全,且制作的難度較大,成本較高,而且光學(xué)系統(tǒng)需要保持干

11、凈,否則將影響測量。激光測距主要運(yùn)用于軍事方面。</p><p>  超聲波測距作為一種典型的非接觸測量方法,在很多場合,諸如工業(yè)自動(dòng)控制,建筑工程測量,一些工業(yè)現(xiàn)場的位置監(jiān)控,移動(dòng)機(jī)器人的研制,機(jī)器人視覺識(shí)別,倒車防撞雷達(dá),海洋測量,物體識(shí)別等方面得到廣泛的應(yīng)用,也可在潮濕高溫,多塵等惡劣環(huán)境下工作。例如:液位、厚度、管道長度等場合。與其它方法相比,如電磁的或光學(xué)的方法,它不受光線、被測對象顏色等影響。超聲波具

12、有方向性好,穿透能力強(qiáng),易于獲得較集中的聲能,在水中傳播距離遠(yuǎn)等特點(diǎn)。可用于測距,測速,清洗,焊接,碎石等。在醫(yī)學(xué),軍事,工業(yè),農(nóng)業(yè)上有很多的應(yīng)用。對于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環(huán)境下有一定的適應(yīng)能力。特別是應(yīng)用于空氣測距,由于空氣中波速較慢,其回波信號(hào)中包含的沿傳播方向上的結(jié)構(gòu)信息很容易檢測出來,具有很高的分辨力,因而其準(zhǔn)確度也比其它方法相對要高。</p><p>  1.2 基于單片

13、機(jī)的超聲波測距系統(tǒng)</p><p>  1.2.1 單片機(jī)概述</p><p>  單片機(jī)的全稱為單片微型計(jì)算機(jī)(Single Chip Microcomputer),又稱微控制器(Micro Controller Unit,簡稱MCU),它是微型計(jì)算機(jī)一個(gè)很重要的分支。將計(jì)算機(jī)的中央處理器(CPU)、存儲(chǔ)器、各種輸入/輸出接口(并行I/O口、串行I/O口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、A/D

14、轉(zhuǎn)換器等)、系統(tǒng)時(shí)鐘及系統(tǒng)總線等基本部件微型化并集成到一塊硅片上,且這樣一塊芯片具有微型計(jì)算機(jī)的功能,則稱為單片機(jī)微型計(jì)算機(jī),通常稱為單片機(jī)。</p><p>  自1976年單片機(jī)誕生以來,世界各大半導(dǎo)體公司推出的單片機(jī)已有幾十個(gè)系列幾百種產(chǎn)品。隨著科學(xué)技術(shù)的發(fā)展,單片機(jī)的功能越來越強(qiáng)大,集成度越來越高,應(yīng)用也越來越廣,單片機(jī)經(jīng)歷了4位、8位、16位和32位四個(gè)階段?,F(xiàn)在,4位單片機(jī)僅在一些功能較簡單的系統(tǒng)中出

15、現(xiàn),市場上主流的是8位、16位和32位單片機(jī)。</p><p>  單片機(jī)的特點(diǎn)主要有:高集成度,體積小,高可靠性;控制功能強(qiáng);低電壓、低功耗,便于生產(chǎn)便攜式產(chǎn)品;易擴(kuò)展;優(yōu)異的性能價(jià)格比。目前,單片機(jī)的應(yīng)用領(lǐng)域主要包括:儀器儀表、家用電器、節(jié)能裝置、機(jī)器人、工業(yè)控制、計(jì)算機(jī)網(wǎng)絡(luò)和通信等諸多領(lǐng)域。單片機(jī)的應(yīng)用是不言而喻的。</p><p>  1.2.2 單片機(jī)的發(fā)展趨勢</p>

16、;<p>  近年來,隨著單片機(jī)在我國的推廣,以其簡單實(shí)用、功能強(qiáng)、體積小而日益廣泛的被廣大設(shè)計(jì)師采用,尤其在控制領(lǐng)域中的應(yīng)用更為突出。單片機(jī)出現(xiàn)的歷史并不長,但發(fā)展十分迅猛,在集成度、功能、速度、可靠性、應(yīng)用領(lǐng)域等全方位向更高水平發(fā)展。目前單片機(jī)已用于工業(yè)控制、機(jī)電一體化設(shè)備、儀器儀表、信號(hào)處理、現(xiàn)代兵器、交通能源、商用設(shè)備、醫(yī)療設(shè)備及家用電器等各個(gè)領(lǐng)域,隨著單片機(jī)性能的不斷提高,它的應(yīng)用將會(huì)更加廣泛。單片機(jī)技術(shù)發(fā)展非常

17、快,所以目前的產(chǎn)品都致力于在功能全面、技術(shù)先進(jìn)、操作簡便、安全可靠、價(jià)格合理等方面進(jìn)行仔細(xì)研究,精心設(shè)計(jì);及時(shí)掌握最新的單片機(jī)技術(shù),在條件允許的情況下,盡可能地利用最新的單片機(jī)技術(shù)來研制其應(yīng)用系統(tǒng),再利用單片機(jī)體積小、價(jià)格低、功能強(qiáng)等特點(diǎn),以保證所設(shè)計(jì)的產(chǎn)品在未來的一段時(shí)間內(nèi)仍具生命力。在生活和生產(chǎn)的各個(gè)領(lǐng)域中,凡是有自動(dòng)控制要求的地方都會(huì)有單片機(jī)的身影出現(xiàn);從簡單到復(fù)雜,從空中、地面到地下,凡是能想象到的地方幾乎都有使用單片機(jī)的需求。

18、它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。</p><p>  因此,本次基于單片機(jī)的超聲波測距系統(tǒng)的設(shè)計(jì)具有一定的實(shí)用和參考價(jià)值。</p><p>  1.2.3 基于單片機(jī)的超聲波測距系統(tǒng)的優(yōu)點(diǎn)與缺陷</p><p>  現(xiàn)在超聲波測距系統(tǒng)越來越注重其實(shí)用性,因此近年來單片機(jī)和超聲波測距系統(tǒng)開始緊密結(jié)合

19、起來。比如說,汽車內(nèi)置的倒車防撞系統(tǒng),潛水艇的音波發(fā)射系統(tǒng),醫(yī)學(xué)器械的探傷系統(tǒng)等等,現(xiàn)在都在大量使用單片機(jī)來完成其各個(gè)任務(wù)。這說明,現(xiàn)在在超聲波測距方面,單片機(jī)的使用正在成為主流。這可歸結(jié)為兩個(gè)原因:一是單片機(jī)的成本低廉,對于現(xiàn)如今測距系統(tǒng)在很多領(lǐng)域都大量使用的形式下,單片機(jī)所節(jié)省的制作成本可以更好地用于其它方面,大大提高了社會(huì)資源的合理分配:二是單片機(jī)系統(tǒng)方便快捷,現(xiàn)在所使用的單片機(jī)系統(tǒng),絕大部分都可以實(shí)現(xiàn)程序的修改,因此單片機(jī)的使用

20、使測距系統(tǒng)更能體現(xiàn)其靈活性,也使設(shè)計(jì)出的單片機(jī)系統(tǒng)能廣泛適用于各個(gè)領(lǐng)域。</p><p>  然而超聲波測距在實(shí)際應(yīng)用也有很多局限性,這都影響了超聲波測距的精度。一是超聲波在空氣中衰減極大,由于測量距離的不同,造成回波信號(hào)的起伏,使回波到達(dá)時(shí)間的測量產(chǎn)生較大的誤差;二是超聲波脈沖回波在接收過程中被極大地展寬,影響了測距的分辨率,尤其是對近距離的測量造成較大的影響。其他還有一些因素,諸如環(huán)境溫度、風(fēng)速等也會(huì)對測量造

21、成一定的影響,這些因素都限制了超聲波測距在一些對測量精度要求較高的場合的應(yīng)用。</p><p>  對于現(xiàn)如今高速發(fā)展的科學(xué)技術(shù)和越來越智能化的社會(huì)生活來說,超聲波測量技術(shù)還需要不斷發(fā)展,來滿足社會(huì)進(jìn)步的需要?,F(xiàn)階段的超聲波測距還沒有到達(dá)頂峰,還有很大的發(fā)展空間,而怎樣實(shí)現(xiàn)超聲波測量技術(shù)的更智能化,更實(shí)用性,是今后超聲波測量技術(shù)的發(fā)展方向。舉例來說,目前,軍事領(lǐng)域中,潛水艇的超聲波測距系統(tǒng)還需要完善其隱蔽性等性能

22、;勘探領(lǐng)域中,還需要克服地形等環(huán)境因素所造成的影響;醫(yī)學(xué)領(lǐng)域中,如超聲波探傷技術(shù),還需要進(jìn)一步提高其測量精度。這些都是現(xiàn)在超聲波測量技術(shù)的不完美之處,需要進(jìn)一步改進(jìn)。所以超聲波測距作為一種非常重要的技術(shù)在各個(gè)領(lǐng)域都有很大的發(fā)展空間。</p><p>  1.2.4 超聲波測距原理</p><p>  超聲測距從原理上可分為共振式、脈沖反射式兩種。由于共振法的應(yīng)用要求復(fù)雜。在這里使用脈沖反射

23、式。</p><p>  這里利用的超聲波測距原理是通過超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí)。超聲波在空氣中傳播。途中碰到障礙物就立即返回來。超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為C,而根據(jù)計(jì)時(shí)器記錄的測出發(fā)射和接收回波的時(shí)間差t。就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離S。即:S= C×t / 2。聲速確定后,只要測得超聲波往返的時(shí)間,即可求得距離。這就是所謂的

24、時(shí)間差測距法。由于超聲波也是一種聲波。其聲速c與溫度有關(guān)。在使用時(shí),如果溫度變化不大。則可認(rèn)為聲速是基本不變的。如果測距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?lt;/p><p><b>  1.3設(shè)計(jì)內(nèi)容</b></p><p>  此設(shè)計(jì)是以單片機(jī)為控制核心,設(shè)計(jì)一套超聲波測距系統(tǒng),能夠?qū)崿F(xiàn)測出該系統(tǒng)與被測物體之間的距離的功能。系統(tǒng)包括超聲波發(fā)射器、超聲波接收

25、器、單片機(jī)控制單元、顯示電路、報(bào)警電路。用單片機(jī)控制超聲波的發(fā)射、接收電路以及進(jìn)行數(shù)據(jù)處理,再用液晶顯示屏進(jìn)行數(shù)據(jù)的顯示。</p><p><b>  第2章 設(shè)計(jì)方案</b></p><p>  2.1 設(shè)計(jì)的目的和要求</p><p>  2.1.1 設(shè)計(jì)的目的</p><p>  使用單片機(jī)的控制功能和用超聲波傳感

26、器實(shí)現(xiàn)測量距離,并實(shí)現(xiàn)超聲波發(fā)射及其遇到障礙物發(fā)生反射形成回波信號(hào),并根據(jù)超聲波在介質(zhì)中的傳播速度及超聲波從發(fā)射到接收到回波的時(shí)間,計(jì)算出發(fā)射點(diǎn)距障礙物的距離。</p><p>  2.1.2 設(shè)計(jì)的要求</p><p>  1、單片機(jī)通過對超聲波傳感器和超聲波距離模塊的控制能夠測量距離</p><p>  2、將測得的距離在液晶顯示器上顯示出來。</p>

27、;<p><b>  2.2 設(shè)計(jì)思路</b></p><p>  首先用單片機(jī)控制超聲波的發(fā)射、接收電路以及進(jìn)行數(shù)據(jù)處理,再用液晶顯示屏進(jìn)行數(shù)據(jù)的顯示。</p><p>  2.2.1 硬件部分</p><p>  由第一章所介紹到的超聲波測距原理和公式可以推出本超聲波測距系統(tǒng)的結(jié)構(gòu)必須要有超聲波發(fā)射器、超聲波接收器、單片機(jī)控制

28、單元、顯示電路、報(bào)警電路。由此可畫出簡易的結(jié)構(gòu)框圖:(如圖2-1所示)</p><p>  圖2-1 超聲波測距系統(tǒng)結(jié)構(gòu)圖</p><p>  單片機(jī)控制單元發(fā)出40kHZ的方波信號(hào),信號(hào)傳輸至發(fā)射換能器,將方波信號(hào)轉(zhuǎn)換為超聲波信號(hào)。</p><p>  超聲波發(fā)射器由多諧振蕩器和功率放大器組成,負(fù)責(zé)發(fā)射超聲波信號(hào)。</p><p>  超聲

29、波接收器由回波放大接收電路及比較電路組成,回波放大接收電路負(fù)責(zé)將返回的超聲波接收并進(jìn)行放大處理,比較電路負(fù)責(zé)對放大后的信號(hào)進(jìn)行分析處理。</p><p>  顯示電路選擇使用LED發(fā)光二極管構(gòu)成的LCD液晶顯示屏。</p><p>  報(bào)警電路由一個(gè)運(yùn)算放大器,一個(gè)發(fā)光二極管組成。如果出現(xiàn)如距離過遠(yuǎn)或干擾過大等接收不到返回信號(hào)的情況,報(bào)警電路工作,發(fā)光二極管亮起,出現(xiàn)警報(bào)。</p&g

30、t;<p>  2.2.2 軟件部分</p><p>  系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì),主要包括主程序設(shè)計(jì)、中斷服務(wù)子程序、外部中斷服務(wù)子程序、距離計(jì)算子程序、顯示子程序、延時(shí)子程序和報(bào)警子程序設(shè)計(jì)等。</p><p>  主程序是整個(gè)程序設(shè)計(jì)的核心,主要功能就是調(diào)用各個(gè)子程序進(jìn)行運(yùn)算,控制它們完成各自的功能。</p><p>  中斷服務(wù)子程序和延時(shí)子

31、程序主要用于判斷發(fā)射時(shí)間、接收時(shí)間和延時(shí)時(shí)間,避免超聲波從發(fā)射器直接傳送到接收器而引起直射波觸發(fā)。也就是說接收器接收到的不是反射波,而是直接接到發(fā)射波。</p><p>  距離計(jì)算子程序是對傳感器到目標(biāo)物體之間的距離進(jìn)行計(jì)算測量。</p><p>  顯示子程序是把計(jì)算后的結(jié)果顯示出來。</p><p>  報(bào)警子程序是被測量的物體超出了測距系統(tǒng)的測量范圍進(jìn)行報(bào)警

32、。</p><p>  2.3 重要功能模塊的選取</p><p>  這里分別對一些重要的模塊進(jìn)行比較,擇優(yōu)選取。</p><p>  2.3.1 單片機(jī)的選用</p><p>  單片機(jī)是超聲波測距系統(tǒng)的控制核心,所以對它的選擇十分重要。</p><p>  超聲波測距常用的單片機(jī)有AT89C51、STC89C52

33、、AT89S52等。首先先簡單介紹一下這三款單片機(jī)。</p><p>  1、AT89C51:AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器。</p><p>  2、AT89S52:AT89S52是一種低功耗、高性能CMOS 8位微控制器

34、,具有8K 在系統(tǒng)可編程Flash 的存儲(chǔ)器。</p><p>  3、STC89C52:STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash的存儲(chǔ)器。</p><p>  三者都可以作為超聲波測距系統(tǒng)中所用的單片機(jī),而且從定義上講,很難看出誰優(yōu)誰劣,那么在本次設(shè)計(jì)前,通過在網(wǎng)上查找相關(guān)的資料,我對這三款單片機(jī)進(jìn)行了比較細(xì)致的對比:</p>

35、;<p> ?、貯T89C51和AT89S52比較:</p><p>  首先這兩種單片機(jī)都是51架構(gòu),可以說前者是后者的一個(gè)子集</p><p>  1)AT89C51:FLASH存儲(chǔ)器4k;RAM 128;2個(gè)定時(shí)計(jì)數(shù)器;6個(gè)中斷源;單dptr;無內(nèi)部看門狗;編程方式不支持isp。</p><p>  2)AT89S52:FLASH存儲(chǔ)器8k;RA

36、M 256;3個(gè)定時(shí)計(jì)數(shù)器;8個(gè)中斷源;雙dptr;有內(nèi)部看門狗;編程方式支持isp。</p><p>  比較結(jié)果:具有ISP功能的單片機(jī)芯片,可以通過簡單的下載線直接在電路板上給芯片寫入或者擦除程序,并且支持在線調(diào)試,所以可以說AT89S52要比AT89C51用的更為廣泛,方便。</p><p> ?、贏T89S52和STC89C52比較:</p><p>  

37、AT89S52單片機(jī):8K字節(jié)程序存儲(chǔ)空間;256字節(jié)數(shù)據(jù)存儲(chǔ)空間;沒有內(nèi)帶EEPROM存儲(chǔ)空AT89S52間。</p><p>  STC89C52單片機(jī):8K字節(jié)程序存儲(chǔ)空間;512字節(jié)數(shù)據(jù)存儲(chǔ)空間;內(nèi)帶2K字節(jié)EEPROM存儲(chǔ)空間;可直接使用串口下載。</p><p>  這樣一來結(jié)果很明顯STC89C52單片機(jī)要比AT89S52單片機(jī)方便的很多。所以本次設(shè)計(jì)采用STC89C52單片

38、機(jī)來作為超聲波測距系統(tǒng)的核心。</p><p>  2.3.2 發(fā)射器和接收器</p><p>  發(fā)射器和接收器是超聲波測距系統(tǒng)的重要工具,只有通過它才能實(shí)現(xiàn)測距功能,所以對于他的選取也非常重要。</p><p>  以前發(fā)射器和接收器需要分開設(shè)計(jì)電路和程序,非常繁瑣、麻煩?,F(xiàn)在專門有一種超聲波模塊HC-SR04,通過這個(gè)模塊既可以實(shí)現(xiàn)發(fā)射器的功能同時(shí)還能實(shí)現(xiàn)接收

39、器的功能,既方便,又簡單。</p><p>  這種HC-SR04超聲波模塊特點(diǎn):</p><p>  典型工作用電壓:5V。 </p><p>  超小靜態(tài)工作電流:小于2mA。 </p><p>  感應(yīng)角度:不大于15度 。 </p><p>  探測距離:2cm-400cm </p><p

40、>  高精度:可達(dá)0.3cm。</p><p>  盲區(qū)(2cm)超近。 </p><p>  完全謙容GH-311防盜模塊。 </p><p>  帶金屬USB外殼,堅(jiān)固耐用。</p><p>  所以此次設(shè)計(jì)選擇HC-SR04超聲波模塊來作為超聲波測距系統(tǒng)的發(fā)射器和接收器。</p><p>  第3章 硬件

41、電路設(shè)計(jì)</p><p>  硬件部分主要由四部分組成,控制單元核心采用STC89C52RC;超聲波發(fā)射器和接收器用一個(gè)HC-SR04超聲波模塊來實(shí)現(xiàn)其功能;顯示模塊采用LCD1602液晶顯示屏;報(bào)警模塊采用蜂鳴器作為本次設(shè)計(jì)的報(bào)警裝置。</p><p>  3.1 系統(tǒng)硬件設(shè)計(jì)總框圖分析</p><p>  硬件設(shè)計(jì)部分具體包括單片機(jī)最小系統(tǒng)、顯示電路、超聲波模塊

42、和報(bào)警電路。硬件設(shè)計(jì)總框圖如圖3-1所示。</p><p>  圖3-1 系統(tǒng)硬件設(shè)計(jì)總框圖</p><p>  3.2 處理器STC89C52</p><p>  本設(shè)計(jì)采用STC89C52單片機(jī)作為控制核心,利用其擴(kuò)展口連接相關(guān)的外圍電路,通過不同的程序可以實(shí)現(xiàn)不同的功能。下面就來了解一下單片機(jī)STC89C52。</p><p>  3.

43、2.1 單片機(jī)STC89C52的特點(diǎn)</p><p>  STC89C52RC 單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng) 8051 單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。</p><p>  1、增強(qiáng)型6時(shí)鐘/機(jī)器周期,12時(shí)鐘/機(jī)器周期8051CPU:</p><p>  1個(gè)機(jī)器周期=6個(gè)震蕩周期=1

44、2時(shí)鐘周期。</p><p>  2、工作電壓:5.5V-3.4V(5V單片機(jī))/3.8V-2.0V(3V單片機(jī))。</p><p>  3、工作頻率范圍:0-40MHz,相當(dāng)于普通8051的0~80MHz。實(shí)際工作頻率可達(dá)48MHz。</p><p>  4、用戶應(yīng)用程序空間4K/8K/13K/16K/20K/32K/64K字節(jié)。</p><p

45、>  5、片上集成1280字節(jié)/512字節(jié)RAM。</p><p>  6、通用I/O口(32/36個(gè)),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉(普</p><p>  通8051傳統(tǒng)I/O口)P0口是漏極開路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。</p><p>  漏極開路即高阻狀態(tài),適用于輸入/輸出,其可獨(dú)立

46、輸入/輸出低電平和高阻狀態(tài),若需要產(chǎn)生高電平,則需使用外部上拉電阻或使用如LCX245等電平轉(zhuǎn)換芯片。同時(shí)具有很大的驅(qū)動(dòng)能力,可以作為緩沖器使用。</p><p>  7、ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器/仿真器可通過串口(P3.0/P3.1)直接下載用戶程序,8K程序3秒即可完成一片</p><p>  8、EEPROM功能:電可擦可編程只讀存儲(chǔ)器,一種掉電

47、后數(shù)據(jù)不丟失的存儲(chǔ)芯片。EEPROM可以在電腦上或?qū)S迷O(shè)備上擦除已有信息,重新編程。一般用在即插即用。</p><p>  9、具有看門狗功能:看門狗是用來自動(dòng)復(fù)位的一個(gè)定時(shí)器,只要在定時(shí)時(shí)</p><p>  間內(nèi)能夠接收到單片機(jī)的數(shù)據(jù)的,說明單片機(jī)沒有走死,如果走死了就收不到,那么看門狗對單片機(jī)進(jìn)行復(fù)位操作。</p><p>  10、內(nèi)部集成MAX810專用復(fù)

48、位電路(D版本才有),外部晶體20M以下時(shí),</p><p>  可省外部復(fù)位電路:不用你自己再設(shè)計(jì)外部復(fù)位電路了,這樣在設(shè)計(jì)時(shí)就方便很多了,省了外部復(fù)位電路,而且復(fù)位是非常可靠的。如果需要在外部有一個(gè)復(fù)位按鍵,在適當(dāng)?shù)臅r(shí)候需要按復(fù)位按鍵實(shí)現(xiàn)復(fù)位,就不能用內(nèi)部的復(fù)位電路了。用內(nèi)部復(fù)位電路時(shí),RESET腳外部接一個(gè)下接電阻,在下載程序時(shí),有一個(gè)選項(xiàng),選擇內(nèi)部/外部復(fù)位電路就行了。</p><p&

49、gt;  所以由它作為本次設(shè)計(jì)的核心還是非常合適的。接下來介紹一下這款單片機(jī)的引腳。</p><p>  3.2.2 STC89C52管腳說明</p><p>  本設(shè)計(jì)選用的是40個(gè)引腳雙列直插式封裝形式的STC89C52單片機(jī),該單片機(jī)STC89C52的引腳如圖3-2所示。</p><p>  圖3-2 STC89C52單片機(jī)引腳圖</p>&l

50、t;p>  各引腳功能說明如下:</p><p>  1、主電源引腳(2根):</p><p>  Vcc(40引腳):電源輸入,接+5v電源</p><p>  Vss(20引腳):接地線</p><p>  2、外接晶振引腳(2根):</p><p>  XTAL1(Pin19):片內(nèi)振蕩電路的輸入端<

51、/p><p>  XTAL2(Pin20):片內(nèi)振蕩電路的輸出端</p><p>  3、控制引腳(4根):</p><p>  RST/VPP(Pin9):復(fù)位引腳,當(dāng)輸入連續(xù)兩個(gè)機(jī)器周期以上高電平時(shí)將使單片機(jī)復(fù)位。</p><p>  ALE/(Pin30):地址鎖存控制信號(hào)。是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在Flash編程

52、時(shí),此引腳()也用作編程輸入脈沖。</p><p>  在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來</p><p>  作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。</p><p>  (Pin29):外部程序存儲(chǔ)器讀選通信號(hào) 。</p><p>  /VPP(Pin3

53、1):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。</p><p>  4、可編程輸入/輸出引腳(32根):</p><p>  STC89C52單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。</p><p>  P0端口(P0.0~P0.7,39~32引腳):

54、P0口是一個(gè)漏極開路的8位雙</p><p>  向I/O口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL負(fù)載,對端口P0寫入“1”時(shí),可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時(shí),P0口內(nèi)部上拉電阻有效。在Flash ROM編程時(shí),P0端口接收指令字節(jié);而在校驗(yàn)程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。</p><p>  P1

55、端口(P1.0~P1.7,1~8引腳):P1口是一個(gè)帶內(nèi)部上拉電阻的8</p><p>  位雙向I/O口。P1的輸出緩沖器可驅(qū)動(dòng)(吸收或者輸出電流方式)4個(gè)TTL輸入。對端口寫入1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時(shí),因?yàn)橛袃?nèi)部上拉電阻,那些被外部拉低的引腳會(huì)輸出一個(gè)電流()。</p><p>  此外,P1.0和P1.1還可以作為定時(shí)器/計(jì)數(shù)器

56、2的外部技術(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體參見表3-1。</p><p>  表3-1 P1.0和P1.1引腳復(fù)用功能</p><p>  P2端口(P2.0~P2.7,21~28引腳):P2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)TTL輸入。對端口寫入1時(shí),通過內(nèi)部的上拉電阻把端口拉到

57、高電平,這時(shí)可用作輸入口。P2作為輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流()。</p><p>  在訪問外部程序存儲(chǔ)器和16位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行“MOVX @DPTR”指令)時(shí),P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行“MOVX @R1”指令)時(shí),P2口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中的P2寄存器的內(nèi)容),在整個(gè)訪問期間不會(huì)改變。<

58、/p><p>  在對Flash ROM編程和程序校驗(yàn)期間,P2也接收高位地址和一些控制信號(hào)。</p><p>  P3端口(P3.0~P3.7,10~17引腳):P3是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)TTL輸入。對端口寫入1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可用作輸入口。P3做輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)

59、拉低的引腳會(huì)輸入一個(gè)電流()。</p><p>  在對Flash ROM編程或程序校驗(yàn)時(shí),P3還接收一些控制信號(hào)。</p><p>  P3口除作為一般I/O口外,還有其他一些復(fù)用功能,如表3-2所示。</p><p>  表3-2 P3口引腳復(fù)用功能</p><p>  3.3 單片機(jī)最小系統(tǒng)設(shè)計(jì)</p><p>

60、;  3.3.1 單片機(jī)最小系統(tǒng)</p><p>  單片機(jī)是一個(gè)智能化的集成芯片,雖然集成了很多電路,其本質(zhì)上還是一個(gè)電子元件,仍舊不能獨(dú)立運(yùn)行。既然是電子元件,那么,就必須要外連一些電路,才能使單片機(jī)運(yùn)行起來,才能實(shí)現(xiàn)它的功能。這就像電阻一樣,如果把一個(gè)電阻獨(dú)立的放著,是沒有任何意義的,只有將電阻接在電路中,才能實(shí)現(xiàn)它的功能,究竟是分壓,分流,還是限流,具體的還得看詳細(xì)電路。所以說,我們把這種能使單片機(jī)工作的

61、最簡電路,叫做單片機(jī)的最小系統(tǒng)。</p><p>  一般單片機(jī)的最小系統(tǒng)包括晶振電路,復(fù)位電路,電源電路和串口電路,部分的可能包括擴(kuò)展I/O口的板子。</p><p>  3.3.2 本次設(shè)計(jì)中的單片機(jī)最小系統(tǒng)</p><p>  本次設(shè)計(jì)中的單片機(jī)最小系統(tǒng)由一片STC89C52單片機(jī),電源電路,復(fù)位電路和晶振電路組成。圖3-3為本設(shè)計(jì)的單片機(jī)最小系統(tǒng)結(jié)構(gòu)原理圖。

62、</p><p>  圖3-3 單片機(jī)最小系統(tǒng)結(jié)構(gòu)原理圖</p><p>  電源電路為單片機(jī)提供電源,由一個(gè)開關(guān),一個(gè)1k的電阻和一個(gè)發(fā)光二極管組成,燈亮表示電路已經(jīng)通電,開始工作。圖3-4為電源電路的結(jié)構(gòu)原理圖。</p><p>  圖3-4 電源電路結(jié)構(gòu)原理圖</p><p>  晶振電路為單片機(jī)提供時(shí)鐘標(biāo)準(zhǔn),使各部分能協(xié)調(diào)工作;不過晶

63、振并不能獨(dú)立的使用,必須配合合適的負(fù)載電容,否則會(huì)產(chǎn)生錯(cuò)誤,或者是使晶振不能工作。對于51單片機(jī)一般選擇不大于40pF的瓷片電容,所以晶振電路由兩個(gè)30pF的電容,和一個(gè)晶振組成。圖3-5為晶振電路的原理結(jié)構(gòu)圖。</p><p>  圖3-5 晶振電路結(jié)構(gòu)原理圖</p><p>  復(fù)位電路模塊為單片機(jī)提供初始化功能。復(fù)位電路由一個(gè)復(fù)位開關(guān),一個(gè)10 μF的電容,和一個(gè)10k的電阻組成。在

64、設(shè)計(jì)51單片機(jī)的時(shí)候,規(guī)定在51單片機(jī)的第9引腳為復(fù)位功能引腳。當(dāng)在這個(gè)引腳有連續(xù)兩個(gè)以上機(jī)器周期(2μs以上)的高電平時(shí),這個(gè)單片機(jī)就會(huì)復(fù)位。所以電路的設(shè)計(jì)就必須要在電容充電的瞬間,是導(dǎo)通,在這個(gè)瞬間,電流通過電容器,然后向電阻方向放電,此時(shí),電容的“-”端就能有一個(gè)很高的電勢,在高于3V的情況下,均可認(rèn)為是高電平。而電容的充電是有時(shí)間的,當(dāng)選擇合適的電容,其充電時(shí)間會(huì)大于2μs,這時(shí),復(fù)位的條件就成立了。圖3-6為復(fù)位電路的結(jié)構(gòu)原理

65、圖。</p><p>  圖3-6 復(fù)位電路結(jié)構(gòu)原理圖</p><p>  上拉電阻:上拉電阻就是從電源高電平引出的電阻接到輸出端,因?yàn)?1單片機(jī)P0口內(nèi)部是漏極開路型(作I/O口用時(shí))。也就是說P0口內(nèi)部沒有電阻,其本身只能輸出低電平,不能輸出高電平,所以想要讓顯示電路正常且穩(wěn)定的工作,需要使用上拉電阻,如果不接上拉電阻的話,LED顯示燈可能不亮。</p><p>

66、;  通過3-2所設(shè)計(jì)的單片機(jī)最小系統(tǒng)結(jié)構(gòu)原理圖,對其進(jìn)行了實(shí)物的焊接,圖3-7為已焊好的單片機(jī)最小系統(tǒng)。</p><p>  圖3-7 已焊好的單片機(jī)最小系統(tǒng)</p><p>  3.4 超聲波模塊HC-SR04</p><p>  HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,其測距高度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與

67、控制電路 。</p><p><b>  基本工作原理:</b></p><p>  HC-SR04超聲波模塊的結(jié)構(gòu)原理圖和實(shí)物圖分別如圖3-8、3-9所示:</p><p>  圖3-8 HC-SR04結(jié)構(gòu)原理圖 圖3-9 HC-SR04的實(shí)物圖</p><p><b>  1、管

68、腳說明:</b></p><p> ?。?)VCC:接5V電源。</p><p> ?。?)TRIG為觸發(fā)控制信號(hào)輸入。</p><p> ?。?)ECHO為回響信號(hào)輸出。</p><p> ?。?)GND接地線。</p><p><b>  2、基本工作原理:</b></p&g

69、t;<p> ?。?)采用I/O口TRIG觸發(fā)測距,給最少10 μs的高電平信號(hào)。</p><p>  (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測是否有信號(hào)返回。</p><p> ?。?)有信號(hào)返回,通過 I/O口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測試距離 =(高電平時(shí)間 × 聲速(340M/S))/ 2。</p&g

70、t;<p>  3、電氣參數(shù)如表3-3所示</p><p>  表3-3 超聲波模塊HC-SR04電氣參數(shù)</p><p>  3.5 顯示模塊LCD1602</p><p>  液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用。</p><p>  本設(shè)計(jì)采用的

71、是LCD1602,它是一種用5x7點(diǎn)陣圖形來顯示字符的液晶顯示器,它的顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符(顯示字符和數(shù)字)。LCD1602的實(shí)物圖和結(jié)構(gòu)原理圖分別如圖3-10、3-11所示。</p><p><b> ?。ㄕ妫?lt;/b></p><p><b>  (背面)</b></p><p>  圖

72、3-10 LCD1602的實(shí)物圖</p><p>  圖3-11 LCD1602的結(jié)構(gòu)原理圖</p><p>  LCD1602管腳說明:</p><p>  第1腳:GND為電源地</p><p>  第2腳:VCC接5V電源正極</p><p>  第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接

73、地電源時(shí)對比度最高,對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度</p><p>  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p>  第5腳:RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電

74、平時(shí)可以寫入數(shù)據(jù)。</p><p>  第6腳:E端為使能端,當(dāng)E端為高電平時(shí),讀取信息;當(dāng)E端由高電平跳變成低電平(下降沿)時(shí),液晶模塊執(zhí)行命令。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p>  第15腳:背光電源正極。</p><p>  第16腳:背光電源負(fù)極。</p><p>

75、;<b>  工作原理:</b></p><p>  1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊通過電壓以及調(diào)用程序?qū)ζ溥M(jìn)行控制,把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看

76、到字母“A”。</p><p><b>  控制命令表</b></p><p>  LCD1602液晶模塊內(nèi)部的控制器有11條控制指令,如表3-4所示。</p><p>  表3-4 LCD1602控制指令</p><p>  I/D=0表示寫入數(shù)據(jù)后光標(biāo)左移,I/D=1表示寫入數(shù)據(jù)后光標(biāo)右移。 </p>

77、<p>  S=0 表示寫入數(shù)據(jù)后顯示屏不移動(dòng),S=1時(shí),如果I/D =1且有字符寫入時(shí)顯示屏左移,否則右移。(顯示屏整體左移或右移,其實(shí)就是屏幕上所有文字左移或右移) </p><p>  D=1 顯示屏開,D=0 顯示屏關(guān)。 </p><p>  C=1 時(shí)光標(biāo)出現(xiàn)在地址計(jì)數(shù)器所指的位置,C=0時(shí)光標(biāo)不出現(xiàn)。 </p><p>  B=1 時(shí)光標(biāo)閃爍

78、,B=0時(shí)光標(biāo)不閃爍。 </p><p>  S/C=0 ,RL=0時(shí)光標(biāo)左移1位,地址計(jì)數(shù)器減1。(光標(biāo)所在位置一般為地址計(jì)數(shù)器位置) </p><p>  S/C=0,RL=1時(shí)光標(biāo)右移1位,地址計(jì)數(shù)器加1 。 </p><p>  S/C=1,RL=0時(shí)顯示器上字符全部左移1個(gè)字符位置,光標(biāo)保持不動(dòng)。 </p><p>  S/C=1,

79、RL=1時(shí)顯示器上字符全部右移1個(gè)字符位置,光標(biāo)保持不動(dòng)。 </p><p>  DL=1 時(shí)數(shù)據(jù)長度為8位,DL=0 時(shí)為使用D7-D4共4位,分兩次送一字節(jié)。 </p><p>  N=0為單行顯示,N=1時(shí)為雙行顯示。 </p><p>  F=1 時(shí)為5×10點(diǎn)陣字體,F(xiàn)=0 時(shí)為5×7點(diǎn)陣字體。 </p><p>

80、;  BF=1 時(shí)LCD忙,此時(shí)模塊不能接收命令或者數(shù)據(jù);BF=0 時(shí)LCD就緒。 </p><p><b>  3.6 報(bào)警模塊</b></p><p>  本設(shè)計(jì)采用的是蜂鳴器9015作為報(bào)警模塊的主要元件,蜂鳴器與家用電氣上的喇叭在用法上有相似的地方,通常工作電流比較大,在本設(shè)計(jì)中,因?yàn)檩敵龅碾娦盘?hào)很非常小,電路上的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,所以要產(chǎn)生人耳

81、能接收到的聲音信號(hào),還需將信號(hào)進(jìn)行放大處理。那么其中就需要增加一個(gè)放大電路,用一個(gè)三極管就可以實(shí)現(xiàn)放大的功能。信號(hào)從單片機(jī)P1.0端口輸出,經(jīng)三極管放大后將信號(hào)放大,驅(qū)動(dòng)蜂鳴器產(chǎn)生聲音信號(hào),達(dá)到報(bào)警的目的。報(bào)警電路的結(jié)構(gòu)原理圖如圖3-12所示。</p><p>  圖3-12 報(bào)警電路的結(jié)構(gòu)原理圖</p><p>  3.7 超聲波測距系統(tǒng)的實(shí)物圖</p><p>

82、;  根據(jù)硬件部分的結(jié)構(gòu)原理圖進(jìn)行焊接電路板,焊好的硬件電路板實(shí)物圖如圖3-13所示。</p><p>  圖3-13 已焊好的超聲波測距系統(tǒng)硬件電路實(shí)物圖</p><p>  第4章 軟件程序設(shè)計(jì)</p><p><b>  4.1 概述</b></p><p>  軟件部分采用C語言進(jìn)行單片機(jī)的程序設(shè)計(jì)。C語言是一種

83、編譯型程序設(shè)計(jì)語言,它兼顧了高級語言的特點(diǎn),并具備匯編語言的功能。用C語言來編寫本程序,方便進(jìn)行改進(jìn)和擴(kuò)充,而且便于閱讀。采用C語言也不必對單片機(jī)的硬件接口的結(jié)構(gòu)有很深入的了解,編譯器可以自動(dòng)完成變量的存儲(chǔ)單元的分配。</p><p>  程序采用模塊化設(shè)計(jì),也就是把一個(gè)完整的程序分解為若干個(gè)功能相對獨(dú)立的較小的程序模塊,然后再對它們分別進(jìn)行設(shè)計(jì)、編制和調(diào)試,最后再把這些調(diào)試好的程序模塊連成一個(gè)大的程序。這種方法

84、設(shè)計(jì)和調(diào)試非常方便,一個(gè)模塊可以多個(gè)程序所共享。</p><p>  4.2 頭文件和全局變量</p><p>  這部分的程序包括頭文件、宏定義、各個(gè)函數(shù)定義、特殊寄存器定義以及全局變量的聲明。</p><p>  #include <reg52.h> //調(diào)用52庫函數(shù)</p><p>  #i

85、nclude <intrins.h></p><p>  #define uint unsigned int //宏定義</p><p>  #define uchar unsigned char </p><p>  sbit rs=P2^0; //定義通信端口<

86、/p><p>  sbit en=P2^2;</p><p>  sbit rw=P2^1;</p><p>  sbit feng=P1^0;</p><p>  sbit TRIG=P1^1;</p><p>  sbit ECHO=P1^2; </p><p>  bit flag =0;

87、 //定義標(biāo)志位</p><p>  int S,SHANG=80,XIA=10; //定義整型 距離s=0 上限80下限10</p><p>  uint time=0; </p><p>  uint timer=0;</p><p> 

88、 uchar num,num1;</p><p>  uchar code table[ ]="SHANG= XIA= "; //定義字符串</p><p>  uchar code table1[ ]=" S= CM";</p><p>  void init ( )

89、 //初始化函數(shù)</p><p>  delay ( ) //延遲程序</p><p>  void Conut( ) //距離計(jì)算子程序</p><p>  void write_com( )

90、 //寫口程序</p><p>  void write_date( ) //寫數(shù)據(jù)程序</p><p>  void zd0 ( ) interrupt 1 //溢出中斷</p><p>  void zd3 ( ) inter

91、rupt 3 //中斷程序 啟用超聲波模塊</p><p>  void write_sfm ( ) //距離顯示子程序</p><p><b>  4.3 主程序</b></p><p>  主程序先對顯示屏清屏,然后對超聲波測距系統(tǒng)進(jìn)行初始化,對顯示屏寫數(shù)據(jù)

92、,第一行為上限和下限,第二行先顯示距離為s=000,準(zhǔn)備開始計(jì)數(shù)進(jìn)行測距,進(jìn)入循環(huán)計(jì)數(shù)并計(jì)算語句,把每次算出的距離寫入LCD1602中,若算出的距離超出上限80cm或下限10cm時(shí),啟用蜂鳴器報(bào)警電路報(bào)警。</p><p>  主程序流程圖如圖4-1所示。</p><p>  圖4-1 主程序流程圖</p><p><b>  4.4 初始化函數(shù)</

93、b></p><p>  超聲波測距計(jì)數(shù)并計(jì)算和每次向LCD1602寫數(shù)據(jù)必須要進(jìn)行清屏并初始化,否則會(huì)出現(xiàn)無法正常工作或者屏幕亂碼的情況。</p><p>  定時(shí)器的工作方式,定時(shí)的初值,中斷的允許以及對LCD1602的初始化都放在了初始化函數(shù)中,主函數(shù)一開始先調(diào)用這個(gè)函數(shù)進(jìn)行初始化,然后在進(jìn)行其他的處理。</p><p>  首先對定時(shí)器初始化,設(shè)T0為

94、工作方式1,也就是給TMOD賦值0x11,這樣同時(shí)啟用兩個(gè)定時(shí)器,同時(shí)設(shè)定2ms定時(shí),并允許中斷。然后寫口(輸入顯示字符的地址),再寫數(shù)據(jù)。</p><p>  4.5 顯示子程序和溢出中斷程序</p><p>  每次測到的距離都要在LCD1602中顯示出來,包括測到的數(shù)值小于下限和大于上限后啟用報(bào)警器所反饋的數(shù)值。液晶顯示模塊是一個(gè)慢顯示器件,所以要顯示字符時(shí)要先輸入顯示字符地址,也就

95、是告訴模塊在哪里顯示字符。如果沒有檢測到回波說明是溢出,這時(shí)候就要給一個(gè)中斷程序來停止此次檢測回波,開始檢測下一個(gè)回波,否則會(huì)出現(xiàn)錯(cuò)誤。超過所能測到的最大距離或者檢測不到回波可以顯示000來作為標(biāo)志。</p><p>  LCD1602寫操作時(shí)序圖如圖4-3所示。</p><p>  圖4-2 LCD1602 寫操作時(shí)序圖</p><p>  LCD1602內(nèi)部顯示

96、地址如圖4-3所示。</p><p>  圖4-3 LCD1602內(nèi)部顯示地址</p><p>  LCD1602的一般初始化(復(fù)位)過程:</p><p>  延時(shí)15mS,寫指令38H</p><p>  延時(shí)5mS,寫指令38H</p><p>  延時(shí)5mS,寫指令38H</p><p>

97、;  以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號(hào)</p><p>  寫指令38H:顯示模式設(shè)置</p><p>  寫指令08H:顯示關(guān)閉</p><p>  寫指令01H:顯示清屏</p><p>  寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置</p><p>  寫指令0CH:顯示開及光標(biāo)設(shè)置</p>&l

98、t;p>  也就是說要想正確向LCD1602顯示屏中寫數(shù)據(jù),就需要根據(jù)它的時(shí)序圖和每個(gè)字符所在的地址來寫。所以要先寫口,再寫數(shù)據(jù)。</p><p>  4.6 超聲波發(fā)射程序、T1中斷子程序和報(bào)警程序</p><p>  利用T1中斷程序來啟動(dòng)模塊,由于報(bào)警電路的三極管是PNP型,所以P1.0=0為低高電平時(shí)截止,為電平時(shí)才會(huì)導(dǎo)通。根據(jù)HC-SR04模塊的時(shí)序圖和說明并結(jié)合報(bào)警模塊放

99、大器的特點(diǎn),可以對程序進(jìn)行編寫。</p><p>  超聲波模塊時(shí)序圖:如圖4-4所示。</p><p>  圖4-4 超聲波模塊時(shí)序圖</p><p>  以上時(shí)序圖表明:只需要提供一個(gè)10 μs以上脈沖觸發(fā)信號(hào),該模塊內(nèi)部將發(fā)出8個(gè)40kHz周期電平并檢測回波。一旦檢測到有回波信號(hào)則輸出回響信號(hào)?;仨懶盘?hào)的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號(hào)到收到的回

100、響信號(hào)時(shí)間間隔可以計(jì)算得到距離。</p><p>  4.7 距離計(jì)算程序</p><p>  根據(jù)超聲波模塊的說明和工作原理,就可以對距離進(jìn)行計(jì)算。公式:距離 =高電平時(shí)間×聲速(340M/S)/ 2 。</p><p>  單片機(jī)時(shí)鐘晶振是11.0592 MHZ,所以它的時(shí)鐘周期就是1/11.0592 MS,定時(shí)器的機(jī)器周期就是12/11.0592,所

101、以計(jì)算出的時(shí)間應(yīng)該是所計(jì)數(shù)的個(gè)數(shù)×機(jī)器周期。</p><p><b>  第5章 系統(tǒng)的調(diào)試</b></p><p>  完成硬件和軟件部分的設(shè)計(jì)和編寫,接下來就要對所編寫的電路圖及程序進(jìn)行調(diào)試,以實(shí)現(xiàn)其功能。</p><p><b>  5.1 硬件的調(diào)試</b></p><p>  對

102、于硬件來說,進(jìn)行分部調(diào)試,這樣便于檢查錯(cuò)誤。因?yàn)楹负谜w再調(diào)試,如果調(diào)試中有錯(cuò)誤,由于管腳、焊點(diǎn)太多,根本檢查不出來。</p><p>  首先,先對單片機(jī)最小系統(tǒng)進(jìn)行檢查,在通電之前,用萬用表的紅線一端接單片機(jī)的40管腳(VCC),黑線一端接20管腳(GND),調(diào)到電壓表檔,接通電源,測得兩端電壓正好為5V,說明焊接正確,系統(tǒng)可以正常工作。如圖5-1所示。</p><p>  圖5-1

103、正常工作的單片機(jī)最小系統(tǒng)</p><p>  接下來是對焊好的LCD1602進(jìn)行調(diào)試,按照LCD1602的使用說明書,先對它編寫了WELCOME幾個(gè)字母來檢查是否正常工作。如圖5-2所示。</p><p>  圖5-2 LCD1602顯示測試圖</p><p>  單片機(jī)對LCD1602顯示屏寫入這些字母,并執(zhí)行顯示操作,可以看出工作正常,說明電路焊接到這部分是正確

104、的。</p><p><b>  5.2 軟件的調(diào)試</b></p><p>  用keil 3對測距系統(tǒng)的軟件部分進(jìn)行調(diào)試,把調(diào)試好的程序保存成.hex的格式,再用STC-ISP燒錄工具,把程序下載到單片機(jī)中。這樣就可以實(shí)現(xiàn)超聲波測距功能了。</p><p>  調(diào)試過程中,出現(xiàn)了一個(gè)有關(guān)精確度的問題,最初是把精確度設(shè)置為毫米,上下限設(shè)置為8

105、00mm~10mm,也就是LCD1602第一行顯示為“shang800 xia100”,正好把第一行寫滿了,雖然程序能正確運(yùn)行,并且可以測距。軟件調(diào)試正確,如圖5-3所示。</p><p>  圖5-3 軟件調(diào)試圖</p><p>  通過STC-ISP燒錄軟件把調(diào)試好的程序下載到了單片機(jī)里,通電后就可以進(jìn)行測距了。但是整體效果非常不好,而且如果對上限調(diào)整過高,就會(huì)出現(xiàn)顯示不全的情況。精確

106、到毫米的調(diào)試圖如圖5-4所示。</p><p>  圖5-4 超聲波測距調(diào)試圖(1)</p><p>  改用厘米單位以后,效果明顯要好的多,就算上限調(diào)高一些也不會(huì)出現(xiàn)顯示不全的現(xiàn)象,而且中間還可以空一格把上下限分開。改用厘米后進(jìn)行調(diào)試,如圖5-5所示。</p><p>  圖5-5 超聲波測距調(diào)試圖(2)</p><p>  最后經(jīng)過反復(fù)的

107、測試,包括超過所設(shè)定的距離上限和低于所設(shè)計(jì)的下限會(huì)報(bào)警,都能夠?qū)崿F(xiàn),成功的完成了此次設(shè)計(jì)。</p><p><b>  結(jié) 論</b></p><p>  做基于單片機(jī)的超聲波測距系統(tǒng)這樣一個(gè)設(shè)計(jì),包含了對單片機(jī)相關(guān)知識(shí)的掌握、對電路的分析、對數(shù)字電路和模擬電路的應(yīng)用、c語言的運(yùn)用等,實(shí)際上是對我這四年來的所學(xué)做一個(gè)總結(jié),讓我知道如何運(yùn)用所學(xué)的知識(shí)去解決實(shí)際生活中的

108、問題。</p><p>  通過查找相關(guān)資料,確定自己的設(shè)計(jì)方案,并對所做超聲波測距系統(tǒng)的實(shí)物進(jìn)行試驗(yàn)和調(diào)試,最后能成功的測出被測物體與其之間的距離,實(shí)現(xiàn)了最初設(shè)計(jì)的要求。除此之外,還增加了報(bào)警的功能。通電后,系統(tǒng)自動(dòng)開始測距,第一行顯示測距的上限為80cm和下限10cm,第二行能夠正確的顯示與所測物體的距離,如果測到距離大于80cm或小于10cm或者檢測不到回波信號(hào),則系統(tǒng)會(huì)報(bào)警,蜂鳴器響起,同時(shí)LCD顯示屏顯

109、示“000”。</p><p>  由于時(shí)間和條件的限制,超聲波在精準(zhǔn)度方面還不夠完善,有待改進(jìn)。比如超聲波的速度跟溫度有關(guān),可以做一個(gè)溫度補(bǔ)償?shù)碾娐穪砀_的得出測量結(jié)果;還有上下限是設(shè)定好的,如果要是做成上下限可調(diào)的話,會(huì)更加方便。如果有可能,今后我還會(huì)繼續(xù)研究和完善我的設(shè)計(jì)。</p><p><b>  參考文獻(xiàn)</b></p><p>

110、  [1] 李群芳.單片微型計(jì)算機(jī)與接口技術(shù)(第3版).電子工業(yè)出版社,2008</p><p>  [2] 楊欣.51單片機(jī)應(yīng)用實(shí)例詳解.清華大學(xué)出版社,2010</p><p>  [3] 李建法.超聲波測距的電路設(shè)計(jì)與單片機(jī)編程.安陽師范學(xué)院學(xué)報(bào),2003:47-48頁</p><p>  [4] 張春光.基于單片機(jī)的超聲波測距系統(tǒng)的設(shè)計(jì).可編程控制器與工廠自

111、動(dòng)化,2008(9):16-19頁</p><p>  [5] 吳超,戴亞文基于AT89S52單片機(jī)的超聲波測距系統(tǒng)的設(shè)計(jì)中原工學(xué)院學(xué)報(bào),2008(10):65-68頁</p><p>  [6] 姚永平.STC89C51RC/RD+系列單片機(jī)指南.www.MCU-Memory.com,2005 (6)</p><p>  [7] 袁濤.單片機(jī)原理及其應(yīng)用.清華大學(xué)

112、出版社,2012:61-65頁</p><p>  [8] 周國雄.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)精講.中國鐵道出版社,2011:216-233頁</p><p>  [9] Y. S. Huang M. S. Young.An Accurate Ultrasonic Distance Measurement System with Self Temperature Compensation[J].I

溫馨提示

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

最新文檔

評論

0/150

提交評論