單片機(jī)控制的GPS定位系統(tǒng)設(shè)計(jì)_第1頁(yè)
單片機(jī)控制的GPS定位系統(tǒng)設(shè)計(jì)_第2頁(yè)
單片機(jī)控制的GPS定位系統(tǒng)設(shè)計(jì)_第3頁(yè)
單片機(jī)控制的GPS定位系統(tǒng)設(shè)計(jì)_第4頁(yè)
單片機(jī)控制的GPS定位系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 本 科 畢 業(yè) 設(shè) 計(jì)(論文)單片機(jī)控制的GPS定位系統(tǒng)設(shè)計(jì)The Design of GPS Positioning System ControlLCD By Single-Chip Microprocessor學(xué) 院(系): 計(jì)算機(jī)科學(xué)與技術(shù)系 專(zhuān) 業(yè): 通信工程 學(xué) 生 姓 名: 學(xué) 號(hào): xxxxxx 指 導(dǎo) 教 師(職稱(chēng)): (教授) 評(píng) 閱 教 師: 完 成 日 期: 2011年3月 (英文)單片機(jī)控制的GPS定位系統(tǒng)設(shè)計(jì)通信工程專(zhuān)業(yè) XXX摘要GPS技術(shù)在軍事、通訊、氣象、勘探、導(dǎo)航、遙感、大地測(cè)量、地球動(dòng)力以及天文等眾多學(xué)科領(lǐng)域得到極其廣泛的應(yīng)用,推動(dòng)了科學(xué)技術(shù)的迅猛發(fā)展,也

2、豐富了人類(lèi)的科學(xué)文化生活?,F(xiàn)在,GPS的外型設(shè)計(jì)已經(jīng)轉(zhuǎn)向便攜式發(fā)展,逐步踏入尋常百姓的生活中。所以,對(duì)GPS的研究具有十分重要的意義。 論文主要研究GPS的定位原理與技術(shù),單片機(jī)的編程及其應(yīng)用,液晶屏的功能及其實(shí)現(xiàn)方法。制作了一套設(shè)計(jì)方案,以軟、硬件相結(jié)合的方式完成整個(gè)GPS數(shù)據(jù)接收和顯示的過(guò)程。完成了一臺(tái)液晶顯示的手持式GPS定位接收設(shè)備,并依次顯示實(shí)時(shí)時(shí)間及所在地的經(jīng)緯度。該定位系統(tǒng)完成后,定位精度能達(dá)到15m,所以該裝置在測(cè)控領(lǐng)域的應(yīng)用開(kāi)發(fā)中具有一定的實(shí)用價(jià)值和借鑒價(jià)值。關(guān)鍵詞AT89C52單片機(jī);GPS;串口通信;LCD顯示The Design of GPS Positioning S

3、ystem ControlLCD By Single-Chip MicroprocessorCommunication Engineering Major LI Jun-JianAbstract: Global Positioning System technology get extremely comprehensive application at military,communications,meterology,exploration,navigation,remote sensing,earth survey, earth mover ,astronomy and other n

4、umerous subject field;let technology rapide development,also it makes human science culture life plentiful。 Now, Assistant Global Positioning System exterior design already change of direction to portable type,step by step enter comman peoples daily life。 Therefore, researching Assistant Global Posi

5、tioning System has very important meaning。Paper main research GPS position theory and technique,program and application of singlechip,the function and implement way。Make a set of design proposal,with soft to link hardware accomplish whole GPS information acceptance and evincive process。Accomplish on

6、e handheld GPS position receiving machine with Liquid crystal display,and display real time period and the location of latitude and longitude one by one。With the position system complete,the position precision can reach fifteen meters, so the system in measurement and control field application devel

7、opment have some practical worth and reference worth。Key words: AT89C52 SCM;GPS;Serial Port Communication; LCD display目 錄1 前言111 GPS前景112 GPS概述1121 控制任務(wù)2122 數(shù)據(jù)采集方案22 硬件設(shè)計(jì)321 整版設(shè)計(jì)322 電源模塊設(shè)計(jì)423 顯示模塊設(shè)計(jì)524 GPS數(shù)據(jù)模塊設(shè)計(jì)53 軟件設(shè)計(jì)731 主程序設(shè)計(jì)732 顯示驅(qū)動(dòng)程序933 硬件連接設(shè)置1034 LCD顯示工作模式1035 系統(tǒng)主程序1036 數(shù)據(jù)接收程序114 調(diào)試及性能分析1341 軟件

8、調(diào)試14411 目標(biāo)程序糾錯(cuò)14412 子程序功能調(diào)試14413 整體程序綜合調(diào)試1642 硬件調(diào)試18結(jié)束語(yǔ)21參考文獻(xiàn)21附錄一:(電路圖)22附錄二:(程序列表)23致謝321 前言11 GPS前景 由于GPS技術(shù)所具有的全天候、高精度和自動(dòng)測(cè)量的特點(diǎn),作為先進(jìn)的測(cè)量手段和新的生產(chǎn)力,已經(jīng)融入了國(guó)民經(jīng)濟(jì)建設(shè)、國(guó)防建設(shè)和社會(huì)發(fā)展的各個(gè)應(yīng)用領(lǐng)域。隨著冷戰(zhàn)結(jié)束和全球經(jīng)濟(jì)的蓬勃發(fā)展,美國(guó)政府宣布2000年至2006年期間,在保證美國(guó)國(guó)家安全不受威脅的前提下,取消SA政策,GPS民用信號(hào)精度在全球范圍內(nèi)得到改善,利用C/A碼進(jìn)行單點(diǎn)定位的精度由100米提高到20米,這將進(jìn)一步推動(dòng)GPS技術(shù)的應(yīng)用,

