畢業(yè)論文---超聲波測(cè)距儀_第1頁(yè)
已閱讀1頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  在日常生產(chǎn)生活中,很多場(chǎng)合如汽車倒車、機(jī)器人避障、工業(yè)測(cè)井、水庫(kù)液位測(cè)量等需要自動(dòng)進(jìn)行非接觸測(cè)距。超聲波是指頻率大于20 kHz的在彈性介質(zhì)中產(chǎn)生的機(jī)械震蕩波,其具有指向性強(qiáng)、能量消耗緩慢、傳播距離相對(duì)較遠(yuǎn)等特點(diǎn),因此常被用于非接觸測(cè)距。由于超聲波對(duì)光線、色彩和電磁場(chǎng)不敏感,因此超聲波測(cè)距對(duì)環(huán)境有較好的適應(yīng)能力,此外超聲

2、波測(cè)量在實(shí)時(shí)、精度、價(jià)格也能得到很好的折衷。</p><p>  為此,嘗試以單片機(jī)AT89S51為核心,利用CXA20106A超聲波芯片設(shè)計(jì)一款體積較小、價(jià)格低廉、精度較高、具有溫度補(bǔ)償、實(shí)時(shí)LCD顯示和報(bào)警的超聲波測(cè)距儀。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī);超聲波;C語(yǔ)言</p><p>  Ultrasonic ranging systemAbstract

3、</p><p><b>  Abstract</b></p><p>  In daily life, many occasions such as car backing up, robot obstacle avoidance, industrial logging, reservoir level measurement and need to be auto

4、matic no contact ranging. Ultrasonic is to point to more than 20 kHz frequency in the elastic medium produced in mechanical shock waves, it has the directionality of strong, energy consumption is relatively slow, the tra

5、nsmission distance far and other characteristics, so is often used to non-contact ranging. Due to the light, colour and ultrasonic no</p><p>  Therefore, this paper try to monolithic integrated circuit AT89S

6、52 as the core, use CXA20106A ultrasound sensor design a small size, low cost, high accuracy, temperature compensation, with real-time LCD display and alarm of ultrasonic ranger.</p><p>  Key Words:LCD; Sing

7、le-chip microcomputer ; Ultrasonic ranging systemAbstract; C Language</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p&g

8、t;<b>  引 言1</b></p><p>  1 超聲波簡(jiǎn)介..................................................................................................................2</p><p>  2 系統(tǒng)功能設(shè)計(jì).............

9、................................................................................................3</p><p>  2.1 超聲波測(cè)距系統(tǒng)的基本原理...............................................................................3<

10、/p><p>  2.2 AT89S51芯片超聲波簡(jiǎn)介...................................................................................4</p><p>  2.3 AT89S51芯片的引腳結(jié)構(gòu)........................................................

11、...........................4</p><p>  3 硬件設(shè)計(jì).....................................................................................................................5</p><p>  3.1 硬件電路主控...........

12、................................................................................................5</p><p>  3.2 復(fù)位電路............................................................................................

13、........................5</p><p>  3.3顯示電路......................................................................................................................6</p><p>  3.4驅(qū)動(dòng)電路................

14、.......................................................................................................7</p><p>  3.5接口電路......................................................................................

15、.................................8</p><p>  3.6 時(shí)鐘模塊......................................................................................................................8</p><p>  4 軟件設(shè)計(jì).......

16、.................................................................................................................11</p><p>  4.1 程序流程設(shè)計(jì)........................................................................

17、....................................11</p><p>  4.2 延時(shí)程序.....................................................................................................................14</p><p>  4.3 中斷系統(tǒng).

18、.....................................................................................................................14</p><p>  4.4 完整程序設(shè)計(jì)....................................................................

19、.....................................16</p><p>  5 系統(tǒng)仿真、制作、調(diào)試.......................................................................................32</p><p>  5.1 系統(tǒng)總體仿真........................

20、.................................................................................32</p><p>  5.2 硬件電路制作........................................................................................................

21、.34</p><p><b>  結(jié) 論35</b></p><p>  參 考 文 獻(xiàn)36</p><p><b>  致 謝37</b></p><p><b>  引 言</b></p><p>  隨著科技的迅猛發(fā)展越來(lái)

22、越多科技成果被廣泛的運(yùn)用到人們的日常生活當(dāng)中,給我們的生活帶來(lái)了諸多方便。本設(shè)計(jì)就是本著這個(gè)宗旨出發(fā),利用超聲波的特性來(lái)為我們服務(wù)。由于超聲波指向性強(qiáng),因而常于距離的測(cè)量。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來(lái),超聲波接收器收到反射波就立即停止計(jì)時(shí)。超聲波在空氣中的傳播速度為v,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離s,即:s=vt/2 。這就是所謂的

