基于單片機控制超聲波測_第1頁
基于單片機控制超聲波測_第2頁
基于單片機控制超聲波測_第3頁
基于單片機控制超聲波測_第4頁
基于單片機控制超聲波測_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、攀枝花學院本科畢業(yè)設(shè)計(論文) 摘 要基于單片機控制超聲波測距儀設(shè)計學生姓名:學生學號:院(系): 電氣信息工程學院 年級專業(yè):指導教師:助理指導教師: 二一五年六月I摘 要咱們把頻率高于2萬赫茲的聲波稱為“超聲波”。超聲波是一種指向性強,能量消耗遲緩,在介質(zhì)中傳輸路程較遠的聲波,很方便用于距離丈量中。具備方向性好,穿透力強,易于取得較多的聲能,在水中路程遠等特質(zhì)。超聲測距技能在工廠生產(chǎn)、車輛導航、水聲工程等范疇都具有普遍的應用現(xiàn)象,目前已利用于物位測量、機器人自動導航以及空氣中與水下的目標探測、識別、定位等場合。于是,深入研究超聲的測距理論和方法具有重要的實踐意義。當前我國內(nèi)大部分是用專用集

2、成電路制作的超聲波測距儀,但是價格高,木有液晶屏幕的顯示,操縱掌握不方便,拓展不靈活。而基于單片機的超聲波測距降服了上述的弊端,故應用十分的廣泛,這類實驗設(shè)備具備非接觸式測距。此實驗是基于單片AT89C52的功能,來測量對前面的物體距離的原理。該設(shè)計的系統(tǒng)主要有四個基本的模塊:主控制器模塊、超聲波發(fā)射模塊、超聲波接收模塊和顯示模塊構(gòu)成。本設(shè)計采用兩中斷,信號傳輸,打開定時器中斷,外部中斷0和0這樣的定時器,接收到的超聲波信號發(fā)射,外部中斷0的中斷禁用,這時候定時器中斷0計錄的時間t就為超聲波傳播經(jīng)過測距儀到前方物體的往返總時間,經(jīng)過單片機計算、處理獲得距離值S然后再經(jīng)過液晶LCD1602顯示出

3、來。本設(shè)計實驗如果在測量物體周圍比較空曠而且空氣溫度在精確的室溫條件下,測量的精確度能達到3mm以內(nèi)。關(guān)鍵詞 單片機,超聲波傳感器,LCD1602ABSTRACTLet's put the acoustic frequencies higher than 20000 Hz is called "ultrasonic". Ultrasonic is a kind of strong point, energy consumption slow, sound waves in the medium of transmission distance, very conve

4、nient for distance measurement. Have the good direction, strong penetrating power, more acoustic energy is easy to be spread far away, in the water qualities.Ultrasonic ranging skills in factory production, vehicle navigation, underwater acoustic engineering fields with the application of the common

5、 phenomenon, has been used in level measurement, robot automatic navigation and air and underwater target detection, identification, location and so on. So, has the important practice significance ranging theory and method of in-depth study of ultrasoundThe current domestic mostly ultrasonic range f

6、inder fabricated using special integrated circuit, but the price is high, wood has the LCD screen display, control is not convenient, development is not flexible. Ultrasonic distance measurement based on single chip and overcome the above disadvantages, so a very wide range of applications, this kin

7、d of experimental equipment with non-contact distance measurement.This experiment is based on SCM AT89C52 function, principle to measure the distance of the objects on the front of the. The design of the system mainly has four basic modules: main controller module, ultrasonic transmitting module, ul

8、trasonic receiving module and display module. The design adopts two interrupt, signal transmission, open the timer interrupt, external interrupt 0 and 0 so that the timer, the received ultrasonic signal transmitting, external interrupt 0 interrupt disable, at this time the timer interrupt 0 recordin

9、g time t for the ultrasonic propagation through the range finder to the front of an object round-trip total time, through the SCM calculation process to obtain the distance value S, and then through the liquid crystal LCD1602 display.The design of experiment in measuring objects around if is open an

10、d the air temperature at room temperature under accurate, measurement accuracy can be less than 3mm.Key words single chip,ultrasonic,sensor,LCD16 目 錄目 錄摘 要IABSTRACTII1 緒 論11.1 研究的意義11.2 國內(nèi)外研究現(xiàn)狀和水平11.3 本課題的發(fā)展趨勢11.4 實驗設(shè)計任務與指標22 系統(tǒng)方案的設(shè)計與論證32.1 超聲波測距儀系統(tǒng)方案32.2系統(tǒng)整體方案的論證32.3 系統(tǒng)總體設(shè)計43 超聲波測距儀系統(tǒng)硬件設(shè)計53.1 單片機的選

11、擇與其性能分析53.1.1 單片機概述53.1.2 引腳功能描述53.2 單片機最小系統(tǒng)83.2.1 復位電路83.2.2 晶振電路設(shè)計93.3 LCD1602液晶顯示器93.3.1 LCD1602模塊的結(jié)構(gòu)93.3.2 概述103.3.3 模塊接口說明103.3.4 LCD1602與單片機的連接方式113.4 HC-SR04超聲波測距模塊123.4.1 超聲波模塊簡介123.4.2 HC-SR04工作原理123.4.3 超聲波具體顯示情況134 超聲波測距系統(tǒng)軟件設(shè)計154.1 系統(tǒng)設(shè)計超聲波測距儀的算法設(shè)計154.2 主程序流程154.3 超聲波發(fā)生子程序和超聲波接收中斷程序175 電路仿