9、提高生產(chǎn)力、作業(yè)效率、科學(xué)水平以及人們的生活質(zhì)量,刺激GPS市場(chǎng)的增長(zhǎng)。據(jù)有關(guān)專(zhuān)家預(yù)測(cè),在美國(guó),單單是汽車(chē)GPS導(dǎo)航系統(tǒng),2000年后的市場(chǎng)將達(dá)到30億美元,而在我國(guó),汽車(chē)導(dǎo)航的市場(chǎng)也將達(dá)到50億元人民幣??梢?jiàn),GPS技術(shù)市場(chǎng)的應(yīng)用前景非??捎^。12 GPS概述廣義的GPS,包括美國(guó)GPS、歐洲伽利略、俄羅斯GLONASS、中國(guó)北斗等全球衛(wèi)星定位系統(tǒng),也稱(chēng)GNSS。狹義的GPS,即指美國(guó)的全球定位系統(tǒng)Global Positioning System,簡(jiǎn)稱(chēng)GPS。公眾常稱(chēng)的GPS,通常是指GPS系統(tǒng)的接收設(shè)備,如手持式GPS、汽車(chē)導(dǎo)航儀等。即全球定位系統(tǒng)(Global Positioning

10、System)。簡(jiǎn)單地說(shuō),這是一個(gè)由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個(gè)系統(tǒng)可以保證在任意時(shí)刻,地球上任意一點(diǎn)都可以同時(shí)觀測(cè)到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測(cè)點(diǎn)的經(jīng)緯度和高度,以便實(shí)現(xiàn)導(dǎo)航、定位、授時(shí)等功能。這項(xiàng)技術(shù)可以用來(lái)引導(dǎo)飛機(jī)、船舶、車(chē)輛以及個(gè)人,安全、準(zhǔn)確地沿著選定的路線,準(zhǔn)時(shí)到達(dá)目的地。全球定位系統(tǒng)(GPS)是20世紀(jì)70年代由美國(guó)陸??杖娐?lián)合研制的新一代空間衛(wèi)星導(dǎo)航定位系統(tǒng) 。其主要目的是為陸、海、空三大領(lǐng)域提供實(shí)時(shí)、 全天候和全球性的導(dǎo)航服務(wù),并用于情報(bào)收集、核爆監(jiān)測(cè)和應(yīng)急通訊等一些軍事目的,是美國(guó)獨(dú)霸全球戰(zhàn)略的重要組成。經(jīng)過(guò)20余年的研究實(shí)驗(yàn),耗資300億美元,到19

11、94年3月,全球覆蓋率高達(dá)98%的24顆GPS衛(wèi)星星座己布設(shè)完成。 GPS全球衛(wèi)星定位系統(tǒng)由三部分組成:空間部分GPS星座;地面控制部分地面監(jiān)控系統(tǒng);用戶設(shè)備部分GPS 信號(hào)接收機(jī)。GPS定位技術(shù)具有高精度、高效率和低成本的優(yōu)點(diǎn),使其在各類(lèi)大地測(cè)量控制網(wǎng)的加強(qiáng)改造和建立以及在公路工程測(cè)量和大型構(gòu)造物的變形測(cè)量中得到了較為廣泛的應(yīng)用。本設(shè)計(jì)是一個(gè)LCD1602電子液晶顯示屏顯示動(dòng)畫(huà)的設(shè)計(jì)。整機(jī)以ATMEL 公司生產(chǎn)的40腳單片機(jī)AT89C52為核心,介紹了以它為控制系統(tǒng)的LCD電子液晶顯示屏的動(dòng)態(tài)設(shè)計(jì)和開(kāi)發(fā)過(guò)程。該電子顯示屏內(nèi)部自帶了ASCII碼識(shí)別顯示控制電路部分,如果需要顯示一個(gè)西文字符,只

12、需要讓單片機(jī)給他輸入這個(gè)西文字符的ASCII碼即可。文中詳細(xì)介紹了LCD顯示的硬件設(shè)計(jì)思路、硬件電路各個(gè)部分的功能及原理、相應(yīng)軟件的程序設(shè)計(jì)。121 控制任務(wù)本設(shè)計(jì)采用AT89C52單片機(jī)為核心控制芯片,控制任務(wù)包括兩個(gè)部分:數(shù)據(jù)接受控制和顯示控制。:數(shù)據(jù)接收控制:51單片機(jī)內(nèi)部集成了串行口通信電路,本設(shè)計(jì)應(yīng)用這個(gè)電路接收外部數(shù)據(jù),其數(shù)據(jù)格式為八位數(shù)據(jù)+1位停止位。把接收到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)緩沖區(qū)。:顯示控制:利用51單片機(jī)的I/O端口控制LCD1602液晶顯示器顯示相應(yīng)信息;顯示之前先從緩沖區(qū)取出數(shù)據(jù),經(jīng)過(guò)CPU處理過(guò)后,送到LCD1620顯示需要信息。122 數(shù)據(jù)采集方案為了減少接收出錯(cuò)的問(wèn)

13、題,采集數(shù)據(jù)時(shí)使用串行口中斷數(shù)據(jù)接收方式。方案:直接接收,不論接收到的數(shù)據(jù)是什么,先把串行口發(fā)送過(guò)來(lái)的數(shù)據(jù)接收到數(shù)據(jù)緩沖區(qū)過(guò)后,再對(duì)數(shù)據(jù)進(jìn)行處理。GPS模塊為一種智能模塊,它每秒鐘會(huì)發(fā)出幾種數(shù)據(jù),包括:$GPGGA、$GPRMC、$PGRMV、$PGRMO、$PGRMC等數(shù)據(jù)格式。每個(gè)數(shù)據(jù)為1536個(gè)字節(jié)數(shù)據(jù),如果把每個(gè)數(shù)據(jù)都接收到單片機(jī)的緩沖區(qū),那么單片機(jī)就需要很大的數(shù)據(jù)存儲(chǔ)器RAM,這樣單片機(jī)內(nèi)部的RAM是不夠用的,更何況還有程序處理。所以這種數(shù)據(jù)采集的方案是不行的。方案:選擇接收,先判斷接收到的數(shù)據(jù)的格式,然后選擇需要的格式中的一些數(shù)據(jù)進(jìn)行存儲(chǔ)。這樣就大大的節(jié)余了RAM,解決RAM不夠用