23、時(shí)間差測(cè)距法。</p><p>  利用超聲波檢測(cè)往往比較迅速、方便、計(jì)算簡(jiǎn)單、易于做到實(shí)時(shí)控制,并且在測(cè)量精度方面能達(dá)到工業(yè)實(shí)用的要求, 隨著科學(xué)技術(shù)的快速發(fā)展,超聲波將的應(yīng)用將越來(lái)越廣。但就目前技術(shù)水平來(lái)說(shuō),人們可以具體利用的超聲波技術(shù)還十分有限,因此,這是一個(gè)正在蓬勃發(fā)展而又有無(wú)限前景的技術(shù)及產(chǎn)業(yè)領(lǐng)域。</p><p>  超聲波測(cè)距技術(shù)在社會(huì)生活中已有廣泛的應(yīng)用如汽車倒車?yán)走_(dá)等,它

24、們測(cè)距精度一般較低。目前對(duì)超聲波高精度測(cè)距系統(tǒng)的需求越來(lái)越大。展望未來(lái),超聲波作為一種新型的非常重要有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會(huì)需求。未來(lái)的超聲波測(cè)距技術(shù)將朝著更高精度,更大應(yīng)用范圍,更穩(wěn)定方向發(fā)展,死角問(wèn)題也能得以解決。</p><p><b>  1 超聲波簡(jiǎn)介</b></p><p>  由于超

25、聲波所具有的能量很大,就有可能使物質(zhì)分子產(chǎn)生顯著的聲壓作用、例如當(dāng)水中通過(guò)一般強(qiáng)度的超聲波時(shí)超聲波流量計(jì)的基本原理及類型超聲波在流動(dòng)的流體中傳播時(shí)就載上流體流速的信息。因此通過(guò)接收到的超聲波就可以檢測(cè)出流體的流速,從而換算成流量。根據(jù)檢測(cè)的方式,可分為傳播速度差法、多普勒法、波束偏移法、噪聲法及相關(guān)法等不同類型的超聲波流量計(jì)。起聲波流量計(jì)是近十幾年來(lái)隨著集成電路技術(shù)迅速發(fā)展才開始應(yīng)用的一種 </p><p>  

26、非接觸式儀表,適于測(cè)量不易接觸和觀察的流體以及大管徑流量。它與水位計(jì)聯(lián)動(dòng)可進(jìn)行敞開水流的流量測(cè)量。使用超聲波流量比不用在流體中安裝測(cè)量元件故不會(huì)改變流體的流動(dòng)狀態(tài),不產(chǎn)生附加阻力,儀表的安裝及檢修均可不影響生產(chǎn)管線運(yùn)行因而是一種理想的節(jié)能型流量計(jì)。 </p><p>  眾所周知,目前的工業(yè)流量測(cè)量普遍存在著大管徑、大流量測(cè)量困難的問(wèn)題,這是因?yàn)橐话懔髁坑?jì)隨著測(cè)量管徑的增大會(huì)帶來(lái)制造和運(yùn)輸上的困難,造價(jià)提高、能損

27、加大、安裝不僅這些缺點(diǎn),超聲波流量計(jì)均可避免。因?yàn)楦黝惓暡髁坑?jì)均可管外安裝、非接觸測(cè)流,儀表造價(jià)基本上與被測(cè)管道口徑大小無(wú)關(guān),而其它類型的流量計(jì)隨著口徑增加,造價(jià)大幅度增加,故口徑越大超聲波流量計(jì)比相同功能,其它類型流量計(jì)的功能價(jià)格比越優(yōu)越。被認(rèn)為是較好的大管流量測(cè)量?jī)x表,多普勒法超聲波流量計(jì)可測(cè)雙相介質(zhì)的流量,故可用于下水道及排污水等臟污流的測(cè)量。在發(fā)電廠中,用便攜式超聲波流量計(jì)測(cè)量水輪機(jī)進(jìn)水量、汽輪機(jī)循環(huán)水量等大管徑流量,比過(guò)去

28、的皮脫管流速計(jì)方便得多。超聲被流量汁也可用于氣體測(cè)量。管徑的適用范圍從2cm到5m,從幾米寬的明渠、暗渠到500m寬的河流都可適用。 </p><p>  另外,超聲測(cè)量?jī)x表的流量測(cè)量準(zhǔn)確度幾乎不受被測(cè)流體溫度、壓力、粘度、密度等參數(shù)的影響,又可制成非接觸及便攜式測(cè)量?jī)x表,故可解決其它類型儀表所難以測(cè)量的強(qiáng)腐蝕性、非導(dǎo)電性、放射性及易燃易爆介質(zhì)的流量測(cè)量問(wèn)題。</p><p>  超聲波具

29、有較好的指向性頻率越高,指向性越強(qiáng)。這在諸如探傷和水下聲通訊等應(yīng)用場(chǎng)合是主要的考慮因素。頻率高時(shí),相應(yīng)地波長(zhǎng)將變短,因而波長(zhǎng)可與傳播超聲波的試樣材料的尺寸相比擬,甚至波長(zhǎng)可遠(yuǎn)小于試樣材料的尺寸.這在厚度尺寸很小的測(cè)量應(yīng)用中以及在高分辨率的探傷應(yīng)用中是非常重要的。超聲波用起來(lái)很安靜,人們聽不到它。這一點(diǎn)在高強(qiáng)度工作場(chǎng)合尤為重要。這些高強(qiáng)度的工作用可聞?lì)l率的聲波來(lái)完成時(shí)往往更有效,然而遺憾的是,可聞聲波工作時(shí)所產(chǎn)生的噪聲令人難以忍受,有時(shí)甚