12、真系統(tǒng)設(shè)計185.1 Proteus簡介185.2 ISISI編輯器介紹185.2.1 仿真界面185.2.2 SPICE仿真元件庫195.3 Proteus中虛擬單片機仿真圖搭建195.3.1 單片機最小系統(tǒng)電路195.3.2 proteus中1602液晶電路205.3.3 超聲波模塊模擬電路205.3.4 在Proteus中畫出完整的電路圖215.4 在µVision4IDE中編寫51代碼215.4.1 Keil中編寫代碼215.4.2 HEX文件添加到虛擬51單片機225.5 Proteus仿真236 調(diào)試及誤差分析246.1 軟件調(diào)試246.1.1 超聲波發(fā)射啟動256.1.

13、2 超聲波模塊工作256.1.3 計算距離256.1.4 距離溢出處理及報警266.2 測試分析266.3 誤差分析27結(jié) 論28參 考 文 獻29附錄A:超聲波測距儀系統(tǒng)C程序30附錄B:超聲波測距儀系統(tǒng)原理圖38附錄C:超聲波測距儀系統(tǒng)PCB圖39附錄D:超聲波測距儀系統(tǒng)Proteus仿真40附錄E:超聲波測距儀系統(tǒng)實物圖41致 謝421 1 緒 論1 緒 論1.1 研究的意義正是因為超聲波具有指向性強,能量消耗遲慢,而且它也在介質(zhì)中傳播的距離較遠,因此人們在廣泛應用領(lǐng)域來用它來做距離的測試。利用超聲波檢測每每更快速,方便,計算快捷,易于實時的設(shè)備控制,并且在測量精度標準方面能達到工業(yè)生產(chǎn)

14、使用的需求,測量過程是無需與測物體有直接的接觸,它的這些優(yōu)勢使其具有廣泛的實際應用前景,被廣泛應用于井深、液位、管道深度等丈量。比方修建施工單位的間距丈量,汽車倒車防撞系統(tǒng),潛艇超聲波探頭定位體系等等。1.2 國內(nèi)外研究現(xiàn)狀和水平國外早期許多選用傳統(tǒng)測量的機械原理,然而當電子技術(shù)越來越先進的發(fā)展,正朝著機電一體化發(fā)展形式。從國外關(guān)于測量發(fā)展技術(shù)動向看,目前國外較新的測距技術(shù)通常選用的是:電子設(shè)計自動化,數(shù)字信號處理,計算機輔助測試,表面貼裝技術(shù)及專業(yè)集成電路等。當前的我們國內(nèi)普遍是專用的超聲波儀,在它上面集成了特定的電路設(shè)計,但這樣的價格高,沒有液晶顯示數(shù)據(jù),操縱不方便,拓展不靈活。然而基于單

15、片機的超聲波測距摒除了上述弊端,是以它應用場景非常普遍,這種設(shè)計要求測距過程是非接觸方式。故策劃該實驗項目,該系統(tǒng)可廣泛用于生活、軍事等很多的領(lǐng)域,因而該設(shè)計需要自己有較好的數(shù)電、模電基礎(chǔ)知識,而且擁有一定的C語言編程能力,并且要歸納運用上面的知識和能力來完成對超聲波發(fā)射和接收信號進行信號控制、處置、計算,最終顯示在液晶LCD1602顯示器上。超聲波模塊的測量限度在2cm-400cm,測量精度達到3mm,并且測量過程不與被測物體有直接接觸測量,便可清晰、穩(wěn)定的在液晶上測量數(shù)據(jù)。1.3 本課題的發(fā)展趨勢在基于原始的距離測量常常存在不可克服的弊端。比如:油液面丈量就是一種特殊的距離測量,如果我們選

16、用統(tǒng)的電極法,也便是差位分布電極方式來丈量,經(jīng)過給電或脈沖來檢測液面,電極長時間的浸泡于水中或其余種類的液體,易被侵蝕、電解,丟失功能。于是利用超聲波測量距離具備有強度大,方向性好等特征,就能夠處理這些問題。然而在當人們生活水平的逐步改善,城市加速建筑建立,漸漸的城市車輛加多,由于泊車失當而釀成的交通事件越來越常見。為了盡量防止發(fā)生這類事故,于是一個可以直接測量和預警出汽車與障礙物之間的間距的設(shè)備就變得很重要。它可以給司機以更確切的訊息,進而及時的讓司機將車輛與障礙物之間距離反應出來,減少產(chǎn)生這類事件。另外,超聲波測量距離技術(shù)還在工業(yè)控制、勘探測量、軍事應用和機器人定位等畛域得到寬泛的應用前景

17、。1.4 實驗設(shè)計任務與指標超聲波測距電路能夠由以往傳統(tǒng)的數(shù)字電路或有模擬電路構(gòu)建,但基于這些傳統(tǒng)電路構(gòu)建的系統(tǒng)每每設(shè)備調(diào)試艱苦,可靠性能差,可擴展性低,是以人們廣泛的應用把基于單片機的超聲波系統(tǒng)用來測距。經(jīng)過簡易的設(shè)備外圍超聲波電路發(fā)射、接收超聲波,單片機通過其來采樣并獲取到超聲波的傳播到障礙物到反射回來的時間,用自己編譯C程序來計算、處理并得到超聲波的傳播距離,而且這類的系統(tǒng)的測量整體電路小、反映速度快、可靠性強、精確度高。1 2 系統(tǒng)方案的設(shè)計與論證2 系統(tǒng)方案的設(shè)計與論證2.1 超聲波測距儀系統(tǒng)方案超聲波測距儀要領(lǐng)的原理一般為使用時間差。開始測量時從發(fā)射超聲波到碰到障礙物后超聲波返回回

