紅外測距系統(tǒng)設(shè)計(光電系統(tǒng)設(shè)計)_第1頁
紅外測距系統(tǒng)設(shè)計(光電系統(tǒng)設(shè)計)_第2頁
紅外測距系統(tǒng)設(shè)計(光電系統(tǒng)設(shè)計)_第3頁
紅外測距系統(tǒng)設(shè)計(光電系統(tǒng)設(shè)計)_第4頁
紅外測距系統(tǒng)設(shè)計(光電系統(tǒng)設(shè)計)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科生課程論文論文題目紅外光電測距系統(tǒng)設(shè)計課程名稱光電系統(tǒng)設(shè)計學(xué)生姓名谷幸東、郭曉龍、何志毅、胡健輝學(xué)號201211911309、10、11、12所在學(xué)院理學(xué)院所在班級電科1123班指導(dǎo)教師湯照目 錄第一章 緒論11.1 紅外線概述11.2 紅外傳感器的分類11.3 紅外傳感器的應(yīng)用21.4 AT89C52單片機(jī)概述31.5 MCP3001簡介6第二章 紅外測距的工作原理與基本結(jié)構(gòu)82.1 紅外測距傳感器簡介82.2 紅外線測距的工作原理82.4紅外測距傳感器接線102.5 紅外測距系統(tǒng)的基本結(jié)構(gòu)10第三章 紅外測距的硬件設(shè)計113.1 紅外測距的實現(xiàn)構(gòu)想113.2 系統(tǒng)硬件結(jié)構(gòu)電路圖123.

2、3 各硬件電路設(shè)計123.3.1 復(fù)位電路123.3.2 時鐘電路133.3.3 A/D轉(zhuǎn)換電路143.3.4 LCD顯示電路14第四章 紅外測距的軟件設(shè)計154.1 系統(tǒng)軟件結(jié)構(gòu)框圖154.2 軟件程序設(shè)計164.3 源代碼16第五章 仿真測試215.1系統(tǒng)的軟件的調(diào)試仿真21第六章 PCB圖及元器件清單236.1 PCB圖236.2 元器件清單23第七章 課程設(shè)計任務(wù)分工及個人心得體會247.1任務(wù)分工247.2 設(shè)計心得體會24第一章 緒論1.1 紅外線概述 紅外輻射俗稱紅外線,又稱紅外光,它是一種人眼看不見的光線。但實際上它和其他任何光線一樣,也是一種客觀存在的物質(zhì)。任何物體,只要它的

3、濕度高于絕對零度,就有紅外線向周圍空間輻射。它的波長介于可見光和微波之間。紅外輻射的物理本質(zhì)是熱輻射。物體的溫度越高,輻射出來的紅外線越多,紅外輻射的能量就越強(qiáng)。研究發(fā)現(xiàn),太陽光譜各種單色光的熱效應(yīng)從紫色光到紅色光是逐漸增大的,而且最大的熱效應(yīng)出現(xiàn)在紅外輻射的頻率范圍內(nèi),因此人們又將紅外輻射稱為熱輻射或熱射線。目前紅外發(fā)射器件(紅外發(fā)光二極管)發(fā)出的是峰值波長0.88uM0.94uM之間的近紅外光,紅外接收器件(光敏二極管、光敏三極管)的受光峰值波長為0.88uM0.94uM之間,恰好與紅外發(fā)光二極管的光峰值波長相匹配。紅外線在通過云霧等充滿懸浮離子的物質(zhì)時不易發(fā)生散射,有較強(qiáng)的穿透能力,還具

