基于51單片機的超聲波導航的設計與制作畢業(yè)論文_第1頁
基于51單片機的超聲波導航的設計與制作畢業(yè)論文_第2頁
基于51單片機的超聲波導航的設計與制作畢業(yè)論文_第3頁
基于51單片機的超聲波導航的設計與制作畢業(yè)論文_第4頁
基于51單片機的超聲波導航的設計與制作畢業(yè)論文_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. . . . 2011 2012學年第 一 學期畢業(yè)設計課題名稱: 基于51單片機的超聲波導航的設計與制作 31 / 42總目錄第一部分 任務書 第二部分 開題報告 第三部分 畢業(yè)設計正文第 一 部 分任務書畢業(yè)設計任務書系 部電子信息工程系指導老師職稱講師學生班級學號設計題目基于51單片機的超聲波導航的設計與制作設計容目標和要求設計容目標:1、利用超聲波傳感器作為輪式機器人的雙眼,C51單片機作為輪式機器人的大腦,按要求設計硬件電路和編寫程序,使輪式機器人能夠隨時監(jiān)控前方障礙物的距離。并根據(jù)傳感器采集的數(shù)據(jù)作出不同的運動策略。2、(1)能夠應用超聲波準確前方物體的距離(2)能夠應用超聲波測

2、距引導輪式教育機器人航行設計要求:1、提出選題的初步設想和研究目的2、收集、整理與畢業(yè)設計有關領域的信息資料3、完成本畢業(yè)設計電路原理圖設計4、完成軟件和硬件系統(tǒng)的調(diào)試,功能指標達到技術要求5、根據(jù)本畢業(yè)設計的設計、編程、工作過程,形成符合學校規(guī)定的畢業(yè)設計書面文檔。教研室審核系部審核第 二 部 分開題報告工業(yè)職業(yè)技術學院 電子信息工程 系12屆畢業(yè)設計(論文)開題報告書學生專業(yè)機電一體化班級學號題 目基于51單片機的超聲波導航的設計與制作指導教師單丹職稱講師學 位碩士題目類別 工程設計 基礎研究 應用研究 其它課題的容與要求 利用超聲波傳感器作為輪式機器人的雙眼,C51單片機作為輪式機器人的

3、大腦,按要求設計硬件電路和編寫程序,使輪式機器人能夠隨時監(jiān)控前方障礙物的距離。并根據(jù)傳感器采集的數(shù)據(jù)作出不同的運動策略。(1)能夠應用超聲波準確前方物體的距離(2)能夠應用超聲波測距引導輪式機器人航行前言超聲波測距是指利用超聲波的反射特效進行距離測量。超聲波傳感器是利用超聲波的特性研制而成的傳感器, 它是通過傳送一個超聲波(遠高于人的聽覺圍)和提供一個對應于爆裂回聲返回到傳感器所需時間的輸出脈沖來工作的。超聲波傳感器在非接觸性測量方面的應用非常廣泛,如檢測液體水位(特別是具有腐蝕性的液體,如硫酸、硝酸液體),汽車倒車防撞系統(tǒng),金屬/非金屬探傷等,都可以用到超聲波距離傳感器。方案的比較與評價利用

4、分立模塊的超聲波測儀:能測的最小距離比較長,不能實現(xiàn)雙向測距,電路復雜,性能穩(wěn)定性不高?;?1單片機的超聲波測儀:能進行雙向測距,精度高,功耗低,模塊簡單,穩(wěn)定性高。預期的效果與指標利用超聲波傳感器作為輪式機器人的雙眼,C51單片機作為輪式機器人的大腦,按要求設計硬件電路和編寫程序,使輪式機器人能夠隨時監(jiān)控前方障礙物的距離。并根據(jù)傳感器采集的數(shù)據(jù)作出不同的運動策略,通過該項目的學習與實踐, 可以讓讀者獲得如下知識和技能。進度安排2011 年 7 月 1日 - 2011 年 9月 1日 選題、調(diào)研、收集資料2011 年 9 月 1日 - 2011 年 10月 1日 論證、開題2011 年 10

