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

下載本文檔

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

文檔簡介

論文題目

課程名稱

學生

學號論文題目

課程名稱

學生

學號所在學院所在班級指導教師紅外光電測距系統(tǒng)設計光電系統(tǒng)設計谷幸東、郭曉龍、何志毅、胡健輝201211911309、10、11、12理學院電科1123班湯照目錄TOC\o"1-5"\h\z\o"CurrentDocument"第一章緒論 1\o"CurrentDocument"紅外線概述 1\o"CurrentDocument"1.2紅外傳感器的分類 1\o"CurrentDocument"1.3紅外傳感器的應用 2\o"CurrentDocument"AT89C52單片機概述 3MCP3001簡介6第二章紅外測距的工作原理與基本結構82.1紅外測距傳感器簡介8\o"CurrentDocument"2.2紅外線測距的工作原理 82.4紅外測距傳感器接線10\o"CurrentDocument"紅外測距系統(tǒng)的基本結構 10第三章紅外測距的硬件設計11\o"CurrentDocument"紅外測距的實現(xiàn)構想 11系統(tǒng)硬件結構電路圖12各硬件電路設計12復位電路 12時鐘電路 13A/D轉換電路 14LCD顯示電路 14第四章紅外測距的軟件設計15系統(tǒng)軟件結構框圖15軟件程序設計16源代碼16第五章仿真測試26系統(tǒng)的軟件的調(diào)試仿真26第六章PCB圖及元器件清單28PCB圖28元器件清單28第七章課程設計任務分工及個人心得體會29任務分工29設計心得體會29第一章緒論紅外線概述紅外輻射俗稱紅外線,又稱紅外光,它是一種人眼看不見的光線。但實際上它和其他任何光線一樣,也是一種客觀存在的物質(zhì)。任何物體,只要它的濕度高于絕對零度,就有紅外線向周圍空間輻射。它的波長介于可見光和微波之間。紅外輻射的物理本質(zhì)是熱輻射。物體的溫度越高,輻射出來的紅外線越多,紅外輻射的能量就越強。研究發(fā)現(xiàn),太譜各種單色光的熱效應從紫色光到紅色光是逐漸增大的,而且最大的熱效應出現(xiàn)在紅外輻射的頻率圍,因此人們又將紅外輻射稱為熱輻射或熱射線。目前紅外發(fā)射器件(紅外發(fā)光二極管)發(fā)出的是峰值波長0.88uM~0.94uM之間的近紅外光,紅外接收器件(光敏二極管、光敏三極管)的受光峰值波長為0.88uM~0.94uM之間,恰好與紅外發(fā)光二極管的光峰值波長相匹配。紅外線在通過云霧等充滿懸浮離子的物質(zhì)時不易發(fā)生散射,有較強的穿透能力,還具有抗干擾能力強、易于產(chǎn)生、對環(huán)境影響小、不會干擾臨近的無線電設備的特點,因而被廣泛應用。紅外傳感器的分類常見紅外傳感器可分為熱傳感器和光子傳感器。1)熱傳感器熱傳感器是利用入射紅外輻射引起傳感器的溫度變化,進而使有關物理參數(shù)發(fā)生相應的變化,通過測量有關物理參數(shù)的變化來確定紅外傳感器所吸收的紅外輻射。熱探測器的主要優(yōu)點是相應波段寬,可以在室溫下工作,使用簡單。但是,熱傳感器相應時間較長,靈敏度較低,一般用于低頻調(diào)制的場合。熱傳感器主要類型有:熱敏傳感器型,熱電偶型,高萊氣動型和熱釋放電型四種。2)光子傳感器光子傳感器是利用某些半導體材料在入射光的照射下,產(chǎn)生光子效應,使材料電學性質(zhì)發(fā)生變化。通過測量電學性質(zhì)的變化,可以知道紅外輻射的強弱。利用光子效應所制成的紅外傳感器。統(tǒng)稱光子傳感器。光子傳感器的主要特點靈敏度高,響應速度快,具有較高的響應頻率。但其一般須在低溫下工作,探測波段較窄。按照光子傳感器的工作原理,一般可分為光電和外光電傳感器兩種,后者又分為光電導傳感器、光生伏特傳感器和光磁電傳感器等三種。紅外傳感器的應用紅外技術是最近幾十年中發(fā)展起來的一門新興技術。它已在科技、國防和工農(nóng)業(yè)生產(chǎn)等領域獲得廣泛的應用。紅外傳感器的應用主要體現(xiàn)在以下幾個方面:紅外輻射計:用于輻射和光譜輻射測量。1)搜索和跟蹤系統(tǒng):用于搜索和跟蹤紅外目標,確定其空間位置并對其運動進行跟蹤。2)熱成像系統(tǒng):能形成整個目標的紅外輻射分布圖像。紅外測距系統(tǒng):實現(xiàn)物體間距離的測量。通訊系統(tǒng):紅外線通信作為無線通信的一種方式?;旌舷到y(tǒng):是指以上各類系統(tǒng)中的兩個或多個的組合。AT89C52單片機概述AT89C52是美國Atmel公司生產(chǎn)的低電壓、高性能CMOS8位單片機,片含8KB的可反復檫寫的程序存儲器和12B的隨機存取數(shù)據(jù)存儲器(RAM),器件采用Atmel公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片配置通用8位中央處理器(CPU)和Flash存儲單元,功能強大的AT89C52單片機可靈活應用于各種控制領域。AT89C52單片機屬于AT89C51單片機的增強型,與Intel公司的80C52在引腳排列、硬件組成、工作特點和指令系統(tǒng)等方面兼容。其主要工作特性是:?片程序存儲器含8KB的Flash程序存儲器,可擦寫壽命為1000次;?片數(shù)據(jù)存儲器含256字節(jié)的RAM;?具有32根可編程I/O口線;具有3個可編程定時器;中斷系統(tǒng)是具有8個中斷源、6個中斷矢量、2個級優(yōu)先權的中斷結構;?串行口是具有一個全雙工的可編程串行通信口;?具有一個數(shù)據(jù)指針DPTR;低功耗工作模式有空閑模式和掉電模式;具有可編程的3級程序鎖定位;AT89C52工作電源電壓為5(1+0.2)V,且典型值為5V;AT89C52最高工作頻率為24MHzAT89C52的各引腳功能:?P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口P0寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。?P1口:P1是一個帶部上拉電阻的8位雙向I/O口,P1的輸岀緩沖級可驅(qū)動(吸收或輸岀電流)4個TTL邏輯門電路。對端口寫“1”,通過部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為部存在上拉電阻,某個引腳被外部信號拉低時會輸岀一個電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),Flash編程和程序校驗期間,P1接收低8位地址。?P2口:P2是一個帶有部上拉電阻的8位雙向I/O口,P2的輸岀緩沖級可驅(qū)動(吸收或輸岀電流)4個TTL邏輯門電路。對端口P2寫“1”,通過部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為部存在上拉電阻,某個引腳被外部信號拉低時會輸岀一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR指令)時,P2口送岀高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVXRI指令)時,P2口輸岀P2鎖存器的容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。?P3口:P3口是一組帶有部上拉電阻的8位雙向I/O口°P3口輸岀緩沖級可驅(qū)動(吸收或輸岀電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸岀電流(IIL)°P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。?RST:復位輸入。當振蕩器工作時,RST引腳岀現(xiàn)兩個機器周期以上高電平將使單片機復位。?ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸岀脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸岀固定的脈沖信號,因此它可對外輸岀時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過—個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的DO位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。?PSEN:程序儲存允許(PSEN)輸岀是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸岀兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。?EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為OOOOH-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器的及部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸岀端。MCP3001簡介Miclodip的MCP3001是款具有片上采樣和保持電路的10位逐次逼近型A/D轉換器(ADC),該器件提供個偽差分輸入通道。指定差分非線性和積分非線性的最大值為±1LSB:它使用符合SPl協(xié)議的簡單串行

接口與器件通信。當時鐘速率為28MHz時,該器件的采樣速率最大可為200ksps。MCP3001器件的匚作電壓圍很寬,為2.7V-5.5V.低電流設計允許器件在典型待機電流僅為5nA和典型工作電流為400uA的條件下工作。該器件以8引腳PDIP、MSOP、TSSOP和150milSOC封裝形式提供。MCP3001的特性:10位分辨率±1LSBDNL(最大值)±1LSBINL(最大值)片上采樣和保持電路SPI串行接口(模式0.0和1.1)?單電源供電的電壓圍:2.7V~5.5V5V時的采樣速度為200ksps?低功耗CMOS技術8引腳PDIP、SOIC、MSOP和TSSOP封裝應用封裝類型:PDIF、MSQP.SOlC利TSSOPCLKDjutCS^HDNCLKDjutCS^HDN功能框圖:第二章紅外測距的工作原理與基本結構紅外測距傳感器簡介紅外測距傳感是用紅外線為介質(zhì)的測量系統(tǒng),按照功能可分成五類:(1)輻射計,用于輻射和光譜測量;(2)搜索和跟蹤系統(tǒng),用于搜索和跟蹤紅外目標,確定其空間位置并對它的運動進行跟蹤;(3)熱成像系統(tǒng),可產(chǎn)生整個目標紅外輻射的分布圖像;(4)紅外測距和通信系統(tǒng);(5)混合系統(tǒng),是指以上各類系統(tǒng)中的兩個或者多個的組合。按探測機理可分成為光子探測器和熱探測器。紅外傳感技術已經(jīng)在現(xiàn)代科技、國防和工農(nóng)業(yè)等領域獲得了廣泛的應用。紅外線測距的工作原理紅外測距傳感器利用紅外信號遇到障礙物距離的不同反射的強度也不同的原理,進行障礙物遠近的檢測。紅外測距傳感器具有一對紅外信號發(fā)射與接收二極管,發(fā)射管發(fā)射特定頻率的紅外信號,接收管接收這種頻率的紅外信號,當紅外的檢測方向遇到障礙物時,紅外信號反射回來被接收管接收,經(jīng)過處理之后,通過數(shù)字傳感器接口返回到單片機。利用的是紅外線傳播時的不擴散原理,因為紅外線在穿越其它物質(zhì)時折射率很小,所以長距離的測距儀都會考慮紅外線,而紅外線的傳播是需要時間的,當紅外線從測距儀發(fā)出碰到反射物被反射回來被接受到,再根據(jù)紅外線從發(fā)出到被接受到的時間及紅外線的傳播速度就可以算出距離,紅外線的工作原理:利用高頻調(diào)制的紅外線在待測距離上往返產(chǎn)生的相位移推算岀光束度越時間從而根據(jù)D二C4/2得到距離Do紅外傳感器的的測距基本原理為發(fā)光管發(fā)岀紅外光,光敏接收管接收前方物體反射光,據(jù)此判斷前方是否有障礙物。根據(jù)發(fā)射光的強弱可以判斷物體的距離,它的原理是接收管接收的光強隨反射物體的距離而變化的,距離近則反射光強,距離遠則反射光弱。目前,使用較多的一種傳感器-紅外光電開關,它的發(fā)射頻率一般為38kHz左右,探測距離一般比較短,通常被用作近距離障礙目標的識別。本系統(tǒng)采用的即為此種傳感器。紅外線測距的特點1) 遠距離測量,在無反光板和反射率低的情況下能測量較遠的距離;2) 有同步輸入端,可多個傳感器同步測量;3) 測量圍廣,響應時間短;4) 外形設計緊湊,易于安裝,便于操作;2.4紅外測距傳感器接線本模塊選用的是由日本夏普公司研發(fā)的型號為GP2Y0A21的紅外傳感器。引腳圖如圖所示。此紅外傳感器一共有三個引腳,其中VCC(電源電壓)為信號接入,接入電源電壓為4.5-5.5V,單片機5V工作電壓即可;GND為接地引腳,連接地線即可;Vout為模擬電壓輸岀引腳,此引腳輸岀的模擬電壓值為0.4-2.4V,相對應的距離圍是80-10cm。此引腳需要接入單片機處理模塊中的多路A/D轉換通道上的任意一路上。根據(jù)紅外傳感器的電壓和相對應的距離測量值可知,夏普GP2Y0A21系列的紅外傳感器輸岀曲線是非線性的,且每個型號的紅外傳感器輸岀曲線都不相同。所以對所使用紅外傳感器的矯正是必須要做的,創(chuàng)建岀一實測輸岀曲線圖,以便在實際測量的過程中獲得真實準確的測量數(shù)據(jù)。紅外測距系統(tǒng)的基本結構紅外測距系統(tǒng)主要有紅外測距傳感器模塊(包括紅外發(fā)射端和紅外接收端兩部分)、單片機處理模塊、LCD顯示模塊三大部分組成。如圖所示。第三章紅外測距的硬件設計紅外測距的實現(xiàn)構想為了實現(xiàn)紅外測距,在硬件設計中,我們使用紅外測距傳感器,它具有一對紅外信號發(fā)射與接收二極管,發(fā)射管發(fā)射特定頻率的紅外信號,接收管接收這種頻率的紅外信號,當紅外的檢測方向遇到障礙物時,紅外信號反射回來被接收管接收,經(jīng)過處理之后,通過數(shù)字傳感器接口經(jīng)過A/D轉換電路。將輸入單片機的模擬電壓信號Vout轉換為單片機可識別的數(shù)字信號,并經(jīng)過電壓距離轉換程序,轉換岀要測量的距離,最后在通過液晶顯示屏LCD1602顯示岀測量結果。