14、的問(wèn)題。例如:接收$GPGGA格式數(shù)據(jù)的時(shí)間:前五次數(shù)據(jù)接收的時(shí)候先判斷數(shù)句格式(依次判斷接收到的數(shù)據(jù)是否先后為$、G、P、G、G、A),如果是,然后判斷接下來(lái)的逗號(hào)(,)是第幾個(gè)逗號(hào)。如果是第一個(gè),說(shuō)明接下來(lái)的數(shù)據(jù)是時(shí)間,如果是第二個(gè),說(shuō)明接下來(lái)的數(shù)據(jù)是緯度,依此類(lèi)推。本設(shè)計(jì)采用這種方案接收數(shù)據(jù)。方案比較:前者數(shù)據(jù)接收的方案雖然接收的方法簡(jiǎn)單,接收程序編寫(xiě)很容易,但是學(xué)要很大的RAM空間,設(shè)計(jì)時(shí)需要外加存儲(chǔ)器,程序編寫(xiě)時(shí)就得多寫(xiě)上數(shù)據(jù)存儲(chǔ)處理程序。這樣就大大的增加了開(kāi)發(fā)的諸多問(wèn)題,包括成本,開(kāi)發(fā)時(shí)間,試調(diào)難度等。后者數(shù)據(jù)接收方案比起前者來(lái)說(shuō)節(jié)約了不少的RAM,而且再數(shù)據(jù)接收前只需要先簡(jiǎn)單判斷

15、接收到的數(shù)據(jù)格式即可;而且減少了中斷處理的時(shí)間,讓給其它進(jìn)程工作。減少了開(kāi)發(fā)的成本和開(kāi)發(fā)時(shí)間,以及電路的復(fù)雜程度。所以本設(shè)計(jì)采用第二種數(shù)據(jù)接收的方案。2 硬件設(shè)計(jì)系統(tǒng)硬件部分電路大致上可以分成穩(wěn)壓電源、單片機(jī)小系統(tǒng)及外圍電路和LCD顯示屏電路三部分。電路為單片機(jī)89C52控制的GPS器件,實(shí)現(xiàn)定位系統(tǒng)數(shù)據(jù)的采集和現(xiàn)實(shí)。其中所使用的器件主要是3個(gè),打片機(jī)89C52、GPS模塊GARMIN GPS25以及LCD顯示模塊MGLS-12032A。在這里僅列出單片機(jī)和LCD接口部分電路的器件名稱(chēng)和相關(guān)的主要功能。l 89C52:LCD的控制器,控制字符的發(fā)送和點(diǎn)陣顯示的時(shí)序。l MAX202:TTL電平

16、和RS-232電平的轉(zhuǎn)換芯片。l LCD:液晶顯示模塊。在單片機(jī)的 控制下,按照要求的格式顯示接受到的數(shù)據(jù)。21 整版設(shè)計(jì)設(shè)計(jì)原理圖:電源串行口51單片機(jī)GPS模塊LCD1602以單片機(jī)為核心將GPS數(shù)據(jù)發(fā)送模塊,LCD1602顯示模塊系統(tǒng)的結(jié)合在一起形成一個(gè)整體,實(shí)現(xiàn)特定功能。22 電源模塊設(shè)計(jì)各個(gè)模塊的電源供電電壓均為5V,所以只需要設(shè)計(jì)5V單電源供電即可。設(shè)計(jì)采用穩(wěn)壓芯片LM7805做電源穩(wěn)壓核心。電路圖如下所示,輸入電壓為220v交流電,經(jīng)過(guò)變壓器降壓為9V交流電,再運(yùn)用二極管的單向?qū)щ娦詫?duì)9V交流電整流,使用二級(jí)管連接成整流槽,使電壓負(fù)電壓整流成正電壓。電容C1為濾波電容,讓電壓波紋

17、幅度減小,然后由LM7805集成穩(wěn)壓芯片將輸入電壓整流為5V穩(wěn)壓源。小電容C3,、C4為高頻信號(hào)濾除電容,改善負(fù)載的瞬態(tài)響應(yīng)。圖2-1 電源模塊電路圖23 顯示模塊設(shè)計(jì)由與本設(shè)計(jì)顯示需要顯示相應(yīng)的數(shù)據(jù)信息,包括相應(yīng)的西文字符,所以不采用數(shù)碼管顯示,采用帶西文字庫(kù)的LCD1602做顯示器,顯示電路如下圖2-2 液晶顯示電路圖電路中的可變電阻RV2最大阻值為1K,其作用為調(diào)節(jié)VEE輸入引腳的電壓,實(shí)現(xiàn)對(duì)LCD1602對(duì)比度的調(diào)節(jié)。LCD的數(shù)據(jù)端口的工作方式有兩種,一種為8數(shù)據(jù)線工作方式,另一種為4數(shù)據(jù)線工作方式。為了節(jié)余端口,本設(shè)計(jì)采用4數(shù)據(jù)線工作方式。每次向LCD寫(xiě)8為數(shù)據(jù)分兩次寫(xiě),先高位后低位

