數字超聲波倒車測距儀設計-畢業(yè)設計_第1頁
數字超聲波倒車測距儀設計-畢業(yè)設計_第2頁
數字超聲波倒車測距儀設計-畢業(yè)設計_第3頁
數字超聲波倒車測距儀設計-畢業(yè)設計_第4頁
數字超聲波倒車測距儀設計-畢業(yè)設計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上數字超聲波倒車測距儀設計 學生:XX 指導教師:XX內容摘要:在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用。單片機是把主要計算機功能部件都集成在一塊芯片上的微型計算機。它是一種集計數和多中接口于一體的微控制器。而52單片機是個單片機中最為典型和最有代表性的一種。 本設計主要應用AT89C52作為控制核心,與顯示器,驅動電路等相結合的系統(tǒng)。基于單片機設計。利用單片機AT89C52作為報警裝置的控制器,能充分發(fā)揮AT89C52的數據處理和實時控制功能而設計的數字超聲波倒車測距儀。使系統(tǒng)工作于最佳狀態(tài),提高系統(tǒng)的靈敏度。其優(yōu)點是體積小、使用方便

2、、硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,具有一定的使用和參考價值。若將安全距離設為0.5m,就可作為汽車倒車報警器,提高汽車倒車時的安全性。 該數字超聲波倒車測距儀利用超聲波實現對汽車的測距。利用單片機的實時控制和數據處理功能完成系統(tǒng)的控制。文章給出了測距儀的硬件電路原理及軟件設計。關鍵詞:AT89C52 超聲波 測距儀專心-專注-專業(yè)The design of Digital ultrasonic Reverse rangefinderAbstract: In the application system of single-chip microcomputer of real-time

3、 detection and automatic control, the single-chip microcomputer always be used as a core components. The single-chip microcomputer is a microcomputer which collect all the important computer components to a chip.It is a kind of micro controller which contains count and varieties of interface. Howeve

4、r, the 52 single-chip is the most typical and representative one of all the single-chip.This design is mainly taking AT89C52 as the control core, it is a system of connecting monitor, drive circuit etc. According to the design of the single-chip, using AT89C52 as the controller of alarm device will

5、fully develop the function of data processing and real-time control of AT89C52. This kind of single-chip ensures the best condition and arises the sensitivity of the system. The merit of this single-chip is the small volume, convenience, simple hardware circuit, perfect software functions, the Contr

6、ol system is reliable,as well as the value of using and reference. If the safety distance is 0.5m, the single-chip may be setted as the reverse alarm and the safety will be improved. This digital ultrasonic reverse rangefinder uses ultrasonics to finish the test of the distance of vehicles. Completi

7、ng the control of the system with real-time detection and the function of data processing. This essay is mainly talking about the hardware circuit principle and the software design of rangefinder.Keywords: AT89C52 ultrasonic rangefind目 錄數字超聲波倒車測距儀設計前言 人們能聽到聲音是由于物體振動產生的,它的頻率在20HZ-20KHZ范圍內,超過20KHz稱為超聲

8、波,低于20Hz的稱為次聲波。常用的超聲波頻率為幾十KHz幾十MHz。由于超聲波指向性強,因而常于距離的測量。利用超聲波檢測往往比較迅速、方便、計算簡單、易于做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求,因此在移動機器人,汽車安全,海洋測量等上得到了廣泛的應用。本設計提供一種液晶顯示測距裝置,該裝置利用了發(fā)射接收一體化的超聲波傳感器和微處理器。采用超聲波傳感器分時工作于發(fā)射和接收,利用聲波在空氣中的傳播速度和發(fā)射脈沖到接收反射脈沖的時間間隔計算出障礙物到超聲波測距器之間的距離。距離是在不同的場合和控制中需要檢測的一個參數,所以,測距就成為數據采集中要解決的一個問題。盡管測距有多種方式,