4、有抗干擾能力強(qiáng)、易于產(chǎn)生、對環(huán)境影響小、不會干擾臨近的無線電設(shè)備的特點,因而被廣泛應(yīng)用。1.2 紅外傳感器的分類 常見紅外傳感器可分為熱傳感器和光子傳感器。1)熱傳感器熱傳感器是利用入射紅外輻射引起傳感器的溫度變化,進(jìn)而使有關(guān)物理參數(shù)發(fā)生相應(yīng)的變化,通過測量有關(guān)物理參數(shù)的變化來確定紅外傳感器所吸收的紅外輻射。熱探測器的主要優(yōu)點是相應(yīng)波段寬,可以在室溫下工作,使用簡單。但是,熱傳感器相應(yīng)時間較長,靈敏度較低,一般用于低頻調(diào)制的場合。熱傳感器主要類型有:熱敏傳感器型,熱電偶型,高萊氣動型和熱釋放電型四種。2)光子傳感器光子傳感器是利用某些半導(dǎo)體材料在入射光的照射下,產(chǎn)生光子效應(yīng),使材料電學(xué)性質(zhì)發(fā)生

5、變化。通過測量電學(xué)性質(zhì)的變化,可以知道紅外輻射的強(qiáng)弱。利用光子效應(yīng)所制成的紅外傳感器。統(tǒng)稱光子傳感器。光子傳感器的主要特點靈敏度高,響應(yīng)速度快,具有較高的響應(yīng)頻率。但其一般須在低溫下工作,探測波段較窄。按照光子傳感器的工作原理,一般可分為內(nèi)光電和外光電傳感器兩種,后者又分為光電導(dǎo)傳感器、光生伏特傳感器和光磁電傳感器等三種。1.3 紅外傳感器的應(yīng)用紅外技術(shù)是最近幾十年中發(fā)展起來的一門新興技術(shù)。它已在科技、國防和工農(nóng)業(yè)生產(chǎn)等領(lǐng)域獲得廣泛的應(yīng)用。紅外傳感器的應(yīng)用主要體現(xiàn)在以下幾個方面:紅外輻射計:用于輻射和光譜輻射測量。1) 搜索和跟蹤系統(tǒng):用于搜索和跟蹤紅外目標(biāo),確定其空間位置并對其運(yùn)動進(jìn)行跟蹤。

6、2) 熱成像系統(tǒng):能形成整個目標(biāo)的紅外輻射分布圖像。3) 紅外測距系統(tǒng):實現(xiàn)物體間距離的測量。4) 通訊系統(tǒng):紅外線通信作為無線通信的一種方式。5) 混合系統(tǒng):是指以上各類系統(tǒng)中的兩個或多個的組合。1.4 AT89C52單片機(jī)概述 AT89C52是美國Atmel公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),片內(nèi)含8KB的可反復(fù)檫寫的程序存儲器和12B的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用Atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)配置通用8位中央處理器(CPU)和Flash存儲單元,功能強(qiáng)大的AT89C52單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域。AT89C52單片

7、機(jī)屬于AT89C51單片機(jī)的增強(qiáng)型,與Intel公司的80C52在引腳排列、硬件組成、工作特點和指令系統(tǒng)等方面兼容。其主要工作特性是:l 片內(nèi)程序存儲器內(nèi)含8KB的Flash程序存儲器,可擦寫壽命為1000次;l 片內(nèi)數(shù)據(jù)存儲器內(nèi)含256字節(jié)的RAM;l 具有32根可編程I/O口線;l 具有3個可編程定時器;l 中斷系統(tǒng)是具有8個中斷源、6個中斷矢量、2個級優(yōu)先權(quán)的中斷結(jié)構(gòu);l 串行口是具有一個全雙工的可編程串行通信口;l 具有一個數(shù)據(jù)指針DPTR;l 低功耗工作模式有空閑模式和掉電模式;l 具有可編程的3級程序鎖定位;l AT89C52工作電源電壓為5(1+0.2)V,且典型值為5V;l A

8、T89C52最高工作頻率為24MHzAT89C52的各引腳功能: ·P0口:P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。·P1口:P1是一個帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TT

