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

下載本文檔

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

文檔簡介

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

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

3、來。本設計實驗如果在測量物體周圍比較空曠而且空氣溫度在精確的室溫條件下,測量的精確度能達到3mm以內。關鍵詞 單片機,超聲波傳感器,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 國內外研究現狀和水平11.3 本課題的發展趨勢11.4 實驗設計任務與指標22 系統方案的設計與論證32.1 超聲波測距儀系統方案32.2系統整體方案的論證32.3 系統總體設計43 超聲波測距儀系統硬件設計53.1 單片機的選

11、擇與其性能分析53.1.1 單片機概述53.1.2 引腳功能描述53.2 單片機最小系統83.2.1 復位電路83.2.2 晶振電路設計93.3 LCD1602液晶顯示器93.3.1 LCD1602模塊的結構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 超聲波測距系統軟件設計154.1 系統設計超聲波測距儀的算法設計154.2 主程序流程154.3 超聲波發生子程序和超聲波接收中斷程序175 電路仿

12、真系統設計185.1 Proteus簡介185.2 ISISI編輯器介紹185.2.1 仿真界面185.2.2 SPICE仿真元件庫195.3 Proteus中虛擬單片機仿真圖搭建195.3.1 單片機最小系統電路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 調試及誤差分析246.1 軟件調試246.1.1 超聲波發射啟動256.1.

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

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

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

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

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

18、來的總時間,單片機與HC-SR04超聲波模塊依據測量裝置來實現測距處理,然后在經過液晶顯示器LCD1602顯示測量點到目標障礙物之間的間距。本次實驗設計的超聲波測距儀主要由以下幾個部份構成,包含有HC-SR04超聲波測距模塊,AT89C52微型處理器,LCD1602液晶顯示器等。從上面敘述能夠知道,其硬件設計電路主要包含:超聲波發射器和超聲波接收器,單片機微型控制系統,液晶顯示電路四部份構成??刂破饕材軌蛴肁tmel公司的AT89C52單片機微控制器兼容系列取代對單片機對超聲波發射器進行控制和超聲波接收器把接受到的信號傳輸到單片機系統中,而后再經過在內部的程序對傳輸電平信號進行分析、處理和計算

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

38、節。其余的端口均連接至單片機。將單片機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模塊具備性能穩定,模塊高精度,測度距離精確,盲區較小。 產品應用范圍包括:機器人避障、液位檢測 、物體測距、公共安防、停車場檢測、倒車報警儀。接線端口如圖3.7所示:VCC供5V的電源;GND為地線;TRIG觸發控制信號輸入;ECHO回響信號輸出;圖3.7 HC-

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

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

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

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

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

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

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

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

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

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

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

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

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

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

53、機中運行調試。然后就可以根據實際測試情況修改超聲波發生子程序每一次發送的脈沖寬度以及兩次測量目標的時間間隔,來達到不同距離的測量需要。參考實驗所設計的電路參數和程序,超聲波傳感器可以測量的范圍為0.3-4m,超聲波傳感器測量最大的誤差不應超過3cm。測量系統調試完成后就應該測量誤差和重復一致性進行多次分析實驗數據,進而來不斷調試優化測量系統讓它能夠實現實際情況使用的要求。此次實驗設計使用KEIL4編譯。圖6.1 Keil4的程序編譯界面此時實驗程序采取宏定義的方式,這樣程序層次和思路比較清晰,進而便于后期調試優化系統。其中的包括LED1602.h是以前就編譯后的,這讓調用起來比較節省時間,修改也很方便。6.1.1 超聲波發射啟動 while(1) EA=0; Trig=1; delay_20us(); Trig=0;據模塊工作的時序圖,要求在啟動超聲波模塊的前應該給予TRIG引腳提供至少10us的高電平。程序利用循環執行空語句,達到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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論