18、。24 GPS數(shù)據(jù)模塊GPS數(shù)據(jù)模塊不需要自己設(shè)計(jì),采用成品電路模塊做數(shù)據(jù)傳送。我們只需要設(shè)計(jì)GPS數(shù)據(jù)通行部分即可。GPGGA數(shù)據(jù)格式:$GPGGA,M,M,*xx$GPGGA:起始引導(dǎo)符及語(yǔ)句格式說(shuō)明(本句為GPS定位數(shù)據(jù)); :UTC時(shí)間,格式為hhmmss.ss; :緯度,格式為ddmm.mmm(第一位是零也將傳送); :緯度半球,N或S(北緯或南緯) :經(jīng)度,格式為dddmm.mmm(第一位零也將傳送); :經(jīng)度半球,E或W(東經(jīng)或西經(jīng)); :定位質(zhì)量指示,A 為有效位置, V為非有效接收警告,即當(dāng)前天線視野上方的衛(wèi)星個(gè)數(shù)少于3顆; :使用衛(wèi)星數(shù)量,從00到12(第一個(gè)零也將傳送);

19、 :水平精確度,0.0到99.9; :天線離海平面的高度,-9999.9到9999.9米; M :指單位米:大地水準(zhǔn)面高度,-9999.9到9999.9米; M :指單位米:差分GPS數(shù)據(jù)期限(RTCM SC-104),最后設(shè)立RTCM傳送的秒數(shù)量;:差分參考基站標(biāo)號(hào),從0000到1023(首位0也將傳送)。 * : 語(yǔ)句結(jié)束標(biāo)志符。 xx : 從$開(kāi)始到*之間的所有ASCII碼的異或校驗(yàn)和。: 回車(chē)。: 換行。GPS數(shù)據(jù)通信為232串口通信,在通信過(guò)程中就需要數(shù)據(jù)電平轉(zhuǎn)換,應(yīng)用到232通信電平轉(zhuǎn)換芯片MAX232,電路如下:圖2-3 MAX232電路在單片機(jī)串口收到信息后,先判別是否為語(yǔ)句引

20、導(dǎo)頭“$”,然后再接收信息內(nèi)容,在收到“*”字符ASC碼后再接收二個(gè)字節(jié)結(jié)束接收,然后根據(jù)語(yǔ)句標(biāo)識(shí)區(qū)分出信息類(lèi)別以對(duì)收到ASC碼進(jìn)行處理顯示。注意在處理北京時(shí)間時(shí)應(yīng)在UTC時(shí)間上加上8小時(shí)才是準(zhǔn)確的北京時(shí),在超出24小時(shí)時(shí)應(yīng)作減24小時(shí)處理。3 軟件設(shè)計(jì)本設(shè)計(jì)的主要功能是接收GPS模塊傳送的數(shù)據(jù),并顯示出相應(yīng)的數(shù)據(jù)信息,包括當(dāng)?shù)貢r(shí)間、緯度、經(jīng)度以及高度。數(shù)據(jù)接收部分,采用串行口中斷接收數(shù)據(jù)。顯示部分就采用一個(gè)I/O口控制LCD1602顯示相應(yīng)的信息。31 主程序設(shè)計(jì)系統(tǒng)主程序的總體結(jié)構(gòu)如圖3-1所示。系統(tǒng)的主程序開(kāi)始以后,首先是對(duì)系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時(shí)器、中斷,LCD1602初始化

21、;然后LCD顯示屏進(jìn)入開(kāi)機(jī)狀態(tài),顯示開(kāi)機(jī)信息(LCD_log),轉(zhuǎn)入正常的顯示,并接收數(shù)據(jù),每次顯示兩串字符。接著由于單片機(jī)沒(méi)有停機(jī)指令,所以可以設(shè)置系統(tǒng)程序不斷地循環(huán)執(zhí)行數(shù)據(jù)信息顯示。系統(tǒng)程序結(jié)構(gòu)屬中斷方式,絕大多數(shù)功能在中斷服務(wù)子程序中完成。根據(jù)總體結(jié)構(gòu),可將程序劃分為幾個(gè)功能化模塊:串行口中斷服務(wù)程序、顯示子程序、掃描程序。各個(gè)模塊可進(jìn)行獨(dú)立設(shè)計(jì)、調(diào)試和查錯(cuò),最終再連接成一個(gè)整體。開(kāi)始系統(tǒng)初始化顯示開(kāi)機(jī)信息顯示數(shù)據(jù)信息圖3-1 系統(tǒng)主程序的總體結(jié)構(gòu)系統(tǒng)主程序的總體結(jié)構(gòu)如圖3-1所示,首先是系統(tǒng)初始化,然后是顯示開(kāi)機(jī)信息,最后根據(jù)系統(tǒng)接收到的信息綜合處理,得到數(shù)據(jù)顯示到顯示屏上。NY進(jìn)入中

22、斷清除接收中斷標(biāo)志位退出中斷數(shù)據(jù)格式判斷不符合置標(biāo)志位符合數(shù)據(jù)接收標(biāo)志位01數(shù)據(jù)接收完畢清除標(biāo)志圖3-2 數(shù)據(jù)接收程序流程圖32 顯示驅(qū)動(dòng)程序void LCD_check_busy(void); /忙檢查void LCD_cls(void); /清屏void LCD_write_data(unsigned char); /寫(xiě)數(shù)據(jù)void LCD_write_instruction(unsigned char); /寫(xiě)指令void LCD_set_position(unsigned char); /設(shè)置光標(biāo)位置void LCD_initial(void); /LCD1602初始化void LCD