系統(tǒng)硬件結構電路整個紅外測距系統(tǒng)由AT89C52芯片、紅外測距傳感器、A/D轉換電路與LCD顯示器等構成。硬件結構電路圖如圖所示:單片機AT89C52左端分別接了開關、時鐘電路和復位電路,這是單片機AT89C52左端分別接了開關、時鐘電路和復位電路,這是T1TilftVCf:PO.D?)]J*TLiUT2EXPI.Lrl?rJJ?FO3Pt)JPI.4rJjFJJ&HZ、P06Fl11TXBB.LnJ.i■ALEP4Jj.roJ:>r4*呼1■■沁Til1&2|JUXJi*ri.DAL*nt-j.jWaKrjQri.?AL^ajj-j./-XTAUPO.iAiOAlGKD單片機最小的系統(tǒng)。XTAL1和XTAL2串連一個晶振,并且分別接上一個20p的電容,兩個電容另一端都接地,構成時鐘電路。單片機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。各硬件電路設計3.3.1復位電單片機小系統(tǒng)常采用上電自動復位和手動按鍵復位兩種方式實現(xiàn)系統(tǒng)的復位操作。上電復位要求接通電源后,自動實現(xiàn)復位操作。手動復位要求在電源接通的條件下,在單片機運行期間,用按鈕開關操作使單片機復位。其結構如下圖。上電自動復位通過電容C3充電來實現(xiàn)。R1燭」匕…… -;-rEXT>■; R210k -<TEXT>-時鐘電路單片機部具有一個高增益反相放大器,用于構成振蕩器。通常在引腳XTALI和XTAL2跨接石英晶體和兩個補償電容構成自激振蕩器,結構圖中X1、C1、C2??梢愿鶕?jù)情況選擇6MHz、12MHz或24MHz等頻率的石英晶體,補償電容通常選擇20pF左右的瓷片電容。 .20pF.<TEXT>C2■12M■ ■■<TEr>| 1.20pF.<TEXT>C2■12M■ ■■<TEr>| 1X11920pF 一3?3?3A/D轉換電路3?3?3A/D轉換電路A/D轉換電路如圖所示3.3.4LCD顯示電路CLKDOVREFCSIN-LCD1口川廣」LCD與單片機的接口電路如圖所示,單片機通過P0口向LCD輸送數(shù)據(jù),顯示測得的距離。值得注意的是,P0口要接上拉電阻來保證對LCD的成功驅(qū)動。第四章紅外測距的軟件設計4.1系統(tǒng)軟件結構框在整個系統(tǒng)運行過程中。當紅外系統(tǒng)被啟動后,首先,對AT89C52單片機進行初始化。然后,當AT89C52單片機接收到紅外接收電路傳輸?shù)碾妷盒盘柡?,?jīng)A/D轉換程序,將片外的模擬信號轉換為單片機可識別的數(shù)字信號,并經(jīng)電壓—距離轉換子程序,將變化的電壓轉換為距離。最后,在動態(tài)掃描LCD顯示器上顯示岀來?!浮姑螅╊玭‘;為距離。最后,在動態(tài)掃描LCD顯示器上顯示岀來。「」皿)瞰n‘;i屮惟c冷來)單■片機河町化LC顯示輸岀啊怏虻果軟件程序設計紅外測距系統(tǒng)軟件程序主要由主程序、AD轉換程序、延時函數(shù)、LCD顯示程序等等,在紅外測距系統(tǒng)硬件已經(jīng)確定的情況下,程序設計步驟為:1) 分析紅外測距系統(tǒng)功能,對已知條件及運算控制的要求進行掌握,準確地編寫出能完成規(guī)定任務的程序。2) 確定所需要函數(shù)及算法,根據(jù)系統(tǒng)設計要求及功能特點,選擇相應的解決方法。3) 設計系統(tǒng)工作流程圖,采用直觀的方式清晰地表達出程序的整體設計思想。4) 根據(jù)系統(tǒng)工作流程圖編寫源程序,對主函數(shù)及子函數(shù)的功能進行逐一分析,并寫出相應的程序。5) 調(diào)試源程序,將編好的程序通過編譯去除語法及功能上的錯誤,然后將程序燒入單片機中以達到最終要求。源代碼#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongsbitRS=P2"0;//LCD命令/數(shù)據(jù)端//LCD讀/寫端//LCD讀/寫端//LCD使能端//MCP3001與AT89S52的管腳接線定義//Busy標志//顯示CM"};//顯示代碼//顯示//顯示緩沖區(qū)//短延時//延時函數(shù)〃讀MCP3001//1602初始化函數(shù)//LCD忙標志判斷函數(shù)//寫數(shù)據(jù)子函數(shù)//寫命令子函數(shù)//距離計算函數(shù)sbitRW=P2"1;sbitLCDE=P2"2;sbitMCP_CS=P2"3;sbitMCP_D0=P2"4;sbitMCP_CLK=P2"5;uintmeasure;ucharflag;ucharcodedis[]={"MeasureStart"};ucharcodedis1[]={"V=.V,L=ucharcodedis2[]={"0123456789."};ucharcodedis3[]={"OutMeasure!"};uchardis_buf[8];voidL_delay(void);voiddelay_ms(uintn);uintread_MCP(void);voidinit_1602(void);voidbusy(void);voiddat_wrt(uchardat);voidcmd_wrt(ucharcmd);uintdistance(void);voidLCD_Clear(void);uchardat_adj(uintdat1);voidprint(uchar*str);voiddisp(uintdat);uintaverage(void);