9、比如,激光測距,微波測距,紅外線測距和超聲波測距等。但是,超聲波測距不失為一種簡單可行的方法。雖然超聲波測距電路多種多樣,甚至已有專用超聲波測距集成電路。但是,有的電路復雜,技術難度大,有的調試困難,有的元件不易購買。本文介紹的電路,成本低廉,性能可靠,所用元件易購,并且利用測距原理,結合單片機的數據處理,使測量精度提高,電路實現容易,無須調試,工作穩(wěn)定可靠。1 數字超聲波倒車測距儀 超聲波倒車測距儀俗稱倒車雷達又稱泊車輔助系統(tǒng),一般由超聲波傳感器(俗稱探頭)、控制器和顯示器等部分組成,現在市場上的倒車雷達大多采用超聲波測距原理,駕駛者在倒車時,啟動倒車雷達,在控制器的控制下,由裝置于汽車車尾

10、保險杠上的探頭發(fā)送超聲波,遇到障礙物,產生回波信號,傳感器接收到回波信號后經過控制器進行數據處理,判斷障礙物的位置,由顯示器顯示距離并發(fā)出警示信號,得到及時警示,從而使駕駛者倒車時做到心中有數,使倒車變得更輕松。介紹1.1 數字超聲波倒車測距儀功能分析這部分闡述了數字超聲波倒車測距儀的各種動作功能和控制要求,給出了完整的數字超聲波倒車測距儀操作規(guī)程,并介紹了數字超聲波倒車測距儀運行系統(tǒng)種所包括的人工操作步驟。1.1.1 數字超聲波倒車測距儀的基本功能在進行程序編寫之前,首先要做的工作是數字超聲波倒車測距儀本身所具備的功能及在進行某種操作后所具有的狀態(tài)。數字超聲波倒車測距儀的基本功能就是對汽車尾

11、部到靜止物體的距離進行運算,并根據所測距離數值判斷是否能夠順利完成車輛的倒車,并作出相應的反應。數字超聲波倒車測距儀的工作框圖如圖1.1.1-1所示:AT89C52單片機超聲波發(fā)射頭放大電路超聲波接收頭放大電路LCD顯示鍵盤圖1.1.1-1 超聲波倒車測距儀工作框圖1.2 控制器的選型與工作原理當某一個控制任務決定由控制器來完成后,選擇控制器就成為最重要的事情。一方面要選擇多大容量的控制器 ,另一方面是選擇什么公司的單片機及外設。對第一個問題,首先要對控制任務進行詳細的分析,把所有的I/O口找出來,包括每個端口的具體功能。1.2.1 AT89C52的硬件結構圖XTAL1RESETEAPSTNA

12、LEXTAL2CPU(運算器)(控制器)程序存儲器4Kb Flash ROM數據存儲器RAM特殊功能寄存器SFRP0P2看門狗定時器串行口定時器/計數器 16位 2個中斷系統(tǒng)P1P3圖1.2.1-1 AT89C52硬件結構圖1.2.2 AT89C52各部分的作用與工作原理 1.2.2.1 中央處理器 CPU是由控制器和運算器組成的。運算器也稱為算術邏輯單元,它的功能就是進行算術運算和邏輯運算??刂破鞯淖饔檬强刂普麄€計算機的各個部件有條不紊地工作,其基本功能是從內存中取指令和執(zhí)行指令。他的重要功能如下: 為一般控制應用的 8 位單芯片; 晶片內部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz);

13、 內部程式存儲器(ROM)為 4KB; 內部數據存儲器(RAM)為 128B; 外部程序存儲器可擴充至 64KB; 外部數據存儲器可擴充至 64KB; 32 條雙向輸入輸出線,且每條均可以單獨做 I/O 的控制; 5 個中斷向量源; 2 組獨立的 16 位定時器; 1 個全多工串行通信端口; 8751 及 8752 單芯片具有數據保密的功能; 單芯片提供位邏輯運算指令。1.2.2.2 存儲器AT89C52的存儲器分為兩大部分一大部分是程序存儲器,用來存放系統(tǒng)管理程序、監(jiān)控程序及其系統(tǒng)內部數據;二大部分是數據存儲器,用于存放中間運算結果、數據暫存和緩沖、標志位。1.2.2.3 I/O口介紹圖1.