9、L邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51不同之處是,P1.0 和P1.1 還可分別作為定時/計數(shù)器2 的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),F(xiàn)lash 編程和程序校驗期間,P1接收低8位地址。 ·P2口:P2是一個帶有內(nèi)部上拉電阻的8 位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在

10、上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX RI 指令)時,P2 口輸出P2 鎖存器的內(nèi)容。Flash 編程或校驗時,P2亦接收高位地址和一些控制信號。· P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(II

11、L)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能,P3 口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。·RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。·ALE/PROG: 當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時鐘振蕩頻率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE 脈沖。對Flash 存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有

12、必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE 禁止位無效。·PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。·EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000HFFFFH),EA 端必須保持低電平(接地

13、)。需注意的是:如果加密位LB1 被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU 則執(zhí)行內(nèi)部程序存儲器中的指令。Flash 存儲器編程時,該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V 編程電壓Vpp。·XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。·XTAL2:振蕩器反相放大器的輸出端。1.5 MCP3001簡介Miclodip的MCP3001是款具有片上采樣和保持電路的10位逐次逼近型A/D轉(zhuǎn)換器(ADC),該器件提供個偽差分輸入通道。指定差分非線性和積分非線性的最大值為±1LSB:它使用符合SP

14、l協(xié)議的簡單串行接口與器件通信。當(dāng)時鐘速率為28MHz時,該器件的采樣速率最大可為200ksps。McP3001器件的匚作電壓范圍很寬,為2.7V-5.5V.低電流設(shè)計允許器件在典型待機(jī)電流僅為5nA和典型工作電流為400uA的條件下工作。該器件以8引腳PDIP、MSOP、TSSOP和150mil SOC封裝形式提供。MCP3001的特性:l 10位分辨率l ±1 LSB DNL(最大值)l ±1 LSB INL(最大值)l 片上采樣和保持電路l SPI串行接口(模式0.0和1.1)l 單電源供電的電壓范圍:2.7V5.5Vl 5V時的采樣速度為200kspsl 低功耗CM

15、OS技術(shù)l 8引腳PDIP、SOIC、MSOP和TSSOP封裝應(yīng)用封裝類型:功能框圖:第二章 紅外測距的工作原理與基本結(jié)構(gòu) 2.1 紅外測距傳感器簡介紅外測距傳感是用紅外線為介質(zhì)的測量系統(tǒng),按照功能可分成五類:(1)輻射計,用于輻射和光譜測量;(2)搜索和跟蹤系統(tǒng),用于搜索和跟蹤紅外目標(biāo),確定其空間位置并對它的運(yùn)動進(jìn)行跟蹤;(3)熱成像系統(tǒng),可產(chǎn)生整個目標(biāo)紅外輻射的分布圖像;(4)紅外測距和通信系統(tǒng);(5)混合系統(tǒng),是指以上各類系統(tǒng)中的兩個或者多個的組合。 按探測機(jī)理可分成為光子探測器和熱探測器。紅外傳感技術(shù)已經(jīng)在現(xiàn)代科技、國防和工農(nóng)業(yè)等領(lǐng)域獲得了廣泛的應(yīng)用。2.2 紅外線測距的工作原理紅外測

16、距傳感器利用紅外信號遇到障礙物距離的不同反射的強(qiáng)度也不同的原理,進(jìn)行障礙物遠(yuǎn)近的檢測。紅外測距傳感器具有一對紅外信號發(fā)射與接收二極管,發(fā)射管發(fā)射特定頻率的紅外信號,接收管接收這種頻率的紅外信號,當(dāng)紅外的檢測方向遇到障礙物時,紅外信號反射回來被接收管接收,經(jīng)過處理之后,通過數(shù)字傳感器接口返回到單片機(jī)。利用的是紅外線傳播時的不擴(kuò)散原理 ,因為紅外線在穿越其它物質(zhì)時折射率很小 ,所以長距離的測距儀都會考慮紅外線 ,而紅外線的傳播是需要時間的 ,當(dāng)紅外線從測距儀發(fā)出碰到反射物被反射回來被接受到 ,再根據(jù)紅外線從發(fā)出到被接受到的時間及紅外線的傳播速度就可以算出距離, 紅外線的工作原理:利用高頻調(diào)制的紅外