18、來的總時間,單片機與HC-SR04超聲波模塊依據(jù)測量裝置來實現(xiàn)測距處理,然后在經(jīng)過液晶顯示器LCD1602顯示測量點到目標障礙物之間的間距。本次實驗設(shè)計的超聲波測距儀主要由以下幾個部份構(gòu)成,包含有HC-SR04超聲波測距模塊,AT89C52微型處理器,LCD1602液晶顯示器等。從上面敘述能夠知道,其硬件設(shè)計電路主要包含:超聲波發(fā)射器和超聲波接收器,單片機微型控制系統(tǒng),液晶顯示電路四部份構(gòu)成??刂破饕材軌蛴肁tmel公司的AT89C52單片機微控制器兼容系列取代對單片機對超聲波發(fā)射器進行控制和超聲波接收器把接受到的信號傳輸?shù)絾纹瑱C系統(tǒng)中,而后再經(jīng)過在內(nèi)部的程序?qū)鬏旊娖叫盘栠M行分析、處理和計算

19、,最終讓液晶顯示器LCD1602顯示出測量距離的值。2.2系統(tǒng)整體方案的論證超聲波測距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時間來計算出傳播距離。實用的測距方法有兩種,一種是在被測距離的兩端,一端發(fā)射,另一端接收的直接波方式,適用于身高計;一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測距儀。此次設(shè)計采用反射波方式。測距儀的分辨率取決于對超聲波傳感器的選擇。超聲波傳感器是一種采用壓電效應的傳感器,常用的材料是壓電陶瓷。由于超聲波在空氣中傳播時會有相當?shù)乃p,衰減的程度與頻率的高低成正比;而頻率高分辨率也高,故短距離測量時應選擇頻率高的傳感器,而長距離的測量時應用低頻率的傳感器。

20、雙向超聲波測距儀的系統(tǒng)主要有五個部分組成(如圖2.1所示):超聲波發(fā)射模塊,超聲波接收模塊, 單片機AT89C52芯片,LED1602液晶顯示模塊,電源模塊等五大模塊構(gòu)成。超聲波發(fā)射模塊顯示模塊AT89C52超聲波接收模塊電源模塊圖2.1 系統(tǒng)設(shè)計總體框圖優(yōu)點:成本低,功耗低,精度高,具有雙向測距。在電路中咱們使用PIC單片機擁有的優(yōu)點:減少指令執(zhí)行效率大大提高;完全保密;其引腳具備有防瞬態(tài)能力,經(jīng)過限流電阻能夠接至220V家用交流電源上,可直接與繼電器控制電路連接,不必光電耦合器阻隔,給我們的使用帶來大大的方便。2.3 系統(tǒng)總體設(shè)計本次設(shè)計的硬件電路主要由AT89C52單片機系統(tǒng)、LCD16

21、02液晶顯示電路,超聲波發(fā)射電路、超聲波接收電路(采用HC-SR04超聲波測距模塊完成四部分)。(1)單片機的應用:比較常用的STC系列單片機主要有STC89C51xx、STC90C51xx、STC11/10xx、STC12xx、STC15xx等系列。本次實驗考慮到功能和價格以及燒錄等情況選擇STC90C16RD+單片機做控制器。(2)超聲波傳感器的原理與應用:超聲波傳感器分為集成與獨立的發(fā)送和接收到兩部分。該實驗選用超聲波傳感器發(fā)射接收分離式。(3)顯示器:液晶顯示咱們能夠用LCD顯示器或八段數(shù)碼管LED。本實驗采用LCD1602液晶顯示器做顯示器件。(4)超聲波測距的有效距離和精度:因為實

22、際情況的需要和傳感器的性能限定,測距都有一定有效范圍和精度大小,因此在實驗中測距儀時該當思考到這兩方面的技術(shù)問題。這次實驗選擇的是HC-SR04超聲波測距模塊做為超聲波發(fā)射與接收形式,其可測量出2cm-400cm的非接觸式距離感測性能,測距精度能夠達到3mm。40 3 超聲波測距儀系統(tǒng)硬件設(shè)計3 超聲波測距儀系統(tǒng)硬件設(shè)計3.1 單片機的選擇與其性能分析3.1.1 單片機概述單片機AT89C52是具備8K在系統(tǒng)可編程Flash存儲器的一種低功耗、高性能CMOS8位微控制器。我們使用Atmel公司C52系列單片機的擁有高密度非易失性存儲器技術(shù)制造技術(shù),同工業(yè)中80C51產(chǎn)品引腳和指令兼容性強。單片

23、機上閃存Flash容允程序存儲器在系統(tǒng)可編程,也同樣適用在常規(guī)的編程器上。在AT89C52單片機上,具有在系統(tǒng)可編程Flash和靈活的8位CPU,讓得AT89C52成為繁多生活中嵌入式控制應用系統(tǒng)給予高靈活、超有用的解決方法。 AT89C52的主要構(gòu)成包含如下幾個部分: 8k字節(jié)Flash閃存、32位I/O口線、256字節(jié)RAM、2個數(shù)據(jù)指針、看門狗定時器、一個6向量2級中斷結(jié)構(gòu)、三個16位定時器/計數(shù)器、全雙工串行口。此外,AT89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選的節(jié)電模式。在空閑模式下,CPU停止工作了,RAM,定時器/計數(shù)器,串行口,中斷,陸續(xù)工作許可。在掉電保護方式下,