23、_printc(unsigned char); /輸出單個(gè)字符void LCD_prints(unsigned char *);/輸出字符串void LCD_log(void);/開(kāi)機(jī)信息顯示void LCD_show(void);/信息顯示 void delay(unsigned char);/延時(shí)33 硬件連接設(shè)置#define LCD_DATA P2 /LCD的數(shù)據(jù)口#define LCD_BUSY LCD_DATA7; /LCD忙信號(hào)位sbit LCD_RS=P20; /LCD寄存器選擇sbit LCD_RW=P21; /LCD讀寫(xiě)控制sbit LCD_EN=P22; /LCD使能信號(hào)

24、寄存器選擇位RS,當(dāng)RS=1時(shí)選擇數(shù)據(jù)寄存器DDRAM。 當(dāng)RS=0時(shí)選擇指令寄存器CDRAM。讀寫(xiě)選擇位RW,當(dāng)RS=1時(shí)讀數(shù)據(jù)寄存器。 當(dāng)RS=0時(shí)寫(xiě)數(shù)據(jù)或指令到寄存器。讀寫(xiě)使能信號(hào)EN,當(dāng)EN=1時(shí)讀取數(shù)據(jù)。當(dāng)EN為下降沿是為寫(xiě)數(shù)據(jù)或指令。檢測(cè)LCD是否在處理其它數(shù)據(jù)而處于忙狀態(tài)時(shí),則讀取忙狀態(tài)信號(hào)位,當(dāng)RS=0,RW=1,E=1時(shí),LCD會(huì)輸出八位數(shù)據(jù),其中最高位DB7為忙狀態(tài)位(LCD_busy_flag),若為1,表示LCD處于忙狀態(tài),為0表示LCD空閑。34 LCD顯示工作方式/* 初始化LCD */void LCD_initial(void) LCD_write_instruc

25、tion(LCD_DISPLAY_DOUBLE_LINE); /單行顯示,4數(shù)據(jù)線LCD_write_instruction(LCD_AC_AUTO_INCREMENT | LCD_MOVE_DISENABLE); /光標(biāo)自動(dòng)+1,關(guān)閉自動(dòng)移動(dòng)顯示LCD_write_instruction(LCD_DISPLAY_ON | LCD_CURSOR_OFF | LCD_CURSOR_BLINK_OFF);/顯示開(kāi)、光標(biāo)顯示關(guān)、光標(biāo)閃爍關(guān) LCD_cls( );/清屏35 系統(tǒng)主程序/*/void main()TMOD=0x20;/初始化串口TL1 =0xfa;TH1 =0xfa;/4800波特率S

26、CON=0x50;/工作方式1:八位異步通信,允許接收PCON=0x00;/波特率加倍關(guān)IE=0x90;/打開(kāi)總中斷EA,和串行口中斷ESTR1=1;/開(kāi)啟啟動(dòng)定時(shí)器1LCD_initial( );/LCD1602初始化LCD_log( );/顯示開(kāi)機(jī)信息 while(1) LCD_show( );/除了數(shù)據(jù)接收狀態(tài),一直處理顯示 在串口通信中需要設(shè)置串口通信的數(shù)據(jù)傳輸速度,及波特率,設(shè)置定時(shí)器的溢出率即可,晶振為11。0592MHz,當(dāng)TL1 =0xfa;,TH1 =0xfa時(shí)為4800kbps波特率。計(jì)算公式為:T0初值X=2TMOD特殊功能寄存器為定時(shí)器計(jì)數(shù)器工作方式寄存器,前四位控制定

27、時(shí)器1,后四位控制定時(shí)器0;本設(shè)計(jì)采用定時(shí)器1,工作方式2(八位自動(dòng)重裝載,N=8),SCON為串行口數(shù)據(jù)通信控制特殊寄存器,高三位為工作方式控制位,本設(shè)計(jì)采用工作方式1,8位數(shù)據(jù)異步通信。D4位為接收允許控制位,本設(shè)計(jì)要采用串行口中斷接收GPGGA數(shù)據(jù),所以該為置1。IE為中斷允許控制特殊寄存器,本設(shè)計(jì)要打開(kāi)串行口中斷和總中斷。36 數(shù)據(jù)接收程序/*串行口中斷子程序*/RI=0;/軟件清除中斷標(biāo)志位,串行口中斷需要軟件清零,去除中斷標(biāo)志進(jìn)入中斷過(guò)后要先判斷接收數(shù)據(jù)的格式,否則會(huì)出現(xiàn)亂接收數(shù)據(jù),出現(xiàn)接收到的數(shù)據(jù)不對(duì)的問(wèn)題,先判斷是否接收到GPGGA格式語(yǔ)句的第一個(gè)字符“$”,其ASCII碼為0

28、x24,收到后,繼續(xù)判斷格式是不是為GPGGA,分五次中斷判斷,如果是,開(kāi)始記錄數(shù)據(jù)并設(shè)置記錄標(biāo)志(read_start),否則退出數(shù)據(jù)接收中斷,程序設(shè)計(jì)如下:if(SBUF=$)/判斷是不是$符號(hào)flag1=1;/接收到$,起始字符igps=0;/記錄緯度數(shù)據(jù)字符數(shù)量的變量Num_comma=0;/記錄逗號(hào)數(shù)量的變量 else flag1=0;if(SBUF=G)&(flag1=1)flag2=1;else flag2=0;if(SBUF=P)&(flag2=1)flag3=1;else flag3=0;if(SBUF=G)&(flag3=1)flag4=1; else flag4=0;if