17、線在待測距離上往返產(chǎn)生的相位移推算出光束度越時間t,從而根據(jù)DCt/2得到距離D。紅外傳感器的的測距基本原理為發(fā)光管發(fā)出紅外光,光敏接收管接收前方物體反射光,據(jù)此判斷前方是否有障礙物。根據(jù)發(fā)射光的強(qiáng)弱可以判斷物體的距離,它的原理 是接收管接收的光強(qiáng)隨反射物體的距離而變化的,距離近則反射光強(qiáng),距離遠(yuǎn)則反射光弱。目前,使用較多的一種傳感器-紅外光電開關(guān),它的發(fā)射頻率一般為38 kHz左右,探測距離一般比較短,通常被用作近距離障礙目標(biāo)的識別。本系統(tǒng)采用的即為此種傳感器。2.3 紅外線測距的特點1) 遠(yuǎn)距離測量,在無反光板和反射率低的情況下能測量較遠(yuǎn)的距離;2) 有同步輸入端,可多個傳感器同

18、步測量;3) 測量范圍廣,響應(yīng)時間短;4) 外形設(shè)計緊湊,易于安裝,便于操作;2.4紅外測距傳感器接線本模塊選用的是由日本夏普公司研發(fā)的型號為GP2Y0A21的紅外傳感器。引腳圖如圖所示。此紅外傳感器一共有三個引腳,其中VCC(電源電壓)為信號接入,接入電源電壓為4.5-5.5V,單片機(jī)5V工作電壓即可;GND為接地引腳,連接地線即可;Vout為模擬電壓輸出引腳,此引腳輸出的模擬電壓值為0.4-2.4V,相對應(yīng)的距離范圍是80-10。此引腳需要接入單片機(jī)處理模塊中的多路A/D轉(zhuǎn)換通道上的任意一路上。根據(jù)紅外傳感器的電壓和相對應(yīng)的距離測量值可知,夏普GP2Y0A21系列的紅外傳感器輸出曲線是非線

19、性的,且每個型號的紅外傳感器輸出曲線都不相同。所以對所使用紅外傳感器的矯正是必須要做的,創(chuàng)建出一張實測輸出曲線圖,以便在實際測量的過程中獲得真實準(zhǔn)確的測量數(shù)據(jù)。2.5 紅外測距系統(tǒng)的基本結(jié)構(gòu)紅外測距系統(tǒng)主要有紅外測距傳感器模塊(包括紅外發(fā)射端和紅外接收端兩部分)、單片機(jī)處理模塊、LCD顯示模塊三大部分組成。如圖所示。單片機(jī)紅外模塊A/D模塊電壓距離公式 顯示模塊第三章 紅外測距的硬件設(shè)計 3.1 紅外測距的實現(xiàn)構(gòu)想為了實現(xiàn)紅外測距,在硬件設(shè)計中,我們使用紅外測距傳感器,它具有一對紅外信號發(fā)射與接收二極管,發(fā)射管發(fā)射特定頻率的紅外信號,接收管接收這種頻率的紅外信號,當(dāng)紅外的檢測方向遇到障礙物時,