30、至是對(duì)人體有害的。</p><p><b>  2 系統(tǒng)功能設(shè)計(jì)</b></p><p>  2.1超聲波測(cè)距系統(tǒng)的基本原理</p><p>  本系統(tǒng)包括以下幾部分:以單片機(jī)AT89S51為核心,周圍電路包括顯示電路、超聲波發(fā)射電路、超聲波檢測(cè)接收電路、掃描驅(qū)動(dòng)等。</p><p>  AT89S51是一種帶4K字節(jié)閃

31、爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器。</p><p>  采用AT89S51來(lái)實(shí)現(xiàn)對(duì)CX20106A紅外接收芯片和TCT40-10系列超聲波轉(zhuǎn)換模塊的控制。單片機(jī)通過(guò)P1.0引腳經(jīng)反相器來(lái)控制超聲波的發(fā)送,然后單片機(jī)不停的檢測(cè)INT0引腳,當(dāng)INT0引腳的電平由高電平變?yōu)榈碗娖綍r(shí)就認(rèn)為超聲波已經(jīng)返</p><p>  回。計(jì)數(shù)器所計(jì)的數(shù)據(jù)就是超聲波所經(jīng)歷的時(shí)間,通

32、過(guò)換算就可以得到傳感器與障礙物之間的距離。</p><p><b>  圖2.1</b></p><p>  2.2 AT89S51芯片超聲波簡(jiǎn)介</p><p>  AT89S51控制超聲波信號(hào)的發(fā)送和接收,串行數(shù)據(jù)發(fā)送 ,及溫度校正 采樣頻率的輸入,并通過(guò)運(yùn)算轉(zhuǎn)換成溫度數(shù)據(jù),校正不同溫度下,距離誤差后,在LED上顯示所測(cè)距的離厘米數(shù)據(jù)并和

33、已輸入的預(yù)置數(shù)進(jìn)行比較, 如達(dá)到預(yù)置值則進(jìn)行開或關(guān)的開關(guān)量信號(hào)輸出.LED顯示為動(dòng)態(tài)循環(huán)顯示,共陽(yáng)極接法. DS18B20 在本電路中取得外界溫度值, 以利于AT89S51的運(yùn)算并校正不同溫度下測(cè)距的回波數(shù)值以及在LED上顯示實(shí)時(shí)環(huán)境的溫度值.接收電路接收物體反射超聲波回波信號(hào),該芯片內(nèi)部包括了前置放大,限幅放大,整形,輸出數(shù)據(jù)信號(hào)以便MCU檢測(cè), 判斷回波的數(shù)據(jù)正確與否及時(shí)差, 并計(jì)算出測(cè)距的距離數(shù)值.該板接收可預(yù)置超聲波控制器,發(fā)送

34、的1200BIT串行數(shù)據(jù)信號(hào),直接用導(dǎo)線和超聲波控制器 串口連接時(shí),可傳送幾十米,如通過(guò)485串口發(fā)送可傳送2千米以上。 </p><p>  2.3 AT89S51芯片的引腳結(jié)構(gòu)</p><p>  本次設(shè)計(jì)采用了常見的AT89S51單片機(jī)為核心處理器。AT89S51是一個(gè)低功耗,高性能CMOS 8位單片機(jī),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-

35、51指令系統(tǒng)及80S51引腳結(jié)構(gòu), AT89S51具有40個(gè)引腳,4k Bytes Flash片內(nèi)程序存儲(chǔ)器,128 Bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。AT89S51單片機(jī)共有40個(gè)引腳,其引腳圖2.2如下:</p><p><b>  圖

36、2.2</b></p><p><b>  3 硬件設(shè)計(jì)</b></p><p><b>  3.1 硬件電路</b></p><p>  該設(shè)計(jì)的硬件電路由主控部分(單片機(jī)AT89S51)、計(jì)時(shí)部分(實(shí)時(shí)時(shí)鐘芯片DS1302)、顯示部分(八段數(shù)碼管)、電源部分(三端穩(wěn)壓器7805)4個(gè)部分組成。各部分之間相

37、互協(xié)作,構(gòu)成一個(gè)統(tǒng)一的有機(jī)整體,實(shí)現(xiàn)功能。各部分的硬件電路設(shè)計(jì)如下。</p><p><b>  3.2復(fù)位電路</b></p><p>  單片機(jī)AT89S51作為主控芯片,控制整個(gè)電路的運(yùn)行。單片機(jī)外圍需要一個(gè)復(fù)位電路,復(fù)位電路的功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤消復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電

38、源插頭分-合過(guò)程中引起的抖動(dòng)而影響復(fù)位。該設(shè)計(jì)采用含有電阻的復(fù)位電路,復(fù)位電路可以有效的解決電源毛刺和電源緩慢下降(電池電壓不足)等引起的問(wèn)題,在電源電壓瞬間下降時(shí)可以使電容迅速放電,一定寬度的電源毛刺也可令系統(tǒng)可靠復(fù)位。復(fù)位電路的設(shè)計(jì)圖如圖3.1示:</p><p><b>  圖 3.1</b></p><p>  復(fù)位是單片機(jī)的初始化操作,使CPU及各專用存儲(chǔ)器