24、振蕩器停止,RAM內(nèi)容被保留,單片機停止全部的工作,一直要等到下一個中斷或硬件復位電平來才結(jié)束。3.1.2 引腳功能描述表3.1 P1引腳功能圖 引腳號第二功能P1.0T2 定時器,時鐘輸出,T2的計數(shù)段.P1.1T2EXT2的計數(shù)器,定時器,T2的計數(shù)段、重載觸發(fā)信號與方位掌控.P1.5MOSI串行數(shù)據(jù)輸入,在系統(tǒng)編程.P1.6MISO串行數(shù)據(jù)輸出,在系統(tǒng)編程.P1.7SCK移位脈沖引腳,在系統(tǒng)編程.圖3.1 AT89C52引腳圖如圖VCC : 接電源 GND: 接地P0口:P0口特征是擁有一個8位雙功能的并行口。當它被作為輸出口時,所有位可以驅(qū)動8個TTL邏輯電平。P0端口寫“控制”信號高

25、電平1時,其引腳被用作高阻抗輸入。P0口被當作地址/數(shù)據(jù)復用方式訪問外部存儲器時,P0口也能夠當作低8位地址/數(shù)據(jù)復用。當在這種模式運行下,P0口擁有內(nèi)部上拉電阻。在閃存Flash編程中,接收指令字節(jié)也可用P0口。當然我們在程序校驗中,應該在P0口接個上拉電阻。 P1口:P1口為準雙向口,也是一個擁有在內(nèi)部上拉電阻的8位雙向I/O 口,p1輸出緩沖器能驅(qū)動四個TTL負載。對P1端口“讀引腳”向鎖存器寫1時,端口被內(nèi)部的上拉電阻拉高,此時可以作為輸入口使用。當為輸入口使用時,外部把引腳拉低是因為在內(nèi)部電阻的緣故,將輸出電流(IIL)。 此外,P1.0引腳與P1.2引腳分別作為定時器/計數(shù)器2的外

26、部計數(shù)輸入(T2/P1.0)與時器/計數(shù)器2的觸發(fā)輸入(T2EX/P1.1),詳細如上表2-1所示。 在flash編程和校驗時,低8位地址字節(jié)被P1口接收。 P2口:P2口是一個具備在內(nèi)部的上拉電阻的8位準雙向I/O 口,P2輸出緩沖器能驅(qū)動4個TTL負載。當對P2端口輸出鎖存器寫入1時,端口被內(nèi)部上拉電阻拉高,這樣就可以作為輸入口使用。作為輸入使用時,外部把端口引腳拉低,因為內(nèi)部電阻的緣故,將電流(IIL)輸出。 在訪問外部程序存儲器或用16位地址(P0口輸出的低8位與P2口高8位地址一起構(gòu)成16位地址)讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVCAA+C)時。在這種應用中,P2口使用很強的內(nèi)部上拉

27、發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 當在flash編程與校驗時,P2口也接收高8位地址字和一部分的控制信號。 P3口:P3口也是具備內(nèi)部上拉電阻的8位準雙向I/O 口,p2輸出緩沖器能驅(qū)動4個TTL負載。P3口“讀引腳”向鎖存器寫1時,端口被內(nèi)部的上拉電阻拉高,此時可以作為輸入口使用。當為輸入口使用時,外部把引腳拉低是因為在內(nèi)部電阻的緣故,將輸出電流(IIL)。由于AT89C52的引腳數(shù)碼有限,因此P3口電路亦作為AT89C52特殊功能(第二功能)來行駛,詳細如下表3.2所示。 在flash編程和校驗過程中,P3口亦接收一部分的控制信號

28、。表3.2 P3引腳功能圖引腳號第二功能P3.0RXD串行數(shù)據(jù)出入口.P3.1TXD串行數(shù)據(jù)輸出.P3.2INT0外部中斷輸入.P3.3INT0外部中斷輸出.P3.4T0定時器0外部計數(shù)輸入.P3.5T1定時器1外部計數(shù)輸).P3.6WR外部數(shù)據(jù)存儲器寫選通輸出.P3.7RD外部數(shù)據(jù)存儲器寫選通輸入.RST(RESET,9腳): 復位信號輸入段,高電平有效。當此RST腳持續(xù)大于2個機器周期高電平,就能夠使單片機復位。當看門狗計時溢出輸出,RST腳輸出長達96個時鐘震蕩周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以用來禁用此功能。DISRTO默許形態(tài)下,復位高電平有效。AL

29、E/PROG(Address Latch Enable/PROGramming,30腳):該引腳為CPU訪問外部程序存儲器或外部存儲數(shù)據(jù)器提供一個地址鎖存信號,把鎖存低8位地址鎖存在片外的地址鎖存器中。在flash編程時,也使用該引腳(PROG)來作編程輸入脈沖。在通常情況下,ALE以晶振震蕩周期的六分之一的穩(wěn)定頻率輸出脈沖,可用來作為外部定時器或時鐘來使用。但是,特別注意,在每回讀取外部數(shù)據(jù)存儲器時,將會跳過ALE脈沖。若是需要,通過將地址為8EH的SFR的第0位置寫入“1”,ALE操作將被禁用。這一位寫入“1”時,ALE僅在執(zhí)行命令MOVX或MOVC指令時有效。不然,ALE將被薄弱拉高。這

