超聲波測距系統(tǒng)設計_第1頁
超聲波測距系統(tǒng)設計_第2頁
超聲波測距系統(tǒng)設計_第3頁
超聲波測距系統(tǒng)設計_第4頁
超聲波測距系統(tǒng)設計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機及其接口技術課程設計說明書學生姓名:JGuo學號:學院:計算機與控制工程學院專業(yè):自動化題目:倒車測距系統(tǒng)設計指導老師職稱副教授職稱講師2013年10月21日1設計內容設計一個由單片機控制的倒車測距監(jiān)測系統(tǒng),倒車時可以監(jiān)測車尾與障礙物的距離,近距離時可報警提示。2設計要求選擇傳感器,設計鍵盤、測距和報警電路,按下“啟動”鍵,每隔1秒,檢測1次車尾和障礙物的距離,檢測范圍0-2m,測量精度土0.1米,距離小于0.5米時自動報警提示;倒車完畢,按下“停止”鍵,系統(tǒng)停止運行。3系統(tǒng)設計方案本設計主要是進行距離的測量和報警,設計中涉及到的內容較多,主要是將單片機控制模塊、測距模塊、蜂鳴器報警模塊

2、、顯示模塊這幾個模塊結合起來。而本設計的核心是測距模塊,其他相關模塊都是在測距的基礎上拓展起來的,首先選擇合適的測距傳感器,之后選擇合適單片機芯片,以下就是從相關方面來論述的。3.1激光測距一個典型的激光測距系統(tǒng)應具備以下幾個單元:激光發(fā)射單元,激光接收單元,距離計算與顯示單元,準直與聚焦單元。系統(tǒng)工作時,激光由發(fā)射單元發(fā)出,以光速到達目標物后反射回來,被接收單元接收,通過距離計算與顯示單元得到目標物距離。激光測距中的一種方法是脈沖測距法。目前,脈沖激光測距獲得了廣泛的應用。脈沖激光測距利用激光脈沖持續(xù)時間極短,能量在時間上相對集中。其基本原理是:在測距點向被測目標發(fā)射一束短而強的激光脈沖,光

3、脈沖發(fā)射到目標上后其中一小部分激光反射到測距點被光功能接收器所接收。假定光脈沖在發(fā)射點與目標間來回一次所經歷的時間間隔為t,那么被測目標的距離D為:D=c.t/2(3-1)在式3-1中C表示光速,當認為光速一定時(不考慮大氣中光速的微小變化),脈沖時間誤差為t,那么由此可以確定測距精度:D=ct2(3-2)測距系統(tǒng)設計該系統(tǒng)主要由脈沖半導體激光二極管發(fā)射電路、光學元件、漫反射物體、接收系統(tǒng)、高精度時間轉換芯TDC-GP1單片機構成,激光發(fā)射電路打出窄脈寬光脈沖,同時將發(fā)射脈沖輸入TDC-GP1的START端口,觸發(fā)時差測量。一旦從物體傳回的發(fā)射脈沖達到了光電探測器(接收電路)則給了TDC產生一

4、個STOP信號,這個時候時差測量完成。TDCGP記錄從START至ijSTOP脈沖之間的時差,用于計算所測物體與發(fā)射端的距離。單片機對于TDC-GP1進行寄存器配置以及時間測量控制,時間測量結果傳回給單片機通過算法進行距離的精確計算和處理,再將結果送給液晶顯示出來3.2 紅外測距紅外線發(fā)射器不斷發(fā)射出頻率為40kHz的紅外線,經障礙物反射,紅外線接收器接收到反射波信號,并將其轉變?yōu)殡娦盘枴y出發(fā)射波與接收到反射波的時間差t,即可求出距離:s=C式2(3-3)(3-3)式中,c為光速度,一般取3X108m/s。本文采用“計數(shù)”方式,通過單片機處理進行測量,其基本原理是:紅外線發(fā)射器始終處于發(fā)射紅