39、處于一個(gè)確定的初始狀態(tài),其中把PC的內(nèi)容初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序,除了系統(tǒng)的正常開機(jī)(上電)復(fù)位外,當(dāng)程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死循環(huán)狀態(tài)時(shí),為擺脫困境,可按復(fù)位鍵進(jìn)行復(fù)位,復(fù)位電路由片外和片內(nèi)兩部分電路組成。AT89S51的RST引腳為復(fù)位引腳,只要在RST引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,即可實(shí)現(xiàn)復(fù)位。復(fù)位通常有上電復(fù)位和按鍵復(fù)位兩種方法。本設(shè)計(jì)采用的是按鍵復(fù)位,當(dāng)按下按鍵后,電容被短路,RS

40、T引腳就處于高電平,就可以達(dá)到復(fù)位的目的。電路如圖3.2所示。</p><p><b>  圖3.2</b></p><p><b>  3.3 顯示電路</b></p><p>  四段數(shù)碼顯示管有兩種,一種是共陽(yáng)極數(shù)碼管,其內(nèi)部是由八個(gè)陽(yáng)極相連接的發(fā)光二極管組成;另一種是共陽(yáng)極數(shù)碼管,其內(nèi)部是由四個(gè)陽(yáng)極相連接的發(fā)光二極

41、管組成。二者原理不同但功能相同。本設(shè)計(jì)的時(shí)間顯示選用四個(gè)共陰極四段數(shù)碼管LED,其外形和內(nèi)部結(jié)構(gòu)如圖3.3所示:</p><p><b>  圖3.3</b></p><p><b>  3.4 驅(qū)動(dòng)電路</b></p><p>  而LED顯示電路就像單片機(jī)系統(tǒng)的眼睛,實(shí)時(shí)地向人們傳遞著系統(tǒng)工作的各種狀態(tài)信息和處理結(jié)果。

42、因此,高效、方便的LED顯示驅(qū)動(dòng)電路是構(gòu)成完善的單片機(jī)系統(tǒng)必不可少的元素。常用的LED顯示驅(qū)動(dòng)電路有并行譯碼方式、串行—并行轉(zhuǎn)換方式、顯示驅(qū)動(dòng)接口芯片方式等。</p><p><b>  圖3.4</b></p><p><b>  3.5 接口電路</b></p><p>  MCS-51系列單片機(jī)的并行I/O口:<

43、;/p><p>  接口電路是微機(jī)必不可少的組成部分,并行輸入確出接口是CPU和外部進(jìn)行信息交換的主要通道。MSC-51系列單片有4個(gè)8位并行雙向I/O口P0~P3,共32根I/O線。每一根線能獨(dú)立用作輸入或輸出。單片機(jī)可以外接鍵盤、顯示器等外圍設(shè)備.還可以進(jìn)行系統(tǒng)擴(kuò)展,以解決硬件資源不足問(wèn)題。4個(gè)并行口都是雙向口,既可以輸入又可以輸出。P0、P2口經(jīng)常作外部擴(kuò)展存儲(chǔ)器時(shí)的數(shù)據(jù)、地址線,P3口除作I/O口外,每一根都

44、有第二功能。這4個(gè)I/O口結(jié)構(gòu)基本相同,但仍存在差別。</p><p>  P1口:通道1,雙向I/O口,本次設(shè)計(jì)連接按鍵,用語(yǔ)按鍵信號(hào)的輸入</p><p><b>  3.6 時(shí)鐘模塊</b></p><p>  3.6.1 時(shí)鐘模塊設(shè)計(jì)</p><p>  本模塊由DS1302串行時(shí)鐘芯片和32.768K的晶振組成

45、,負(fù)責(zé)給系統(tǒng)提供實(shí)時(shí)時(shí)鐘。DS1302采用的是串行接口,簡(jiǎn)單的三根連線就可以完成和單片機(jī)的通信,具有體積小、節(jié)省IO口、接口簡(jiǎn)單等優(yōu)點(diǎn)。另外此芯片內(nèi)部建有31字節(jié)的靜態(tài)RAM,可以用于儲(chǔ)存單片機(jī)系統(tǒng)設(shè)置的一些參數(shù)。為了保證意外斷電不會(huì)造成時(shí)鐘復(fù)位和參數(shù)丟失,本設(shè)計(jì)給DS1302芯片外接了一個(gè)CR2032電池。</p><p><b>  圖3.5 時(shí)鐘模塊</b></p>&l

46、t;p>  3.6.2 DS1302時(shí)鐘芯片簡(jiǎn)介</p><p>  DS1302實(shí)時(shí)時(shí)鐘具有能計(jì)算2100年之前的秒分時(shí)日日期月年的能力還有閏年調(diào)整的能力,318位暫存數(shù)據(jù)存儲(chǔ)RAM,串行I/O口方式使得管腳數(shù)量最少,簡(jiǎn)單3線接口,與TTL兼容VCC=5V[1]。</p><p>  圖3.6 DS1302時(shí)鐘芯片</p><p>  表3.1 DS1302