14、2.2.3-1 AT89C52管腳圖 VCC: 電源 GND: 電源地 P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有內部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。 P1 口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅動4 個TTL 邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為

15、輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。在flash編程和校驗時,P1口接收低8位地址字節(jié)。具體如下所示:P1端口第二功能:P1.0T2(定時器/計數器T2的外部計數輸入),時鐘輸出P1.1T2EX(定時器/計數器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用) P2 口:P2 口是一個具有

16、內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執(zhí)行MOVX DPTR)時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O

17、口,p2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89C52特殊功能(第二功能)使用。在flash編程和校驗時,P3口也接收一些控制信號。P3端口第二功能:P3.0RXD(串行輸入)P3.1TXD(串行輸出)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器寫選通) RST: 復位輸入。晶振工作時,

18、RST腳持續(xù)2 個機器周期高電平將使單片機復位??撮T狗計時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。 ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一

19、位置 “1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。 PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89C52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數據存儲器時,PSEN將不被激活。 EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內部程序指令,EA應該接VCC。在flash編程期間,EA也接收12伏VPP電壓。 XT

20、AL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。1.2.2.3 系統(tǒng)的基本工作原理系統(tǒng)的工作是由軟件和硬件的配合過程。先由AT89C52單片機使NE555使能端置1,繼而NE555送出40kHz頻率的方波信號經過壓電換能器(超聲波發(fā)射頭)將信號發(fā)射出去及發(fā)射超聲波,同時該時刻啟動定時器開時計時。該信號遇到障礙物反射回來在此稱為回波。同時,壓電換能器(超聲波接收頭)將接收的回波及接收超聲波,通過信號處理的檢波放大,及通過三級放大后再送到比較器進行比較輸出比較電壓, 輸出電壓經過三極管以后,使之電壓與AT89C52的I/O口相匹配最后送至微機處理。最后進

21、行LCD液晶顯示。數字超聲波倒車測距儀的工作框圖如圖1.1.1-1所示。2 系統(tǒng)硬件電路設計2.1 單片機的最小系統(tǒng)單片機正常工作時,都需要有一個時鐘電路,和一個復位電路。本設計中選擇了內部時鐘方式和按鍵電平復位電路,來構成單片機的最小電路。如圖2.1-1所示。圖2.1-1 AT89C52最小系統(tǒng)2.2 時鐘電路計算機工作時,是在統(tǒng)一的時鐘脈沖控制下一拍一拍的進行的,這個脈沖是由單片機控制器中的時序電路發(fā)出的。單片機的時序就是CPU在執(zhí)行指令時所需控制信號的時間順序。為了保證各部件間的同步工作。單片機內部電路就在惟一的時鐘信號控制下嚴格的按時序進行工作。要給單片機提供時序要有相關的硬件電路,即

22、振蕩器和時鐘電路。因此選擇了內部時鐘方式。利用蕊片內部的振蕩器,然后在引腳XTAL1和XTAL兩端跨接晶體或陶瓷諧振器,就構成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內部時鐘電路如圖1所示,外接晶振時,C1和C2值通常選擇為30PF左右。C1,C2對頻率有微調作用。晶體的頻率范圍可在1.212MHZ之間選擇。在實際連接中,為了減少寄生電容,更好地保證振蕩器穩(wěn)定??煽康毓ぷ?,振蕩器和電容應盡可能安裝得與單片機芯片靠近。2.3 復位電路復位是單片機的初始化操作。單片機在啟動運行時,都需要先復位,其作用是使CPU和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。因而,復位是一個很重要的