5、 月 1 日 - 2011 年 11月 1日 設計(寫作初稿)2011 年 11月 1日 - 2011 年 3 月 15 日 修改、定稿、打印參考文獻1瑩. .基于單片機的超聲測距系統(tǒng) , 華中科技大學;2譚洪濤.片機設計測距儀原理與其簡單應用 , 通信學;3孔雅瓊. 基于單片機的超生測距儀研究與開發(fā) , 國防科技大學;4胡福云. 基于單片機的超聲波測距儀 , 科技大學 科技視野;指導教師意見(有針對性地說明選題意義與工作安排是否恰當?shù)龋┩馓峤婚_題論證 修改后提交 不同意提交(請說明理由)指導教師簽章: 年 月 日系部意見同意指導教師意見 不同意指導教師意見(請說明理由) 其它(請說明)系(

6、部)主任簽章: 年 月 日第三部分畢業(yè)論文正文基于51單片機的超聲波導航的設計與制作技術摘 要本設計是基于AT89C51單片機技術所研究的超聲波導航小車,超聲波傳感器對前方障礙物距離進行測量,并通過LED液晶顯示出來,左右輪伺服電動機則實現(xiàn)小車對障礙物的躲避。超聲波做為智能車避障的一種重要手段,實現(xiàn)簡單,計算方便,易于做到實時監(jiān)控,測量精度也能達到實用的要求。在未來汽車智能化進程中必將得到廣泛應用。關鍵字 AT89C51 片機 超聲波Based on 51 single-chip design and production of ultrasonic navigationTian,jin090

7、2 mechanical and electrical integrationAbstract:The design is based on the AT89C51 single-chip technology of ultrasonic navigation vehicle.Ultrasonic sensors measure the distance of obstacles in front .And through the LED liquid crystal display.The left and right wheel motor car for obstacle avoidan

8、ce.Ultrasonic obstacle avoidance for intelligent vehicle is a kind of important means.Simple,to facilitate the calculation,easy to achieve real-time monitoring.Measurement accuracy is also required to achieve practical.Intelligence process in the next car will be widely applied.Keywords: AT89C51Sing

9、le chip microcomputerUltrasonic wave目 錄第一章引言11.1 選題背景與目的11.2 課題的概述11.3 設計的主要容介紹1第二章設計思路的介紹32.1 AT89C51單片機介紹32.2超聲波介紹與其應用領域62.3 超聲波距離傳感器簡介72.4 位差超聲波距離傳感器工作時序8第三章超聲波導航系統(tǒng)硬件電路的設計103.1單片機最小電路的設計103.2超聲波發(fā)射接收電路的設計123.3顯示模塊的設計14第四章系統(tǒng)軟件的設計154.1超聲波距離測量程序154.1.1距離測量程序設計思路174.2 超聲波導航程序194.2.1 導航程序設計思路22第五章系統(tǒng)調(diào)試2

10、45.1仿真環(huán)境介紹245.1.1用Keil軟件編譯程245.2超聲波導航元器件的焊接與安裝265.3超聲波導航所需電子元器件清單27結論28致29參考文獻30第一章引言1.1 選題背景與目的隨著汽車工業(yè)的快速發(fā)展,關于汽車的研究也越來越受到人們的關注。智能汽車概念的提出給汽車產(chǎn)業(yè)帶來機遇也帶來了挑戰(zhàn)。汽車的智能化必將是未來汽車產(chǎn)業(yè)發(fā)展的趨勢。超聲波作為智能車避障的一種重要手段,以其避障實現(xiàn)方便,計算簡單,易于做到實時控制,測量精度也能達到實用的要求,在未來汽車智能化進程中必將得到廣泛應用。我國作為一個世界大國,在高科技領域也必須占據(jù)一席之地,在未來的智能化汽車產(chǎn)業(yè)發(fā)展必然的,在這種情況下研究

11、超聲波在智能車避障上的應用具有深遠意義,這將對我國未來智能汽車的研究在世界高科技領域占據(jù)領先地位具有重要作用。超聲波測距系統(tǒng)主要應用于汽車的倒車雷達、機器人自動避礙行走、建筑施工工地以與一些工業(yè)現(xiàn)場例如:液位、井深和管道長度等場合。因此研究超聲波測距系統(tǒng)的原理有著很大的現(xiàn)實意義。1.2 課題的概述本文的主要容是用AT89C51單片機為核心控制元件,設計一個可以測量障礙物距離并當離障礙物距離小于50cm時,會拐彎的智能小車。智能小車通過前方所安裝的超聲波傳感器來發(fā)射高頻超聲波,在遇到障礙物時高頻超聲波會反射回來,從而測出與前方障礙物的距離,距離通過1602液晶顯示器顯示出來。拐彎則通過小車的左、