29、(SBUF=G)&(flag4=1)flag5=1;else flag5=0;if(SBUF=A)&(flag5=1)read_start=1;/開(kāi)始接收數(shù)據(jù) else read_start=0通過(guò)上述格式判斷后,說(shuō)明接下來(lái)的數(shù)據(jù)就是所需要的GPGGA格式數(shù)據(jù),然后選擇所需要的數(shù)據(jù)接收并存到緩存區(qū),每個(gè)數(shù)據(jù)都是以逗號(hào)隔開(kāi)的,我們只需要判斷該逗號(hào)是第幾個(gè)逗號(hào)就可以知道后面來(lái)的數(shù)據(jù)是表示說(shuō)明含義。程序設(shè)計(jì)如下if(read_start=1)/開(kāi)始接收GPGGA中的數(shù)據(jù)信息,(SBUF=,)/利用GPRMC數(shù)據(jù)中的逗號(hào)間隔,區(qū)分接收到/的數(shù)據(jù)表示的信息 Num_comma+;/記錄逗號(hào)個(gè)數(shù),標(biāo)志數(shù)據(jù)

30、的意義if(Num_comma=1)/接收時(shí)間,時(shí)分秒格式 data_tempigps=SBUF;igps+;/接收到的數(shù)據(jù)個(gè)數(shù)加1if(Num_comma=2)/接收接收緯度,ddmm.mmm格式data_tempigps=SBUF; igps+;if(Num_comma=4)/接收經(jīng)度,ddmm.mmm格式data_tempigps=SBUF; igps+;if(Num_comma=10)/海拔高度:099999.9if(SBUF!=M)/為節(jié)約RAM空間,不接收M字符 data_tempigps=SBUF;igps+;判斷這一幀數(shù)據(jù)是否接收完畢,每一個(gè)數(shù)據(jù)格式都是以 * 符號(hào)結(jié)束的,當(dāng)接

31、收到 * 號(hào)時(shí)表示這一幀數(shù)據(jù)已經(jīng)發(fā)送完畢。程序設(shè)計(jì)如下:if(SBUF=*)/判斷是否收到GPRMC格式語(yǔ)句的字符“*”,/如果是,則表示接收完畢,開(kāi)始處理for(i=0;iigps;i+)data_tempigps=dis_tempigps;/數(shù)據(jù)放到顯示緩沖區(qū)/返回初值;標(biāo)識(shí)結(jié)束一次接收完畢read_start=0;Num_comma=0;igps=0;4 調(diào)試及性能分析一個(gè)單片機(jī)系統(tǒng)經(jīng)過(guò)總體設(shè)計(jì),在允許的條件下,根據(jù)本設(shè)計(jì)系統(tǒng)的需求性首先采用在PC機(jī)上用模擬開(kāi)發(fā)軟件進(jìn)行檢測(cè)和調(diào)試,再進(jìn)行硬件的組裝與調(diào)試。41 軟件調(diào)試軟件調(diào)試采用Proteus 7.1、操作系統(tǒng)Windows xp,在P

32、C機(jī)上對(duì)目標(biāo)電路原理圖和程序進(jìn)行檢測(cè)和調(diào)試。4。1。1 目標(biāo)程序糾錯(cuò)圖4-1目標(biāo)程序調(diào)試412 子程序功能調(diào)試程序設(shè)計(jì)通常采用模塊程序設(shè)計(jì),調(diào)試時(shí)可對(duì)一個(gè)個(gè)子程序分別進(jìn)行調(diào)試,設(shè)置好入口條件,然后采用單步運(yùn)行或斷點(diǎn)運(yùn)行方式,檢查系統(tǒng)CPU現(xiàn)場(chǎng)、RAM和I/O口狀態(tài),看程序執(zhí)行結(jié)果符合設(shè)計(jì)要求。圖4-2 子程序功能調(diào)試分步編譯C51程序,通過(guò)一系列的調(diào)試,驗(yàn)證各個(gè)子程序的正確性。并從項(xiàng)目工程的角度綜合調(diào)試,調(diào)試整個(gè)項(xiàng)目,如圖4-3所示:圖4-3 生成HEX文件在調(diào)試成功順利編譯之后,通過(guò)一系列設(shè)置,生成HEX目標(biāo)文件,4-4所示:圖4-4 生成HEX文件413 整體程序綜合調(diào)試即把各子程序整體連

33、起來(lái)進(jìn)入到綜合電路調(diào)試,能實(shí)現(xiàn)預(yù)計(jì)的功能顯示。圖4-5整體測(cè)試用軟件仿真調(diào)試和修改完畢,下一步焊接硬件進(jìn)行硬調(diào)試。圖4-6 運(yùn)行仿真電路42硬件調(diào)試焊接硬件,檢查線路連接正確無(wú)誤。硬件調(diào)試環(huán)境,電源輸入220V交流電,輸出4。98V直流電,給電路板接通4。98V直流電源。調(diào)試過(guò)程如以下幾圖所示。在7號(hào)樓6樓的計(jì)算機(jī)硬件實(shí)驗(yàn)室里,借助實(shí)驗(yàn)板等設(shè)備仿真與調(diào)試,由于是第一次啟動(dòng),所以系統(tǒng)整體反應(yīng)較慢,如圖4-7:圖4-7 冷啟動(dòng)界面待系統(tǒng)運(yùn)行一段時(shí)間之后,單片機(jī)與GPS模塊之間進(jìn)行數(shù)據(jù)的處理,把處理所得的信息按照預(yù)定格式顯示在數(shù)據(jù)窗口內(nèi),如圖4-8所示:圖4-8 啟動(dòng)一段時(shí)間之后待系統(tǒng)運(yùn)行穩(wěn)定后,各