23、操作方式。但單片機本身是不能自動進行復位的,必須配合相應的外部電路來實現。2.4 多諧振蕩器采用NE555 構成多諧振蕩器可以實現占空比的調節(jié)。并且電路設計簡單,占用面積小。由單片機AT89C52的P2.3口發(fā)出同步脈沖信號,該同步脈沖啟動多諧振蕩器,使其輸出40KHz的高頻電壓信號,經過整形直接加至超聲波換能器探頭。根據逆壓電效應, 產生振動頻率為40KHz的超聲波。如圖2.3-1所示:圖2.4-1 多諧振蕩器和超聲波發(fā)射電路接通電源后,電容C被充電,VC上升,當VC上升到2/3VCC時,觸發(fā)器被復位,同時放電BJT T導通,此時Vo為低電平,電容C通過R2和T放電,使VC下降。當VC下降到

24、1/3VCC時,觸發(fā)器又被置位,Vo翻轉為高電平。電容器C放電所需的時間為: (2.4-1) 當C放電結束時,T截止,VCC將能過R1,R2向電容器充電,VC由1/3VCC上升到2/3VCC所需的時間為: (2.4-2)當VC上升到2/3VCC時,觸發(fā)器又發(fā)生翻轉,如此周而復始,在輸出端就得到一個周期性的方波,其頻率為: (2.4-3)由于NE555內部的比較器的靈敏度較高,而且采用差分電路形式,它的振蕩頻率受電源電壓的溫度變化的影響很小。圖2.4-2 NE555的工作波形圖從NE555的工作波形圖,可看出占空比是固定不變的。為了調解的方便,我把R1和R2都換成了電位器,就形成了占空比可調的電

25、位器。使的超聲波的發(fā)射電路更加具有高效性。也能滿足波盡可能的減小失真。從面達到測距更長的效果。2.5 超聲波傳感器從圖2.4-1超聲波的發(fā)射電路上看還有一個超聲波傳感器。它具有把電信號轉化為機械信號,同時又能把機械信號轉化為電信號的功能。在設計中選擇了壓電式超聲波發(fā)聲器。壓電式超聲波發(fā)生器實際上是利用壓電晶體的諧振來工作的。超聲波發(fā)生器內部結構中,它有兩個壓電晶片和一個共振板。壓電晶體組成的超聲波傳感器是一種可逆?zhèn)鞲衅鳎梢詫㈦娔苻D變成機械振蕩而產生超聲波,同時它接收到超聲波時,也能轉變成電能,所以它可以分成發(fā)送器或接收器。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片

26、將會發(fā)生共振,并帶動共振板振動,便產生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉換為電信號,這時它就成為超聲波接收器了。本文所采用的超聲波傳感器是T/R-40-16(其中T表示發(fā)送,R表示接收,40表示頻率為40KHZ,16表示其外徑尺寸,以毫米計)。2.6 超聲波接收電路超聲波接收電路包括由MC3403構成的三級回波放大電路以及LM358電壓比較整形電路兩部分,與超聲波接收傳感器T-40-16配合使用,實現超聲波的接收功能。圖2.6-1 超聲波接收電路2.7 放大電路及參數設定當測量距離較大時,超聲波的回波較弱,這時候就需要將信號放大,否則

27、其轉換成電信號的幅值也會比較小。在設計中,采用三級放大電路,將信號最大能放大50萬倍。其中運算放大器IC3A、IC3B放大倍數為100倍,IC3C放大倍數為可調的。根據公式Au=R6/R4(以第一級放大電路為例),可以求得各放大電路的參數。計算后,取值如下,R3=10K,R4=10K,R6=1M,R7=1M。第三給放大是可調的Au=Rx/R2。其中R2=10K。Rx為500K可調的滑動變阻器。所以放大倍數是在(050)之間。從圖3。5中,可以看到各個運放的基準電壓都是可調的。這樣更有利于達到自己想要的理想結果。超聲波接收頭接收到的40 kHz反射波交流信號。電容C5、C9、C12的作用為濾掉直