20、紅外信號反射回來被接收管接收,經(jīng)過處理之后,通過數(shù)字傳感器接口經(jīng)過A/D轉(zhuǎn)換電路。將輸入單片機(jī)的模擬電壓信號Vout轉(zhuǎn)換為單片機(jī)可識別的數(shù)字信號,并經(jīng)過電壓距離轉(zhuǎn)換程序,轉(zhuǎn)換出要測量的距離,最后在通過液晶顯示屏LCD1602顯示出測量結(jié)果。3.2 系統(tǒng)硬件結(jié)構(gòu)電路圖整個紅外測距系統(tǒng)由AT89C52芯片、紅外測距傳感器、A/D轉(zhuǎn)換電路與LCD顯示器等構(gòu)成。硬件結(jié)構(gòu)電路圖如圖所示:單片機(jī)AT89C52左端分別接了開關(guān)、時鐘電路和復(fù)位電路,這是單片機(jī)最小的系統(tǒng)。XTAL1和XTAL2串連一個晶振,并且分別接上一個20p的電容,兩個電容另一端都接地,構(gòu)成時鐘電路。單片機(jī)AT89C52右端P0端同時接L

21、ED的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。3.3 各硬件電路設(shè)計3.3.1 復(fù)位電路單片機(jī)小系統(tǒng)常采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。手動復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開關(guān)操作使單片機(jī)復(fù)位。其結(jié)構(gòu)如下圖。上電自動復(fù)位通過電容C3充電來實現(xiàn)。3.3.2 時鐘電路單片機(jī)內(nèi)部具有一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XTALl和XTAL2跨接石英晶體和兩個補(bǔ)償電

22、容構(gòu)成自激振蕩器,結(jié)構(gòu)圖中X1、C1、C2??梢愿鶕?jù)情況選擇6MHz、12MHz或24MHz等頻率的石英晶體,補(bǔ)償電容通常選擇20pF左右的瓷片電容。3.3.3 A/D轉(zhuǎn)換電路 A/D轉(zhuǎn)換電路如圖所示3.3.4 LCD顯示電路LCD與單片機(jī)的接口電路如圖所示,單片機(jī)通過P0口向LCD輸送數(shù)據(jù),顯示測得的距離。值得注意的是,P0口要接上拉電阻來保證對LCD的成功驅(qū)動。第四章 紅外測距的軟件設(shè)計4.1 系統(tǒng)軟件結(jié)構(gòu)框圖在整個系統(tǒng)運(yùn)行過程中。當(dāng)紅外系統(tǒng)被啟動后,首先,對AT89C52單片機(jī)進(jìn)行初始化。然后,當(dāng)AT89C52單片機(jī)接收到紅外接收電路傳輸?shù)碾妷盒盘柡螅?jīng)A/D轉(zhuǎn)換程序,將片外的模擬信號轉(zhuǎn)

23、換為單片機(jī)可識別的數(shù)字信號,并經(jīng)電壓距離轉(zhuǎn)換子程序,將變化的電壓轉(zhuǎn)換為距離。最后,在動態(tài)掃描LCD顯示器上顯示出來。4.2 軟件程序設(shè)計紅外測距系統(tǒng)軟件程序主要由主程序、A/D轉(zhuǎn)換程序、延時函數(shù)、LCD顯示程序等等,在紅外測距系統(tǒng)硬件已經(jīng)確定的情況下,程序設(shè)計步驟為:1)分析紅外測距系統(tǒng)功能,對已知條件及運(yùn)算控制的要求進(jìn)行掌握,準(zhǔn)確地編寫出能完成規(guī)定任務(wù)的程序。2)確定所需要函數(shù)及算法,根據(jù)系統(tǒng)設(shè)計要求及功能特點,選擇相應(yīng)的解決方法。3)設(shè)計系統(tǒng)工作流程圖,采用直觀的方式清晰地表達(dá)出程序的整體設(shè)計思想。4)根據(jù)系統(tǒng)工作流程圖編寫源程序,對主函數(shù)及子函數(shù)的功能進(jìn)行逐一分析,并寫出相應(yīng)的程序。5)

24、調(diào)試源程序,將編好的程序通過編譯去除語法及功能上的錯誤,然后將程序燒入單片機(jī)中以達(dá)到最終要求。4.3 源代碼#include <reg51.h>#include <intrins.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=