5、外線的狀態(tài),當紅外接收器第一次接收到障礙物反射回的紅外線時,經電路處理單片機給出一個計數(shù)啟動信號,單片機的計數(shù)器開始以一定頻率計數(shù);當紅外線接收器第二次接收到反射回的紅外線時,經電路處理單片機給出一個停止計數(shù)脈沖,計數(shù)器停止計數(shù)。通過編程,單片機自動處理,用脈沖的周期T乘以脈沖數(shù)n就得到發(fā)射紅外線到接收紅外線的時間差t,即:t=nT(3-4),(3-4)式代入(3-3)式就得測量距離。系統(tǒng)的建立根據(jù)以上的測距原理,設計出系統(tǒng)的基本構架。紅外線測距系統(tǒng)的紅外發(fā)射電路發(fā)射出40kHz頻率的紅外線,當遇到障礙物紅外線發(fā)生漫反射,紅外線接收電路第一次接收到反射的紅外線時,給單片機一個信號脈沖,啟動單片

6、機內的計數(shù)器,計數(shù)器置位進入計數(shù)狀態(tài);當接收電路第二次接收到反射器的紅外線時,經單片機處理給出一個信號脈沖,使計數(shù)器停止計數(shù),數(shù)據(jù)被鎖存,然后經單片機處理,將測量的距離顯示在顯示器上。3.3 超聲波測距與激光測距、紅外線測距相比,超聲波對外界光線、色彩和電磁場不敏感,更適于黑暗、電磁干擾強、有毒、灰塵或煙霧的惡劣環(huán)境,在識別透明及漫反射性差的物體上也更有優(yōu)勢。超聲波測距是一種非接觸式測量,廣泛應用于倒車防撞雷達、機器人接近覺、海洋測量、物體識別等領域。超聲波測距原理超聲波測距從機理上可以分為共振式和脈沖反射式兩種,該設計采用后者。工作時由超聲波發(fā)射極發(fā)射超聲波,同時開始計時,超聲波在空氣中傳播

7、,當碰到障礙物時,由于其良好的反射能力而被反射,由超聲波接收極接收,此時計時結束。記超聲波往返的時間為t,根據(jù)s=ct/2計算超聲波收發(fā)極與障礙物之間的距離,這就是通常所說的渡越時間法,也稱時間差測距法。其中c為超聲波波速,與環(huán)境溫度有關,在測量精度要求高的場合要考慮溫度影響,可由軟件進行調整補償;在測量精度要求不是很嚴格的情況下,可以忽略溫度的影響,認為c為常數(shù),設計中取c=340m/s。根據(jù)對以上三種傳感器性能的比較,雖然能明顯看出來激光傳感器是比較理想的選擇,但是它的價格卻比較高,而且安全度不夠高。而且汽車在行駛的過程中測距傳感器測距時應具有較強的抗干擾能力和較短的響應時間,因此選用超聲

8、波傳感器作為此設計方案的傳感器探頭。4系統(tǒng)硬件設計此方案選擇51單片機作為控制核心,所測得的距離數(shù)值LCD液晶顯示器顯示,與障礙物之間的距離低于安全距離時利用蜂鳴器報警聲提示,超聲波發(fā)射信號由51單片機的P2.1口送出到超聲波發(fā)射電路,將超聲波發(fā)送出去,超聲波接收電路由CX20106A芯片和超聲波接收探頭組成的電路構成,報警系統(tǒng)由蜂鳴器電路構成。該超聲波測距系統(tǒng)硬件電路組成比較簡單,包括單片機、超聲波測距模塊、LCD1602夜晶顯示器、按鍵4部分??傮w框圖如圖4-1。圖4-1總體框圖104.1 控制核心STC12C5A60S2STC12C5A60S2/AD/PWMU單片機是宏晶科技生產的單時鐘