28、流信號,對電容的大小無特別要求,所以一律選為1000PF。其中的放大電路是由MC3403構成的。MC3403是四低功耗運算放大器。MC3403的引腳結構如圖2.7-1所示:圖2.7-1 MC3403的引腳結構2.8 電壓比較電路及參數設計電壓比較器的功能是比較兩個電壓值的大小,例如,將一個信號電壓和另一個參考電壓進行比較,在>和<時,電壓比較器輸出兩個不同的電平,即高電平和低電平。比較器的輸出通常只有高電平和低電平兩個穩(wěn)定狀態(tài),因此它相當于一個受輸入信號控制的開關,當輸入電壓經過閾值時開關動作,使輸出從一個電平跳轉到另一個電平。系統(tǒng)中,比較器的作用是將信號電壓與設定的基準電壓相比較

29、,當信號電壓大于基準電壓時,比較器輸出正脈沖,導通,P2.5接收負脈沖信號,單片機CPU發(fā)出中斷,記錄發(fā)射信號與接受信號之間的時間,并計算距離。在比較器的設計中要考慮兩點因素:第一,要使導通;第二,要使經過三極管以后的電壓與AT89C52的P2.5口相匹配。為了在實際應用時能得到合適的參數,將設計為最大阻值為5.1 k的電阻,這樣,的阻值便可得到滿足上述條件的電壓信號。用做電壓比較器的的LM358,從圖2.8-1可以看出比較器的的基準電壓是可調的,因為從超聲波接收的信號,要求有很高的靈敏度和精度,從放大電路出來的電壓變化是非常微妙的,必須配和可調的基準電壓采能滿足進行比較達到達到設計中的需要。

30、LM358內部包括有兩個獨立的、高增益、內部頻率補償的雙運算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關。它的使用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運算放大器的場合。LM358的引腳結構圖:圖2.8-1 LM358的引腳結構2.9 AT89C52和LCD顯示器模塊的硬件接口AT89C52和JM12864J的硬件接口連線如圖2.9-1所示。在圖中看出,LCD顯示器模塊的能動信號E是由AT89C52的P3.2控制。當P3.2電平由高到低產生一個下降沿脈沖,就產生能動信號E。AT89C52的P3端口的P3.

31、0P3.5用于產生控制信號,用于控制LCD顯示模塊的工作。其中P3.0用于產生數據指令標志信號RS;P3.1用于產生讀寫信號R/W;P3.3、P3.4用于產生選擇信號CS1、CS2;P3.5用于產生復位信號RST。AT89C52的P1端口用于傳送數據或指令,故P1.0P1.7和LCD顯示器模塊的DB0DB7相連。為使顯示屏能具有滿意的亮度,在+5V和-5V之間接一個電位器,用于調節(jié)VEE的電壓。VEE的電壓一般取0-5V。AT89C52和LCD顯示器模塊的硬件接口:圖2.9-1 AT89C52和LCD顯示器模塊的硬件接口在JM12864J型LCD顯示器模塊就用中,有7種指令格式。這些指令用于對

32、模塊執(zhí)行專門的控制功能,為些指令及其功能分別說明如下。 表2.9-1 顯示開關控制(DISPLAY ON/OFF)指令代碼R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 0 0 1 1 1 1 1 DD=1:開顯示(DISPLAY ON) 意即顯示器可以進行各種顯示操作D=0:關顯示(DISPLAY OFF) 意即不能對顯示器進行各種顯示操作 表2.9-2 設置顯示起始行(DISPLAY START LINE)指令代碼R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 1 1 A5 A4 A3 A2 A1 A0 Z地址計數器是一個6位計數器。此計數器

33、具備循環(huán)計數功能,是用于顯示行掃描同步的。當一行掃描完成,此地址計數器自動加1,指向下一行掃描。RST復位后Z地址計數器為0。顯示起始行是由Z地址計數器控制的。A5A0 6位地址自動送入Z地址計數器,起始行的地址可以是063的任意一行。例如:選擇A5A0是62,則起始行與DDRAM行的對應關系如下:DDRAM 行:62 63 0 1 2 3 ················· 28 29屏幕顯示行: 1 2 3 4 5 6&#