34、個(gè)預(yù)定數(shù)據(jù)正常顯示,如圖4-9所示,界面顯示搜索接收到9顆衛(wèi)星所發(fā)出的GPS信號(hào),并顯示當(dāng)前日期為2011/04/08,時(shí)間為11:35:21,經(jīng)緯度為東經(jīng):1123237,南緯325810等信息,基本上滿足預(yù)先設(shè)計(jì)的結(jié)果。圖4-9 仿真運(yùn)行界面信息通過(guò)不斷的調(diào)試、排錯(cuò),系統(tǒng)處于穩(wěn)定正常接收出路數(shù)據(jù)狀態(tài),如圖4-10所示,整體接收界面良好,系統(tǒng)運(yùn)行穩(wěn)定,每隔1秒數(shù)據(jù)窗口連續(xù)滾動(dòng)實(shí)時(shí)顯示GPS接收到的數(shù)據(jù)信息。圖4-10 整體仿真運(yùn)行效果結(jié)束語(yǔ)以上僅對(duì)LCD顯示屏的結(jié)構(gòu)和驅(qū)動(dòng)、顯示電路原理作一詳細(xì)介紹和分析。由于自己知識(shí)水平的局限和時(shí)間的倉(cāng)促,設(shè)計(jì)中或還存在著一些不足,我真誠(chéng)的接受老師們的批評(píng)和

35、指正。從課題選擇、方案論證到具體設(shè)計(jì),每一步對(duì)我來(lái)說(shuō)無(wú)疑是巨大的嘗試和挑戰(zhàn),我不斷地給自己提出新的問(wèn)題,然后去論證、推翻,在這個(gè)往復(fù)的過(guò)程中,我這篇稚嫩的設(shè)計(jì)日趨完善。每一次改進(jìn)我都收獲良多,雖然我的設(shè)計(jì)作品不是很成熟,而且借鑒了前人的很多資料,但我仍然心里有一種莫大的幸福感,因?yàn)槲覍?shí)實(shí)在在地走過(guò)了一個(gè)完整的設(shè)計(jì)所應(yīng)該走的每一個(gè)過(guò)程,并且享受了每一個(gè)過(guò)程,更重要的是這個(gè)設(shè)計(jì)中我加入了自己鮮活的思想。在做這次畢業(yè)設(shè)計(jì)過(guò)程中使我學(xué)到了很多,加深了對(duì)單片機(jī)、集成模塊、LCD液晶顯示屏和C語(yǔ)言的理解,驗(yàn)證了所學(xué)理論知識(shí),提高了基本的解決實(shí)際問(wèn)題的能力,并增加了對(duì)電子設(shè)計(jì)方面的興趣。希望這次的經(jīng)歷能讓我

36、在以后的工作和生活中不斷成長(zhǎng)與進(jìn)步。 參考文獻(xiàn)1 周?chē)?guó)運(yùn)。單片機(jī)原理及應(yīng)用(C語(yǔ)言版)。北京:中國(guó)水利水電出版社,20102 邱致和,王萬(wàn)義。 GPS原理與應(yīng)用。北京:電子工業(yè)出版社,2001 3 51單片機(jī)接收GPS數(shù)據(jù)的算法與實(shí)現(xiàn)。 淮安:淮安信息職業(yè)技術(shù)學(xué)院,20084 王丙祥,李建海。 基于89C52的GPS板電路設(shè)計(jì)與實(shí)現(xiàn)。西安文理學(xué)院學(xué)報(bào)(自然科學(xué)版),20075 衛(wèi)星接收模組使用手冊(cè)。長(zhǎng)天科技股份有限公司6 聶榮。實(shí)例解析PCB設(shè)計(jì)技巧-基于Protel DXP。 北京:機(jī)械工業(yè)出版社, 20067 王惠南。 GPS導(dǎo)航原理與應(yīng)用。北京:科學(xué)出版社,20038 洪大永。GPS全球

37、定位系統(tǒng)技術(shù)及其應(yīng)用。廈門(mén):廈門(mén)大學(xué)出版社,19989 李征航??臻g定位技術(shù)及應(yīng)用。武漢:武漢大學(xué)出版社,200310 李洪濤,許國(guó)昌,薛鴻印。GPS應(yīng)用程序設(shè)計(jì)。 北京:科學(xué)出版社,199911 錢(qián)天爵,翟學(xué)林。GPS全球定位系統(tǒng)及其應(yīng)用。北京:海潮出版社,199412 王廣運(yùn),郭秉義,李洪濤。差分GPS定位技術(shù)與應(yīng)用。北京:電子工業(yè)出版社,1996附錄一:(電路圖)系統(tǒng)電路圖附錄二:(程序列表)程序清單:程序文件一:GPSrecive.c#includeunsigned char Num_comma=0;/逗號(hào)紀(jì)錄數(shù)bit read_start=0;/開(kāi)始接收數(shù)據(jù)標(biāo)志位unsigned c

38、har *data_temp= ;/數(shù)據(jù)緩存區(qū)unsigned char *dis_temp=.5;/顯數(shù)據(jù)unsigned char i,igps=0;/igps紀(jì)錄接收次數(shù),以表示存儲(chǔ)在數(shù)組中的位置bit flag1=0,flag2=0,flag3=0,flag4=0,flag5=0;/接收標(biāo)志位:GPGGA#define START$/字符串開(kāi)始#define END*/字符串結(jié)束void LCD_show( )unsigned char i;LCD_set_position(0);LCD_prints(Time- );for(i=0;i2;i+) LCD_printc(dis_temp

39、i);LCD_printc(:);for(i=2;i4;i+) LCD_printc(dis_tempi);LCD_printc(:);for(i=4;i6;i+) LCD_printc(dis_tempi);LCD_set_position(0x40);LCD_prints(Latit:);for(i=6;i15;i+) LCD_printc(dis_tempi);LCD_printc(*);delay(200);delay(200);LCD_cls();LCD_set_position(0);LCD_prints(Longi:);for(i=15;i24;i+) LCD_printc(di

40、s_tempi);LCD_printc(*);LCD_set_position(0x40);LCD_prints(High : );for(i=24;i31;i+) LCD_printc(dis_tempi);LCD_prints(M);delay(255);delay(200);/*串行口中斷子程序*/void serial() interrupt 4RI=0;/軟件清除中斷標(biāo)志位/判斷是否接收到字符“$”,ASCII碼為0x24,收到后開(kāi)始繼續(xù)數(shù)據(jù)并置標(biāo)志/record=1;if(SBUF=$)/判斷是不是$符號(hào)flag1=1;/開(kāi)始接收數(shù)據(jù),計(jì)數(shù)變量初始化(清零);igps=0;/記錄緯