9、、機器周期(1T)的單片機,是高速、低功耗、超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內部集成MAX81%用復位電路,2路PWM,8各高速10位A/D轉換(250K/S),針對實時性要求比較高的系統(tǒng)。完全可以滿足本系統(tǒng)設計要求。最小系統(tǒng)圖如圖4-2。I-XIC3-4WVccADCLTL.IiMtkARdEC1JLDC25L2HI.LJLDLCCWADC3P!lJ劉MX!ADC4.PL 4河44Ka AECFLBM5.aAD5SOJLADCFl 7而皿嶼TNI同力皿EKWD1M制由TiDVJJJLLE/H3UTTk.3Pl.T-AB-lSJtDcrnmp

10、”FZ.&ADJ4LMUniLPJJir: A:k甌常年M4加HEDPJ.TKSA3ILmiXTAU轉網2?2UAIS匚 巨 匚 1=圖4-2單片機最小系統(tǒng)4.2 超聲波測距模塊根據(jù)經濟適用的原則,選才DYP-ME00超聲波傳感器作為測距模塊,具基本性指標如下:1. 使用電壓:DC5V2. 靜態(tài)電流:小于2mA3. 電平輸出:高5V4. 電平輸出:低0V5. 感應角度:不大于15度6. 探測距離:2cm-750cm7. 高精度:可達3mm接線方式,VCCtrig(控制端)、echo(接收端)、GN刖線。本產品使用方法:一個控制口發(fā)一個10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出

11、就可以開定時器計時,當此口變?yōu)榈碗娖綍r就可以讀定時器的值,此時就為此次測距的時間,方可算出距離.如此不斷的周期測,就可以達到你移動測量的值了。模塊工作原理:(1) 采用IO觸發(fā)測距,給至少10us的高電平信號;(2) 模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;(3)有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間測試距離=(高電平時間*聲速(340M/S)/2。超聲波傳感器實物圖如圖4-3.圖4-3超聲波傳感器實物圖4.3數(shù)據(jù)顯示模塊出于人性化設計考慮,系統(tǒng)設計采用LCD液晶顯示器實時顯示汽車與障礙物之間的距離,便于駕駛員倒車操作。1602液晶也叫

12、1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM顯示效果也不好)。1602LCC指顯示白內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780夜晶芯片的,控制原理是完全相同的,因此基于HD44780?的控制程序可以很方便地應用于市面上大部分的字符型液晶。本設計所選用的LCD1602的規(guī)格及硬件原理如圖4