//LCD清屏函數(shù)//顯示數(shù)據(jù)調(diào)整函數(shù)//字符串顯示函數(shù)//顯示子函數(shù)//算術平均濾波程序主函數(shù)*主函數(shù)*/**********************************************************main()init_1602();print(dis);//顯示測量開始delay_ms(1000);while(1){measure=distance();disp(measure);//顯示高度delay_ms(100);}}/**************************延時函數(shù)**************************/**************************延時函數(shù)**************************voiddelay_ms(uintn)uintj;while(n--)for(j=0;j<125;j++);/***************************短延時****************************/***************************短延時****************************voidL_delay(void){uchari;for(i=0;i<5;i++)_nop_();}uintread_MCP(void)/************************讀MCP3001函數(shù)/************************讀MCP3001函數(shù)*************************/////////////////////read_MCP采集的數(shù)據(jù)并轉換后的值//////////////////////{uchari;uinttemp=0;MCP_CS=1;L_delay();MCP_CS=0;〃cs置低,開始采樣數(shù)據(jù)for(i=0;i<13;i++)//讀轉換的10位數(shù)據(jù){

MCP_CLK=1;temp<<=1;if(MCP_DO==1)temp|=0x01;}MCP_CS=1;//獲取有效轉換值temp&=0x03ff;//獲取有效轉換值return(temp);/************************LCD忙標志判斷函數(shù)*******************/************************LCD忙標志判斷函數(shù)*******************voidbusy(void){flag=0x80;voidbusy(void){flag=0x80;while(flag&0x80){P0=0xff;RS=0;RW=1;LCDE=1;flag=P0;//賦初值高位為1禁止//讀寫操作使能位禁止時等待繼續(xù)檢測//指向地址計數(shù)器//讀//信號下降沿有效//讀狀態(tài)位元高位為狀態(tài)/************************寫數(shù)據(jù)子函數(shù)************************/************************寫數(shù)據(jù)子函數(shù)************************voiddat_wrt(uchardat){busy();//檢測讀寫操作使能嗎LCDE=0;RS=1;//指向數(shù)據(jù)寄存器RW=0;//寫P0=dat;//寫數(shù)據(jù)LCDE=1;//高電平有效LCDE=0;}/*************************寫命令子函數(shù)************************voidcmd_wrt(ucharcmd){LCDE=0;busy();//檢測讀寫操作使能嗎P0=cmd;//命令RS=0;//指向命令計數(shù)器RW=0;//寫LCDE=1;//高電平有效/***********************距離計算函數(shù)***************************/uintdistance(void){uinttemp1;temp1=average();/////////////////////////////////temp1平均數(shù)據(jù)轉換的距離//////////////////////////////if((temp1>60)&(temp1<960)) //在正常測量圍?{temp1=13569/(temp1+7)-4; //轉換測量數(shù)據(jù)}else{temp1=0x00ff;//超出測量圍,返回錯誤標志}return(temp1);/************************算術平均濾波程序**********************/************************算術平均濾波程序**********************uintaverage(void)uchari;uintav_dat;ulongave=0;for(i=0;i<10;i++)ulongave=0;for(i=0;i<10;i++){ave+=read_MCP();L_delay();}av_dat=(uint)(ave/10);//連續(xù)讀取10個數(shù)據(jù)值//讀轉換數(shù)據(jù)//求平均值return(av_dat);/*************************1602初始化函數(shù)************************/*************************1602初始化函數(shù)************************voidinit_1602(void){cmd_wrt(0x01);//清屏cmd_wrt(0x0c); //開顯示,不顯示游標,不閃爍cmd_wrt(0x06);//完成一個字符碼傳送后,光標左移,顯示不發(fā)生移位元cmd_wrt(0x38); 〃16x2顯示,5x7點陣,8位數(shù)據(jù)接口/************************設定顯示位置函數(shù)************************/************************設定顯示位置函數(shù)************************voidlcd_start(ucharstart)cmd_wrt(start|0x80);