30、個ALE使能標記位(地址為8EH的SFR的第0位)系列微控制器在外部執(zhí)行模式將無效。 PSEN(Program Strobe Enable,29腳):外部程序存儲器的讀選通信號(PSEN)低電平有效。當外部程序存儲器通過AT89C52執(zhí)行外部代碼時,PSEN在每一次激活機器周期兩次,但是在訪問外部數(shù)據(jù)存儲器時,PSEN就不會激活。 EA/VPP(Enable Address/Voltage Pulse of Programing):訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA務必接地GND。為了執(zhí)行內(nèi)部程序指令,EA應該接VCC。在flash編程期間

31、,EA也接收12伏VPP電壓。 XTAL1(19腳):片內(nèi)振蕩器反相放大器和在內(nèi)部時鐘發(fā)生電路的輸入端。 XTAL2(18腳):片內(nèi)振蕩器反相放大器的輸出端。3.2 單片機最小系統(tǒng)單片機最小系統(tǒng),我們也可以叫做單片機的最小應用系統(tǒng),是指用最少的元件構(gòu)成的使單片機能夠正常工作的系統(tǒng)。如圖3.2所示,對51系列單片機而言,最小系統(tǒng)通常包含有:單片機、復位電路、晶振電路。圖3.2 單片機最小系統(tǒng)給的原理圖3.2.1 復位電路為保證單片機穩(wěn)定可靠工作性能,譬如出現(xiàn)程序運行出錯(如程序“跑飛”)或操作錯誤使系統(tǒng)處于“鎖死”狀態(tài)時,那么復位電路就是必不可少的部分。單片機在啟動時都要復位動作,來讓CPU及系

32、統(tǒng)各寄存器處于確定的初始值得狀態(tài),然后讓其開始工作。單片機的復位信號是從復位引腳RST通過芯片內(nèi)的一個與復位電路相連的施密特觸發(fā)器中。在系統(tǒng)處于正常工作狀況下,并且振蕩器處于穩(wěn)定后,假如復位引腳RST引腳上加一個短的高電平并且保持在2個機器周期(24個振蕩周期)以上,那么CPU就響應并將讓單片機系統(tǒng)進入復位模式工作。單片機系統(tǒng)的復位方式除了有上述的上電復位還有按鍵手動復位。在這次的實驗中我們采用的按鍵手動復位方式。復位電路的原理是利用RC電路的充電時間,使RST端可以保持在一段時間的高水平。一般取經(jīng)驗值R=100K,C=0.1uF。RST高電平復位,低正常工作1F的電容和一個100k的電阻組成

33、的RC延時電路,單片機提供上電復位,添加1F的電容器的目的是不讓雙方電壓突變。電路圖如圖3.3所示。圖3.3 復位電路3.2.2 晶振電路設(shè)計常用的時鐘電路有兩種方式:內(nèi)部時鐘和外部時鐘方式。通常情況下,我們選用的是12MHz石英晶體(在這個頻率上,XYAL1能夠很容易的發(fā)出9600的波特率讓串口行駛)。電路中的電容C1和C2的通常置選用30PF,并且讓它們組成并聯(lián)諧振電路,然后讓其接在放大器的反饋回路上。在實際情中,對外接電容并無嚴格的要求,典型值選30PF的瓷片電容,該電容的大小會影響震蕩器頻率的高低、穩(wěn)定性和起振的快速性。該實驗電路中就用兩個30PF的瓷片電容,12MHZ的晶振,該晶振電

34、路的主要作用是為單片機提供工作時鐘。電路圖如圖3.4所示。圖3.4 晶振電路3.3 LCD1602液晶顯示器3.3.1 LCD1602模塊的結(jié)構(gòu)圖3.5 液晶LCD16023.3.2 概述(1)液晶顯示器是由多個顯示字符組5×7 / 8或5×10 / 11矩陣的塊,每個塊是一個字符點陣,字符間距和行距都為一個點的寬度。 (2)主控制IC驅(qū)動為HD44780以及其他公司全兼容IC有:NOVATEK NT3881 KS0066 NOVATEKSAMSUNGSUNPLUS SPLC78A01。 (3)具備字符發(fā)生器ROM,可顯示192個點陣字符分別是:160個5 ×7

35、點陣組合與32個5 ×10點陣組合。 (4)模塊內(nèi)擁有64個字節(jié)的自定義字符RAM(CGRAM),我們能自定義8個5× 7點陣字符。 (5)模塊內(nèi)擁有80字節(jié)的數(shù)據(jù)顯示存儲器(DDRRAM)。 (6)標準的接口引腳特征,適配M6800 系列MPU的工作時序。 (7)模塊結(jié)構(gòu)緊湊,易于裝配。 (8)+5V單電源供電。 (9)低功耗、長壽命、高可靠性。由該模塊構(gòu)成的液晶顯示方案較其他同類型的圖形點陣液晶顯示模塊擁有:硬件電路構(gòu)造或顯示程序都要簡便;該模塊成本也少于其相同點陣的圖形液晶模塊。3.3.3 模塊接口說明1602采用標準的16腳接口,其中:第1腳:VSS為電源地第2腳:

36、VCC接5V電源正極第3腳:V0為液晶顯示器調(diào)整對比度端,在接VCC時對比度最弱,接GND時對比度最大,對比度過大時會產(chǎn)生“鬼影”,用戶在使用時能夠通過10K的電位器來調(diào)整液晶的對比度。第4腳:RS為寄存器選擇,當?shù)碗娖綍r選擇指令寄存器,在高電平時選擇數(shù)據(jù)寄存器。第5腳:R/W為讀寫信號線,低電平時進行寫操作,高電平時進行讀操作。第6腳:E端為使能端,當E端由高電平跳變成低電平時,模塊開始執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。第15腳:背光正極。第16腳:背光負極。3.3.4 LCD1602與單片機的連接方式在實踐的使用中,液晶模塊與單片機的連接形式有許多,從占用I/O口線的個數(shù)來分