12、右輪伺服電機來完成。本文分別從硬件部分的設計和軟件部分的設計來詳細闡述。硬件部分包括超聲波傳感器、左、右輪伺服電機、1602液晶顯示器,軟件部分包括測距程序、導航程序、顯示程序。編程是用了匯編程序和C語言的混合編寫,仿真是用了Protues和Keil來實現(xiàn)的。1.3 設計的主要容介紹本畢業(yè)設計是設計出一個可以對前方障礙物體距離測量并躲避障礙物的智能小車,具體有以下幾點設計的容:1距離測量:超聲波傳感器發(fā)射高頻超聲波,對前方障礙物距離進行測量。2距離顯示:通過1602液晶顯示對超聲波測量結果進行顯示。3小車的行走:通過左、右輪伺服電機對小車輪胎進行驅動,電源部分則使用2V干電池。4躲避障礙物:當

13、小車行進到距離障礙物小于50cm時,向左拐彎。第二章設計思路的介紹根據(jù)設計的要求,系統(tǒng)采用“MCU+傳感器+顯示設備+執(zhí)行機構”的總體設計方案,要求MCU對非接觸式傳感器獲取的外部距離信息進行計算轉換,將得出的輪式機器人與前方障礙物的距離值送到顯示設備顯示,并根據(jù)程序設定的距離閾值控制輪式機器人實現(xiàn)自動導航功能。其中MCU采用目前性價比較高的AT89C51單片機;傳感器采用“超聲波傳感器”,以非接觸的形式測量前方物體的距離;顯示設備采用LCD1602液晶顯示模塊;執(zhí)行機構采用PARALLAX公司生產(chǎn)的連續(xù)旋轉伺服電機,其優(yōu)點是編程控制方便且不需額外增加驅動電路。系統(tǒng)總體框圖如下:圖2-1 系統(tǒng)

14、框圖2.1AT89C51單片機介紹AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡

15、版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形與引腳排列如圖2-2所示。圖2-2 51系列單片機AT89C51單片機管腳說明VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被部上

16、拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的容。P2口在FLASH編程和校驗時接

17、收高八位地址信號和控制信號。P3口:P3口管腳是8個帶部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:P3口管腳備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口

18、同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。LE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE

19、禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有部程序存儲器。注意加密方式1時,/EA將部鎖定為RESET;當/EA端保持高電平時,此間部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入與部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反

20、向放大器可以配置為片振蕩器。石晶振蕩和瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度2.2超聲波介紹與其應用領域當物體振動時會發(fā)出聲音??茖W家們將每秒鐘振動的次數(shù)稱為聲音的頻率。它的單位是赫茲。人類耳朵聽到的聲波頻率為20-20K赫茲。當聲波的振動大于20K赫茲或小于20赫茲時,人們便聽不見了。因此,把頻率高于20K赫茲的聲波稱為超聲波。超聲波的優(yōu)勢在于:1、 超聲波在傳播時,方向性強,能量易于集中。2、 超聲波能在各種不同媒質(zhì)中傳播,且可傳播足夠遠的距離。 3、超聲