/************************LCD清屏函數(shù)****************************voidLCD_Clear(void){cmd_wrt(0x01);//寫入清屏指令delay_ms(1);/************************顯示數(shù)據(jù)調(diào)整函數(shù)************************uchardat_adj(uintdat1)/////////////////////////////////dat1L/************************LCD清屏函數(shù)****************************voidLCD_Clear(void){cmd_wrt(0x01);//寫入清屏指令delay_ms(1);/************************顯示數(shù)據(jù)調(diào)整函數(shù)************************{uchari=0;uintdate;date=average()/2;dis_buf[0]=(uchar)(dat1/100);dis_buf[1]=(uchar)(dat1%100/10);dis_buf[2]=(uchar)(dat1%100%10);dis_buf[3]=date/100;dis_buf[4]=date%100/10;//////////////////////////////////////////百位//十位//////////////////////////////////////////百位//十位//個位if(dis_buf[0]==0)i=1;return(i);/**************************字符串顯示函數(shù)**************************/**************************字符串顯示函數(shù)**************************voidprint(uchar*str){while(*str!='\0')//直到字符串結束{dat_wrt(*str);str++;//指向下一個字符}}/***************************顯示子函數(shù)****************************voiddisp(uintdat){uchartemp,j;if(dat!=0x00ff){temp=dat_adj(dat);LCD_Clear();lcd_start(0x40);print(dis1);

dat_wrt(dis2[dis_buf[3]]);print(".");for(j=4;j<6;j++)dat_wrt(dis2[dis_buf[j]]);lcd_start(0x4B+temp);for(j=temp;j<3;j++)dat_wrt(dis2[dis_buf[j]]);}else{LCD_Clear();lcd_start(0x42+temp);print(dis3);}}//顯示文字//確定顯示起始位置//寫顯示數(shù)據(jù)//確定顯示起始位置第五章仿真測試//顯示文字//確定顯示起始位置//寫顯示數(shù)據(jù)//確定顯示起始位置5.1系統(tǒng)的軟件的調(diào)試仿真Proteus的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,可以給我們做電路設計提供方便快捷的仿真效果,讓我們事半功倍。調(diào)試主要方法和技巧:通常一個調(diào)試程序應該具備至少四種性能:跟蹤、斷點、查看變量、更改數(shù)值。整個程序是一個主程序調(diào)用各個子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個程序都能平穩(wěn)運行,各個模塊的子程序的正確與平穩(wěn)運行必不可少,所以在軟件調(diào)試的最初階段就是把各個子程序模塊進行分別調(diào)試。在硬件電路制作完成并調(diào)試好后,便可將程序編譯好下載到單片機試運行。這里我們使用Proteus軟件進行仿真,加載編譯好的.HEX文件到單片機后,點擊運行按鈕即可,仿真電路圖如下:--P13P1.4P1.5P1£P1.7P1.OJT2P1.1JT2EKAT?:E?游i>:P3L7JRD-Fl阿8P2inX9P22^10P2.d^12P25W13P2昭MP27rt15fl:lOflXODK1畑ffl沁i2赳漁0PO+AHJO+PflWD5Pfl&WBMIttDTPELOfi沁PS1iTMDPS24kifD~KSHWiTF34J1U

