




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 單片機及其接口技術(shù) 課程設(shè) 計 說 明 書 學(xué)生姓名:J Guo 學(xué) 號:學(xué) 院:計算機與控制工程學(xué)院 專 業(yè): 自動化題 目:倒車測距系統(tǒng)設(shè)計 指導(dǎo)老師 職稱副教授職稱講 師 2013 年10月21日 1 設(shè)計內(nèi)容設(shè)計一個由單片機控制的倒車測距監(jiān)測系統(tǒng),倒車時可以監(jiān)測車尾與障礙物的距離,近距離時可報警提示。2 設(shè)計要求選擇傳感器,設(shè)計鍵盤、測距和報警電路,按下“啟動”鍵,每隔1秒,檢測1次車尾和障礙物的距離,檢測范圍0-2m,測量精度±0.1米,距離小于0.5米時自動報警提示;倒車完畢,按下“停止”鍵,系統(tǒng)停止運行。
2、3 系統(tǒng)設(shè)計方案本設(shè)計主要是進行距離的測量和報警,設(shè)計中涉及到的內(nèi)容較多,主要是將單片機控制模塊、測距模塊、蜂鳴器報警模塊、顯示模塊這幾個模塊結(jié)合起來。而本設(shè)計的核心是測距模塊,其他相關(guān)模塊都是在測距的基礎(chǔ)上拓展起來的,首先選擇合適的測距傳感器,之后選擇合適單片機芯片,以下就是從相關(guān)方面來論述的。3.1 激光測距一個典型的激光測距系統(tǒng)應(yīng)具備以下幾個單元:激光發(fā)射單元,激光接收單元,距離計算與顯示單元,準直與聚焦單元。系統(tǒng)工作時,激光由發(fā)射單元發(fā)出,以光速到達目標物后反射回來,被接收單元接收,通過距離計算與顯示單元得到目標物距離。激光測距中的一種方法是脈沖測距法。目前,脈沖激光測距獲得了廣泛的應(yīng)
3、用。脈沖激光測距利用激光脈沖持續(xù)時間極短,能量在時間上相對集中。其基本原理是:在測距點向被測目標發(fā)射一束短而強的激光脈沖,光脈沖發(fā)射到目標上后其中一小部分激光反射到測距點被光功能接收器所接收。假定光脈沖在發(fā)射點與目標間來回一次所經(jīng)歷的時間間隔為t,那么被測目標的距離D 為: D=c.t/2 (3-1)在式3-1 中C 表示光速,當認為光速一定時(不考慮大氣中光速的微小變化),脈沖時間誤差為t,那么由此可以確定測距精度: (3-2) 測距系統(tǒng)設(shè)計該系統(tǒng)主要由脈沖半導(dǎo)體激光二極管發(fā)射電路、光學(xué)元件、漫反射物體、接收系統(tǒng)、高精度時間轉(zhuǎn)換芯TDC-GP1、單片機構(gòu)成,激光發(fā)射電路打出窄脈寬光脈沖,同時
4、將發(fā)射脈沖輸入TDC-GP1 的START 端口,觸發(fā)時差測量。一旦從物體傳回的發(fā)射脈沖達到了光電探測器(接收電路) 則給了TDC 產(chǎn)生一個STOP 信號,這個時候時差測量完成。TDCGP1記錄從START 到STOP 脈沖之間的時差,用于計算所測物體與發(fā)射端的距離。單片機對于TDC-GP1 進行寄存器配置以及時間測量控制,時間測量結(jié)果傳回給單片機通過算法進行距離的精確計算和處理,再將結(jié)果送給液晶顯示出來。3.2 紅外測距紅外線發(fā)射器不斷發(fā)射出頻率為40 kHz 的紅外線,經(jīng)障礙物反射,紅外線接收器接收到反射波信號,并將其轉(zhuǎn)變?yōu)殡娦盘枴y出發(fā)射波與接收到反射波的時間差t ,即可求出距離: (3
5、-3)(3-3) 式中, c 為光速度,一般取3 ×108 m/ s。本文采用“計數(shù)”方式,通過單片機處理進行測量,其基本原理是:紅外線發(fā)射器始終處于發(fā)射紅外線的狀態(tài),當紅外接收器第一次接收到障礙物反射回的紅外線時,經(jīng)電路處理單片機給出一個計數(shù)啟動信號,單片機的計數(shù)器開始以一定頻率計數(shù);當紅外線接收器第二次接收到反射回的紅外線時,經(jīng)電路處理單片機給出一個停止計數(shù)脈沖,計數(shù)器停止計數(shù)。通過編程,單片機自動處理,用脈沖的周期T 乘以脈沖數(shù)n 就得到發(fā)射紅外線到接收紅外線的時間差t ,即:t = nT (3-4) ,(3-4) 式代入(3-3) 式就得測量距離。系統(tǒng)的建立根據(jù)以上的測距原理
6、,設(shè)計出系統(tǒng)的基本構(gòu)架。紅外線測距系統(tǒng)的紅外發(fā)射電路發(fā)射出40 kHz 頻率的紅外線,當遇到障礙物紅外線發(fā)生漫反射,紅外線接收電路第一次接收到反射的紅外線時,給單片機一個信號脈沖,啟動單片機內(nèi)的計數(shù)器,計數(shù)器置位進入計數(shù)狀態(tài);當接收電路第二次接收到反射器的紅外線時,經(jīng)單片機處理給出一個信號脈沖,使計數(shù)器停止計數(shù),數(shù)據(jù)被鎖存,然后經(jīng)單片機處理,將測量的距離顯示在顯示器上。3.3 超聲波測距與激光測距、紅外線測距相比, 超聲波對外界光線、色彩和電磁場不敏感, 更適于黑暗、電磁干擾強、有毒、灰塵或煙霧的惡劣環(huán)境, 在識別透明及漫反射性差的物體上也更有優(yōu)勢。超聲波測距是一種非接觸式測量, 廣泛應(yīng)用于倒
7、車防撞雷達、機器人接近覺、海洋測量、物體識別等領(lǐng)域。 超聲波測距原理超聲波測距從機理上可以分為共振式和脈沖反射式兩種,該設(shè)計采用后者。工作時由超聲波發(fā)射極發(fā)射超聲波, 同時開始計時, 超聲波在空氣中傳播, 當碰到障礙物時, 由于其良好的反射能力而被反射, 由超聲波接收極接收, 此時計時結(jié)束。記超聲波往返的時間為t, 根據(jù)s= ct / 2 計算超聲波收發(fā)極與障礙物之間的距離, 這就是通常所說的渡越時間法, 也稱時間差測距法。其中c 為超聲波波速, 與環(huán)境溫度有關(guān), 在測量精度要求高的場合要考慮溫度影響, 可由軟件進行調(diào)整補償; 在測量精度要求不是很嚴格的情況下, 可以忽略溫度的影響, 認為c
8、為常數(shù), 設(shè)計中取c= 340 m/ s。根據(jù)對以上三種傳感器性能的比較,雖然能明顯看出來激光傳感器是比較理想的選擇,但是它的價格卻比較高,而且安全度不夠高。而且汽車在行駛的過程中測距傳感器測距時應(yīng)具有較強的抗干擾能力和較短的響應(yīng)時間,因此選用超聲波傳感器作為此設(shè)計方案的傳感器探頭。4 系統(tǒng)硬件設(shè)計此方案選擇51單片機作為控制核心,所測得的距離數(shù)值LCD液晶顯示器顯示,與障礙物之間的距離低于安全距離時利用蜂鳴器報警聲提示,超聲波發(fā)射信號由51單片機的P2.1口送出到超聲波發(fā)射電路,將超聲波發(fā)送出去,超聲波接收電路由CX20106A芯片和超聲波接收探頭組成的電路構(gòu)成,報警系統(tǒng)由蜂鳴器電路構(gòu)成。該
9、超聲波測距系統(tǒng)硬件電路組成比較簡單, 包括單片機、超聲波測距模塊、LCD1602液晶顯示器、按鍵4 部分。總體框圖如圖4-1。 圖4-1 總體框圖4.1控制核心STC12C5A60S2STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產(chǎn)的單時鐘、機器周期(1T)的單片機,是高速、低功耗、超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對實時性要求比較高的系統(tǒng)。完全可以滿足本系統(tǒng)設(shè)計要求。最小系統(tǒng)圖如圖4-2。 圖4-2單片機最小系統(tǒng)4.2超聲波測距模塊根據(jù)經(jīng)濟
10、適用的原則,選擇DYP-ME007超聲波傳感器作為測距模塊,其基本性指標如下:1. 使用電壓:DC5V 2.靜態(tài)電流:小于2mA3.電平輸出:高5V 4.電平輸出:低0V5.感應(yīng)角度:不大于15度 6.探測距離:2cm-750cm 7.高精度:可達3mm接線方式,VCC、trig(控制端)、echo(接收端)、GND地線。本產(chǎn)品使用方法:一個控制口發(fā)一個10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當此口變?yōu)榈碗娖綍r就可以讀定時器的值,此時就為此次測距的時間,方可算出距離.如此不斷的周期測,就可以達到你移動測量的值了。模塊工作原理:(1)采用IO觸發(fā)測距,給至
11、少10us的高電平信號;(2)模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;(3)有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間測試距離=(高電平時間*聲速(340M/S)/2。超聲波傳感器實物圖如圖4-3.圖 4-3超聲波傳感器實物圖4.3數(shù)據(jù)顯示模塊出于人性化設(shè)計考慮,系統(tǒng)設(shè)計采用LCD液晶顯示器實時顯示汽車與障礙物之間的距離,便于駕駛員倒車操作。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行
12、之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。本設(shè)計所選用的LCD1602的規(guī)格及硬件原理如圖4-4、4-5。 圖4-4 LCD1602的規(guī)格示意圖 圖4-5LCD1602的硬件原理圖5系統(tǒng)軟件設(shè)計由超聲波測距模塊的工作原理:采用I/O觸發(fā)測距,給至少10us的高電平信號;模塊
13、自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間測試距離=(高電平時間*聲速(340M/S)/2。系統(tǒng)軟件設(shè)計中包括觸發(fā)程序、時間記錄及距離計算程序、LCD顯示程序、蜂鳴器驅(qū)動發(fā)生程序及各程序塊的連接程序。5.1總體流程首先是單片機給超聲波模塊至少10us的高電平信號,當超聲波模塊接收到回波后超聲波模塊輸出管腳輸出高電平,隨即啟動定時器,直至管腳電平變成低電平,計時結(jié)束,結(jié)合公式即可計算出距離。距離的數(shù)據(jù)經(jīng)轉(zhuǎn)化后用LCD1602直觀顯示出來,與此同時單片的一直對距離數(shù)據(jù)進行判斷,如果距離小于設(shè)定的安全距離時,執(zhí)
14、行蜂鳴器驅(qū)動程序,發(fā)出報警。主程序圖如圖5-1. 圖5-1 主程序圖5.2啟動超聲波模塊程序采用I/O觸發(fā)測距,單片機通過I/O口給超聲波測距模塊至少10us的高電平信號。為保證精確計時同時節(jié)約硬件資源減少冗余代碼,可采用_nop()庫函數(shù)做延時函數(shù)進行觸發(fā)操作。部分代碼如下:void StartModule() TX=1;/啟動模塊,(TX)向超聲波模塊發(fā)出大于10us的觸發(fā)脈沖 _nop_(); _nop_(); /一個_nop_()相當于延時1us,從而啟動超聲波測距模塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop
15、_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0;/脈沖發(fā)射結(jié)束 5.3 LCD1602顯示算法程序工作時由超聲波發(fā)射極發(fā)射超聲波, 同時開始計時, 超聲波在空氣中傳播, 當碰到障礙物時, 由于其良好的反射能力而被反射, 由超聲波接收極接收, 此時計時結(jié)束。記超聲波往返的時間為t, 根據(jù)s= ct / 2 計算超聲波收發(fā)極與障礙物之間的距離。計算出來的距離通過算法處理可用LCD1602液晶顯示器直觀顯示出來。部
16、分算法代碼如下:void Conut(void) time=TH0*256+TL0;/超聲波發(fā)射返回時間用定時器來計時(16位) TH0=0;/重新初始化 TL0=0; S=(time*1.7)/10; /單位為MM ,結(jié)合超聲波340m/s來計算 if(S<=500) /小于安全距離,發(fā)出警報 WriteCommandLCM(0x01,1); /顯示清屏 DisplayListChar(0, 1, table2);/顯示倒車完畢警告! Ring();/驅(qū)動蜂鳴器發(fā)聲 else if(S>=7000)|flag=1) /超出測量范圍,7M為最大范圍 flag=0; DisplayL
17、istChar(0, 1, table1); /顯示相應(yīng)超出范圍的提示 else /正常距離范圍則實時顯示距離 disbuff0=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); Di
18、splayOneChar(12, 1, ASCII10); DisplayOneChar(13, 1, ASCIIdisbuff0); 5.4 蜂鳴器驅(qū)動算法程序在本設(shè)計中,以簡單易行為設(shè)計準則,報警裝置用蜂鳴器充當。單片機的I/O口可以直接驅(qū)動小型蜂鳴器,但是由于電流很小,聲音強度不足,所以可將I/O口輸出的驅(qū)動信號經(jīng)放大電路放大后驅(qū)動蜂鳴器。蜂鳴器驅(qū)動代碼如下:void Ring(void) unsigned int i; for(i=0;i<200;i+) DelayUs2x(200); SPK=!SPK; SPK=0;/防止一直給喇叭通電造成損壞 for(i=0;i<200
19、;i+) DelayMs(1); 6 倒車測距系統(tǒng)實物在設(shè)計完畢后,根據(jù)設(shè)計進行硬件仿真,仿真結(jié)果表明,設(shè)計原理符合客觀實際,很好地實現(xiàn)了設(shè)計要求指標:距離檢測范圍:0.02M7.00M,響應(yīng)速度:小于1s,安全距離:設(shè)定為0.5M。硬件仿真效果如圖6-1,6-2。圖6-1 硬件仿真圖 6-2 硬件仿真7 結(jié)論本文采用超聲波傳感器設(shè)計了一種可視化的倒車測距系統(tǒng),并比較了紅外測距系統(tǒng)及激光測距系統(tǒng)在汽車防撞系統(tǒng)的運用。根據(jù)系統(tǒng)設(shè)計,為使測量的時間差t 準確,采取兩種方法提高精確度:1) 安裝多個超聲波傳感器,避免死角;2) 減小掃描周期,進行N次測量,以N次測量時間的平均值作為有效值。當然,為了
20、使汽車倒車防撞系統(tǒng)實用化還需解決如下幾個問題:1) 怎樣防止倒車時,因道路兩旁物體,臨車道上的車輛產(chǎn)生錯覺問題;2) 增加減震措施,防止系統(tǒng)因震動影響工作可靠性的問題;3) 發(fā)出什么樣的報警信號才能使司機不造成緊張不安的情緒;4) 如何進一步提高單片機計數(shù)工作頻率,減少誤差;5) 動態(tài)探測距離有待進一步提高。這些問題有待進一步研究、探討。相信隨著器件的改進和實驗條件的改善,這些問題會得到圓滿解決??傊?由于本系統(tǒng)成本低、精確度較高、功能多、人性化具有廣闊的市場。8 致謝本文是在導(dǎo)師張艷兵副教授的悉心指導(dǎo)下完成的"感謝他在課題的理論研究和技術(shù)細節(jié)方面給予我的指導(dǎo)和幫助"導(dǎo)師嚴
21、謹?shù)闹螌W(xué)態(tài)度,實事求是的工作作風和勇于開拓進取的精神使我受到深刻的教育,讓我獲益菲淺,為我今后的工作和學(xué)習打下了良好的基礎(chǔ)"在此,謹向?qū)熤乱猿绺叩木匆?感謝我所在學(xué)院的領(lǐng)導(dǎo)和同志們,感謝他們?yōu)槲彝瓿杀菊n題而提供了必要的時間和條件"本論文的順利完成是和他們的熱情支持和幫助分不開的"感謝學(xué)院的各位領(lǐng)導(dǎo)!老師以及班主任加俊老師,正是由于他們的熱情指導(dǎo)和幫助,使得本課題在規(guī)定的時間內(nèi)按要求得以完成"最后,向所有關(guān)心!理解!支持和幫助過我的老師!領(lǐng)導(dǎo)!同志和朋友們致以誠摯的謝意!9 參考文獻1趙廣濤,程蔭杭.基于超聲波傳感器的測距系統(tǒng)設(shè)計J.微計算機信息,200
22、6,01:129-130+149.2孫驍苗,周東輝,栗欣,李立.移動機器人的多傳感器測距系統(tǒng)設(shè)計J.傳感器與微系統(tǒng),2006,02:50-52.3陸曉元,林久令,張海明,王晉疆.一種激光測距系統(tǒng)用納秒脈沖變壓器的設(shè)計J.儀表技術(shù),2008,03:65-66+59.4張瑞玲,劉洪運.單模VCSEL激光自混和測距系統(tǒng)設(shè)計J.西南民族大學(xué)學(xué)報(自然科學(xué)版),2008,04:758-762.5宋永東,周美麗,白宗文.高精度超聲波測距系統(tǒng)設(shè)計J.現(xiàn)代電子技術(shù),2008,15:137-139.6陳安健,鄭煒.脈沖激光測距系統(tǒng)中非球面物鏡的設(shè)計J.激光與紅外,2005,07:524-526.7李田澤,李增祥
23、,孫永偉.激光測距系統(tǒng)的設(shè)計J.計量技術(shù),2003,03:6-8.8戴曰章,吳志勇.基于AT89C51單片機的超聲波測距系統(tǒng)設(shè)計J.計量與測試技術(shù),2005,02:17-19.9賀靜,王樹才,胡煉.基于聲納傳感器和C8051F040的測距系統(tǒng)設(shè)計J.現(xiàn)代電子技術(shù),2009,18:144-146.10李航,王可人.基于STC89C52RC的超聲波測距系統(tǒng)設(shè)計J.電子測試,2010,01:55-58.11趙小強.簡易的超聲波測距系統(tǒng)J.天津理工大學(xué)學(xué)報,2010,01:49-52.12蔣曉玲,孟志強,陳燕東,許亮,羅廷芳,常金武.汽車追尾防撞紅外測距系統(tǒng)J.光電子技術(shù),2011,01:67-72.
24、13楊旭,劉小方,張澤奇,溫婷.基于單片機的超聲波測距系統(tǒng)設(shè)計J.機床與液壓,2011,08:106-108+124.14張邦成,張玉玲,王昕,韓躍營,姜艷青.超聲紅外復(fù)合測距系統(tǒng)設(shè)計J.制造業(yè)自動化,2011,14:122-124.15顧國榮,鮑駿成,李海樂.基于單片機的超聲波測距系統(tǒng)設(shè)計J.沿海企業(yè)與科技,2012,02:42-45.16楊光照,許春暉,張德浩,鄭莎,譚明香.基于單片機的激光測距系統(tǒng)設(shè)計J.中國新技術(shù)新產(chǎn)品,2012,10:36-37.17岳文豹,楊錄,張艷花.FMCW雷達近程測距系統(tǒng)設(shè)計J.電子技術(shù)應(yīng)用,2012,04:73-75+79.18王小華,周松青,殷嚴剛.基于溫
25、度補償?shù)某暡y距系統(tǒng)設(shè)計J.廣西物理,2012,02:10-14.19.中小學(xué)嘗試教育骨干教師研修班及校長論壇11月中旬在上海舉行J.人民教育,2012,19:58.20陳安健,路曉東.一種新型軍用激光測距系統(tǒng)的設(shè)計與研究J.激光與紅外,2001,02:90-92.21蘭羽.基于40kHz超聲波測距系統(tǒng)的設(shè)計J.機械與電子,2013,08:66-69.22呂濤,劉志剛,鄧忠文,陶龍,龔海.一種光纖組量程擴增的激光頻率掃描干涉絕對測距系統(tǒng)J.西安交通大學(xué)學(xué)報,2013,0923 趙負圖. 傳感器集成電路手冊M . 北京: 化學(xué)工業(yè)出版社, 2002. 424 孫寶元等. 傳
26、感器及應(yīng)用手冊M . 北京: 機械工業(yè)出版社, 2004. 125 鄭國欽等. 集成傳感器應(yīng)用入門M . 浙江: 浙江科學(xué)技術(shù)出版社, 2003. 226 何希才. 傳感器及其應(yīng)用立例M . 北京: 機械工業(yè)出版社, 2004. 127 沙占友. 集成化智能傳感器原理與應(yīng)用M . 北京: 電子工業(yè)出版社, 2004. 627畢滿清模擬電子技術(shù)基礎(chǔ)M電子工業(yè)出版社.北京.2008,0628王劃一,楊西俠. 自動控制原理M. 國防工業(yè)出版社.北京.2010,08. 29趙山林. C程序設(shè)計M. 高等教育出版社.北京.2010,08.10
27、程序清單10.1 主要代碼/*-超聲波倒車雷達(用LCD1602顯示)-*/*-修改日期:2013年10月21日-*/*-修改人: -*/*-超聲波模塊芯片DYP-ME007-*/DYP-ME007共5個引腳,tri(控制端TX)單片機對其輸入大于10us的觸發(fā)脈沖/Echo:(接收端RX),接收超聲波反射回來的信號,輸出高電平/out:為空引腳,一般不接#include <reg52.h>#include <intrins.h>#include"lcd1602.h"#include"ring.h"#include"ri
28、ng.h"sbit RX=P20;/超聲波模塊接收發(fā)射信號trigsbit TX=P21;/單片機相超聲波模塊發(fā)出激發(fā)脈沖Echosbit START=P22;/啟動sbit STOP=P23;/停止unsigned char flagkey;/* 距離計算函數(shù)*/ void Conut(void) time=TH0*256+TL0; /計算時間,超聲波發(fā)射返回時間用定時器來計時(16位計時器) TH0=0; TL0=0; S=(time*1.7)/10; /算出來是MM ,結(jié)合超聲波340m/s來計算 if(S<=500) WriteCommandLCM(0x01,1); /
29、顯示清屏 DisplayListChar(0, 1, table2); /顯示倒車完畢警告! Ring(); else if(S>=7000)|flag=1) /超出測量范圍 flag=0; DisplayListChar(0, 1, table1); /顯示相應(yīng)超出范圍的提示 else disbuff0=S%10; disbuff1=S/10%10; disbuff2=S/100%10; disbuff3=S/1000; DisplayListChar(0, 0, Range); DisplayListChar(0, 1, table); DisplayOneChar(9, 1, AS
30、CIIdisbuff3); DisplayOneChar(10, 1, ASCIIdisbuff2); DisplayOneChar(11, 1, ASCIIdisbuff1); DisplayOneChar(12, 1, ASCII10); DisplayOneChar(13, 1, ASCIIdisbuff0); /* 定時器0中斷函數(shù)功能:T0中斷用來紀錄回波時間間隔,計數(shù)器溢出,超過測距范圍*/void inter_T0() interrupt 1 flag=1; /中斷溢出標志RX=0; /* 啟動超聲波模塊函數(shù)*/void StartModule() TX=1; /啟動一次模塊,(
31、TX)向超聲波模塊發(fā)出大于10us的觸發(fā)脈沖 _nop_(); _nop_(); /一個-nop-()相當于延時1us,從而啟動超聲波測距模塊 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();/脈沖發(fā)射結(jié)束 TX=0; /* 計算超聲波發(fā)射接收時間的函數(shù)原理:信號返回,超聲波模塊輸出高電平,持續(xù)時間即為從發(fā)
32、射到返回的時間 */void Timer_Count(void) TR0=1; /開啟計數(shù) while(RX);/ TR0=0;/關(guān)閉計數(shù) Conut();/計算距離/* 主函數(shù)*/void main(void) unsigned int valA;Delay400Ms(); /啟動等待,等LCM講入工作狀態(tài)LCMInit(); /LCM初始化Delay5Ms(); /延時片刻DisplayListChar(0, 0, Range);DisplayListChar(0, 1, table);/初始狀態(tài)LCD顯示 TMOD=0x01;/定時器0工作在模式1,16位定時器; EA=1; /開總中斷
33、 TH0=0; /計時器賦初值, TL0=0; ET0=1; /允許T0中斷 while(1) if(STOP=0) flagkey=1; WriteCommandLCM(0x01,1); /顯示清屏 DisplayListChar(0, 1, table3); /顯示倒車完畢警告! else if(START=0) flagkey=0; if(flagkey=0) RX=1; /接收引腳初始化 StartModule(); /啟動超聲波模塊 for(valA=7500;valA>0;valA-) /掃描周期 if(RX=1) /表示超聲波模塊信號已經(jīng)返回,開始計時; Timer_Cou
34、nt();/計算顯示距離 10.2 LCD1602 .H代碼#ifndef _LCD1602_H_#define _LCD1602_H_#include<reg52.h>sbit LCM_RW=P25; /定義LCD1602的引腳sbit LCM_RS=P24;sbit LCM_E=P26;sbit waring=P32;#define LCM_Data P0#define Busy 0x80 /用于檢測LCM狀態(tài)字中的Busy標識void LCMInit(void);/LCD初始化函數(shù)void DisplayOneChar(unsigned char X, unsigned ch
35、ar Y, unsigned char DData);/LCD顯示一個字符函數(shù)void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);/LCD顯示一個字符串函數(shù)void Delay5Ms(void);/延時5毫秒函數(shù)void Delay400Ms(void);/延時400毫秒函數(shù)void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);/LCD1602寫數(shù)據(jù)函數(shù)void WriteCommandL
36、CM(unsigned char WCLCM,BuysC);/LCD寫命令函數(shù)unsigned char ReadStatusLCM(void);unsigned char code Range ="=DistanceFinder="/LCD1602顯示格式unsigned char code ASCII13 = "0123456789.-M"unsigned char code table="Distance:000.0cm"unsigned char code table1="! Out of range"un
37、signed char code table2="! Denger"unsigned char code table3="STOP" unsigned int time=0;/超聲波發(fā)射返回時間unsigned long S=0; /距離bit flag =0; / 測量超出量程的標志,主要以定時器的溢出來判定unsigned char disbuff4= 0,0,0,0,; /寫數(shù)據(jù)void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); /檢測忙LCM_Data = WDLCM;LCM_RS =
38、1;LCM_RW = 0;LCM_E = 0; /若晶振速度太高可以在這后加小的延時LCM_E = 0; /延時LCM_E = 1;/寫指令void WriteCommandLCM(unsigned char WCLCM,BuysC) /BuysC為0時忽略忙檢測if (BuysC) ReadStatusLCM(); /根據(jù)需要檢測忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;/讀數(shù)據(jù)unsigned char ReadDataLCM(void)LCM_RS = 1; LCM_RW = 1;LCM_E
39、 = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);/讀狀態(tài)unsigned char ReadStatusLCM(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);void LCMInit(void) /LCM初始化LCM_Data = 0;WriteCommandLCM(0x38,0); /三次顯示模式設(shè)置,不檢測忙信號Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,0);Delay5Ms(); WriteCommandLCM(0x38,1); /顯示模式設(shè)置,開始要求每次檢測忙信號WriteCommandLCM(0x08,1); /關(guān)閉顯示W(wǎng)riteCommandLCM(0x01,1); /顯示清屏WriteCommandLCM(0x06,1); / 顯示光標移動設(shè)置WriteCommandLCM(0x0c,1); / 顯示開及光標設(shè)置/按
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國冰棗烏龍茶數(shù)據(jù)監(jiān)測研究報告
- 統(tǒng)編版二年級語文下冊期末達標測試卷(全真練習二)(含答案)
- 北京市昌平區(qū)2024-2025學(xué)年高一上學(xué)期期末質(zhì)量抽測物理試卷(含答案)
- 規(guī)劃快題測試題及答案
- 高一英語衡水試題及答案
- 2022-2023學(xué)年廣東省廣州七中七年級(下)期中數(shù)學(xué)試卷(含答案)
- 2024甘肅省蘭州市中考英語真題【原卷版】
- 遺產(chǎn)繼承遺產(chǎn)轉(zhuǎn)讓合同(2篇)
- 采購與分包責任清單合同(2篇)
- 2025年法律知識競賽試題及答案
- 中國常見食物營養(yǎng)成分表
- 光伏車棚方案
- 基于語文核心素養(yǎng)的初中語文綜合性學(xué)習教學(xué)策略研究
- 工藝部述職報告
- 廣東中考美術(shù)知識點
- 臨床科室科研用藥管理制度
- 多層光柵結(jié)構(gòu)的防偽技術(shù)研究
- 《國有企業(yè)采購操作規(guī)范》【2023修訂版】
- 五年級語文下冊第五單元【教材解讀】-【單元先導(dǎo)課】
- DQ-廠房設(shè)施設(shè)計確認方案
- 常用中藥飲片介紹PPT幻燈片
評論
0/150
提交評論