13、-4、4-5。80.075。73.764 5圖4-4 LCD1602的規(guī)格示意圖LCD2LCD 1602I-圖4-5LCD1602的硬件原理圖5系統(tǒng)軟件設計由超聲波測距模塊的工作原理:采用I/O觸發(fā)測距,給至少10us的高電平信號;模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間.測試距離=(高電平時間*聲速(340M/S)/2。系統(tǒng)軟件設計中包括觸發(fā)程序、時間記錄及距離計算程序、LCD顯示程序、蜂鳴器驅動發(fā)生程序及各程序塊的連接程序。5.1 總體流程首先是單片機給超聲波模塊至少10us的高電平信號,當超聲

14、波模塊接收到回波后超聲波模塊輸出管腳輸出高電平,隨即啟動定時器,直至管腳電平變成低電平,計時結束,結合公式即可計算出距離。距離的數(shù)據(jù)經轉化后用LCD1602ft觀顯示出來,與此同時單片的一直對距離數(shù)據(jù)進行判斷,如果距離小于設定的安全距離時,執(zhí)行蜂鳴器驅動程序,發(fā)出報警。主程序圖如圖5-1.5.2 啟動超聲波模塊程序采用I/O觸發(fā)測距,單片機通過I/O口給超聲波測距模塊至少10us的高電平信號。為保證精確計時同時節(jié)約硬件資源減少冗余代碼,可采用_nop()庫函數(shù)做延時函數(shù)進行觸發(fā)操作。部分代碼如下:voidStartModule()TX=1;啟動模塊,(T向超聲波模塊發(fā)出大于10us的觸發(fā)脈沖_

15、nop_();_nop_();一個_nop_()相當于延時1us,從而啟動超聲波測距模塊_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;/脈沖發(fā)射結束5.3 LCD1602顯示算法程序工作時由超聲波發(fā)射極發(fā)射超聲波,同時開始計時,超聲波在空氣中傳播,當碰到障礙物時,由于其良好的反射能力而被反射,由超聲波接收極接收,此時計時結束。記超

16、聲波往返的時間為t,根據(jù)s=ct/2計算超聲波收發(fā)極與障礙物之間的距離。計算出來的距離通過算法處理可用LCD1602夜晶顯示器直觀顯示出來。部分算法代碼如下:voidConut(void)time=TH0*256+TL0;/超聲波發(fā)射返回時間用定時器來計時(16位)TH0=0;/重新初始化TL0=0;S=(time*1.7)/10;單位為MM,結合超聲波340m/s來計算if(S=7000)|flag=1)/flag=0;DisplayListChar(0,1,table1);/else/正常距離范圍則實時顯示距離disbuff0=S%10;disbuff1=S/10%10;disbuff2=

17、S/100%10;disbuff3=S/1000;DisplayListChar(0,0,Range);DisplayListChar(0,1,table);DisplayOneChar(9,1,ASCIIdisbuff3);DisplayOneChar(10,1,ASCIIdisbuff2);DisplayOneChar(11,1,ASCIIdisbuff1);DisplayOneChar(12,1,ASCII10);DisplayOneChar(13,1,ASCIIdisbuff0);5.4 蜂鳴器驅動算法程序在本設計中,以簡單易行為設計準則,報警裝置用蜂鳴器充當。單片機的I/O口可以直接

18、驅動小型蜂鳴器,但是由于電流很小,聲音強度不足,所以可將I/O口輸出的驅動信號經放大電路放大后驅動蜂鳴器。蜂鳴器驅動代碼如下:voidRing(void)unsignedinti;for(i=0;i200;i+)DelayUs2x(200);SPK=!SPK;SPK=0;/防止一直給喇叭通電造成損壞for(i=0;i200;i+)DelayMs(1);6倒車測距系統(tǒng)實物在設計完畢后,根據(jù)設計進行硬件仿真,仿真結果表明,設計原理符合客觀實際,很好地實現(xiàn)了設計要求指標:距離檢測范圍:0.02M7.00M,響應速度:小于1s,安全距離:設定為0.5M。硬件仿真效果如圖6-1,6-2。圖6-1硬件仿真

19、eFi S341e7結論本文采用超聲波傳感器設計了一種可視化的倒車測距系統(tǒng),并比較了紅外測距系統(tǒng)及激光測距系統(tǒng)在汽車防撞系統(tǒng)的運用。根據(jù)系統(tǒng)設計,為使測量的時間差t準確,采取兩種方法提高精確度:1)安裝多個超聲波傳感器,避免死角;2)減小掃描周期,進行N次測量,以N次測量時間的平均值作為有效值。當然,為了使汽車倒車防撞系統(tǒng)實用化還需解決如下幾個問題:1) 怎樣防止倒車時,因道路兩旁物體,臨車道上的車輛產生錯覺問題;2) 增加減震措施,防止系統(tǒng)因震動影響工作可靠性的問題;3) 發(fā)出什么樣的報警信號才能使司機不造成緊張不安的情緒;4) 如何進一步提高單片機計數(shù)工作頻率,減少誤差;5) 動態(tài)探測距離

20、有待進一步提高。這些問題有待進一步研究、探討。相信隨著器件的改進和實驗條件的改善,這些問題會得到圓滿解決??傊?由于本系統(tǒng)成本低、精確度較高、功能多、人性化具有廣闊的市場。8 致謝本文是在導師張艷兵副教授的悉心指導下完成的感謝他在課題的理論研究和技術細節(jié)方面給予我的指導和幫助導師嚴謹?shù)闹螌W態(tài)度,實事求是的工作作風和勇于開拓進取的精神使我受到深刻的教育,讓我獲益菲淺,為我今后的工作和學習打下了良好的基礎在此,謹向導師致以崇高的敬意!感謝我所在學院的領導和同志們,感謝他們?yōu)槲彝瓿杀菊n題而提供了必要的時間和條件本論文的順利完成是和他們的熱情支持和幫助分不開的感謝學院的各位領導!老師以及班主任加俊老師