21、與傳聲媒質(zhì)的相互作用適中,易于攜帶有關傳聲媒質(zhì)狀態(tài)的信息(診斷或對傳聲媒質(zhì)產(chǎn)生效應。(治療) 超聲波是一種波動形式,它可以作為探測與負載信息的載體或媒介(如B超等用作診斷)。4、 超聲波同時又是一種能量形式,當其強度超過一定值時,它就可以通過與傳播超聲波的媒質(zhì)的相互作用,去影響,改變以致破壞后者的狀態(tài),性質(zhì)與結構(用作治療)。 5、針對以上超聲波的優(yōu)點,超聲波的主要應用領域有: (一)工程學方面的應用:水下定位與通訊、地下資源勘查等 (二)生物學方面的應用:剪切大分子、生物工程與處理種子等 (三)診斷學方面的應用:A型、B型、M型、D型、雙功與彩超等 (四)治療學方面的應用:理療、治癌、外科、

22、體外碎石、牙科等 (五)機械學方面的應用:防銹油脂的去除:量具刀具的清洗:機械零部件的除油除銹發(fā)動機:化油器與汽車零件的清洗等 (六)表面處理方面的應用:電鍍前的除油除銹:離子鍍前的清洗:磷化處理:清除積碳:氧化皮等 (七)超聲波清洗:清除污染物,疏通細小孔洞,如:清洗印章,古董修復和汽車電噴頭疏通等 (八)超聲波攪拌:加快溶解,提高均勻度,加快物理化學反應,防止過腐蝕和加速油水乳化,如:溶劑染料混合和超聲磷化等 (九)超聲波凝聚:加速沉淀,分離,如:種子浮選和飲料除渣等 (十)超聲波殺菌:殺滅細菌與有機污染物,如:污水處理和除氣等 (十一)超聲波粉碎:降低溶質(zhì)顆粒度,如:細胞粉碎和化學檢測等

23、 (十二)超聲波封孔:排除間隙氣體,提高整體密度,如:工件浸漆等 理論研究表明,在振幅一樣的情況下,一個物體振動的能量與振動頻率成正比,超聲波在介質(zhì)中傳播時,介質(zhì)質(zhì)點振動的頻率很高,因而能量很大。在我國北方干燥的冬季,如果把超聲波通入水罐中,劇烈的振動會使罐中的水破碎成許多小霧滴,再用小風扇把霧滴吹入室,就可以增加室空氣濕度,這就是超聲波加濕器的原理。2.3 超聲波距離傳感器簡介 超聲波傳感器是利用超聲波的特性研制而成的傳感器, 它是通過傳送一個超聲波(遠高于人的聽覺圍)和提供一個對應于爆裂回聲返回到傳感器所需時間的輸出脈沖來工作的。超聲波傳感器在非接觸性測量方面的應用非常廣泛,如檢測液體水位

24、(特別是具有腐蝕性的液體,如硫酸、硝酸液體),汽車倒車防撞系統(tǒng),金屬/非金屬探傷等,都可以用到超聲波距離傳感器。本章應用位差超聲波距離傳感器作為機器人運動的雙眼(測距圍是:2厘米至3米),C51單片機作為機器人的大腦,隨時判斷和監(jiān)控前方障礙物的距離。圖2-3 位差超聲波傳感器測距示意圖2.4 位差超聲波距離傳感器工作時序位差超聲波距離傳感器通過發(fā)射短超聲波爆裂,然后"聽"回音來探測物體。通過測量回波脈沖的寬度(即時間),就能計算出目標的距離,在主機微控制器發(fā)送的觸發(fā)脈沖的控制下,位差超聲波傳感器發(fā)出一道短40 kHz的(超聲波)爆裂聲,此爆裂聲在空氣中以約1130英尺每秒的

25、速度傳播,當碰到物體時便反射回到傳感器,此時傳感器會產(chǎn)生一個輸出脈沖,向主機微控制器表示回波被探測,這個脈沖寬度就是對應于爆裂回聲返回到傳感器所需時間。圖2-4 位差超聲波傳感器工作時序圖注意:位差超聲波距離傳感器在下列情況下不能精確地測量距離:a) 與物體距離大于3米;b) 與物體的表面形成的反射角太小,使聲音不能反映回到傳感器;c) 物體太小以致沒有足夠強度的聲音返回到傳感器。2-5 超聲波不能精確測距的三種情況第三章 超聲波導航系統(tǒng)硬件電路的設計基于C51單片機的超聲波距離檢測電路原理如圖3-1所示。圖3-1 系統(tǒng)原理3.1單片機最小電路的設計如圖3-3所示,單片機最小電路是由晶振電路和

26、復位電路所組成。圖3-2片機最小電路晶振電路:AT89C51單片機的振蕩器輸入分別由引腳19(XTAL1)和引腳18(XTAL2)來完成。只要將這兩個引腳外接石英晶體和瓷電容,就可與CPU部組成完整的振蕩電路。 AT89C51單片機的一個機器周期含有6個狀態(tài)周期,而每個狀態(tài)周期為2個振蕩器周期,因此一個機器周期共有12個振蕩周期,如振蕩器的頻率為12MHz,一個振蕩器周期為1/12微秒,而一個機器周期為1微秒。復位電路:復位電路產(chǎn)生復位信號,復位信號送入RST后還要送至片的施密特觸發(fā)器,由片復位電路在每個機器周器的S5P2時刻對觸發(fā)器輸出采樣信號,然后由部復位電路產(chǎn)生復位操作所要的信號。一般的

