

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘 要</b></p><p> 在日常生產(chǎn)生活中,很多場合如汽車倒車、機器人避障、工業(yè)測井、水庫液位測量等需要自動進行非接觸測距。超聲波是指頻率大于20 kHz的在彈性介質(zhì)中產(chǎn)生的機械震蕩波,其具有指向性強、能量消耗緩慢、傳播距離相對較遠等特點,因此常被用于非接觸測距。由于超聲波對光線、色彩和電磁場不敏感,因此超聲波測距對環(huán)境有較好的適應能力,此外超聲
2、波測量在實時、精度、價格也能得到很好的折衷。</p><p> 為此,嘗試以單片機AT89S51為核心,利用CXA20106A超聲波芯片設計一款體積較小、價格低廉、精度較高、具有溫度補償、實時LCD顯示和報警的超聲波測距儀。</p><p> 關鍵詞:單片機;超聲波;C語言</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 超聲波簡介..................................................................................................................2</p><p> 2 系統(tǒng)功能設計.............
9、................................................................................................3</p><p> 2.1 超聲波測距系統(tǒng)的基本原理...............................................................................3<
10、/p><p> 2.2 AT89S51芯片超聲波簡介...................................................................................4</p><p> 2.3 AT89S51芯片的引腳結(jié)構(gòu)........................................................
11、...........................4</p><p> 3 硬件設計.....................................................................................................................5</p><p> 3.1 硬件電路主控...........
12、................................................................................................5</p><p> 3.2 復位電路............................................................................................
13、........................5</p><p> 3.3顯示電路......................................................................................................................6</p><p> 3.4驅(qū)動電路................
14、.......................................................................................................7</p><p> 3.5接口電路......................................................................................
15、.................................8</p><p> 3.6 時鐘模塊......................................................................................................................8</p><p> 4 軟件設計.......
16、.................................................................................................................11</p><p> 4.1 程序流程設計........................................................................
17、....................................11</p><p> 4.2 延時程序.....................................................................................................................14</p><p> 4.3 中斷系統(tǒng).
18、.....................................................................................................................14</p><p> 4.4 完整程序設計....................................................................
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> 參 考 文 獻36</p><p><b> 致 謝37</b></p><p><b> 引 言</b></p><p> 隨著科技的迅猛發(fā)展越來
22、越多科技成果被廣泛的運用到人們的日常生活當中,給我們的生活帶來了諸多方便。本設計就是本著這個宗旨出發(fā),利用超聲波的特性來為我們服務。由于超聲波指向性強,因而常于距離的測量。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為v,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的距離s,即:s=vt/2 。這就是所謂的
23、時間差測距法。</p><p> 利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求, 隨著科學技術的快速發(fā)展,超聲波將的應用將越來越廣。但就目前技術水平來說,人們可以具體利用的超聲波技術還十分有限,因此,這是一個正在蓬勃發(fā)展而又有無限前景的技術及產(chǎn)業(yè)領域。</p><p> 超聲波測距技術在社會生活中已有廣泛的應用如汽車倒車雷達等,它
24、們測距精度一般較低。目前對超聲波高精度測距系統(tǒng)的需求越來越大。展望未來,超聲波作為一種新型的非常重要有用的工具在各方面都將有很大的發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求。未來的超聲波測距技術將朝著更高精度,更大應用范圍,更穩(wěn)定方向發(fā)展,死角問題也能得以解決。</p><p><b> 1 超聲波簡介</b></p><p> 由于超
25、聲波所具有的能量很大,就有可能使物質(zhì)分子產(chǎn)生顯著的聲壓作用、例如當水中通過一般強度的超聲波時超聲波流量計的基本原理及類型超聲波在流動的流體中傳播時就載上流體流速的信息。因此通過接收到的超聲波就可以檢測出流體的流速,從而換算成流量。根據(jù)檢測的方式,可分為傳播速度差法、多普勒法、波束偏移法、噪聲法及相關法等不同類型的超聲波流量計。起聲波流量計是近十幾年來隨著集成電路技術迅速發(fā)展才開始應用的一種 </p><p>
26、非接觸式儀表,適于測量不易接觸和觀察的流體以及大管徑流量。它與水位計聯(lián)動可進行敞開水流的流量測量。使用超聲波流量比不用在流體中安裝測量元件故不會改變流體的流動狀態(tài),不產(chǎn)生附加阻力,儀表的安裝及檢修均可不影響生產(chǎn)管線運行因而是一種理想的節(jié)能型流量計。 </p><p> 眾所周知,目前的工業(yè)流量測量普遍存在著大管徑、大流量測量困難的問題,這是因為一般流量計隨著測量管徑的增大會帶來制造和運輸上的困難,造價提高、能損
27、加大、安裝不僅這些缺點,超聲波流量計均可避免。因為各類超聲波流量計均可管外安裝、非接觸測流,儀表造價基本上與被測管道口徑大小無關,而其它類型的流量計隨著口徑增加,造價大幅度增加,故口徑越大超聲波流量計比相同功能,其它類型流量計的功能價格比越優(yōu)越。被認為是較好的大管流量測量儀表,多普勒法超聲波流量計可測雙相介質(zhì)的流量,故可用于下水道及排污水等臟污流的測量。在發(fā)電廠中,用便攜式超聲波流量計測量水輪機進水量、汽輪機循環(huán)水量等大管徑流量,比過去
28、的皮脫管流速計方便得多。超聲被流量汁也可用于氣體測量。管徑的適用范圍從2cm到5m,從幾米寬的明渠、暗渠到500m寬的河流都可適用。 </p><p> 另外,超聲測量儀表的流量測量準確度幾乎不受被測流體溫度、壓力、粘度、密度等參數(shù)的影響,又可制成非接觸及便攜式測量儀表,故可解決其它類型儀表所難以測量的強腐蝕性、非導電性、放射性及易燃易爆介質(zhì)的流量測量問題。</p><p> 超聲波具
29、有較好的指向性頻率越高,指向性越強。這在諸如探傷和水下聲通訊等應用場合是主要的考慮因素。頻率高時,相應地波長將變短,因而波長可與傳播超聲波的試樣材料的尺寸相比擬,甚至波長可遠小于試樣材料的尺寸.這在厚度尺寸很小的測量應用中以及在高分辨率的探傷應用中是非常重要的。超聲波用起來很安靜,人們聽不到它。這一點在高強度工作場合尤為重要。這些高強度的工作用可聞頻率的聲波來完成時往往更有效,然而遺憾的是,可聞聲波工作時所產(chǎn)生的噪聲令人難以忍受,有時甚
30、至是對人體有害的。</p><p><b> 2 系統(tǒng)功能設計</b></p><p> 2.1超聲波測距系統(tǒng)的基本原理</p><p> 本系統(tǒng)包括以下幾部分:以單片機AT89S51為核心,周圍電路包括顯示電路、超聲波發(fā)射電路、超聲波檢測接收電路、掃描驅(qū)動等。</p><p> AT89S51是一種帶4K字節(jié)閃
31、爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器。</p><p> 采用AT89S51來實現(xiàn)對CX20106A紅外接收芯片和TCT40-10系列超聲波轉(zhuǎn)換模塊的控制。單片機通過P1.0引腳經(jīng)反相器來控制超聲波的發(fā)送,然后單片機不停的檢測INT0引腳,當INT0引腳的電平由高電平變?yōu)榈碗娖綍r就認為超聲波已經(jīng)返</p><p> 回。計數(shù)器所計的數(shù)據(jù)就是超聲波所經(jīng)歷的時間,通
32、過換算就可以得到傳感器與障礙物之間的距離。</p><p><b> 圖2.1</b></p><p> 2.2 AT89S51芯片超聲波簡介</p><p> AT89S51控制超聲波信號的發(fā)送和接收,串行數(shù)據(jù)發(fā)送 ,及溫度校正 采樣頻率的輸入,并通過運算轉(zhuǎn)換成溫度數(shù)據(jù),校正不同溫度下,距離誤差后,在LED上顯示所測距的離厘米數(shù)據(jù)并和
33、已輸入的預置數(shù)進行比較, 如達到預置值則進行開或關的開關量信號輸出.LED顯示為動態(tài)循環(huán)顯示,共陽極接法. DS18B20 在本電路中取得外界溫度值, 以利于AT89S51的運算并校正不同溫度下測距的回波數(shù)值以及在LED上顯示實時環(huán)境的溫度值.接收電路接收物體反射超聲波回波信號,該芯片內(nèi)部包括了前置放大,限幅放大,整形,輸出數(shù)據(jù)信號以便MCU檢測, 判斷回波的數(shù)據(jù)正確與否及時差, 并計算出測距的距離數(shù)值.該板接收可預置超聲波控制器,發(fā)送
34、的1200BIT串行數(shù)據(jù)信號,直接用導線和超聲波控制器 串口連接時,可傳送幾十米,如通過485串口發(fā)送可傳送2千米以上。 </p><p> 2.3 AT89S51芯片的引腳結(jié)構(gòu)</p><p> 本次設計采用了常見的AT89S51單片機為核心處理器。AT89S51是一個低功耗,高性能CMOS 8位單片機,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-
35、51指令系統(tǒng)及80S51引腳結(jié)構(gòu), AT89S51具有40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 Bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。AT89S51單片機共有40個引腳,其引腳圖2.2如下:</p><p><b> 圖
36、2.2</b></p><p><b> 3 硬件設計</b></p><p><b> 3.1 硬件電路</b></p><p> 該設計的硬件電路由主控部分(單片機AT89S51)、計時部分(實時時鐘芯片DS1302)、顯示部分(八段數(shù)碼管)、電源部分(三端穩(wěn)壓器7805)4個部分組成。各部分之間相
37、互協(xié)作,構(gòu)成一個統(tǒng)一的有機整體,實現(xiàn)功能。各部分的硬件電路設計如下。</p><p><b> 3.2復位電路</b></p><p> 單片機AT89S51作為主控芯片,控制整個電路的運行。單片機外圍需要一個復位電路,復位電路的功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤消復位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復位信號,以防電源開關或電
38、源插頭分-合過程中引起的抖動而影響復位。該設計采用含有電阻的復位電路,復位電路可以有效的解決電源毛刺和電源緩慢下降(電池電壓不足)等引起的問題,在電源電壓瞬間下降時可以使電容迅速放電,一定寬度的電源毛刺也可令系統(tǒng)可靠復位。復位電路的設計圖如圖3.1示:</p><p><b> 圖 3.1</b></p><p> 復位是單片機的初始化操作,使CPU及各專用存儲器
39、處于一個確定的初始狀態(tài),其中把PC的內(nèi)容初始化為0000H,使單片機從0000H單元開始執(zhí)行程序,除了系統(tǒng)的正常開機(上電)復位外,當程序運行出錯或操作錯誤使系統(tǒng)處于死循環(huán)狀態(tài)時,為擺脫困境,可按復位鍵進行復位,復位電路由片外和片內(nèi)兩部分電路組成。AT89S51的RST引腳為復位引腳,只要在RST引腳上出現(xiàn)兩個機器周期以上的高電平,即可實現(xiàn)復位。復位通常有上電復位和按鍵復位兩種方法。本設計采用的是按鍵復位,當按下按鍵后,電容被短路,RS
40、T引腳就處于高電平,就可以達到復位的目的。電路如圖3.2所示。</p><p><b> 圖3.2</b></p><p><b> 3.3 顯示電路</b></p><p> 四段數(shù)碼顯示管有兩種,一種是共陽極數(shù)碼管,其內(nèi)部是由八個陽極相連接的發(fā)光二極管組成;另一種是共陽極數(shù)碼管,其內(nèi)部是由四個陽極相連接的發(fā)光二極
41、管組成。二者原理不同但功能相同。本設計的時間顯示選用四個共陰極四段數(shù)碼管LED,其外形和內(nèi)部結(jié)構(gòu)如圖3.3所示:</p><p><b> 圖3.3</b></p><p><b> 3.4 驅(qū)動電路</b></p><p> 而LED顯示電路就像單片機系統(tǒng)的眼睛,實時地向人們傳遞著系統(tǒng)工作的各種狀態(tài)信息和處理結(jié)果。
42、因此,高效、方便的LED顯示驅(qū)動電路是構(gòu)成完善的單片機系統(tǒng)必不可少的元素。常用的LED顯示驅(qū)動電路有并行譯碼方式、串行—并行轉(zhuǎn)換方式、顯示驅(qū)動接口芯片方式等。</p><p><b> 圖3.4</b></p><p><b> 3.5 接口電路</b></p><p> MCS-51系列單片機的并行I/O口:<
43、;/p><p> 接口電路是微機必不可少的組成部分,并行輸入確出接口是CPU和外部進行信息交換的主要通道。MSC-51系列單片有4個8位并行雙向I/O口P0~P3,共32根I/O線。每一根線能獨立用作輸入或輸出。單片機可以外接鍵盤、顯示器等外圍設備.還可以進行系統(tǒng)擴展,以解決硬件資源不足問題。4個并行口都是雙向口,既可以輸入又可以輸出。P0、P2口經(jīng)常作外部擴展存儲器時的數(shù)據(jù)、地址線,P3口除作I/O口外,每一根都
44、有第二功能。這4個I/O口結(jié)構(gòu)基本相同,但仍存在差別。</p><p> P1口:通道1,雙向I/O口,本次設計連接按鍵,用語按鍵信號的輸入</p><p><b> 3.6 時鐘模塊</b></p><p> 3.6.1 時鐘模塊設計</p><p> 本模塊由DS1302串行時鐘芯片和32.768K的晶振組成
45、,負責給系統(tǒng)提供實時時鐘。DS1302采用的是串行接口,簡單的三根連線就可以完成和單片機的通信,具有體積小、節(jié)省IO口、接口簡單等優(yōu)點。另外此芯片內(nèi)部建有31字節(jié)的靜態(tài)RAM,可以用于儲存單片機系統(tǒng)設置的一些參數(shù)。為了保證意外斷電不會造成時鐘復位和參數(shù)丟失,本設計給DS1302芯片外接了一個CR2032電池。</p><p><b> 圖3.5 時鐘模塊</b></p>&l
46、t;p> 3.6.2 DS1302時鐘芯片簡介</p><p> DS1302實時時鐘具有能計算2100年之前的秒分時日日期月年的能力還有閏年調(diào)整的能力,318位暫存數(shù)據(jù)存儲RAM,串行I/O口方式使得管腳數(shù)量最少,簡單3線接口,與TTL兼容VCC=5V[1]。</p><p> 圖3.6 DS1302時鐘芯片</p><p> 表3.1 DS1302
47、引腳功能說明</p><p> DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式。其日歷、時間寄存器及其控制字見表3.2。</p><p> 表3.2 DS1302的日歷、時鐘寄存器及其控制字</p><p> 此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突發(fā)寄
48、存器可一次性順序讀寫除充電寄存器外的所有寄存器的內(nèi)容。DS1302與RAM相關的寄存器分為兩類,一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H--FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。</p><p><b> 4 軟件設計</b>&
49、lt;/p><p> 4.1 程序流程設計</p><p> 4.1.1主程序設計</p><p><b> 圖4.1</b></p><p> 4.1.2 按鍵中斷處理流程</p><p> 圖4.2 按鍵中斷處理流程圖</p><p> 4.1.3 軟件去抖動
50、流程</p><p> 圖4.3 軟件去抖動流程</p><p><b> 4.2延時程序</b></p><p> 延時程序延與 MCS - 51 執(zhí)行指令的時間有關, 如果使用 6 MHz晶振, 一個機器周期為 2 μs, 計算出一條指令以至一個循環(huán)所需要的執(zhí)行時間, 給出相應的循環(huán)次數(shù), 便能達到延時的目的。10 秒延時程序如下:
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)程序, 即在一個循環(huán)體中又包含了其它的循環(huán)程序, 這種方式是實現(xiàn)延時程序的常用方法。 使用多重循環(huán)時, 必須注意: </p><p> (1) 循環(huán)嵌套,
53、必須層次分明, 不允許產(chǎn)生內(nèi)外層循環(huán)交叉。 </p><p> (2) 外循環(huán)可以層層向內(nèi)循環(huán)進入, 結(jié)束時由里往外層層退出。 </p><p> (3) 內(nèi)循環(huán)可以直接轉(zhuǎn)入外循環(huán), 實現(xiàn)一個循環(huán)由多個條件控制的循環(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í)行過程中,容許外部或內(nèi)部事件通過硬件打斷程序的執(zhí)行,使其轉(zhuǎn)向為處理外部或內(nèi)部事件的中斷服務程序中去;完成中斷服務程序后,CPU繼續(xù)原來被打斷的程序,這樣的過程稱為中斷過程,</p><p> 4.3.2 中斷
55、響應的一般過程</p><p> (1) 在每條指令結(jié)束后, 系統(tǒng)都自動檢測中斷請求信號, 如果有中斷請求,且CPU處于開中斷狀態(tài)下, 則響應中斷。 </p><p> (2) 保護現(xiàn)場, 在保護現(xiàn)場前, 一般要關中斷, 以防止現(xiàn)場被破壞。保護現(xiàn)場一般是用堆棧指令將原程序中用到的寄存器推入堆棧。 </p><p> 4.3.3 80S51中有
56、五個中斷源</p><p> MCS - 51單片機有 5個(8052有 6個)中斷源, 為了使每個中斷源都能獨立地被允許或禁止, 以便用戶能靈活使用, CPU內(nèi)部在每個中斷信號的通道中設置了一個中斷允許觸發(fā)器, 它控制CPU能否響應中斷。只有對應的中斷允許觸發(fā)器被使能(置“1”),相應的中斷才能得到相應。</p><p> 4.3.4 MCS—51中斷系統(tǒng)</p>&
57、lt;p><b> 圖4.5</b></p><p> 4.3.5中斷系統(tǒng)的應用 </p><p> 例 1 單步操作的中斷實現(xiàn)。</p><p> 把一個外部中斷(設為INT0])設置為電平激活方式。其中斷服務程序的末尾寫上如下幾條指令: </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就進入外部中斷 0 服務程序, 由于有上述幾條指令, 它就會停在 JNB處, 原地
59、等待。當INT0 端出現(xiàn)一個正脈沖(由低到高, 再到低)時, 程序就會往下執(zhí)行, 執(zhí)行RETI后, 將返回主程序, 往下執(zhí)行一條指令, 然后又立即響應中斷,以等待INT0端,出現(xiàn)的下一個正脈沖。 這樣在INT0端每出現(xiàn)一個正脈沖, 主程序就執(zhí)行一條指令, 實現(xiàn)了單步執(zhí)行的目的, 要注意的是, 這個正脈沖的高電平持續(xù)時間不小于 2 個周期, 以確保 CPU能采集到高電平值。</p><p> 4.4 完整程序設計
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位定時器</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、 ;超聲波肪沖個數(shù)控制(為賦值的一半)</p><p> SETB PX0</p><p> SETB ET1</p><p> SETB EA</p><p> SETB TR1 ;開啟測距定時器</p><p> start1: LCALL DISP
70、LAY</p><p> JNB 00H,START1 ;收到反射信號時標志位為1</p><p><b> CLR EA</b></p><p> LCALL WORK ;計算距離子程序</p><p> clr EA <
71、/p><p> MOV R2,#32h;#64H ;測量間隔控制(約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 ;重新開啟測距定時器</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 ;啟動計數(shù)器T0,用以計</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 ;延時,避開發(fā)射的直達聲波信號</p><p> SETB EX0 ;開啟接收回波中斷</p><p> RETIOUT: RETI</p><p&g
80、t; ;外中斷0,收到回波時進入</p><p> PINT0: nop</p><p> jb p3.2,pint0_exit</p><p> CLR TR0 ;關計數(shù)器</p><p> CLR EA ;</p><p> CLR
81、 EX0 ;</p><p> MOV 44H,TL0 ;將計數(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 ;接收成功標志</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> ;共陽段碼表 "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> ;* 延時程序 *</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> ;* 距離計算程序 (=計數(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 ;最高位為零,不點亮</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é)無符號數(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é)無符號數(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單片機制作的超聲
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文_超聲波測距儀
- 超聲波測距儀畢業(yè)論文
- 超聲波測距儀畢業(yè)論文
- 超聲波測距儀的設計畢業(yè)論文
- 超聲波測距儀的設計畢業(yè)論文
- 超聲波測距儀
- 超聲波測距儀畢業(yè)設計論文
- 超聲波測距儀畢業(yè)論文-智能遙控小車
- 超聲波測距儀畢業(yè)設計論文
- 超聲波測距儀畢業(yè)設計論文
- 超聲波測距儀的設計和實現(xiàn)畢業(yè)論文
- 超聲波測距儀畢業(yè)設計
- 超聲波測距儀設計
- 超聲波測距儀畢業(yè)設計
- 超聲波測距儀畢業(yè)設計
- 畢業(yè)論文--基于單片機的超聲波測距儀
- 畢業(yè)論文--基于單片機的超聲波測距儀
- 外文翻譯---超聲波測距儀
- 畢業(yè)設計---超聲波測距儀設計
- 外文翻譯超聲波測距儀
評論
0/150
提交評論