47、引腳功能說(shuō)明</p><p>  DS1302共有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時(shí)間寄存器及其控制字見表3.2。</p><p>  表3.2 DS1302的日歷、時(shí)鐘寄存器及其控制字</p><p>  此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄

48、存器可一次性順序讀寫除充電寄存器外的所有寄存器的內(nèi)容。DS1302與RAM相關(guān)的寄存器分為兩類,一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H--FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。</p><p><b>  4 軟件設(shè)計(jì)</b>&

49、lt;/p><p>  4.1 程序流程設(shè)計(jì)</p><p>  4.1.1主程序設(shè)計(jì)</p><p><b>  圖4.1</b></p><p>  4.1.2 按鍵中斷處理流程</p><p>  圖4.2 按鍵中斷處理流程圖</p><p>  4.1.3 軟件去抖動(dòng)

50、流程</p><p>  圖4.3 軟件去抖動(dòng)流程</p><p><b>  4.2延時(shí)程序</b></p><p>  延時(shí)程序延與 MCS - 51 執(zhí)行指令的時(shí)間有關(guān), 如果使用 6 MHz晶振, 一個(gè)機(jī)器周期為 2 μs, 計(jì)算出一條指令以至一個(gè)循環(huán)所需要的執(zhí)行時(shí)間, 給出相應(yīng)的循環(huán)次數(shù), 便能達(dá)到延時(shí)的目的。10 秒延時(shí)程序如下:

51、</p><p>  DELAY: MOV R5, #100</p><p>  DEL0: MOV R6, #200</p><p>  DEL1: MOV R7, #248</p><p>  DEL2: DJNZ R7, DEL2</p><p>  DJNZ

52、R6, DEL1</p><p>  DJNZ R5, DEL0</p><p><b>  RET </b></p><p>  上例程序中采用了多重循環(huán)程序, 即在一個(gè)循環(huán)體中又包含了其它的循環(huán)程序, 這種方式是實(shí)現(xiàn)延時(shí)程序的常用方法。 使用多重循環(huán)時(shí), 必須注意: </p><p>  (1) 循環(huán)嵌套,

53、必須層次分明, 不允許產(chǎn)生內(nèi)外層循環(huán)交叉。 </p><p>  (2) 外循環(huán)可以層層向內(nèi)循環(huán)進(jìn)入, 結(jié)束時(shí)由里往外層層退出。 </p><p>  (3) 內(nèi)循環(huán)可以直接轉(zhuǎn)入外循環(huán), 實(shí)現(xiàn)一個(gè)循環(huán)由多個(gè)條件控制的循環(huán)結(jié)構(gòu)方式。</p><p>  74LS04反相器,管腳圖如附圖所示。</p><p><b>  圖4.4&l

54、t;/b></p><p>  4.3 中斷系統(tǒng) </p><p>  4.3.1中斷的概述</p><p>  程序執(zhí)行過(guò)程中,容許外部或內(nèi)部事件通過(guò)硬件打斷程序的執(zhí)行,使其轉(zhuǎn)向?yàn)樘幚硗獠炕騼?nèi)部事件的中斷服務(wù)程序中去;完成中斷服務(wù)程序后,CPU繼續(xù)原來(lái)被打斷的程序,這樣的過(guò)程稱為中斷過(guò)程,</p><p>  4.3.2 中斷

55、響應(yīng)的一般過(guò)程</p><p>  (1) 在每條指令結(jié)束后, 系統(tǒng)都自動(dòng)檢測(cè)中斷請(qǐng)求信號(hào), 如果有中斷請(qǐng)求,且CPU處于開中斷狀態(tài)下, 則響應(yīng)中斷。 </p><p>  (2) 保護(hù)現(xiàn)場(chǎng), 在保護(hù)現(xiàn)場(chǎng)前, 一般要關(guān)中斷, 以防止現(xiàn)場(chǎng)被破壞。保護(hù)現(xiàn)場(chǎng)一般是用堆棧指令將原程序中用到的寄存器推入堆棧。 </p><p>  4.3.3 80S51中有

56、五個(gè)中斷源</p><p>  MCS - 51單片機(jī)有 5個(gè)(8052有 6個(gè))中斷源, 為了使每個(gè)中斷源都能獨(dú)立地被允許或禁止, 以便用戶能靈活使用, CPU內(nèi)部在每個(gè)中斷信號(hào)的通道中設(shè)置了一個(gè)中斷允許觸發(fā)器, 它控制CPU能否響應(yīng)中斷。只有對(duì)應(yīng)的中斷允許觸發(fā)器被使能(置“1”),相應(yīng)的中斷才能得到相應(yīng)。</p><p>  4.3.4 MCS—51中斷系統(tǒng)</p>&