21、,正是由于他們的熱情指導和幫助,使得本課題在規(guī)定的時間內按要求得以完成最后,向所有關心!理解!支持和幫助過我的老師!領導!同志和朋友們致以誠摯的謝意!9 參考文獻1 趙廣濤,程蔭杭.基于超聲波傳感器的測距系統(tǒng)設計J.微計算機信息,2006,01:129-130+149.2 孫驍苗,周東輝,栗欣,李立.移動機器人的多傳感器測距系統(tǒng)設計J.傳感器與微系統(tǒng),2006,02:50-52.3 陸曉元,林久令,張海明,王晉疆.一種激光測距系統(tǒng)用納秒脈沖變壓器的設計J.儀表技術,2008,03:65-66+59.4張瑞玲,劉洪運.單模VCSEL敷光自混和測距系統(tǒng)設計J.西南民族大學學報(自然科學版),200

22、8,04:758-762.5 宋永東,周美麗,白宗文.高精度超聲波測距系統(tǒng)設計J.現(xiàn)代電子技術,2008,15:137-139.6 陳安健,鄭煒.脈沖激光測距系統(tǒng)中非球面物鏡的設計J.激光與紅外,2005,07:524-526.7 李田澤,李增祥,孫永偉.激光測距系統(tǒng)的設計J.計量技術,2003,03:6-8.8戴曰章,吳志勇.基于AT89C51單片機的超聲波測距系統(tǒng)設計J.計量與測試技術,2005,02:17-19.9 賀靜,王樹才,胡煉.基于聲納傳感器和C8051F040的測距系統(tǒng)設計J.現(xiàn)代電子技術,2009,18:144-146.10李航,王可人.基于STC89C52RC勺超聲波測距系

23、統(tǒng)設計J.電子測試,2010,01:55-58.11 趙小強.簡易的超聲波測距系統(tǒng)J.天津理工大學學報,2010,01:49-52.12 蔣曉玲,孟志強,陳燕東,許亮,羅廷芳,常金武.汽車追尾防撞紅外測距系統(tǒng)J.光電子技術,2011,01:67-72.13 楊旭,劉小方,張澤奇,溫婷.基于單片機的超聲波測距系統(tǒng)設計J.機床與液壓,2011,08:106-108+124.14 張邦成,張玉玲,王昕,韓躍營,姜艷青.超聲紅外復合測距系統(tǒng)設計J.制造業(yè)自動化,2011,14:122-124.15 顧國榮,鮑駿成,李海樂.基于單片機的超聲波測距系統(tǒng)設計J.沿海企業(yè)與科技,2012,02:42-45.1

24、6 楊光照,許春暉,張德浩,鄭莎,譚明香.基于單片機的激光測距系統(tǒng)設計J.中國新技術新產品,2012,10:36-37.17岳文豹,楊錄,張艷花.FMCW皆達近程測距系統(tǒng)設計J.電子技術應用,2012,04:73-75+79.18 王小華,周松青,殷嚴剛.基于溫度補償?shù)某暡y距系統(tǒng)設計J.廣西物理,2012,02:10-14.19 .中小學嘗試教育骨干教師研修班及校長論壇11月中旬在上海舉行J.人民教育,2012,19:58.20 陳安健,路曉東.一種新型軍用激光測距系統(tǒng)的設計與研究J.激光與紅外,2001,02:90-92.21蘭羽.基于40kHz超聲波測距系統(tǒng)的設計J.機械與電子,201