41、度數(shù)據(jù)字符數(shù)量的變量Num_comma=0;/記錄逗號(hào)數(shù)量的變量else flag1=0; /判斷讀取格式是不是GPGGA格式if(SBUF=G)&(flag1=1)flag2=1; else flag2=0;if(SBUF=P)&(flag2=1)flag3=1; else flag3=0;if(SBUF=G)&(flag3=1)flag4=1; else flag4=0;if(SBUF=G)&(flag4=1)flag5=1; else flag5=0;if(SBUF=A)&(flag5=1)read_start=1; else read_start=0;if(read_start=1)/

42、開(kāi)始處理GPRMC中的數(shù)據(jù)信息,if(SBUF=,)/利用GPGGA數(shù)據(jù)中的逗號(hào)間隔,判斷數(shù)據(jù)信息Num_comma+;/記錄逗號(hào)個(gè)數(shù),標(biāo)志數(shù)據(jù)的意義if(Num_comma=1)/接收時(shí)間,時(shí)分秒格式data_tempigps=SBUF;/將字符放入字符串/“data_temp”中igps+;if(Num_comma=2)/接收接收緯度,ddmm.mmmm格式data_tempigps=SBUF;igps+;if(Num_comma=4)/接收精度,ddmm.mmmm格式data_tempigps=SBUF;igps+;if(Num_comma=10)/海拔高度:099999.9if(SBU

43、F!=M)/不接受M單位數(shù)據(jù),節(jié)省資源data_tempigps=SBUF;igps+;if(SBUF=*)/判斷是否收到字符“*”,是,則結(jié)束接收,/開(kāi)始處理for(i=0;iigps;i+)data_tempigps=dis_tempigps;/返回初值;標(biāo)識(shí)結(jié)束一次接收完畢Num_comma=0;read_start=0;igps=0;/*/void main()TMOD=0x20;/初始化串口TL1 =0xfd;TH1 =0xfd;/4800波特率SCON=0x50;/工作方式1:八位異步通信,允許接收PCON=0x00;/波特率加倍關(guān)IE=0x90;/打開(kāi)總中斷EA,和串行口中斷ES

44、TR1=1;/開(kāi)啟啟動(dòng)定時(shí)器1LCD_initial();LCD_log();/開(kāi)機(jī)顯示信息while(1)LCD_show();程序文件二:LCD1602.c#include header.hvoid LCD_check_busy(void) UCHAR DH;/高字節(jié) do /分兩次寫(xiě),每次寫(xiě)四位,先高位后低位 LCD_RS=0; LCD_RW=1; LCD_EN=0; LCD_EN=1; _nop_(); _nop_(); DH = LCD_DATA & 0xF0; LCD_EN=0; LCD_RW=0; LCD_RW=1; LCD_EN=1; _nop_(); _nop_(); LCD

45、_EN=0; while (DH & 0x80);void LCD_write_instruction(unsigned char LCD_instruction) LCD_DATA&= 0x0F; LCD_DATA|= (LCD_instruction & 0xF0);LCD_RS=0; LCD_RW=0; LCD_EN=0;LCD_EN=1;_nop_();_nop_();LCD_EN=0; LCD_DATA&= 0x0F; LCD_DATA|= (LCD_instruction 4);LCD_EN=1;_nop_();_nop_();LCD_EN=0;LCD_check_busy();/

46、* 輸出一個(gè)字節(jié)數(shù)據(jù)到LCD */void LCD_write_data(unsigned char LCD_data) LCD_DATA&= 0x0F; LCD_DATA|= (LCD_data & 0xF0);/ Get the most significant nibble first。 LCD_RS=1;LCD_RW=0; LCD_EN=0; / Specify a data1 write operation。 LCD_EN=1; _nop_();_nop_();LCD_EN=0; LCD_DATA&= 0x0F; LCD_DATA|= (LCD_data 4); / Repeat f

47、or least significant nibble。 LCD_EN=0; LCD_EN=1;_nop_();_nop_();LCD_EN=0; LCD_check_busy(); /* LCD清屏 */void LCD_cls(void) LCD_write_instruction(1);/* LCD光標(biāo)定位到x處 */ void LCD_set_position(unsigned char x) LCD_write_instruction(0x88); LCD_write_instruction(0x80|x);/* 輸出一個(gè)字符到LCD */void LCD_printc(unsign

48、ed char lcd_data) LCD_write_data(lcd_data);/* 輸出一個(gè)字符串到LCD */void LCD_prints(unsigned char *lcd_string) unsigned char i=0; while(lcd_stringi!=0x00)/是否到了最后-0 LCD_write_data(lcd_stringi); i+; /* 初始化LCD */void LCD_initial(void) LCD_write_instruction(LCD_DISPLAY_DOUBLE_LINE);LCD_write_instruction(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE); LCD_write_instruction(LCD_DISPLAY_ON|LCD_CURSOR_OFF|LCD_CURSOR_BLINK_OFF);LCD_cls();/* 開(kāi)機(jī)顯示信息 */void LCD_log(void)unsigned char i;LCD_set_position(0x40);LCD_prints(Wellcome! GPS); delay(250);LCD_cls();LCD_se

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論