34、183;················ 31 32表2.9-3 設置頁地址(SET PAGE “X ADDRESS”)指令代碼R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 1 0 1 1 1 A2 A1 A0所謂頁地址就是DDRAM的行地址,8行為一頁,模塊共64行即8頁,A2A0表示07頁。讀寫數據對地址沒有影響,頁地址由本指令或RST信號改變復位后頁地址為0。頁地址與DDRAM的對應關系見DDRAM地址表

35、。 表2.9-4 設置Y地址(SET Y ADDRESS)代碼R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 0 1 A5 A4 A3 A2 A1 A0此指令的作用是將A5A0送入Y地址計數器,作為DDRAM的Y地址指針。在對DDRAM進行讀寫操作后,Y地址指針自動加1,指向下一個DDRAM單元。表2.9-5讀狀態(tài)(STATUS READ)代碼R/W RSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 1 BUSY 0ON/OFFRET 0 0 0 0當R/W=1 RS=0時,在E信號為“H”的作用下,狀態(tài)分別輸出到數據總線(DB7DB0)的相應位。BF: B

36、F標志組件內部的工作情況。BF=1表示組件在進行內部操作,此時組件不接受外總指令和數據;BF=0時,組件為準備狀態(tài),隨時可接受外總指令和數據。ON/OFF: 表示DFF觸發(fā)器的狀態(tài),用于控制屏幕顯示的開和關。RST: RST=1表示內部正在初始化,此時組件不接受任何指令和數據表2.9-6 寫顯示數據(WRITE DISPLAY DATE) 代碼R/W RSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0D7D0為顯示數據,此指令把D7D0寫入相應的DDRAM單元,Y地址指針自動加1。表2.9-7 讀顯示數據(READ DISPLAY

37、DATE) 代碼R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0 此指令把DDRAM的內容D7D0讀到數據總線DB7DB0,Y地址指針自動加1。3 系統(tǒng)軟件設計系統(tǒng)軟件部分包括主程序、中斷子程序和其他子程序。主程序完成系統(tǒng)初始化后調用LCD液晶顯示程序,再調用測距在內的各個子程序完成距離測量并顯示輸出。各子程序主要有:延時子程序、距離計算子程序及BCD碼轉換子程序,壓縮BCD碼乘法子程序,壓縮BCD碼加子法程序等。3.1 超聲波接收發(fā)射軟件設計3.1.1 距離計算問題采用單片機來控制的超聲波測距儀是先由單片機產生一個信號,經

38、過信號線,把信號引入到與超聲波發(fā)射器相連的信號引腳上,再由超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的距離(s),即: (3.1.1-1)超聲波發(fā)射接收所測距離的軟件設計中,讓單片機省去了繁雜的除法計算。以170乘上超聲波從發(fā)射到接收的時間。即有壓縮BCD碼乘法進行計算。當然我們知道,定時器計數的最大值是65535us,如果以這個時間乘以170m距離能達到11.m。因此在設計中,考慮到用上了定時器0溢出

39、標志TF0。當超聲波從發(fā)射到接收的時間超過了65535us,就把TF0置1,然后軟件將TF0清0,著開始計數。最后是把后來的計數時間乘以170。所得的結果加上11.N。N為TF1置1次數。即調用壓縮BCD碼加法。最后就進行解壓縮進行顯示。把所得的結果的每一位分配到不同的地址上。最后就根據地址確定位數了。3.1.2 串擾問題設計中,超聲波發(fā)射極和接收極距離較近,這樣,當發(fā)射極發(fā)射超聲波后,有部分超聲波沒經過障礙物反射就直接繞射到接收極上,這部分信號是無用的,會引起系統(tǒng)誤測。設計中采用延時技術來解決這個問題,并設定延時時間為1 ms,即在發(fā)射極發(fā)射超聲波1 ms內,沒有啟動定時器 ,接收電路對此期