57、lt;p><b>  圖4.5</b></p><p>  4.3.5中斷系統(tǒng)的應(yīng)用 </p><p>  例 1 單步操作的中斷實(shí)現(xiàn)。</p><p>  把一個(gè)外部中斷(設(shè)為INT0])設(shè)置為電平激活方式。其中斷服務(wù)程序的末尾寫上如下幾條指令: </p><p>  JNB P3.2, $

58、; 在INT0變高前,原地等待(死循環(huán))</p><p>  JB P3.2, $; 在 INT0變低前,原地等待(死循環(huán))</p><p>  RETI ; 返回并執(zhí)行一條指令</p><p>  現(xiàn)在,若INT0保持低電平, 且允許INT0中斷, 則CPU就進(jìn)入外部中斷 0 服務(wù)程序, 由于有上述幾條指令, 它就會(huì)停在 JNB處, 原地

59、等待。當(dāng)INT0 端出現(xiàn)一個(gè)正脈沖(由低到高, 再到低)時(shí), 程序就會(huì)往下執(zhí)行, 執(zhí)行RETI后, 將返回主程序, 往下執(zhí)行一條指令, 然后又立即響應(yīng)中斷,以等待INT0端,出現(xiàn)的下一個(gè)正脈沖。 這樣在INT0端每出現(xiàn)一個(gè)正脈沖, 主程序就執(zhí)行一條指令, 實(shí)現(xiàn)了單步執(zhí)行的目的, 要注意的是, 這個(gè)正脈沖的高電平持續(xù)時(shí)間不小于 2 個(gè)周期, 以確保 CPU能采集到高電平值。</p><p>  4.4 完整程序設(shè)計(jì)

60、</p><p>  VOUT EQU P1.0 ; 紅外脈沖輸出端口</p><p>  ;********************************************</p><p>  ;* 中斷入口程序 *</p><p>  ;********

61、************************************</p><p><b>  ;</b></p><p><b>  ORG 0000H</b></p><p>  LJMP START</p><p><b>  ORG 0003H</b></

62、p><p>  LJMP PINT0</p><p><b>  ORG 000BH</b></p><p><b>  reti</b></p><p><b>  ORG 0013H</b></p><p><b>  RETI</b&

63、gt;</p><p><b>  ORG 001BH</b></p><p>  LJMP INTT1</p><p><b>  ORG 0023H</b></p><p><b>  RETI</b></p><p><b>  ORG

64、 002BH</b></p><p><b>  RETI </b></p><p><b>  ;</b></p><p>  ;********************************************</p><p>  ;* 主

65、程 序 *</p><p>  ;********************************************</p><p><b>  ;</b></p><p>  START: MOV SP,#4FH</p><p>  MOV R0,#40H

66、 ;40H-43H為顯示數(shù)據(jù)存放單元(40H為最高位)</p><p>  MOV R7,#0BH</p><p>  CLEARDISP: MOV @R0,#00H</p><p>  INC R0</p><p>  DJNZ R7,CLEARDISP</p><p>  MOV

67、 20H,#00H</p><p>  MOV TMOD,#11H ;T1為 T0為16位定時(shí)器</p><p>  MOV TH0,#00H ;65毫秒初值</p><p>  MOV TL0,#00H</p><p>  MOV TH1,#00H </p>&l

68、t;p>  MOV TL1,#00H</p><p>  MOV P0,#0FFH</p><p>  MOV P1,#0FFH</p><p>  MOV P2,#0FFH</p><p>  MOV P3,#0FFH</p><p>  MOV R4,#04H

69、 ;超聲波肪沖個(gè)數(shù)控制(為賦值的一半)</p><p>  SETB PX0</p><p>  SETB ET1</p><p>  SETB EA</p><p>  SETB TR1 ;開啟測(cè)距定時(shí)器</p><p>  start1: LCALL DISP

70、LAY</p><p>  JNB 00H,START1 ;收到反射信號(hào)時(shí)標(biāo)志位為1</p><p><b>  CLR EA</b></p><p>  LCALL WORK ;計(jì)算距離子程序</p><p>  clr EA <

71、/p><p>  MOV R2,#32h;#64H ;測(cè)量間隔控制(約4*50=200MS)</p><p>  LOOP: LCALL DISPLAY</p><p>  DJNZ R2,LOOP </p><p>  CLR 00H</p><p>  

72、setb et0</p><p>  mov th0,00h</p><p>  mov tl0,00h</p><p>  SETB TR1 ;重新開啟測(cè)距定時(shí)器</p><p><b>  SETB EA</b></p><p

73、>  SJMP Start1</p><p><b>  ;</b></p><p>  ;****************************************************</p><p>  ;* 中斷程序* *</p>

74、<p>  ;****************************************************</p><p>  ;T1中斷,發(fā)超聲波用 ;T1中斷,65毫秒中斷一次</p><p>  INTT1: CLR EA</p><p>  CLR TR0</p><p&

75、gt;  clr ex0</p><p>  MOV TH0,#00H</p><p>  MOV TL0,#00H</p><p>  MOV TH1,#00H</p><p>  MOV TL1,#00H</p><p>  SETB ET0</p>&l