25、P24;sbit MCP_CLK=P25;uint measure;uchar flag; /Busy標(biāo)志uchar code dis="Measure Start"/顯示uchar 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ù)ui

26、nt read_MCP(void);/讀MCP3001void init_1602(void);/1602初始化函數(shù)void busy(void);/LCD忙標(biāo)志判斷函數(shù)void dat_wrt(uchar dat);/寫數(shù)據(jù)子函數(shù)void cmd_wrt(uchar cmd);/寫命令子函數(shù)uint distance(void);/距離計算函數(shù)void lcd_start(uchar start);/設(shè)定顯示位置函數(shù)void LCD_Clear(void);/LCD清屏函數(shù)uchar dat_adj(uint dat1);/顯示數(shù)據(jù)調(diào)整函數(shù)void print(uchar *str);/字符

27、串顯示函數(shù)void disp(uint dat);/顯示子函數(shù)uint average(void);/算術(shù)平均濾波程序/*主函數(shù)*/main()init_1602();print(dis);/顯示測量開始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+)_no

28、p_();/*讀MCP3001函數(shù)*/uint read_MCP(void)/ read_MCP 采集的數(shù)據(jù)并轉(zhuǎn)換后的值 /uchar i;uint temp=0;MCP_CS=1;L_delay();MCP_CS=0;/CS置低,開始采樣數(shù)據(jù)for(i=0;i<13;i+)/讀轉(zhuǎn)換的10位數(shù)據(jù)MCP_CLK=0;L_delay();MCP_CLK=1;temp<<=1;if(MCP_DO=1)temp|=0x01;MCP_CS=1;temp&=0x03ff;/獲取有效轉(zhuǎn)換值return(temp);/*LCD忙標(biāo)志判斷函數(shù)*/void busy(void) flag

29、=0x80;/賦初值 高位為1 禁止 while (flag&0x80)/讀寫操作使能位禁止時等待 繼續(xù)檢測 P0=0xff; RS=0; /指向地址計數(shù)器 RW=1; /讀 LCDE=1; /信號下降沿有效 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; bu

30、sy();/檢測 讀寫操作使能嗎 P0=cmd; /命令 RS=0; /指向命令計數(shù)器 RW=0; /寫 LCDE=1;/高電平有效 LCDE=0;/*距離計算函數(shù)*/ uint distance(void)uint temp1;temp1=average();/ temp1 平均數(shù)據(jù)轉(zhuǎn)換的距離 /if(temp1>60)&(temp1<960)/在正常測量范圍?temp1=13569/(temp1+7)-4;/轉(zhuǎn)換測量數(shù)據(jù)elsetemp1=0x00ff;/超出測量范圍,返回錯誤標(biāo)志return(temp1);/*算術(shù)平均濾波程序*/uint average(void)u

31、char i;uint av_dat; / av_dat 平均數(shù)據(jù) /ulong ave=0;for(i=0;i<10;i+)/連續(xù)讀取10個數(shù)據(jù)值ave+=read_MCP();/讀轉(zhuǎn)換數(shù)據(jù)L_delay();av_dat=(uint)(ave/10);/求平均值return(av_dat);/*1602初始化函數(shù)*/void init_1602(void) cmd_wrt(0x01);/清屏 cmd_wrt(0x0c);/開顯示,不顯示游標(biāo),不閃爍 cmd_wrt(0x06);/完成一個字符碼傳送后,光標(biāo)左移,顯示不發(fā)生移位元 cmd_wrt(0x38);/16×2顯示,5

32、×7點陣,8位數(shù)據(jù)接口/*設(shè)定顯示位置函數(shù)*/void lcd_start(uchar start) cmd_wrt(start|0x80);/*LCD清屏函數(shù)*/void LCD_Clear(void)cmd_wrt(0x01);/寫入清屏指令delay_ms(1);/*顯示數(shù)據(jù)調(diào)整函數(shù)*/ uchar dat_adj(uint dat1) / dat1 L距離 / uchar i=0;uint date;date=average()/2;dis_buf0=(uchar)(dat1/100);/百位dis_buf1=(uchar)(dat1%100/10);/十位dis_buf2=

