




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、保密類別 編號 20100802041 武漢大學珞珈學院畢 業(yè) 論 文基于單片機的紅外測距系統(tǒng)設計系 別 電子信息科學系 專 業(yè) 通信工程 年 級 10級02班 學 號 20100802041姓 名 錢源 指導教師 崔黎 武漢大學珞珈學院2014 年5 月22 日摘要現(xiàn)代科學技術的發(fā)展,進入了很多新領域,而在測距方面先后出現(xiàn)了激光測距、微波雷達測距、超聲波測距及紅外光測距。為了實現(xiàn)物體近距離、高精度的無線測量而采用了紅外發(fā)射接收模塊作為距離傳感器,單片機作為處理器,編寫a/d轉換和顯示程序,完成了一套便推式的紅外距離測量系統(tǒng),系統(tǒng)可以
2、高精度的實時顯示所測的距離,本系統(tǒng)結構簡單可靠、體積小、測量精度高、方便使用。紅外測距的探測距離較短,一般在幾十厘米之內(nèi),本文介紹的一種基于at89c52單片機設計的紅外測距儀,可以測量距離。首先,在緒論中,介紹了紅外線及紅外傳感器的分類和應用、at89c52單片機的應用與說明以及mcp3001芯片的簡介。其次,闡述了與紅外測距的工作原理基本結構,對紅外測距傳感器也做了詳細說明。再次,介紹了紅外測距的硬件設計和軟件設計。 在硬件設計中,介紹了紅外測距實現(xiàn)的構想,給出紅外測距硬件電路原理圖,并說明了紅外測距傳感器、鍵盤、a/d轉換電路、lcd顯示電路工作原理及at89c52單片機的管腳分配。在軟
3、件設計中,說明了整個程序流程及各程序設計的函數(shù)。最后,是對整個設計的結論,說明了紅外測距實現(xiàn)的可行性。關鍵詞: 紅外測距 a/d轉換 實時顯示 紅外線 單片機 武漢大學珞珈學院本科畢業(yè)論文目 錄第1章 緒論11.1 課題研究的背景和意義11.2 本課題研究的熱點及發(fā)展現(xiàn)狀21.3 本課題研究的目的21.4 本課題研究的內(nèi)容3第2章 紅外測距的工作原理與基本結構42.1.方案及設計思想:42.2 紅外測距系統(tǒng)的基本結構5第3章 紅外測距的硬件設計63.1紅外收發(fā)模塊63.2 a/d轉換模塊73.3 lcd顯示模塊113.4 at89c52單片機概述123.5整個紅外測距系統(tǒng)顯示16第4章 紅外測
4、距的軟件設計184.1 程序流程圖18第5章 系統(tǒng)軟硬件調(diào)試205.1 硬件調(diào)試205.2 軟件調(diào)試205.3測試結果繪圖205.4 調(diào)試中遇到的問題22結 論23參考文獻24附錄25后 記32武漢大學珞珈學院本科畢業(yè)論文第1章 緒論紅外線(infrared)是波長介乎微波與可見光之間的電磁波,其波長在760納米(nm)至1毫米(mm)之間,是波長比紅光長的非可見光。所有高于絕對零度(-273.15)的物質都可以產(chǎn)生紅外線。現(xiàn)代物理學稱之為熱射線。醫(yī)用紅外線可分為兩類:近紅外線與遠紅外線。含熱能,太陽的熱量主要通過紅外線傳到地球。它的波長介于可見光和微波之間,范圍大致在0.75m1000m的頻
5、譜范圍之內(nèi)。相對應的頻率在43hz之間,紅外線可分為三部分,即近紅外線,近紅外線波長范圍為0.77m3m,中紅外線波長范圍為3m30m,遠紅外線波長范圍為30m1000m。紅外光具有反射、折射、散射、干涉、吸收等特性。它能全部吸收投射到它表面的紅外輻射的物體稱為黑體;能全部反射的物體稱為鏡體;能部分反射、部分吸收的物體稱為灰體。嚴格地來講,在自然界中,不存在黑體鏡體和透明體。1.1 課題研究的背景和意義紅外線是不可見的光,是電磁波的一種形式,可以用來進行距離的測量,其應用歷史可以追溯到上世紀60年代?,F(xiàn)代科學技術的發(fā)展進入了許多新領域,而在測距方面先后出現(xiàn)了激光測距、微波雷達測距、超聲波測距及
6、紅外線測距。其中激光測距是靠激光束照射在物體上反射回來的激光束探測物體的距離。由于受惡劣的天氣、污染等因素影響,使反射的激光束在一定功率上探測距離比可能探測的最大距離減少一半左右,損失很大,影響探測的精確度;微波雷達測距技術為軍事和某些工業(yè)開發(fā)采用的裝備和振蕩器等電路部分價格昂貴,現(xiàn)在還沒有開拓民用市場;超聲波測距在國內(nèi)外已有很多人做過研究,由于采用特殊專用組件使其價格高,難以推廣;紅外線作為一種特殊光波,具有光波的基本物理傳輸特性反射、折射、散射等,且由于其技術難度相對不太大,構成的測距系統(tǒng)的成本低廉,性能優(yōu)良,便于民用推廣。另外紅外測距的應用越來越普遍。在很多領域都可以用到紅外測距儀。紅外
7、測距一般具有精確度和分辨率高、抗干擾能力強、體積小、重量輕等優(yōu)點,因而應用領域廣、行業(yè)需求眾多,市場需求空間大。紅外測距的研究就非常有意義。紅外線測距儀指的就是激光紅外線測距儀,紅外測距儀-用調(diào)制的紅外光進行精密測距的儀器,測程一般為1-5公里。在100米以內(nèi)則超聲波測距更有優(yōu)勢,但是超聲波測距的距離一般無法測量1米以內(nèi),而紅外測距則可以測出這一段距離,而且有著不錯的精度,在本課題中研究的就是這一類情況的紅外線測距。1.2 本課題研究的熱點及發(fā)展現(xiàn)狀常見的紅外傳感器可分為熱傳感器和光子傳感器。根據(jù)國內(nèi)近年來紅外光電測距儀的發(fā)展情況,由于國家對外開放政策的實施和測量工作的需要,近年來國內(nèi)一些光學
8、儀器廠和電子儀器廠分別從瑞典、瑞士和日本等國引進幾種紅外測距儀組裝線,組裝測距儀,我國有關工廠和院校近年來也研制出一些產(chǎn)品。由于微處理機在國產(chǎn)測距儀上的應用,大大縮小儀器的體積,同時也減少出故障的幾率,使得國產(chǎn)測距儀的性能和質量都較過去有很大的提高。在國家“六·五”計劃攻關中,常州第二電子儀器廠研制的dchz型多功能紅外測距儀就是一個很好的例證。該產(chǎn)品經(jīng)國家測繪局測繪科學研究所光電測距儀檢測巾心進行全面質量鑒定后認為:該儀器的外型美觀、體積小、重量輕、操作方便、精度高和性能穩(wěn)定,并通過國家有關部門組織的鑒定。目前已經(jīng)開始小批量試生產(chǎn)。 在進行側距儀研制同時,國家有關部門也組織大量力量
9、對紅外光電測距儀的檢測方法進行研究。一、熱傳感器熱傳感器是利用入射紅外輻射引起的傳感器的溫度變化,進而使有關物理參數(shù)發(fā)生相應的變化,通過測量有關物理參數(shù)的變化來確定紅外傳感器所吸收的紅外輻射。熱探測器的主要優(yōu)點是相應波段寬,可以在室溫條件下工作,使用簡單。但是,熱傳感器相應時間較長,靈敏度較低,一般用于低頻調(diào)制的場合。熱傳感器主要類型有:熱敏傳感器型,熱電偶型,高萊氣動型和熱釋放電型四種類型。二、光子傳感器光子傳感器是利用某些半導體材料在入射光照射下,產(chǎn)生光子效應,使材料電學性質發(fā)生變化。通過測量電學性質的變化,可以知道紅外輻射的強弱。利用光子效應所制成的紅外傳感器,統(tǒng)稱光子傳感器。光子傳感器
10、的主要特點是靈敏度高,響應速度快,具有較高的響應頻率。但由于其一般要在低溫下工作,導致探測波段較窄。按照光子傳感器的工作原理,一般分為內(nèi)光電和外光電傳感器兩種,后者又可分為光電導傳感器、光生伏特傳感器和光磁電傳感器等三種。1.3 本課題研究的目的我們所進行的課題便是做一個簡易的,精確的,近距離的距離檢測儀,這也是對我們所學知識的一種考驗方法,從中我們可以更系統(tǒng)的認識單片機,了解ad轉換和紅外收發(fā)模塊。1.4 本課題研究的內(nèi)容紅外傳感器的測距基本原理為:紅外發(fā)射電路的紅外發(fā)光管發(fā)出紅外光,紅外接收電路的光敏接收管接收發(fā)射光,根據(jù)發(fā)射光的強弱判斷出所測的距離。由于接收管接收的光強度是隨著發(fā)光管與測
11、量物的距離變化而變化的,因而,與測量物的距離近則接收光強,距離遠則接收光弱。具體方法如圖1所示,紅外模塊發(fā)出并接收到紅外線信號;ad轉換模塊將接收到的模擬信號轉換成數(shù)字信號再交給單片機, 啟動單片機中斷程序,此時單片機得到數(shù)字信號也就是電壓值,再由軟件進行判別、計算,得出距離數(shù)并送給led/lcd顯示。 單片機紅外模塊ad模塊電壓距離公式 顯示模塊圖1.1 反射能量法原理第2章 紅外測距的工作原理與基本結構2.1.方案及設計思想:方案一、時間差測距法:此方案是將紅外發(fā)射管發(fā)送信號與接收管接收信號時間差寫入單片機中,在單片機中用光傳播距離公式算法將距離計算出來。原理圖如圖2.1所示。 at89s
12、52紅外模塊時間差距離s=c*t顯示距離 圖2.1 時間差測距法原理方案二、反射能量法:此方案是用紅外發(fā)射管發(fā)射信號,然后用紅外接收管接收信號,將接收的信號強度經(jīng)過ad轉換,錄入單片機中顯示出來,并將對應的距離記錄下來。完成一段范圍內(nèi)的測量,將所記錄下的數(shù)據(jù)寫入單片機中,然后便可進行測量距離了。原理圖如圖2.2所示。 顯示距離at89s52 紅外模塊 實驗資料 圖2.2 反射能量法原理光的衰減是呈線性關系的,公式是i=ie(-d),其中i是光強度,是光在介質中線性衰減系數(shù),d是光走過的路程,e是自然對數(shù)底數(shù)。是光子能量,i就是光束的能量。要求得耗損的能量e,則可通過計算:e=i=(i-i)=i
13、1-e(-d)=e1-e(-d)其中e是激光能量。不過,10cm的衰減是很弱的,可以忽略。方案比較:通過以上兩種方案分析,我們可以看到方案一的誤差很大,由于紅外裝置測的距離比較近,而光速很快,因此回饋到單片機中的時間很短,單片機很難測出準確的時間并準確處理,而在一般情況下的光速不太準確,因此誤差較大,而且根據(jù)距離=光速*時間,要想測10米時間至少要精確到0.0000001s,顯然用單片機是很難做到的。方案二是先將實驗數(shù)據(jù)錄入單片機中,因此在測量時存在的誤差就會相對較小,綜合考慮,選擇方案二可行。2.2 紅外測距系統(tǒng)的基本結構該系統(tǒng)主要由紅外測距傳感器、a/d轉換電路,at89c52芯片、鍵盤接
14、口電路及l(fā)cd顯示電路等組成。其組成框圖如圖2.3所示:圖2.3 紅外測距系統(tǒng)的基本結構第3章 紅外測距的硬件設計3.1紅外收發(fā)模塊紅外發(fā)送管是用于發(fā)送信號,經(jīng)過障礙物將信號反射,紅外接收管接收到反射回來的信號,然后根據(jù)信號強弱將對應的電壓值顯示在顯示模塊上,并將此時的距離記錄下來。然后整改程序,用紅外收發(fā)模塊進行測距,就可在顯示模塊上顯示出紅外接收管接收的信號強度對應的距離值。gp2y0a02yk0f 紅外測距傳感器 20-150cm 圖3.1 紅外傳感器結構圖 圖3.2 protues中紅外傳感器如圖3.2所示gp2y0a02yk0f有3個端口,其中vcc接信號輸入,vo接mcp3001的
15、in+,gnd接地線。gp2y0a02yk0f測量范圍在20cm-150cm之間,測量誤差小于0.5cm。是一個距離測量傳感器單元,psd的集成組合構成 (位置敏感探測器),ired(紅外發(fā)光二極管)和信號原理電路。由于采用三角測量方法,各種物體的反射率,對環(huán)境溫度和工作時間距離檢測不容易產(chǎn)生影響。推薦工作條件:參數(shù)符號條件等級單位電源電壓vcc4.5-5.5v表3.1 紅外傳感器參數(shù)絕對最大額定值:表3.2 紅外傳感器參數(shù)參數(shù)符號等級單位電源電壓vcc-0.3+7v輸出端電壓vo-0.3+0.3v工作溫度opr-10到+60儲存溫度stg-40到+70 3.2 a/d轉換模塊a/d 轉換器按
16、照轉換的原理可分為直接a/d 轉換器和間接a/d 轉換器兩種類型。直接a/d 轉換器,就是把模擬信號直接轉換成數(shù)字信號,比如逐次逼近型。間接a/d 轉換器是先把模擬量轉換成中間量,然后再轉換成數(shù)字量,如電壓/時間轉換型,電壓/頻率轉換型,電壓/脈寬轉換型等。 其中積分型a/d 轉換器的電路簡單,抗干擾的能力強,而且能做到高分辨率,但是轉換速度較慢。 有些轉換器還將多路開關、基準電壓源、時鐘電路、譯碼器和轉換電路集成在一個芯片內(nèi),已經(jīng)遠超出了單純a/d 轉換功能,使用十分方便。a/d 轉換器轉換原理: 一個完整的a/d轉換過程中,必須包括取樣、保持、量化與編碼等路。 取樣與保持由于取樣的時間極短
17、,取樣輸出為一串斷斷續(xù)續(xù)的窄脈沖。要把每個取樣的窄脈沖信號數(shù)字化,需要一定的時間。因此在兩次取樣之間,應將取樣的模擬信號暫時儲存直到下個取樣脈沖到來,我們把這個動作稱之為保持。在模擬電路設計中,需要增加一個取樣-保持電路。為了保證正確轉換,模擬電路要保留著還未轉換的數(shù)據(jù)。量化與編碼量化與編碼電路是a/d轉換器的核心組成部分,量化方法:先取最小量化單位=u/2n,當輸入模擬電壓u在0之間時,則歸入0,當u在2之間時,則歸入1。如果量化單位=2u/(2 n+11),當輸入電壓u在0/2之間時,歸入0,當u在/23/2之間時,就要歸入1。分辨率分辨率(resolution) 指數(shù)字量變化一個最小量時
18、模擬信號的變化量,定義為滿刻度與2n的比值。分辨率又稱精度,通常以數(shù)字信號的位數(shù)來表示。位數(shù)越高,分辨率就越高。若小于最小變化量的輸入模擬電壓的任何變化,將不會引起輸出數(shù)字值的變化。不需要分辨率高的場合,所得到到的就大多是噪聲。分辨率太低,就會有無法取樣到所需的信號。 轉換速率 轉換速率(conversion rate)是指完成一次從模擬轉換到數(shù)字的ad轉換所需的時間的倒數(shù)。為了保證轉換的正確完成,采樣速率(sample rate)必須小于或等于轉換速率。轉換時間轉換時間是指a/d轉換器完成一次a/d轉換所需的時間。從啟動信號開始到轉換結束并得到穩(wěn)定的數(shù)字輸出值為止的時間間隔。轉換時間越短,轉
19、換速度就越快。精準度對于a/d轉換器來說,精準度指的是在輸出端產(chǎn)生所設定的數(shù)字數(shù)值,相對精準度指的是滿刻度值校準以后,任意數(shù)字輸出所對應的實際模擬輸入值與理論值之差。對于線性a/d轉換器,其相對精準度就是它的線性程度。由于電路制作上的影響,會產(chǎn)生像是非線性誤差,或是量化誤差等減低相對精準度的因素。mcp3001特性:10位分辨率1 lsb dnl(最大值)1 lsb inl(最大值)片上采樣和保持電路spi 串行接口單電源供電的電壓范圍:2.7v至5.5v5v時的采樣速率為200 ksps2.7v時的采樣速率為75 ksps低功耗cmos技術一5 na典型待機電流,2 a(最大值)一5v時,工
20、作電流的最大值為500 a8引腳pdip, soil, msop和tssop封裝說明:microchip的mcp3001,是一款具有片上采樣和保持電路的10位逐次逼近型a/d轉換器(adc)。該器件提供一個偽差分輸入通道:指定差分非線性( dnl) 和積分非線性(inl)的最大值為1 lsb。它使用符合spi協(xié)議的簡單串行接口與器件通信。當時鐘速率為2.8 mhz時,該器件的采樣速率最大數(shù)值可為200 ksps。mcp3001器件的工作電壓范圍很寬,為2.7v一5.5v 。低電流設計允許器件在典型待機電流為5 na和典型工作電流為400a條件下工作。該器件以8引腳pdip, msop, tss
21、op和150 mil soil封裝形式提供。圖3.3 mcp3001引腳圖 圖3.4 protues中mcp3001接線圖表3.3 mcp3001引腳 名稱功能2.7至5.5v電源地線in+正模擬輸入in-負模擬輸入clk串行時鐘串行數(shù)據(jù)輸入cs/shdn片選輸入/關閉基準電壓輸入如圖3.4所示,mcp3001的vref接vcc,in+接gp2y0a02yk0f紅外測距傳感器的vo,clk接單片機上的p2.2,do接單片機上的p2.1,cs接單片機上的p2.0。mcp3001具有片上采樣和保持電路的10位逐次逼近型a/d轉換器(adc),逐次逼近型a/d轉換器的工作原理是將待換的模擬輸入信號與
22、一個推測信號進行比較,根據(jù)二者大小決定增大還是減小輸入信號,以便向模擬輸入信號逼近。推測信號由d/a轉換器輸入的數(shù)字信號就對應的時模擬輸入量的數(shù)字量。這種a/d轉換器一般速度很快,但精度不高。a/d轉換器的主要性能指標中以分辨率和轉換速率最為重要,分辨率越高,就能把滿量程里的電平分出更多份數(shù),得到的轉換結果就越精確,得到的數(shù)字信號再用dac轉換回去就越接近原輸入的模擬值(10位adc能分辨2的10次方)。mcp3001分辨率:10位adc能分辨出滿刻度的1/1024.mcp3001轉換速率:速度很快。由上可知,mcp3001的性能相比其他adc要好很多。3.3 lcd顯示模塊 圖3.5 pro
23、tues中l(wèi)cd顯示模塊lcd與單片機的接口電路如圖3.5所示,單片機p0分別接d1-d7,同時接上排阻,而在排阻另一端接上vcc。單片機上的p2.5接e,p2.6接rw,p2.7接rs,單片機通過p0口向lcd輸送數(shù)據(jù),顯示測得的距離。值得注意的是,p0口要接上拉電阻來保證對lcd的成功驅動。lcd1602已很普遍了,可以很方便地應用于市面上大部分的字符型液晶。字符型lcd通常有14條引腳線或l6條引腳線的lcd,多出來的2條線是背光電源線vcc((15腳)和地線gnd(16腳 ),其控制原理與14腳的lcd完全一樣,定義如下表所示:表3.4 led引腳功能引腳號引腳名電平輸入/輸出作用1v
24、ss電源地2vcc電源(+5v)3vee對比電壓調(diào)整4rs0/1輸入0=輸入指令1=輸入指令5r/w0/1輸入0=向led寫入指令或數(shù)據(jù)1=從led讀取信息6e1, 10輸入使能信號,1時讀取信息,10(下降沿)執(zhí)行指令3.4 at89c52單片機概述單片機是在集成電路芯片上集成各種組件的微型計算機,這些組件包括中央處理器cpu、數(shù)據(jù)存儲器ram、程序內(nèi)存rom、定時/計數(shù)器、中斷系統(tǒng)、時鐘部件的集成和i/o接口等電路。由于單片機具有體積小、價格低、可靠性高、開發(fā)應用方便等特點,因此在現(xiàn)代電子技術和工業(yè)領域中應用較為廣泛,在智能儀表中單片機是應用最多、最活躍的領域之一。在控制領域中,現(xiàn)如今人們
25、更注意計算機的底成本、小體積、運行的可靠性和控制的靈活性。在各類儀器、儀表中引入單片機,使儀器儀表智能化,提高測試的自動化程度和精度,提高計算機的運算速度,簡化儀器儀表的硬件結構,提高其性能價格比。at89c52單片機的時鐘信號通常是由兩種方式產(chǎn)生:一是內(nèi)部時鐘方式,二是外部時鐘方式。在at89c52單片機內(nèi)部有一振蕩電路,只要在單片機的xtal1和xtal2引腳外接晶振,就構成了自激振蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。電容的作用是穩(wěn)定頻率和快速起振,電容值在5-30pf之間,典型值為30pf。晶振cys的振蕩頻率范圍在1.2-12mhz間選擇,典型值為12mhz和11.0592mhz。當在
26、at89c21單片機的rst引腳引入高電平并保持2個機器周期的時候,單片機內(nèi)部就執(zhí)行復位操作(若該引腳持續(xù)保持高電平,單片機就會處于循環(huán)復位狀態(tài))。復位電路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路中的上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要vcc的上升時間不超過1ms,就可實現(xiàn)自動上電復位。時鐘頻率用6mhz時c取22uf,r取1k。除了上電復位外,有時候還需要按鍵手動復位,本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過rst端經(jīng)過電阻與電源vcc接通來實現(xiàn)的。最小系統(tǒng)如圖3.6所示。圖3.6 at89c52單片機最小
27、系統(tǒng)at89c52單片機的標準功能at89c52是美國atmel公司生產(chǎn)的低電壓、高性能cmos的 8位單片機,片內(nèi)含8kb的可反復擦寫的程序內(nèi)存和12b的隨機存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性的存儲技術生產(chǎn),兼容標準mcs-51指令系統(tǒng),片內(nèi)配置通用8位元中央處理器(cpu)和flash存儲單元,功能強大的at89c52單片機可靈活應用于各種控制領域中。at89c52的各引腳功能:(1) vcc:電源 (2) gnd:地 (3) p0口:p0口是一個8位漏極開路的雙向i/o口。作為輸出口,每位能驅動8個ttl邏輯電平。對p0端口寫“1”時,引腳用作高阻抗輸入。
28、 (4) p1口:p1 口是一個具有內(nèi)部上拉電阻的8位雙向i/o口,p1輸出緩沖器能驅動4個ttl 邏輯電平。表4-1 p1口第二功能引腳號第二功能p1.0t2(定時器/計數(shù)器t2的外部計數(shù)輸入) ,時鐘輸出p1.1t2ex(定時器/計數(shù)器t2的捕捉/重載觸發(fā)信號和方向控制)p1.5mosi(在系統(tǒng)編程用)p1.6miso(在系統(tǒng)編程用)p1.7sck(在系統(tǒng)編程用) (5) p2 口:p2 口是一個具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖器能驅動 4個ttl 邏輯電平。 (6) p3 口:p3 口是一個具有內(nèi)部上拉電阻8位雙向 i/o口,對 p3 端口寫“1”時,可以作為輸
29、入口使用。p3口可作為at89c51第二功能使用,如表3.5所示。 表3.5 p3口第二功能引腳號第二功能p3.0rxd(串行輸入)p3.1txd(串行輸出)p3.2int0(外部中斷 0)p3.3int0(外部中斷 0)p3.4t0(定時器0外部輸入)p3.5t1(定時器1外部輸入)p3.6wr(外部數(shù)據(jù)存儲器寫選通) p3.7rd(外部數(shù)據(jù)存儲器寫選通)(7) rst: 復位輸入。當輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機單片機的復位初始化操作。(8) ale/prog:地址鎖存控制信號(ale)是訪問外部程序存儲器時,鎖存低 8 位地址的輸出脈沖。在flash編程時,此引腳
30、(prog)也用作編程輸入脈沖。 (9) psen:外部程序存儲器選通信號(psen)是外部程序存儲器選通信號。 (10) ea/vpp:訪問外部程序存儲器控制信號(11) xtal1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路輸入端。 (12) xtal2:振蕩器反相放大器輸出端。3.5整個紅外測距系統(tǒng)顯示整個紅外測距系統(tǒng)由at89c52芯片、紅外距離傳感器、復位電路、時鐘電路、a/d轉換電路與lcd顯示器構成。硬件結構電路圖如圖3.7所示:圖3.7 protues中整體系統(tǒng)單片機at89c52左端分別接了時鐘電路和復位電路,這是單片機最小的系統(tǒng)。xtal1和xtal2串連一個晶振,并且分別接上一個
31、20p的電容,兩個電容另一端都接地,構成時鐘電路。rst同時接上100p電容,4腳按鍵,1k電阻,4腳按鍵另一端接上一個1k電阻再與100p電容并聯(lián)接vcc,1k電阻另一端則接地,構成復位電路。單片機at89c52右端p0端同時接led的d1-d7端口和排阻,p2.0接clk,p2.1接do,p2.2接cs,p2.5接e,p2.6接rw,p2.7接rs。mcp3001的vref接vcc,in+接紅外距離傳感器的vo。第4章 紅外測距的軟件設計4.1 程序流程圖在整個系統(tǒng)運行過程中。當紅外系統(tǒng)被啟動后,首先,對at89c52單片機進行初始化。然后,當at89c52單片機接收到紅外接收電路傳輸?shù)碾?/p>
32、壓信號后,經(jīng)a/d轉換程序,將片外的模擬信號轉換為單片機可識別的數(shù)字信號,并經(jīng)電壓距離轉換子程序,將變化的電壓轉換為距離。最后,在動態(tài)掃描lcd顯示器上顯示出來。主程序流程圖如圖4.1所示。 圖4.1 程序流程圖紅外測距系統(tǒng)軟件設計主要由主程序,延時函數(shù),顯示程序函數(shù)組成。程序開始, 紅外測距主程序第一步將顯示屏1602初始化,并顯示測量開始,第二步導入延時程序,并顯示程序,顯示電壓和距離。其次子函數(shù)調(diào)用, 讀mcp3001函數(shù)并轉換函數(shù)得出電壓值,再調(diào)用距離計算函數(shù),得出距離值。此時主函數(shù)中顯示函數(shù)會將電壓和距離顯示出來,程序就此結束。此程序中多次使用調(diào)用子函數(shù),讀mcp3001函數(shù),距離計
33、算函數(shù),算術平均濾波程序構成ad值的采集和計算;lcd忙標志判斷函數(shù),寫數(shù)據(jù)子函數(shù),寫命令子函數(shù),顯示數(shù)據(jù)調(diào)整函數(shù),字符串顯示函數(shù),顯示子函數(shù)構成顯示函數(shù);1602初始化函數(shù),lcd清屏函數(shù)則構成清屏函數(shù)。不過完成程序并不是一次就能成功的,首先要先將ad采集程序寫入單片機中,進行實驗,將固定距離所采集到的信號強度記錄下來,然后將對應的數(shù)據(jù)加入程序中,最后通過紅外模塊進行測量,便可顯示出對應的距離值,主程序是整個程序的基礎,也是核心。此時距離計算函數(shù)才算完成,距離計算函數(shù)實際就是測量時得出距離電壓關系,我們反過來先拿出距離再得出電壓,舉例來說,用卷尺量1米距離,再用紅外測距系統(tǒng)來量1米距離,這時
34、對應1米距離的電壓記下來。根據(jù)這個方法把其它各個距離的電壓記下來,把這個對應關系變成計算距離的函數(shù),再測距時就可以根據(jù)這個函數(shù)來得出距離了。第5章 系統(tǒng)軟硬件調(diào)試5.1 硬件調(diào)試紅外測距儀的制作為了使信號穩(wěn)定,最好給輸入電源加上一個濾波電路,否則顯示屏上有閃爍,不穩(wěn)定,會增加誤差,但總體來說不影響結果。在本次設計中,主控模塊是非常重要的部分,它不僅是本次設計的核心,在本次硬件調(diào)試中也遇到了問題,接上電源的時候,顯示屏不亮,沒有任何顯示,于是我做了如下的工作:(1)檢查電源是否通電,發(fā)現(xiàn)指示燈亮著;(2)編程使p1為低電平,檢查到p1輸出為低;(3)檢查p0口未接上拉電阻,接上顯示屏發(fā)亮了。在本
35、次硬件調(diào)試中還遇到了顯示屏出顯示,但顯示有很大問題,調(diào)節(jié)距離后,顯示還是不變,檢查后發(fā)現(xiàn)mcp3001與vcc沒接好,或cs,do,clk與單片機接觸不良。5.2 軟件調(diào)試硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到單片機試運行。根據(jù)所設計的電路參數(shù)和程序,測距儀能測的范圍為20cm150cm,測距儀最大誤差不超過0.5cm。系統(tǒng)調(diào)試完后對各個距離進行多次測量,與預定值進行比較,對測量誤差進行多次實驗分析,不斷調(diào)節(jié)器件和修改程序使其達到實際使用的測量要求。為了更方便了解電壓與距離之間的關系,我將程序做了些許修改,在顯示距離的基礎上再把電壓也顯示出來了,這樣結果一目了然。因為電壓與距離之間
36、的關系不是線性關系,所用用函數(shù)來表示會有誤差,于是我將此函數(shù)修改,重新測量,每個距離對應的電壓記錄下來輸入程序,如此一來,測試更加準確,誤差更小了。5.3測試結果繪圖圖5.2是紅外距離傳感器gp2y0a02yk0f電壓距離關系圖,圖中所測電壓對應的不同距離值,圖中橫坐標代表距離,縱坐標是距離電壓值,單位是cm。從圖中可以看出,電壓與距離并不是線性關系,而是一條相對平滑的曲線。因此結果不一定十分準確,接近此圖即可。最終的紅外測距系統(tǒng)可以實現(xiàn)20-150cm的近距離測量,測量誤差為0.5cm,可以計算出被測物體的距離。在測量距離精度方面,還有待于改進。 圖5.1 gp2y0a02yk0f電壓距離關
37、系圖表5.1 電壓距離關系電壓v2.89v1.94v1.47v1.18v0.980.850.740.660.600.540.500.460.430.40測量距離cm1930415162728292102112122131141151實際距離cm20304050607080901001101201301401505.4 調(diào)試中遇到的問題在焊接過程中一些地方出現(xiàn)虛焊等接觸不良的問題,導致顯示不穩(wěn)定有閃爍。接線過程中用插針接線容易導致接線松動,沒接到或者接觸不良。環(huán)境問題紅外線在空氣介質的傳播過程中會有很大的衰減,其衰減遵循指數(shù)規(guī)律。一般情況下能測150cm,但是空氣介質發(fā)生改變,如塵埃過多,導致紅
38、外線強度降低,測量發(fā)生誤差,且測量距離變小。周圍有其他輻射源,并且強度很大時會影響測量結果結 論對所設計的電路進行測量、校準發(fā)現(xiàn)其測量范圍在20cm150cm內(nèi)的平面物體做了多次測量發(fā)現(xiàn),其最大誤差為0.5cm,且重復性好。該測距儀穩(wěn)定性比較高、靈敏度比較高,測量時在紅外線測距儀周圍沒有其它物體。但是在檢測過程中會有一些不便的地方: 1.測量時在紅外線測距儀和目標物體之間周沒有其它可阻擋的物體,由于是根據(jù)反射能量法,且發(fā)射功率有限,反射回來的紅外線能量容易過低而無法采集,測距儀無法測量150cm外的物體。2.必須在干凈清新的空氣環(huán)境下測量,空氣中一旦塵埃過多,會對反射紅外線強度有極大的干擾,最
39、終影響計算距離的值。3.不能夠實現(xiàn)不同溫度下的測距功能。4.因為超聲波是將空氣作為媒介所以受電磁干擾比較大。紅外線測距儀的原理有兩種:一種是紅外線傳播的時間來計算出傳播距離;一種是根據(jù)發(fā)射光的強弱可以判斷所測的距離,由于接收管接收的光強是隨與發(fā)光管的距離變化而變化的,因而,距離近則接收光強,距離遠則接收光弱。由上述的分析知,如果能夠干凈清新的空氣環(huán)境,穩(wěn)定的溫度下,無其它電磁干擾,阻擋的物體,能夠獲得較高的測量精度。本電路設計由于元器件及其成板誤差,測量最大距離未能達到設計初衷要求,但對測量距離結果的誤差影響不大,能滿足日常生活、工業(yè)生產(chǎn)的測量要求,因此此設計有著很大的意義。同時通過這個設計能
40、夠提高我對單片機的認識、編程能力和電路設計能力。參考文獻1 張明峰,pic單片機入門與實戰(zhàn),北京航空航天大學出版社2 竇振中,pic單片機應用設計與實例,北京航空航天大學出版社3 謝自美,電子線路綜合設計,華中科技大學出版社,2006-64 康華光,電子技術基礎:模擬部分(第五版),高等教育出版社,20065 潘永雄,沙河電子線路cad實用教程m西安:西安電子科技大學出版社:20076 51單片機c程序設計100例7 康華光主編電子技術 基礎m第四版北京:高等教育出版社,19998單片機原理與應用實驗武漢大學珞珈學院 9一種紅外線測距技術的探討10紅外測距傳感器的原理與設計最終版11 劉坤,5
41、1單片機典型應用開發(fā)范例大全 中國鐵道出版社 12 彭偉,單片機c語言程序設計實訓基于8051+proteus仿真電子工業(yè)出版社13 薛小玲、劉志群、賈俊榮編著單片機接口模塊應用于開發(fā)實例詳解 北京航空航天大學出版社 201014 譚浩強,著c程序設計(第三版) 清華大學出版社 200515 何橋、段清明、邱春玲編著單片機原理及應用 中國鐵道出版社 200416 曲波 肖圣兵 呂建平編著工業(yè)常用傳感器選型指南 清華大學出版社 200217 陳鴻茂編著常用電子器件簡明手冊 中南礦業(yè)大學出版社 2001附錄 #include <reg51.h>#include <intrins.
42、h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit rs=p20; /lcd命令/數(shù)據(jù)端sbit rw=p21; /lcd讀/寫端sbit lcde=p22; /lcd使能端sbit mcp_cs=p23;/mcp3001與at89s52的管腳接線定義sbit mcp_do=p24;sbit mcp_clk=p25;uint measure;uchar flag; /busy標志uchar code dis="measure start"/顯示uch
43、ar code dis1 = "v= . v,l= cm"uchar code dis2 = "0123456789."/顯示代碼uchar code dis3="out measure!"/顯示uchar dis_buf8;/顯示緩沖區(qū)void l_delay(void);/短延時void delay_ms(uint n);/延時函數(shù)uint read_mcp(void);/讀mcp3001void init_1602(void);/1602初始化函數(shù)void busy(void);/lcd忙標志判斷函數(shù)void dat_wrt(u
44、char dat);/寫數(shù)據(jù)子函數(shù)void cmd_wrt(uchar cmd);/寫命令子函數(shù)uint distance(void);/距離計算函數(shù)void lcd_start(uchar start);/設定顯示位置函數(shù)void lcd_clear(void);/lcd清屏函數(shù)uchar dat_adj(uint dat1);/顯示數(shù)據(jù)調(diào)整函數(shù)void print(uchar *str);/字符串顯示函數(shù)void disp(uint dat);/顯示子函數(shù)uint average(void);/算術平均濾波程序/*主函數(shù)*/main()init_1602();print(dis);/顯示測
45、量開始delay_ms(1000);while(1)measure=distance();disp(measure);/顯示高度delay_ms(100);/*延時函數(shù)*/void delay_ms(uint n) uint j; while(n-) for(j=0;j<125;j+); /*短延時*/void l_delay(void)uchar i;for(i=0;i<5;i+)_nop_();/*讀mcp3001函數(shù)*/uint read_mcp(void)/ read_mcp 采集的數(shù)據(jù)并轉換后的值 /uchar i;uint temp=0;mcp_cs=1;l_delay
46、();mcp_cs=0;/cs置低,開始采樣數(shù)據(jù)for(i=0;i<13;i+)/讀轉換的10位數(shù)據(jù)mcp_clk=0;l_delay();mcp_clk=1;temp<<=1;if(mcp_do=1)temp|=0x01;mcp_cs=1;temp&=0x03ff;/獲取有效轉換值return(temp);/*lcd忙標志判斷函數(shù)*/void busy(void) flag=0x80;/賦初值 高位為1 禁止 while (flag&0x80)/讀寫操作使能位禁止時等待 繼續(xù)檢測 p0=0xff; rs=0; /指向地址計數(shù)器 rw=1; /讀 lcde=1
47、; /信號下降沿有效 flag=p0;/讀狀態(tài)位元 高位為狀態(tài) lcde=0; /*寫數(shù)據(jù)子函數(shù)*/void dat_wrt(uchar dat) busy();/檢測 讀寫操作使能嗎 lcde=0; rs=1;/指向數(shù)據(jù)寄存器 rw=0; /寫 p0=dat; /寫數(shù)據(jù) lcde=1;/高電平有效 lcde=0;/*寫命令子函數(shù)*/void cmd_wrt(uchar cmd) lcde=0; busy();/檢測 讀寫操作使能嗎 p0=cmd; /命令 rs=0; /指向命令計數(shù)器 rw=0; /寫 lcde=1;/高電平有效 lcde=0;/*距離計算函數(shù)*/ uint distance
48、(void)uint temp1;temp1=average();/temp1 平均數(shù)據(jù)轉換的距離/if(temp1>60)&(temp1<960)/在正常測量范圍?temp1=13569/(temp1+7)-4;/轉換測量數(shù)據(jù)elsetemp1=0x00ff;/超出測量范圍,返回錯誤標志return(temp1);/*算術平均濾波程序*/uint average(void)uchar i;uint av_dat; /av_dat 平均數(shù)據(jù)/ulong ave=0;for(i=0;i<10;i+)/連續(xù)讀取10個數(shù)據(jù)值ave+=read_mcp();/讀轉換數(shù)據(jù)l_delay();av_dat=(uint)(ave/10);/求平均值return(av_dat);/*1602初始化函數(shù)*/void init_1602(vo
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 植物保護技術員崗位面試問題及答案
- 遠程醫(yī)療平臺運維師崗位面試問題及答案
- 環(huán)保油墨應用研究-洞察及研究
- 松樹水庫水源管理辦法
- 財政政策傳導效果-洞察及研究
- 團隊內(nèi)部培訓管理辦法
- 小學品德教育的目標與實現(xiàn)策略
- FDM在碳纖維增強尼龍6復合材料性能研究中的應用
- 國企資金管理辦法講解
- 數(shù)字時代舞蹈教學變革的理念、場景及實施路徑探索
- 計算機基礎知識理論競賽題庫與答案(960題)
- 醫(yī)院反恐防暴培訓內(nèi)容
- GB/T 44353.1-2024動物源醫(yī)療器械第1部分:風險管理應用
- 2024年廣州市黃埔軍校紀念中學小升初分班考試數(shù)學模擬試卷附答案解析
- 新人教版五年級數(shù)學下冊期末試卷
- DB32-T 4757-2024 連棟塑料薄膜溫室建造技術規(guī)范
- 2025屆甘肅省天水市秦州區(qū)天水一中高一下數(shù)學期末達標檢測試題含解析
- 互聯(lián)網(wǎng)導論智慧樹知到期末考試答案章節(jié)答案2024年上海第二工業(yè)大學
- 重癥專科護士進修匯報課件
- 孕產(chǎn)婦兒童健康管理服務規(guī)范
- 機關大院保安服務
評論
0/150
提交評論