25、3,08:66-69.22 呂濤,劉志剛,鄧忠文,陶龍,龔海.一種光纖組量程擴增的激光頻率掃描干涉絕對測距系統(tǒng)J.西安交通大學學報,2013,0923 趙負圖.傳感器集成電路手冊M.北京:化學工業(yè)出版社,2002.424 孫寶元等.傳感器及應用手冊M.北京:機械工業(yè)出版社,2004.125 鄭國欽等.集成傳感器應用入門M.浙江:浙江科學技術出版社,2003.226 何希才.傳感器及其應用立例M.北京:機械工業(yè)出版社,2004.127 沙占友.集成化智能傳感器原理與應用M.北京:電子工業(yè)出版社,2004.628 畢滿清模擬電子技術基礎M電子工業(yè)出版社.北京.2008,0629 王劃一,楊西俠.自

26、動控制原理M.國防工業(yè)出版社.北京.2010,08.30 趙山林.C程序設計M.高等教育出版社.北京.2010,08.10程序清單10.1主要代碼/*超聲波倒車雷達(用LCD1602顯示)*/*修改日期:2013年10月21日*/*修改人:*/*超聲波模塊芯片DYP-ME007*/DYP-ME007共5個引腳,tri(控制端TX)單片機對其輸入大于10us的觸發(fā)脈沖/Echo:(接收端RX),接收超聲波反射回來的信號,輸出高電平/out:為空引腳,一般不接#include#include#includelcd1602.h#includering.h#includering.hsbitRX=P2

27、A0;超聲波模塊接收發(fā)射信號trigsbitTX=P2A1;單片機相超聲波模塊發(fā)出激發(fā)脈沖EchosbitSTART=P2A2;/啟動sbitSTOP=P2A3;/停止unsignedcharflagkey;/*距離計算函數(shù)*/voidConut(void)time=TH0*256+TL0;/計算時間,超聲波發(fā)射返回時間用定時器來計時(16位計時器)TH0=0;TL0=0;S=(time*1.7)/10;算出來是MM,結合超聲波340m/s來計算if(S=7000)|flag=1)/超出測量范圍flag=0;DisplayListChar(0,1,table1);/顯示相應超出范圍的提示els

28、edisbuff0=S%10;disbuff1=S/10%10;disbuff2=S/100%10;disbuff3=S/1000;DisplayListChar(0,0,Range);DisplayListChar(0,1,table);DisplayOneChar(9,1,ASCIIdisbuff3);DisplayOneChar(10,1,ASCIIdisbuff2);DisplayOneChar(11,1,ASCIIdisbuff1);DisplayOneChar(12,1,ASCII10);DisplayOneChar(13,1,ASCIIdisbuff0);/*定時器0中斷函數(shù)功能

29、:T0中斷用來紀錄回波時間間隔,計數(shù)器溢出,超過測距范圍*/voidinter_T0()interrupt1flag=1;/中斷溢出標志RX=0;/*啟動超聲波模塊函數(shù)*/*voidStartModule()TX=1;/啟動一次模塊,(TX)向超聲波模塊發(fā)出大于10us的觸發(fā)脈沖_nop_();_nop_();一個-nop-()相當于延時1us,從而啟動超聲波測距模塊_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_no

30、p_();_nop_();_nop_();_nop_();_nop_();/脈沖發(fā)射結束TX=0;/*計算超聲波發(fā)射接收時間的函數(shù)原理:信號返回,超聲波模塊輸出高電平,持續(xù)時間即為從發(fā)射到返回的時間*/voidTimer_Count(void)TR0=1;while(RX);TR0=0;Conut();/開啟計數(shù)/關閉計數(shù)/計算距離25/*主函數(shù)*/voidmain(void)unsignedintvalA;Delay400Ms();/啟動等待,等LCM講入工作狀態(tài)LCMInit();/LCM初始化Delay5Ms();/延時片刻DisplayListChar(0,0,Range);Displ

31、ayListChar(0,1,table);/初始狀態(tài)LCD顯示TMOD=0x01;/定時器0工作在模式1,16位定時器;/開總中斷/計時器賦初值,/允許 T0 中斷EA=1;TH0=0;TL0=0;ET0=1;while(1)if(STOP=0)flagkey=1;WriteCommandLCM(0x01,1);/顯示清屏DisplayListChar(0,1,table3);/顯示倒車完畢警告!elseif(START=0)flagkey=0;if(flagkey=0)RX=1;/接收引腳初始化StartModule();/啟動超聲波模塊for(valA=7500;valA0;valA-)