76、t;p>  SETB EA</p><p>  SETB TR0 ;啟動(dòng)計(jì)數(shù)器T0,用以計(jì)</p><p><b>  intt11:</b></p><p>  CPL VOUT ;40KHZ</p><p><b>  nop</b>&

77、lt;/p><p><b>  nop</b></p><p><b>  ; nop</b></p><p><b>  ; nop</b></p><p><b>  ; nop</b></p><p><b>  ; n

78、op</b></p><p><b>  ; nop</b></p><p><b>  ; nop</b></p><p><b>  ; nop</b></p><p>  DJNZ R4,intt11 </p><p>  ;超聲

79、波發(fā)送完畢, </p><p>  MOV R4,#04H</p><p>  lcall delay_250 ;延時(shí),避開發(fā)射的直達(dá)聲波信號(hào)</p><p>  SETB EX0 ;開啟接收回波中斷</p><p>  RETIOUT: RETI</p><p&g

80、t;  ;外中斷0,收到回波時(shí)進(jìn)入</p><p>  PINT0: nop</p><p>  jb p3.2,pint0_exit</p><p>  CLR TR0 ;關(guān)計(jì)數(shù)器</p><p>  CLR EA ;</p><p>  CLR

81、 EX0 ;</p><p>  MOV 44H,TL0 ;將計(jì)數(shù)值移入處理單元</p><p>  MOV 45H,TH0 ;</p><p>  mov th0,#00h</p><p>  mov tl0,#00h</p><p>  jnb

82、 p3.2,$</p><p>  SETB 00H ;接收成功標(biāo)志</p><p>  pint0_exit:</p><p><b>  RETI</b></p><p><b>  ;</b></p><p>  ;****************

83、************************************</p><p>  ;* 顯示程序 *</p><p>  ;****************************************************</p><p><b>  DISP

84、LAY: </b></p><p>  MOV R1,#40H;G</p><p>  MOV R5,#7fH;G</p><p>  PLAY: MOV A,R5</p><p>  MOV P0,#0FFH</p><p>  MOV P2,A</p><p>

85、;  MOV A,@R1</p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p><p>  MOV P0,A</p><p>  LCALL DL1MS</p><p><b>  INC R1</b></p>&

86、lt;p>  MOV A,R5</p><p>  JNB ACC.4,ENDOUT;G</p><p><b>  RR A</b></p><p>  MOV R5,A</p><p>  AJMP PLAY</p><p>  ENDOUT: MOV P2,#

87、0FFH</p><p>  MOV P0,#0FFH</p><p><b>  RET</b></p><p><b>  ;</b></p><p>  TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh <

88、;/p><p>  ;TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH</p><p>  ;共陽(yáng)段碼表 "0" "1" "2" "3" "4" "5""6&qu

89、ot; "7" "8" "9" "不亮""A""-"</p><p><b>  ;</b></p><p>  ;****************************************************</p>&l

90、t;p>  ;* 延時(shí)程序 *</p><p>  ;****************************************************</p><p><b>  ;</b></p><p><b>  DL1MS: <

91、/b></p><p>  push 06h</p><p>  push 07h</p><p>  MOV R6,#14H</p><p>  DL1: MOV R7,#19H</p><p>  DL2: DJNZ R7,DL2</p><p> 

92、 DJNZ R6,DL1</p><p>  pop 07h</p><p>  pop 06h</p><p><b>  RET</b></p><p><b>  ;</b></p><p>  ;******************

93、**********************************</p><p>  ;* 距離計(jì)算程序 (=計(jì)數(shù)值*17/1000cm) *</p><p>  ;****************************************************</p><p><b>  ;</b>

94、</p><p>  work: </p><p><b>  PUSH ACC</b></p><p><b>  PUSH PSW</b></p><p><b>  PUSH B</b></p><p>  MOV PSW, #1

95、8h</p><p>  MOV R3, 45H</p><p>  MOV R2, 44H</p><p>  MOV R1, #00D</p><p>  MOV R0, #17D</p><p>  LCALL MUL2BY2</p><p>  MOV R3,

96、 #03H</p><p>  MOV R2, #0E9H</p><p>  LCALL DIV4BY2</p><p>  LCALL DIV4BY2</p><p>  MOV 40H, R4</p><p>  MOV A,40H</p><p><b>  J

97、NZ JJ0</b></p><p>  MOV 40H,#0AH ;最高位為零,不點(diǎn)亮</p><p>  JJ0: MOV A, R0</p><p>  MOV R4, A</p><p>  MOV A, R1</p><p>  MOV R5, A<

98、;/p><p>  MOV R3, #00D</p><p>  MOV R2, #100D</p><p>  LCALL DIV4BY2</p><p>  MOV 41H, R4</p><p>  MOV A,41H</p><p><b>  JNZ JJ

99、1</b></p><p>  MOV A,40H ;次高位為0,先看最高位是否為不亮</p><p>  SUBB A,#0AH</p><p><b>  JNZ JJ1</b></p><p>  MOV 41H,#0AH ;最高位不亮,次高位也不亮</p><p