27、復位電路可分為上電自動復位和按鍵復位,我們在此選用的是按鍵復位。 上電自動復位原理:RST 引腳是復位信號的輸入端,只要高電平的復位信號持續(xù)兩個機器周期以上的有效時間,就可以使單片機上電復位。上電自動復位是通過電容充電實現(xiàn)的,上電瞬間,RST端電位與VCC一樣,隨充電電流的減少,RST的電位逐漸下降,直到復位信號無效。按鍵復位在此不在作過多的介紹,其原理和上電復位是一樣的。但其采用的是脈沖復位電路和電平復位電路兩種。3.2超聲波發(fā)射接收電路的設計發(fā)射電路主要由反向器74LS04(74HC04)和超聲波發(fā)射換能器T(發(fā)射端)構成,單片機RB1端口輸出的40 kHz方渡信號一路經(jīng)一級反向器后送到超

28、聲波換能器的一個電極,另一路經(jīng)兩級反向器后進到超聲波換能器的另一個電極。用這種推挽形式將方渡信號加到超聲波換能器兩端,可以提高超聲波的發(fā)射強度。輸出端采用兩個反向器并聯(lián),用以提高驅動能力。模塊,一方面可以提高反向器74LS04(74HC04)輸出高電平的驅動能力,另一方面可以增加超聲換能器的阻尼效果,縮短其自由振蕩的時間。壓電式超聲波換能器是利用壓電晶體的諧振來工作的,它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動產(chǎn)生超聲波,這時它就是一個超聲渡發(fā)生器;反之,如果兩電極間未外加電壓,當共振板接收到超聲波時,將壓迫

29、壓電晶片作振動,將機械能轉換為電信號,這時它就成為超聲渡接收換能器了。超聲波發(fā)射換能器與接收換能器其結構上稍有不同,使用時應分清器件上的標志。我們需要注意的是,超聲波在空氣中傳播時受到環(huán)境的影響衰減比較大,理論上講發(fā)射探頭的電壓越高,功率越大,發(fā)射的距離就越遠。但是,傳感器的發(fā)射有其工作電壓的極限值,工作電壓超過了這個極限值之后,會對傳感器的部電路造成不可恢復的損害,這樣就并不能有效的發(fā)射出準確的脈沖信號。圖3-3 超聲波發(fā)射電路圖集成電路CX20106A是一款紅外線檢波接收的專用芯片,常用于電視機紅外遙控接收器??紤]到紅外遙控常用的載波頻率38 KHz與測距的超聲波頻率40 KHz較為接近,

30、可以利用它制作超聲波檢測接收電路。實驗證明用CX20106A接收超聲波(無信號時輸出高電平),具有很高的靈敏度和較強的抗干擾能力。適當更改電容C4的大小,可以改變接收電路的靈敏度和抗干擾能力。CX20106A的2號管腳是一個RC電路。電阻減小 電容增大 放大倍數(shù)增大。但是電阻太小也不行,會導致沒接受到信號7號管腳也有低電平產(chǎn)生。 這樣就不能準確的測出距離了。所以網(wǎng)上的有些原理圖只能做個參考了。具體2號管腳的電容,電阻值要根據(jù)實際的調(diào)試電路來確定的。圖3-4 超聲波檢測接收電路圖3.3顯示模塊的設計1602液晶顯示電路單片機將計算處理的結果采用1602液晶進行顯示,顯示電路的電路原理圖如圖3-5

31、所示圖 3-5 1602液晶顯示電路第四章 系統(tǒng)軟件的設計4.1超聲波距離測量程序根據(jù)超聲波傳感器的時序原理圖,應用c51單片機定時/計數(shù)器實現(xiàn)對前方物體距離的測量并在LCD模塊上顯示。程序名:distance.c功 能:利用超聲波傳感器測距,并在LCD上顯示距離值。#include"at89x52.h" #include"uart.h" #include <LCD.h>#define uint unsigned int#define uchar unsigned charvoid delay_nµs(uint i);void de