37、有:并行方式與串行方式,其中串行方式速率慢,但占用的串口較少;并行形式分為4線與8線,速率較快,但占用的串口較多,實際使用中以并行方式占多數(shù)。LCD1602通常有16個引腳,但也有少數(shù)的LCM為14個引腳,然而在連接電路時其實不復雜。需要注意的是LCD的電源共有2組,一組是用于驅(qū)動LCD顯示,另一組用于背光顯示。兩組在一起或背光電源省略。此外有個輸入管腳V0需求接入LCD調(diào)整電壓來調(diào)節(jié)液晶面板的對比度。一般我們在剛使用液晶時出現(xiàn)的難題就在這里,對比度太高或太低會使屏幕顯示不正確。它可接2K到地。在當前市面上一些LCD1602的對比度可由單片機操縱其寄存器調(diào)理,我們可根據(jù)自己出現(xiàn)情況來進行選擇調(diào)

38、節(jié)。其余的端口均連接至單片機。將單片機IO口P0.0-P0.7依次連接LCD1602的DB0-DB7,并且依次與上拉電阻的2-9引腳相連,RS、RW、E、分別連接至P2.4至P2.6。1602液晶其他引腳連接電路方式如圖3.6所示:圖3.6 單片機與液晶屏的連接3.4 HC-SR04超聲波測距模塊3.4.1 超聲波模塊簡介HCSR04模塊具備性能穩(wěn)定,模塊高精度,測度距離精確,盲區(qū)較小。 產(chǎn)品應用范圍包括:機器人避障、液位檢測 、物體測距、公共安防、停車場檢測、倒車報警儀。接線端口如圖3.7所示:VCC供5V的電源;GND為地線;TRIG觸發(fā)控制信號輸入;ECHO回響信號輸出;圖3.7 HC-

39、SR04超聲波模塊3.4.2 HC-SR04工作原理(1)初始化時將trig和echo端口都寫入低電平信號;(2)最初給I/O口TRIG發(fā)送至少10us的高電平脈沖;(3)模塊自主發(fā)送8個40khz的方波,自動檢測是是不有信號反射回來;(4)當有信號反射回來時,經(jīng)過I/O口ECHO輸出一高電平,高電平持續(xù)時間就是超聲波從發(fā)射到反射回來的總時間。測試距離=高電平時間/2*聲速。電氣參數(shù):表3.3 HC-SR04超聲波傳感器的電氣參數(shù)電氣參數(shù)HC-SR04超聲波傳感器工作電壓DC-5V工作電流15mA工作頻率40Hz最遠射程400cm最近射程2cm測量角度15 度輸入觸發(fā)信號至少10us的TTL脈

40、沖輸出回響信號輸出TTL電平信號,與射程成比例規(guī)格尺寸45*20*15mm超聲波時序圖:圖3.8 超聲波時序圖以上時序圖3.8表明本設(shè)計只需要提供一個10us以上脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出8個40kHz周期電平并檢測回波。一旦發(fā)現(xiàn),脈沖寬度輸出信號回波回波回波信號和測量信號的距離成正比。因此,通過信號傳輸?shù)浇邮栈夭ㄐ盘柕拈g隔距離可以計算。公式:距離=高電平時間*聲速(340m/s)/2;建議測量周期為 60ms 以上,來避免發(fā)射信號對回響信號的影響。距離測量模塊與單片機連接如圖3.9所示,VCC為5V電源,GND為地,觸發(fā)Trig控制信號輸入,Echo輸出回波信號。圖3.9 超聲波模塊電路

41、連接3.4.3 超聲波具體顯示情況為了驗證系統(tǒng)的測量精度,在空曠地進行極限測量。HC-SR04超聲波測距模塊能夠測試出2cm-400厘米的范圍,精度在3mm之內(nèi)。測試結(jié)果如圖所示:在測量范圍之內(nèi): 超出量程范圍: 圖 3.10 測量范圍內(nèi)的LCD顯示效果 圖 3.11 超出范圍的LCD顯示效果 4 超聲波測距系統(tǒng)軟件設(shè)計4 超聲波測距系統(tǒng)軟件設(shè)計4.1 系統(tǒng)設(shè)計超聲波測距儀的算法設(shè)計本次實驗超聲波測距儀系統(tǒng)的軟件部分主要可分為:主程序、超聲波發(fā)生子程序、超聲波接收中斷程序及液晶顯示子程序構(gòu)成。我們知道C語言程序有利于實現(xiàn)復雜的算法,匯編語言程序的程序的運行時間效率高和便于精細計算,但是超聲波測

42、距儀的程序不僅有較復雜的計算部分(處理距離s時),而且還要求精密計算程序運行時間,是以控制程序可采用C語言夾雜匯編語言編程運行。超聲波測距的基本原理為超聲波發(fā)生器在某一時刻發(fā)出一超聲波信號,當發(fā)射的超聲波遇到測量物體目標后被反射回來,就被超聲波接收器接收到該信號。如此我們只需計算出從發(fā)射出超聲波信號到接收到返回信號所花的總時間,便能夠計算出超聲波發(fā)生器與被測目標物體之間的距離。距離的計算公式為: d=s/2=(u*t)/2 式(4.2)其中:d-為被測物與測距儀的距離;s-為聲波的來回的路程;u-為聲速;t-為聲波來回所用的時間。在開啟發(fā)射電路超聲波發(fā)射器的同時運行單片機里面的定時器T0,使用