100、>  JJ1: MOV A, R0</p><p>  MOV R4, A</p><p>  MOV A, R1</p><p>  MOV R5, A</p><p>  MOV R3, #00D</p><p>  MOV R2, #10D</p>&

101、lt;p>  LCALL DIV4BY2</p><p>  MOV 42H, R4</p><p>  MOV A,42H</p><p><b>  JNZ JJ2</b></p><p>  MOV A,41H ;次次高位為0,先看次高位是否為不亮</p><p>

102、;  SUBB A,#0AH</p><p><b>  JNZ JJ2</b></p><p>  MOV 42H,#0AH ;次高位不亮,次次高位也不亮</p><p>  JJ2: MOV 43H, R0</p><p><b>  POP B</b></p&

103、gt;<p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RET</b></p><p><b>  ;</b></p><p>  ;*************

104、***************************************</p><p>  ;* 兩字節(jié)無(wú)符號(hào)數(shù)乘法程序 *</p><p>  ;****************************************************</p><p>  ; R7R6R5R4 <=

105、R3R2 * R1R0</p><p><b>  ;</b></p><p>  MUL2BY2: CLR A</p><p>  MOV R7, A</p><p>  MOV R6, A</p><p>  MOV R5, A</p><p>

106、  MOV R4, A</p><p>  MOV 46H, #10H</p><p>  MULLOOP1: CLR C</p><p>  MOV A, R4</p><p><b>  RLC A</b></p><p>  MOV R4, A</p&g

107、t;<p>  MOV A, R5</p><p><b>  RLC A</b></p><p>  MOV R5, A</p><p>  MOV A, R6</p><p><b>  RLC A</b></p><p>  

108、MOV R6, A</p><p>  MOV A, R7</p><p><b>  RLC A</b></p><p>  MOV R7, A</p><p>  MOV A, R0</p><p><b>  RLC A</b><

109、;/p><p>  MOV R0, A</p><p>  MOV A, R1</p><p><b>  RLC A</b></p><p>  MOV R1, A</p><p>  JNC MULLOOP2</p><p>  MOV A,

110、 R4</p><p>  ADD A, R2</p><p>  MOV R4, A</p><p>  MOV A, R5</p><p>  ADDC A, R3</p><p>  MOV R5, A</p><p>  MOV A, R6&

111、lt;/p><p>  ADDC A, #00H</p><p>  MOV R6, A</p><p>  MOV A, R7</p><p>  ADDC A, #00H</p><p>  MOV R7, A</p><p>  MULLOOP2: DJNZ

112、46H, MULLOOP1</p><p><b>  RET</b></p><p><b>  ;</b></p><p>  ;****************************************************</p><p>  ;* 四字節(jié)/兩字

113、節(jié)無(wú)符號(hào)數(shù)除法程序 *</p><p>  ;****************************************************</p><p>  ;R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余數(shù))</p><p><b>  ;</b></p><p> 

114、 DIV4BY2: MOV 46H, #20H</p><p>  MOV R0, #00H</p><p>  MOV R1, #00H</p><p>  DIVLOOP1: MOV A, R4</p><p><b>  RLC A</b></p><p> 

115、 MOV R4, A</p><p>  MOV A, R5</p><p><b>  RLC A</b></p><p>  MOV R5, A</p><p>  MOV A, R6</p><p><b>  RLC A</b>&l

116、t;/p><p>  MOV R6, A</p><p>  MOV A, R7</p><p><b>  RLC A</b></p><p>  MOV R7, A</p><p>  MOV A, R0</p><p><b> 

117、 RLC A</b></p><p>  MOV R0, A</p><p>  MOV A, R1</p><p><b>  RLC A</b></p><p>  MOV R1, A</p><p><b>  CLR C</b&g

118、t;</p><p>  MOV A, R0</p><p>  SUBB A, R2</p><p>  MOV B, A</p><p>  MOV A, R1</p><p>  SUBB A, R3</p><p>  JC DIVLOOP2&l

119、t;/p><p>  MOV R0, B</p><p>  MOV R1, A</p><p>  DIVLOOP2: CPL C</p><p>  DJNZ 46H, DIVLOOP1</p><p>  MOV A, R4</p><p><b>  R

120、LC A</b></p><p>  MOV R4, A</p><p>  MOV A, R5</p><p><b>  RLC A</b></p><p>  MOV R5, A</p><p>  MOV A, R6</p>&

121、lt;p><b>  RLC A</b></p><p>  MOV R6, A</p><p>  MOV A, R7</p><p><b>  RLC A</b></p><p>  MOV R7, A</p><p><b>

122、;  RET</b></p><p>  delay_250:</p><p>  push psw</p><p>  push 07h</p><p>  mov r7,#033h;16</p><p>  delay_250_1:</p><p><b

123、>  nop</b></p><p><b>  nop </b></p><p><b>  nop</b></p><p><b>  nop</b></p><p>  djnz r7,delay_250_1</p><p>

124、;  pop 07h</p><p>  pop psw</p><p><b>  ret</b></p><p>  ;-----------------------</p><p><b>  END</b></p><p>  //51單片機(jī)制作的超聲

溫馨提示

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

評(píng)論

0/150

提交評(píng)論