P3E/T1LCD1--Lwbltt''…RPt■=TExT=-O-K[<iqfiEF他IN-<^^0Wv|i:-TEJCTj.'第六章PCB圖及元器件清單6.1PCBGP2Y0A02YK元器件清單CommentDescriptc-nD^si^natcrin迪任事103LCDwMCUAT8SC5222pFci.a10uF12MCO助啦加按觀關KI自耐LI10KR11KR2MCP30D1U14HfL^iDataFaotprinlLibRefQudMilyKBCcrrporienLllh電世蛍1PCBCorrponenLl1PCBCompanentlSTC9OC511PCBCDmpanentl奩片電闿;PCBComfjoneaUlOuFJPC&Co咋jonentj晶扳JPCBtDmpanentl1PCBCcmpanentl按凰開關1PCBC<?mponfinLl1PCBC^mponentJ邑師豐壞JPCBC^mponentJ色環(huán)電用1PCBC^mparwntJMCP300L1PCECcmponant_l1PCBCcrrponentl1第七章課程設計任務分工及個人心得體會7.1任務分工201211911309谷幸東 整體設計及論文撰寫201211911310郭曉龍 用Proteus軟件仿真測試201211911311何志毅 PCB線路板設計201211911312胡健輝 軟件設計(代碼編寫)設計心得體會1)谷幸東在為期一周的單片機課程設計中,我在增長知識、提高能力的同時,產(chǎn)生了很深的感觸。從小組部初步定下方案到明確分工,從不斷的運行排錯到調(diào)試成功,在整個設計過程中,著實受益匪淺,不僅可以鞏固以前所學過的知識,而且學到了很多在書本上所沒有學到過的東西。在做本次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了。為了讓我們小組的設計更加完善,查閱這方面的設計資料是十分必要的,同時也是必不可少的。在設計的過程中難免會遇到各種各樣的問題,但是在這重重困難之中我了解到自己的真

溫馨提示

  • 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

提交評論