43、定時器的計時功能,記載超聲波從發(fā)射到目標物體反射回來的超聲波的時間。在超聲波接收器接收到反射回來的超聲波時,超聲波的接收電路會向輸出端發(fā)出一負跳變電平信號,并且在INT0或INT1端就會產(chǎn)生中斷請求電平信號,CPU同時就響應外部中斷請求,接著就開始執(zhí)行外部中斷服務子程序,讀取并處理時間差,最終計算距離并顯示。4.2 主程序流程此次實驗的系統(tǒng)軟件分大體能夠劃分成兩個部分,系統(tǒng)的主程序和中斷服務程序(如圖4.1所示)。主程序?qū)崿F(xiàn):(1)系統(tǒng)的初始化工作;(2)各部分電路的超聲波發(fā)射、接收;(3)計算處理序次的控制;定時中斷服務子程序?qū)崿F(xiàn):三方向輪番發(fā)射超聲波。外部中斷服務子程序?qū)崿F(xiàn):讀取時間值、距

44、離計算、輸出結(jié)果等操作。定時中斷入口外部中斷入口開始關(guān)外部中斷系統(tǒng)初始化定時器初始化讀取時間值定時中斷子程序發(fā)射超聲波計算距離否發(fā)射完否?結(jié)果輸出有回波嗎?否停止發(fā)射開外部中斷外部中斷子程序返回返回結(jié)束(a)主程序 (b)定時中斷子程序 (c)外部中斷子程序圖4.1 超聲波測距系統(tǒng)的軟件設(shè)計主程序最先實現(xiàn)整個系統(tǒng)環(huán)境初始化,對16位定時計數(shù)器模式設(shè)置定時器T0工作模式。在中斷允許寄存器IE中EA=1,在開始時初始化E為0,然后置E為1,再清0。而后運行超聲波發(fā)生子程序來發(fā)送出超聲波脈沖,為了防止超聲波發(fā)射器發(fā)出的超聲波直接傳被送到超聲波接收器而引發(fā)的直射波觸發(fā)事故現(xiàn)象,必需延時大概0.1 ms

45、(這便是超聲波測距儀會有最小可測范圍的緣故)后,再可以開啟外部中斷0接收反射回來的超聲波信號。因為是我們選用的是12 MH的晶振,所以計數(shù)器每計一次數(shù)就為1s,當主程序成功檢測到并接收的標志位后,將計數(shù)器T0中的數(shù)(就是超聲波往返所花總時間t)按式中(3)來計算,便可得到超聲波測距儀到被測目標物體之間的距離,實驗中我們?nèi)?0時的聲速為340 m/s則有: d=(u*t)/2=172T0/10000cm 式(4.1)其中:T0-為計數(shù)器T0的計算值。 測出距離的距離是以十進制BCD碼形式送往LED顯示大概需要0.5s,然后再發(fā)射超聲波脈沖來進行重復測量過程。為了便于程序結(jié)構(gòu)化和計算的距離簡易,主

46、程序我們選用C語言來編寫。4.3 超聲波發(fā)生子程序和超聲波接收中斷程序超聲波發(fā)生子程序的作用是使P2.1端口產(chǎn)生大概2個超聲波脈沖信號(頻率大約為40kHz的方波),并且脈沖寬度為12s上下,同時啟動計數(shù)器T0開始進行計時。超聲波發(fā)生子程序較為簡易,但是程序運行需要十分的精確,是以我們選用C語言編程。  超聲波測距儀主程序是使用外部中斷0檢測反射回來超聲波信號所用的時間,如果當接收到反射回來的超聲波信號(引起INT0引腳產(chǎn)生低電平),立刻運行中斷程序。當進來中斷后就立刻停止計時器T0計時,接著就把測距成功標志字賦值為1。假如當計時器溢出時,超聲波電路尚未檢測到反射回來的超聲

47、波信號,則定時器T0溢出中斷并且將關(guān)閉外中斷0,然后測距成功標志字被賦值為2來顯示出這次測距失敗。 前面的超聲波測距電路的輸出端與單片機INT0端口相連,其中斷優(yōu)先級最高,左、右測距電路的輸出與單片機INT1端口相連,同時單片機P3.3接到的輸入端,并由程序來查詢和處理中斷源的識別,中斷優(yōu)先級為先右后左。 5 電路仿真系統(tǒng)設(shè)計5 電路仿真系統(tǒng)設(shè)計5.1 Proteus簡介目前由于protel、Multisim、proteus等許多的軟件的存在,于是就能夠虛代實與以軟代硬,獨立實現(xiàn)一個完善的虛擬實驗室。代替了在實驗室和教室里的以實物進行實踐的形式,可以在計算機上學習單片機應用、電工基礎(chǔ)

48、、數(shù)字電路、模擬電路系統(tǒng)等課程,還能夠進行電路設(shè)計、仿真、調(diào)試等。所以這一系列的軟件受到許多的電子設(shè)計愛好者的喜歡,是他們學習與工作上難得的工具軟件,于是它們在全球擁有許多的使用者。其中,Proteus軟件提供多達30多個元件庫,元件涉及到模擬與數(shù)學、交流與直流等。例如有RAM、ROM、鍵盤、LCD、LED、馬達、AD/DA、部分SPI器件、部分IIC器件,編譯方面支持Keil和MPLAB等編譯器。其功能也很強大,集電路設(shè)計、制版及仿真等多種功能都囊括在內(nèi),不但能夠?qū)﹄姽?、電子技術(shù)學科涉及的電路進行設(shè)計與分析,而且可以對微處理器進行設(shè)計和仿真,還可以仿真單片機外圍電路或沒有單片機參與的其它電路