40、間接收到的任何信號不予理睬,1 ms后立即啟動T0,這時接收到的信號才有效,并在接收到回波信號的同時,T0停。此時T0所記錄的CPU發(fā)送脈沖信號的前沿到回波脈沖信號之間的時間才是需要的。3.1.3 程序流程圖程序主流程圖:YN程序初始化調用LCD顯示按鍵等待返回測距初始化超聲小波發(fā)射接收距離計算LCD顯示開始結束圖3.1.3-1 程序主流程圖超聲波發(fā)射接收程序流程圖:TF0=0YNYNTF0=1發(fā)射超聲波脈沖查詢定時溢出有回波嗎?計算距離調用LCD液晶顯示初始化按鍵等待計時器計時開始停止計時開始結束圖3.1.3-2 超聲波發(fā)射接收程序流程圖3.2 LCD液晶顯示器軟件設計JM12864J有12

41、864的點的顯示陣列??娠@示漢字(48個1616點陣漢字),也可顯示數字(416個168點陣數字)。在軟件編程必須要嚴格遵守點陣的坐標位置,否則就容易漢字數字的重疊,達不到理想的效果,出現一批亂碼。在軟件設計中,首先要寫入全部字符。查要尋址的的二進制編碼的坐標位置,定位好后,就寫進二進制字符。緊接著就是內部寫數據代碼指針定位,再寫入數據。每一次寫字符時,都是寫字符的上半部,接著再寫字符的下半部。同時必須配合刷新程序,才能在屏幕上顯示清晰的效果,不會出現亂碼。3.2.1 讀/寫時序利用AT89C52單片機可以實現對LCD顯示器模塊的讀寫操作,也就是把顯示信息取出或寫入到模塊中的顯示數據存儲器DD

42、RAM中讀寫有一定的時序要求。這時分別介紹其讀時序和寫時序。3.2.1.1 LCD顯示模塊讀時序LCD顯示器模塊的讀時序由信號E,R/W,CS,RS和DB0DB7組成。E是能動信號,R/W是讀寫信號,RS是顯示/指令標志位,CS是選擇信號,DB0DB7是數據信號。JM12864J的讀時序如圖4.3所示。從圖中可以看出:R/W=1時,執(zhí)行讀操作,在E信號的上升沿開始執(zhí)行讀出,把JM12864J內的DDRAM內容讀出到數據總線DB0DB7上。這時如果RS=1,則讀出的是顯示數據:如果RS=0,則讀出的是指令數據。CS2=1,CS1=0,讀右半屏的內容:CS2=0,CS1=1,讀左半屏的內容。圖3.

43、2.1.1 LCD顯示模塊讀時序3.2.1.2 LCD顯示模塊寫時序JM12864J的寫時序如圖4.4所示。寫時序和讀時序的區(qū)別在于R/W信號為低電平,即R/W=0。這時,必須先把寫入的數據由外部單片機送入數據總線DB0DB7,然后在能動信號E的下降沿時,把數據從DB0DB7寫入到模塊的顯示數據存儲器DDRAM中。同樣,在RS=1時,寫入的是數據;RS=0時,寫入的是指令。在CS2=1,CS1=0時,把數據寫入右半屏;在CS2=0,CS1=1時,把數據寫入左半屏。圖3.2.1.2 LCD顯示模塊寫時序4 結束語首先感謝XX老師、XX老師對本次課程設計的大力支持和幫助,讓我順利的完成了本次設計,

44、是兩位老師的專業(yè)知識感染了我,使我能夠用嚴謹的工作態(tài)度面對學習。在本次設計的過程中,我發(fā)現很多的問題,給我的感覺就是很難,很不順手,看似很簡單的電路,要動手把它給設計出來,是很難的一件事,主要原因是我們沒有經常動手設計過電路以及在設計過程中用到的知識我學得不是很扎實,還有資料的查找也是一大難題,這就要求我們在以后的學習和工作中,應該注意到這一點,更重要的是我們要學會把從書本中學到的知識和實際的電路聯系起來,這不論是對我們以后的就業(yè)還是學習,都會起到很大的促進和幫助。不過本次設計中仍有不足之處,其中主要的不足之處就是回波的設計要求。其主要原因是設計條件不夠。同時,通過課程畢業(yè)設計,鞏固了我們學習