33、(uchar)(dat1%100%10);/個位dis_buf3= date/100 ;dis_buf4=date%100/10;dis_buf5= date%100%10;if(dis_buf0=0)i=1;return(i);/*字符串顯示函數(shù)*/void print(uchar *str)while(*str!='0')/直到字符串結(jié)束dat_wrt(*str); str+;/指向下一個字符/*顯示子函數(shù)*/void disp(uint dat)uchar temp,j;if(dat!=0x00ff)temp=dat_adj(dat);LCD_Clear();lcd_st

34、art(0x40);print(dis1);lcd_start(0x42);dat_wrt(dis2dis_buf3); print("."); for(j=4;j<6;j+) dat_wrt(dis2dis_bufj);/顯示文字lcd_start(0x4B+temp); /確定顯示起始位置for(j=temp;j<3;j+)/寫顯示數(shù)據(jù)dat_wrt(dis2dis_bufj);elseLCD_Clear();lcd_start(0x42+temp);/確定顯示起始位置print(dis3);第5章 仿真測試5.1系統(tǒng)的軟件的調(diào)試仿真Proteus的ISIS

35、是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機(jī),元件庫齊全,使用方便,可以給我們做電路設(shè)計提供方便快捷的仿真效果,讓我們事半功倍。調(diào)試主要方法和技巧:通常一個調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點、查看變量、更改數(shù)值。整個程序是一個主程序調(diào)用各個子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個程序都能平穩(wěn)運(yùn)行,各個模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個子程序模塊進(jìn)行分別調(diào)試。在硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到單片機(jī)試運(yùn)行。這里我們使用Proteus軟件進(jìn)行仿真,加載編譯好的.HEX文件到單片機(jī)后,點擊運(yùn)行按鈕即

36、可,仿真電路圖如下:第6章 PCB圖及元器件清單6.1 PCB圖6.2 元器件清單第7章 課程設(shè)計任務(wù)分工及個人心得體會7.1任務(wù)分工201211911309谷幸東-整體設(shè)計及論文撰寫201211911310郭曉龍-用Proteus軟件仿真測試201211911311何志毅-PCB線路板設(shè)計201211911312胡健輝-軟件設(shè)計(代碼編寫)7.2 設(shè)計心得體會1)谷幸東在為期一周的單片機(jī)課程設(shè)計中,我在增長知識、提高能力的同時,產(chǎn)生了很深的感觸。從小組內(nèi)部初步定下方案到明確分工,從不斷的運(yùn)行排錯到調(diào)試成功,在整個設(shè)計過程中,著實受益匪淺,不僅可以鞏固以前所學(xué)過的知識,而且學(xué)到了很多在書本上所

37、沒有學(xué)到過的東西。在做本次課程設(shè)計的過程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計資料了。為了讓我們小組的設(shè)計更加完善,查閱這方面的設(shè)計資料是十分必要的,同時也是必不可少的。在設(shè)計的過程中難免會遇到各種各樣的問題,但是在這重重困難之中我了解到自己的真實水平,并努力提高自己。同時我明白,對于想要成功的人來說更重要的不是知識或技能,而是克服困難的信心。實踐證明看似“莫名其妙”的錯誤只要堅持嘗試必定有辦法解決,應(yīng)靈活地從各方面找原因而不是一味歸咎于實驗儀器或軟件平臺。通過這次的課程設(shè)計作品的制作讓我對單片機(jī)的理論有了更加深入的了解,同時在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實際的應(yīng)用存在著不小的差距,書本上的知識很多都是理想化后的結(jié)論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應(yīng)用時這些是不能被忽略的,我們不得不考慮這方的問題,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論