32、lay_nms(uint n); void Time0_Init (void);void main(void) uint count,x,H,L,x1,x2; /定義變量 uart_Init(); /串口初始化 Time0_Init();/計數(shù)器初始化 LCM_Init(); /LCD模塊初始化 printf("Program Running!n"); while(1) /進入循環(huán)體 TL0 = 0;/計數(shù)器低位賦初值0 TH0 = 0;/計數(shù)器高位賦初值0 P1_3 = 0 ;/置P1_3為0 P1_3 = 1; /置P1_3為1 delay_nµs(5); /

33、延時5µsP1_3 = 0 ; delay_nµs(750); while(!P1_3) ;TR0 = 1; while (P1_3); TR0 = 0;/定時器1計時停止H = TH0;L = TL0; H = TH0;L = TL0; count=H*256 + L; x=count/29.034; if(x>0&&x<400) x=x/2; x1=x/10;x2=x%10;Set_xy_LCM(0,0);Write_Data_LCM(0x30+x1);/在LCD上顯示距離的十位數(shù)Set_xy_LCM(0,1);Write_Data_LCM(

34、0x30+x2); /在LCD上顯示距離的顯示個位數(shù)Display_List_Char(0, 2, "cm"); printf("x = %d cmn",x); /在PC機上顯示器上顯示所測到的距離elseprintf("no ping!"); delay_nms(200); /延時200msvoid delay_nµs(uint i) /延時nµs i=i/10; while(-i); void delay_nms(uint n) /延時n ms n=n+1; while(-n) delay_nµs(9

35、00); void Time0_Init (void) /計數(shù)器0初始化程序TMOD |= 0x01;/計數(shù)器選擇工作模式1TL0 = 0;/計數(shù)器低四位賦初值零TH0 = 0;/計數(shù)器高四位賦初值零TR0 = 0;/停止計數(shù)4.1.1距離測量程序設計思路簡要分析以上程序的基本設計思路,用流程圖表示如下:開始LCM與串口初始化延時75S產(chǎn)生5S觸發(fā)脈沖控制引腳置高定時器計數(shù)開始N引腳電下降沿?Y定時器停止計數(shù)將計數(shù)值轉換為距離調(diào)顯示函數(shù)圖4-1距離測量程序流程圖主要分為兩步:1、先是根據(jù)位差超聲波傳感器的控制時序圖,起動位差超聲波距離傳感器,即通過單片機編程,給超聲波傳感器的信號引腳提供一個持

36、續(xù)時間為5µs的高電平,然后拉低信號引腳750µs,這樣位差超聲波傳感器就被啟動,發(fā)出超聲爆裂,與此同時,啟動單片機的定時器開始計數(shù),當超聲波遇到物體時會立即反射回來,位差超聲波傳感器的接收器接到回波時,會自動拉低其信號引腳的電平,單片機查詢到此引腳的電平下降沿到來時停止定時器計數(shù),此時定時器計數(shù)值就間接反應了超聲波從反射到返回所經(jīng)歷的時間。2、然后讀出定時器的計數(shù)值除以2,便得到超聲波在遇到被測物體返回的時間,根據(jù):距離=速度*時間,就可以計算出前方物體的距離,因超聲波在常溫下的空氣介質(zhì)中傳播的速度大約為344m/s, 即29.034µs超聲波能傳播1cm,所以

37、在程序中用語句x=count/29.034來計算距離值,獲得被測距離值后,調(diào)用LCD顯示函數(shù)將距離值在LCD模塊上顯示出來。4.2 超聲波導航程序根據(jù)位差超聲波距離傳感器測量得的“距離”信息進行避障行走;當輪式教育機器人距離前面障礙物小于20cm時,它會向左拐改變行進方向,避免與物體碰撞。程序名:moveroaming.c功 能:利用超聲波傳感器探測前方物體并引導輪式教育機器人避開障礙物#include"at89x52.h" #define uint unsigned int#define uchar unsigned charvoid delay_nµs(uin

38、t i);void delay_nms(uint n);void Forward(void);void Left_Turn(void);void Right_Turn(void) ;void Backward(void) ;void Time0_Init (void);int main(void) /主函數(shù),程序從這里開始運行 uint count,x,H,L; /定義無符號整型變量count,x,Time0_Init ();while(1)/循環(huán) TL0 = 0;/計數(shù)器低位賦初值0 TH0 = 0;/計數(shù)器高位賦初值0 P1_3 = 0 ;/置P1_4輸出為高電平,其余的輸出低電平 P1_