45、過的專業(yè)知識,也使我們把理論與實踐從真正意義上相結合了起來;考驗了我們借助互聯網絡搜集、查閱相關文獻資和組織材料的綜合能力;從中可以自我測驗,認識到自己哪方面有欠缺、不足,以便于在日后的工作中得以改進、提高。通過使用電路設計軟件Altium Designer提高了工作效率。最后,感謝父母給予我的生命,感謝他們?yōu)槲业母冻觯「兄x老師們的無私奉獻!附錄:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned lo

46、nguint c=340; /定義10度時聲音的速度ulong l,time;char ii=1,k=80,aa;char t,ts,tg,lb,ls,lg,lsf,fh,cb,cs,cg;sbit RW=P21; /定義LCD讀/寫選擇端sbit RS=P20;/定義LCD數據/命令選擇端sbit E=P22; /定義LCD使能端sbit k3=P12;sbit k4=P13;sbit sg=P37; /定義超聲波射引腳sbit ctl=P35;/定義超聲波控制引腳uchar tplsb,tpmsb; /溫度值低位、高位字節(jié)sbit DQ=P36; /DS18B20數據通信線ulong tp

47、,sw,gw,sfw,bfw,tppp;uchar *p;void delay(uint i) /延時程序while(i-); /*產生復位脈沖初始化DS18B20*/void Txreset()DQ=0; delay(100); /拉低約900US DQ=1; /產生上升沿 delay(4); /*等待應答脈沖*/ void Rxwait()while(DQ); while(DQ=0); /檢測到應答脈沖 delay(4); /*讀取數據的一位,滿足讀時隙要求*/bit Rdbit()uint i; bit b; DQ=0; i+; /保持至少1US DQ=1; i+; i+; /延時節(jié)15

48、US以上 b=DQ; i=8; while(i>0)i-; return(b); /讀時隙不低于60US/*讀取數據的第一個字節(jié)*/uchar Rdbyte()uchar i,j,b; b=0; for(i=1;i<=8;i+) j=Rdbit(); b=(j<<7)|(b>>1); return(b);/*寫數據的第一個字節(jié),滿足寫1和寫0的時隙要求*/void Wrbyte(uchar b)uint i; uchar j; bit btmp; for(j=1;j<=8;j+) btmp=b&0x01; b=b>>1; /取下一位

49、(由低位向高位) if(btmp) DQ=0; i+; i+; /延時,使得15US以內拉高 DQ=1; i=8; while(i>0)i-;/整個寫1時隙不低于60US DQ=1; i+; i+; else DQ=0; i=9; while(i>0)i-; /保持低在60至120US之間 DQ=1; i+; i+; /啟動溫度變換/void convert() Txreset();/產生復位脈沖,初始化DS18B20 Rxwait();/等待DS18B20給出的應答脈沖 Wrbyte(0xcc); /skip rom命令 Wrbyte(0x44); /convert T命令voi

50、d Rdtemp() /溫度讀取值/Txreset(); /產生復位脈沖,初始化DS18B20 Rxwait(); /等待DS18B20給出的應答脈沖 Wrbyte(0xcc); /skip rom命令 Wrbyte(0xbe); /convert T命令 tplsb=Rdbyte(); /溫度值低位字節(jié) tpmsb=Rdbyte(); /溫度高位字節(jié)/ date() tp=tpmsb*256+tplsb; sw=tp*625/; /讀取溫度十位/ gw=tp*625%/10000; /讀取溫度個位/ sfw=tp*625%10000/1000; /讀取溫度十分位/ bfw=tp*625%10000%1000/100; /讀取溫度百分位/ tppp=sw*10+gw; vmain()delay(100); /延時程序/ convert()

溫馨提示

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

評論

0/150

提交評論