32、/掃描周期if(RX=1)/表示超聲波模塊信號已經返回,開始計時;Timer_Count();/計算顯示距離10.2LCD1602.H代碼# ifndef_LCD1602_H_# define_LCD1602_H_#includesbitLCM_RW=P2A5;定義LCD1602的引腳sbitLCM_RS=P2A4;sbitLCM_E=P2A6;sbitwaring=P3A2;# defineLCM_DataP0# defineBusy0x80/用于檢測LCM狀態(tài)字中的Busy標識voidLCMInit(void);/LCD初始化函數(shù)voidDisplayOneChar(unsignedcha

33、rX,unsignedcharY,unsignedcharDData);/LCD顯示一個字符函數(shù)voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);/LCD顯示一個字符串函數(shù)voidDelay5Ms(void);/延時5毫秒函數(shù)voidDelay400Ms(void);/延時400毫秒函數(shù)voidDecode(unsignedcharScanCode);voidWriteDataLCM(unsignedcharWDLCM);/LCD1602寫數(shù)據(jù)函數(shù)voidWriteCommandLCM(unsigne

34、dcharWCLCM,BuysC);/LCD寫命令函數(shù)unsignedcharReadStatusLCM(void);unsignedcharcodeRange=DistanceFinder=;/LCD1602顯示格式unsignedcharcodeASCII13=09.-M;unsignedcharcodetable=Distance:000.0cm;unsignedcharcodetable1=!Outofrange;unsignedcharcodetable2=!Denger;unsignedcharcodetable3=STOP;unsignedinttime=0;/超聲波發(fā)射返回時間

35、unsignedlongS=0;/距離bitflag=0;/測量超出量程的標志,主要以定時器的溢出來判定unsignedchardisbuff4=0,0,0,0,;/寫數(shù)據(jù)voidWriteDataLCM(unsignedcharWDLCM)ReadStatusLCM();/檢測忙LCM_Data=WDLCM;LCM_RS=1;LCM_RW=0;LCM_E=0;/若晶振速度太高可以在這后加小的延時LCM_E=0;/延時LCM_E=1;/寫指令voidWriteCommandLCM(unsignedcharWCLCM,BuysC)/BuysC為0時忽略忙檢測if(BuysC)ReadStatus

36、LCM();/根據(jù)需要檢測忙LCM_Data=WCLCM;LCM_RS=0;LCM_RW=0;LCM_E=0;LCM_E=0;LCM_E=1;/讀數(shù)據(jù)unsignedcharReadDataLCM(void)LCM_RS=1;LCM_RW=1;LCM_E=0;LCM_E=0;LCM_E=1;return(LCM_Data);/讀狀態(tài)unsignedcharReadStatusLCM(void)LCM_Data=0xFF;LCM_RS=0;LCM_RW=1;LCM_E=0;LCM_E=0;LCM_E=1;while(LCM_Data&Busy);/檢測忙信號return(LCM_Data);vo

37、idLCMInit(void)/LCM初始化LCM_Data=0;三次顯示模式設置,不檢測忙信號顯示模式設置,開始要求每次檢測忙信號關閉顯示顯示清屏顯示光標移動設置顯示開及光標設置WriteCommandLCM(0x38,0);/Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1);/WriteCommandLCM(0x08,1);/WriteCommandLCM(0x01,1);/WriteCommandLCM(0x06,1);/WriteCommandLCM(0x0c,1);/按指定位置顯示一個字符voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData)Y&=0x1;/x代表液晶屏g上顯示時在該行的位置,Y代表行號,最大兩行,分別為0,1行X&=0xF;/限制X不能大于15,Y不能大于1if(Y)X|=0x40;/當要顯示第二行時地址碼+0x40;X|=0x80;/算出指令碼WriteCommand

溫馨提示

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

評論

0/150

提交評論