39、3 = 1; delay_nµs(5); /延時5µs P1_3 = 0 ; delay_nµs(750); while(!P1_3) ;TR0 = 1; while (P1_3); TR0 = 0;/定時器1計時停止H = TH0;L = TL0; count=H*256 + L; x=count/29.034; if(x<=20) /如果距離小于20cm時 Backward(); /后退 Left_Turn(); /向左轉 else /距離不小于等于20cm時 Forward(); /向前走 delay_nms(30); /延時30msvoid dela

40、y_nµs(uint i) /延時nµs i=i/10; while(-i); void delay_nms(uint n) /延時n ms n=n+1; while(-n) delay_nµs(900); void Time0_Init (void) /計數(shù)器初始化TMOD |= 0x01; /計數(shù)器選取方式1TL0 = 0;/計數(shù)器低位賦初值0TH0 = 0;/計數(shù)器高位賦初值0TR0 = 0; /停止計數(shù)void Forward(void) /聲明一個前進子函數(shù)P1_0 = 1; /設置P1_0輸出高電平delay_nµs(1700); /延時0.

41、0017s P1_0 =0; /設置P1_0輸出低電平P1_1 = 1; /設置P1_1輸出高電平delay_nµs(1300); /延時0.0013sP1_1 = 0; /設置P1_1輸出低電平delay_nms(20); /延時20msvoid Left_Turn(void) /聲明一個向左子函數(shù) uint i;for(i=1;i<=7;i+) P1_0 = 1; /設置P1_0輸出高電平 delay_nµs(1300); /延時0.0013s P1_0 = 0; /設置P1_0輸出低電平 P1_1 = 1; /設置P1_1輸出高電平 delay_nµs

42、(1300); /延時0.0013s P1_1 = 0; /設置P1_1輸出低電平 delay_nms(20); /延時20ms void Backward(void) /聲明一個向后子函數(shù) uint i;for(i=1;i<=4;i+) P1_0 = 1; /設置P1_0輸出高電平 delay_nµs(1300); /延時0.0013s P1_0 = 0; /設置P1_0輸出低電平 P1_1 = 1; /設置P1_1輸出高電平 delay_nµs(1700); /延時0.0017s P1_1 = 0; /設置P1_1輸出低電平 delay_nms(20); /延時2

43、0ms 4.2.1 導航程序設計思路下面簡要分析以上程序的基本設計思路,用流程圖表示如下:開始LCM與串口初始化延時75S產(chǎn)生5S觸發(fā)脈沖控制引腳置高定時器計數(shù)開始N引腳電下降沿?Y定時器停止計數(shù)將計數(shù)值轉換為距離距離<20cm?N調(diào)用前進函數(shù)調(diào)用左拐函數(shù)Y調(diào)用后退函數(shù)圖4-2 導航程序流程圖第五章 系統(tǒng)調(diào)試5.1仿真環(huán)境介紹5.1.1用Keil軟件編譯程Keil µVision3是Keil C51(V8.02)工具包中的一個重要組件,µVision3是用于多種8051MCU的集成開發(fā)環(huán)境(IDE,Integrated Development Environment)

44、,集編輯、編譯、連接、調(diào)試、仿真于一體,支持匯編和C語言的程序設計。µVision3提供對多種最新的8051類MCU支持,其嵌的仿真器不但可以對目標系統(tǒng)進行實時在線仿真,而且允許模擬仿真, 從而對沒有仿真器的用戶帶來了便利。打開Keil µVision3軟件后,新建一個工程,選擇CPU的型號和廠家,這里我所選用的是AT89C51單片機,如圖 5-1。在上述工程對話框中新建一個文件,保存文件名為huibian 類型為.C后綴,保存完后將文件加到工程中。圖選擇AT89C51芯片選擇Source Group1中的Add/Remove Source File 菜單項,將出現(xiàn)Add/Remove Source Code Files對話框。添加后,在文件中寫入程序。寫完后應該編譯該程序是否正確。其顯示如圖5-2所示。圖5-2 程序的寫入和編譯因為我所編寫的程序包含了匯編語言和C語言,所以對程序進行編譯之前,要對Keil軟件進行設置,具體設置就不詳細介紹了,以下是其中的一個步驟,如圖5-2所示:生成.H

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論