49、的工作情況。它還提供繁多現(xiàn)實存在的虛擬儀器,這些儀表具備有極高的輸入阻抗、極低的輸出阻抗,盡可能減少儀器對測量結(jié)果的誤差。另外,Proteus軟件還有圖形顯示功能,能夠把線路上變化的信號,通過圖形的方式實時地顯示出來。對于單片機硬件電路與軟件的調(diào)試,Proteus給予了兩種方式:系統(tǒng)總體執(zhí)行效果與對軟件的分步調(diào)試。它還有許多的測試信號用于電路的測試,這些測試信號包括模擬信號和數(shù)字信號。在用Proteus進行仿真和程序調(diào)試中,只需知曉在工程的角度就能看出程序運行和電路工作的過程和結(jié)果。它還提供SchematicDrawing、PCB設(shè)計功能與SPICE仿真,而且能夠仿真單片機和周邊設(shè)備,比如仿真

50、PIC、AVR、51系列等常用的MCU,同時還提供周邊設(shè)備的仿真,比如示波器、373、液晶LED等。5.2 ISISI編輯器介紹5.2.1 仿真界面圖5.1 proteus仿真界面5.2.2 SPICE仿真元件庫圖5.2 SPICE仿真元件庫從中把我們需要的所有元件從庫中選出來,其中包括:51單片機最小系統(tǒng)用到的元件和芯片。5.3 Proteus中虛擬單片機仿真圖搭建5.3.1 單片機最小系統(tǒng)電路圖5.3 單片機最小系統(tǒng)電路此為proteus中的虛擬單片機,用來接收從單片機利用串口通信傳過來的距離數(shù)據(jù),通過單片機的處理后,將數(shù)據(jù)顯示在1602液晶上,實現(xiàn)和實際單片機同步顯示的功能。5.3.2

51、proteus中1602液晶電路圖5.4 1602液晶電路5.3.3 超聲波模塊模擬電路由于Proteus中沒有這個超聲波模塊的仿真元件圖,我們就通過兩個按鍵來模擬超聲模塊發(fā)射和接受的電平信號,進而實現(xiàn)仿真需求。圖5.5 超聲波模塊模擬電路5.3.4 在Proteus中畫出完整的電路圖圖5.6 完整的電路圖5.4 在µVision4IDE中編寫51代碼5.4.1 Keil中編寫代碼根據(jù)功能要求,編寫虛擬單片機的C語言程序,實現(xiàn)液晶1602的顯示與報警器的等工作。部分操作如下圖5.7 Keil軟件編輯代碼5.4.2 HEX文件添加到虛擬51單片機雙擊虛擬AT89C52單片機,彈出如下圖

52、對話框:圖5.8 添加HEX文件在ProgramFile中將KeiL工程目錄下的.HEX文件添加進去,點擊確定,即可。5.5 Proteus仿真Proteus打開仿真運行按鈕,仿真結(jié)果如下,液晶顯示仿真結(jié)果就出來了圖5.9 運行Proteus仿真電 6 調(diào)試及誤差分析6 調(diào)試及誤差分析 6.1 軟件調(diào)試因為此次實驗本設(shè)計采取的是模塊連接方法,連接前首先保證地GND全部接好后,然后就能夠用萬用表檢測一下它們是不是都全部有效連接好。在實物連接前,我們應該首先檢測每個模塊是不是能夠有效的工作,它們的功能能否達到實驗設(shè)計所需要求。當檢測好硬件電路以后,我們就能夠把編譯好C程序生產(chǎn)的hex文件下載到單片

53、機中運行調(diào)試。然后就可以根據(jù)實際測試情況修改超聲波發(fā)生子程序每一次發(fā)送的脈沖寬度以及兩次測量目標的時間間隔,來達到不同距離的測量需要。參考實驗所設(shè)計的電路參數(shù)和程序,超聲波傳感器可以測量的范圍為0.3-4m,超聲波傳感器測量最大的誤差不應超過3cm。測量系統(tǒng)調(diào)試完成后就應該測量誤差和重復一致性進行多次分析實驗數(shù)據(jù),進而來不斷調(diào)試優(yōu)化測量系統(tǒng)讓它能夠?qū)崿F(xiàn)實際情況使用的要求。此次實驗設(shè)計使用KEIL4編譯。圖6.1 Keil4的程序編譯界面此時實驗程序采取宏定義的方式,這樣程序?qū)哟魏退悸繁容^清晰,進而便于后期調(diào)試優(yōu)化系統(tǒng)。其中的包括LED1602.h是以前就編譯后的,這讓調(diào)用起來比較節(jié)省時間,修改也很方便。6.1.1 超聲波發(fā)射啟動 while(1) EA=0; Trig=1; delay_20us(); Trig=0;據(jù)模塊工作的時序圖,要求在啟動超聲波模塊的前應該給予TRIG引腳提供至少10us的高電平。程序利用循環(huán)執(zhí)行空語句,達到20us延時以上,來啟動超聲波模塊正常工作。6.1.2 超聲波模塊工作 while(Echo=0); /等待Echo回波引腳變高電平succeed_flag=0; /清測量成功標志 EX1=1; /打開外部中斷 TH1=0; /定時器1清零 TL1

溫馨提示

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

評論

0/150

提交評論