GPS液晶顯示定位系統(tǒng)(單片機(jī)論文)_第1頁(yè)
GPS液晶顯示定位系統(tǒng)(單片機(jī)論文)_第2頁(yè)
GPS液晶顯示定位系統(tǒng)(單片機(jī)論文)_第3頁(yè)
GPS液晶顯示定位系統(tǒng)(單片機(jī)論文)_第4頁(yè)
GPS液晶顯示定位系統(tǒng)(單片機(jī)論文)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1GPSGPS 液晶顯示定位系統(tǒng)液晶顯示定位系統(tǒng)摘要摘要GPS 技術(shù)在軍事、通訊、氣象、勘探、導(dǎo)航、遙感、大地測(cè)量、地球動(dòng)力以及天文等眾多學(xué)科領(lǐng)域得到極其廣泛的應(yīng)用,推動(dòng)了科學(xué)技術(shù)的迅猛發(fā)展,也豐富了人類的科學(xué)文化生活。現(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ù)接收和顯示的過程。完成了一臺(tái)液晶顯示的手持式 GPS 定位接收設(shè)備,并依次顯示實(shí)時(shí)時(shí)間及所在地的經(jīng)緯度。該定位系統(tǒng)

2、完成后,定位精度能達(dá)到15m,所以該裝置在測(cè)控領(lǐng)域的應(yīng)用開發(fā)中具有一定的實(shí)用價(jià)值和借鑒價(jià)值。 SUBTRACTION Global Positioning System technology get extremely comprehensive application at military,communications,meterology,exploration,navigation,remote sensing,earth survey, earth mover ,astronomy and other numerous subject field;let technology rap

3、ide 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 Positioning System has very important meanin

4、g.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 one handheld GPS position receiving machin

5、e 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 development have some practical worth and ref

6、erence worth. 【關(guān)鍵詞】 AT89S52 單片機(jī), GPS,串口通信,波特率。2 目錄目錄摘要摘要 .2第一章第一章 硬件設(shè)計(jì)硬件設(shè)計(jì) .62.12.1 整版設(shè)計(jì)整版設(shè)計(jì).62.22.2 電源模塊設(shè)計(jì)電源模塊設(shè)計(jì).62.32.3 顯示模塊設(shè)計(jì)顯示模塊設(shè)計(jì).62.42.4 GPSGPS 數(shù)據(jù)模塊數(shù)據(jù)模塊.7第二章第二章 軟件設(shè)計(jì)軟件設(shè)計(jì) .83.1 主主程程序序設(shè)設(shè)計(jì)計(jì) .83.3 硬件連接設(shè)置硬件連接設(shè)置.93.4 LCD 顯示工作方式顯示工作方式.93.5 系統(tǒng)主程序系統(tǒng)主程序.93.6 數(shù)據(jù)接收程序數(shù)據(jù)接收程序.10第三章第三章 調(diào)試及性能分析調(diào)試及性能分析 .124.1 軟

7、件調(diào)試軟件調(diào)試.124.2 硬件調(diào)試硬件調(diào)試.12結(jié)束語結(jié)束語 .13參考文獻(xiàn)參考文獻(xiàn) .14附錄一(電路圖)附錄一(電路圖) .15附錄二(程序列表)附錄二(程序列表) .163 前言前言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)一

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

9、導(dǎo)航儀等。即全球定位系統(tǒng)( Global Positioning System)。簡(jiǎn)單地說,這是一個(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ù)可以用來引導(dǎo)飛機(jī)、船舶、車輛以及個(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)急通訊等一些軍事

10、目的,是美國(guó)獨(dú)霸全球戰(zhàn)略的重要組成。經(jīng)過20 余年的研究實(shí)驗(yàn),耗資 300 億美元,到 1994 年 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),使其在各類大地測(cè)量控制網(wǎng)的加強(qiáng)改造和建立以及在公路工程測(cè)量和大型構(gòu)造物的變形測(cè)量中得到了較為廣泛的應(yīng)用。4緒緒論論本設(shè)計(jì)是一個(gè) LCD1602 電子液晶顯示屏顯示動(dòng)畫的設(shè)計(jì)。整機(jī)以 ATMEL 公司生產(chǎn)的 40 腳單片機(jī) AT89S52 為核心,介紹了

11、以它為控制系統(tǒng)的 LCD 電子液晶顯示屏的動(dòng)態(tài)設(shè)計(jì)和開發(fā)過程。該電子顯示屏內(nèi)部自帶了 ASCII 碼識(shí)別顯示控制電路部分,如果需要顯示一個(gè)西文字符,只需要讓單片機(jī)給他輸入這個(gè)西文字符的 ASCII 碼即可。文中詳細(xì)介紹了 LCD 顯示的硬件設(shè)計(jì)思路、硬件電路各個(gè)部分的功能及原理、相應(yīng)軟件的程序設(shè)計(jì)??刂迫蝿?wù)控制任務(wù),本設(shè)計(jì)采用 AT89s52 單片機(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ī)的

12、 I/O 端口控制 LCD1602 液晶顯示器顯示相應(yīng)信息;顯示之前先從緩沖區(qū)取出數(shù)據(jù),經(jīng)過 CPU 處理過后,送到LCD1620 顯示需要信息。 數(shù)據(jù)采集方案,數(shù)據(jù)采集方案,為了減少接收出錯(cuò)的問題,采集數(shù)據(jù)時(shí)使用串行口中斷數(shù)據(jù)接收方式。方案方案:直接接收,不論接收到的數(shù)據(jù)是什么,先把串行口發(fā)送過來的數(shù)據(jù)接收到數(shù)據(jù)緩沖區(qū)過后,再對(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,

13、這樣單片機(jī)內(nèi)部的RAM 是不夠用的,更何況還有程序處理。所以這種數(shù)據(jù)采集的方案是不行的。方案方案:選擇接收,先判斷接收到的數(shù)據(jù)的格式,然后選擇需要的格式中的一些數(shù)據(jù)進(jìn)行存儲(chǔ)。這樣就大大的節(jié)余了 RAM,解決 RAM 不夠用的問題。例如:接收$GPGGA 格式數(shù)據(jù)的時(shí)間:前五次數(shù)據(jù)接收的時(shí)候先判斷數(shù)句格式(依次判斷接收到的數(shù)據(jù)是否先后為$、 G、 P、 G、 G、 A) ,如果是,然后判斷接下來的逗號(hào)(, )是第幾個(gè)逗號(hào)。如果是第一個(gè),說明接下來的數(shù)據(jù)是時(shí)間,如果是第二個(gè),說明接下來的數(shù)據(jù)是緯度,依此類推。本設(shè)計(jì)采用這種方案接收數(shù)據(jù)。方案比較:方案比較:前者數(shù)據(jù)接收的方案雖然接收的方法簡(jiǎn)單,接收

14、程序編寫很容易,但是學(xué)要很大的 RAM 空間,設(shè)計(jì)時(shí)需要外加存儲(chǔ)器,程序編寫時(shí)就得多寫上數(shù)據(jù)存儲(chǔ)處理程序。這樣就大大的增加了開發(fā)的諸多問題,包括成本,開發(fā)時(shí)間,試調(diào)難度等。后者數(shù)據(jù)接收方案比起前者來說節(jié)約了不少的 RAM,而且再數(shù)據(jù)接收前只需要先簡(jiǎn)單判斷接收到的數(shù)據(jù)格式即可;而且減少了中斷處理的時(shí)間,讓給其它進(jìn)程工作。減少了開發(fā)的成本和開發(fā)時(shí)間,以及電路的復(fù)雜程度。所以本設(shè)計(jì)采用第二種數(shù)據(jù)接收的方案。5電源第一章第一章 硬件設(shè)計(jì)硬件設(shè)計(jì)系統(tǒng)硬件部分電路大致上可以分成穩(wěn)壓電源、單片機(jī)小系統(tǒng)及外圍電路和LCD 顯示屏電路五部分。2.12.1 整版設(shè)計(jì)整版設(shè)計(jì)設(shè)計(jì)原理圖:串行口51單片機(jī)GPS模塊L

15、CD1602以單片機(jī)為核心將 GPS 數(shù)據(jù)發(fā)送模塊,LCD1602 顯示模塊系統(tǒng)的結(jié)合在一起形成一個(gè)整體,實(shí)現(xiàn)特定功能。2.22.2 電源模塊設(shè)計(jì)電源模塊設(shè)計(jì)各個(gè)模塊的電源供電電壓均為 5V,所以只需要設(shè)計(jì) 5V 單電源供電即可。設(shè)計(jì)采用穩(wěn)壓芯片 LM7805 做電源穩(wěn)壓核心。電路圖如下所示,輸入電壓為220v 交流電,經(jīng)過變壓器降壓為 9V 交流電,再運(yùn)用二極管的單向?qū)щ娦詫?duì) 9V交流電整流,使用二級(jí)管連接成整流槽,使電壓負(fù)電壓整流成正電壓。電容 C1為濾波電容,讓電壓波紋幅度減小,然后由 LM7805 集成穩(wěn)壓芯片將輸入電壓整流為 5V 穩(wěn)壓源。小電容 C3, 、C4 為高頻信號(hào)濾除電容,

16、改善負(fù)載的瞬態(tài)響應(yīng)。2.32.3 顯示模塊設(shè)計(jì)顯示模塊設(shè)計(jì)由與本設(shè)計(jì)顯示需要顯示相應(yīng)的數(shù)據(jù)信息,包括相應(yīng)的西文字符,所以不采用數(shù)碼管顯示,采用帶西文字庫(kù)的 LCD1602 做顯示器,顯示電路如6電路中的可變電阻 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寫 8 為數(shù)據(jù)分兩次寫,先高位后低位。2.42.4 GPSGPS 數(shù)據(jù)模塊數(shù)據(jù)模塊GPS 數(shù)據(jù)模塊不需要自己設(shè)計(jì),采用成品電路模塊做數(shù)

17、據(jù)傳送。我們只需要設(shè)計(jì) GPS 數(shù)據(jù)通行部分即可。GPGGA 數(shù)據(jù)格式:$GPGGA,M,M,*xx$GPGGA:起始引導(dǎo)符及語句格式說明(本句為 GPS 定位數(shù)據(jù)); :UTC 時(shí)間,格式為 hhmmss.sss; :緯度,格式為 ddmm.mmmm(第一位是零也將傳送); :緯度半球,N 或 S(北緯或南緯) :經(jīng)度,格式為 dddmm.mmmm(第一位零也將傳送); :經(jīng)度半球,E 或 W(東經(jīng)或西經(jīng)) :定位質(zhì)量指示,0=定位無效,1=定位有效; :使用衛(wèi)星數(shù)量,從 00 到 12(第一個(gè)零也將傳送) :水平精確度,0.5 到 99.9 :天線離海平面的高度,-9999.9 到 999

18、9.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 也將傳送)。 * : 語句結(jié)束標(biāo)志符 xx : 從$開始到*之間的所有 ASCII 碼的異或校驗(yàn)和: 回車: 換行GPS 數(shù)據(jù)通信為 232 串口通信,在通信過程中就需要數(shù)據(jù)電平轉(zhuǎn)換,應(yīng)用到 232 通信電平轉(zhuǎn)換芯片 MAX232,電路如下:7圖 3-1 系統(tǒng)主程序的總體結(jié)構(gòu)開 始系統(tǒng)初始化顯示開機(jī)信息顯示數(shù)據(jù)信息NY圖 3-2 數(shù)據(jù)接收程序流程圖進(jìn)入中斷清除

19、接收中斷標(biāo)志位退出中斷數(shù)據(jù)格式判斷不符合置標(biāo)志位符合數(shù)據(jù)接收標(biāo)志位01數(shù)據(jù)接收完畢清除標(biāo)志第二章第二章 軟件設(shè)計(jì)軟件設(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)的信息。3.1 主主程程序序設(shè)設(shè)計(jì)計(jì)系統(tǒng)主程序的總體結(jié)構(gòu)如圖所示。系統(tǒng)的主程序開始以后,首先是對(duì)系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時(shí)器、中斷,LCD1602 初始化;然后 LCD 顯示屏進(jìn)入開機(jī)狀態(tài),顯示開機(jī)信息(LCD_log) ,轉(zhuǎn)入正常的顯示,并接收數(shù)據(jù),每次顯示兩串字符。

20、接著由于單片機(jī)沒有停機(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è)整體。3.2 顯示驅(qū)動(dòng)程序顯示驅(qū)動(dòng)程序void LCD_check_busy(void); /忙檢查void LCD_cls(void); /清屏void LCD_write_data(unsigned char); /寫數(shù)據(jù)void LCD_write_instruction(unsigned char); /寫指令8vo

21、id LCD_set_position(unsigned char); /設(shè)置光標(biāo)位置void LCD_initial(void); /LCD1602 初始化void LCD_printc(unsigned char); /輸出單個(gè)字符void LCD_prints(unsigned char *);/輸出字符串void LCD_log(void);/開機(jī)信息顯示void LCD_show(void);/信息顯示 void delay(unsigned char);/延時(shí)3.3 硬件連接設(shè)置硬件連接設(shè)置#define LCD_DATA P2 /LCD 的數(shù)據(jù)口#define LCD_BUSY

22、LCD_DATA7; /LCD 忙信號(hào)位sbit LCD_RS=P20; /LCD 寄存器選擇sbit LCD_RW=P21; /LCD 讀寫控制sbit LCD_EN=P22; /LCD 使能信號(hào)寄存器選擇位 RS,當(dāng) RS=1 時(shí)選擇數(shù)據(jù)寄存器 DDRAM。1 當(dāng) RS=0 時(shí)選擇指令寄存器 CDRAM。讀寫選擇位 RW,當(dāng) RS=1 時(shí)讀數(shù)據(jù)寄存器。2 當(dāng) RS=0 時(shí)寫數(shù)據(jù)或指令到寄存器。讀寫使能信號(hào) E,當(dāng) E=1 時(shí)讀取數(shù)據(jù)。3當(dāng) E 為下降沿是為寫數(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ù)

23、據(jù),其中最高位 DB7 為忙狀態(tài)位(LCD_busy_flag) ,若為 1,表示 LCD 處于忙狀態(tài),為 0 表示 LCD 空閑。3.4 LCD 顯示工作方式顯示工作方式/* 初始化 LCD */void LCD_initial(void) LCD_write_instruction(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

24、 | LCD_CURSOR_OFF | LCD_CURSOR_BLINK_OFF); /顯示開、光標(biāo)顯示關(guān)、光標(biāo)閃爍關(guān) LCD_cls( );/清屏3.5 系統(tǒng)主程序系統(tǒng)主程序/*/void main()TMOD=0 x20;/初始化串口TL1 =0 xfa;TH1 =0 xfa;/4800 波特率SCON=0 x50;/工作方式 1:八位異步通信,允許接收PCON=0 x00;/波特率加倍關(guān)IE=0 x90;/打開總中斷 EA,和串行口中斷 ES9TR1=1;/開啟啟動(dòng)定時(shí)器 1LCD_initial( );/LCD1602 初始化LCD_log( );/顯示開機(jī)信息while(1) LCD

25、_show( );/除了數(shù)據(jù)接收狀態(tài),一直處理顯示在串口通信中需要設(shè)置串口通信的數(shù)據(jù)傳輸速度,及波特率,設(shè)置定時(shí)器的溢出率1即可,晶振為 11.0592MHz,當(dāng) TL1 =0 xfa;,TH1 =0 xfa 時(shí)為 4800kbps 波特率。計(jì)算公式為:T0 初值 X=2N機(jī)周時(shí)間定時(shí)時(shí)間Xf25612/X256T1osc計(jì)數(shù)速率的溢出率定時(shí)器)256(12322SMODXfosc波特率TMOD 特殊功能寄存器為定時(shí)器計(jì)數(shù)器工作方式寄存器,前四位控制定時(shí)器 1,后2四位控制定時(shí)器 0;本設(shè)計(jì)采用定時(shí)器 1,工作方式 2(八位自動(dòng)重裝載,N=8) ,SCON 為串行口數(shù)據(jù)通信控制特殊寄存器,高三

26、位為工作方式控制位,本設(shè)計(jì)采用3工作方式 1,8 位數(shù)據(jù)異步通信。D4 位為接收允許控制位,本設(shè)計(jì)要采用串行口中斷接收GPGGA 數(shù)據(jù),所以該為置 1。IE 為中斷允許控制特殊寄存器,本設(shè)計(jì)要打開串行口中斷和總中斷。43.6 數(shù)據(jù)接收程序數(shù)據(jù)接收程序/*串行口中斷子程序*/RI=0;/軟件清除中斷標(biāo)志位,串行口中斷需要軟件清零,去除中斷標(biāo)志 1進(jìn)入中斷過后要先判斷接收數(shù)據(jù)的格式,否則會(huì)出現(xiàn)亂接收數(shù)據(jù),出現(xiàn)接收到的數(shù)據(jù)不 2對(duì)的問題,先判斷是否接收到 GPGGA 格式語句的第一個(gè)字符“$”,其 ASCII 碼為0 x24,收到后,繼續(xù)判斷格式是不是為 GPGGA,分五次中斷判斷,如果是,開始記錄

27、數(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;10 else flag4=0;if(SBUF=G)&(flag4=1)flag

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

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

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

31、us 7.1、操作系統(tǒng) Windows xp,在 PC 機(jī)上對(duì)目標(biāo)電路原理圖和程序進(jìn)行檢測(cè)和調(diào)試。一 目標(biāo)程序糾錯(cuò)軟件仿真結(jié)果: 程序正確無誤。二 子程序功能調(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ì)要求。三 整體程序綜合調(diào)試即把各子程序整體連起來進(jìn)入到綜合電路調(diào)試,能實(shí)現(xiàn)預(yù)計(jì)的功能顯示用軟件仿真調(diào)試和修改完畢,下一步焊接硬件進(jìn)行硬調(diào)試。4.2 硬件調(diào)試硬件調(diào)試焊接硬件,檢查線路連接正確無誤。硬件調(diào)試環(huán)境,電源輸入 220V 交流電,輸出 4.98

32、V 直流電,給電路板接通4.98V 直流電源。12結(jié)束語結(jié)束語以上僅對(duì)LCD顯示屏的結(jié)構(gòu)和驅(qū)動(dòng)、顯示電路原理作一詳細(xì)介紹和分析。由于自己知識(shí)水平的局限和時(shí)間的倉(cāng)促,設(shè)計(jì)中或還存在著一些不足,我真誠(chéng)的接受老師們的批評(píng)和指正.。從課題選擇、方案論證到具體設(shè)計(jì),每一步對(duì)我來說無疑是巨大的嘗試和挑戰(zhàn),我不斷地給自己提出新的問題,然后去論證、推翻,在這個(gè)往復(fù)的過程中,我這篇稚嫩的設(shè)計(jì)日趨完善。每一次改進(jìn)我都收獲良多,雖然我的設(shè)計(jì)作品不是很成熟,而且借鑒了前人的很多資料,但我仍然心里有一種莫大的幸福感,因?yàn)槲覍?shí)實(shí)在在地走過了一個(gè)完整的設(shè)計(jì)所應(yīng)該走的每一個(gè)過程,并且享受了每一個(gè)過程,更重要的是這個(gè)設(shè)計(jì)中我加

33、入了自己鮮活的思想。在做這次畢業(yè)設(shè)計(jì)過程中使我學(xué)到了很多,加深了對(duì)單片機(jī)、集成模塊、LCD 液晶顯示屏和 C 語言的理解,驗(yàn)證了所學(xué)理論知識(shí),提高了基本的解決實(shí)際問題的能力,并增加了對(duì)電子設(shè)計(jì)方面的興趣。希望這次的經(jīng)歷能讓我在以后的工作和生活中不斷成長(zhǎng)與進(jìn)步。 就此作結(jié)!13參考文獻(xiàn)1. 求是科技 編著 單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航 人民郵電出版社 2004 年第一版2. 求是科技 編著 單片機(jī)典型外圍器件及其應(yīng)用實(shí)例 人民郵電出版社 2006 年第二版3. 高峰 編著 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)及使用技術(shù) 機(jī)械工業(yè)出版社2004 年第一版4. 賴麒文 編著 8051 單片機(jī) C 語言徹底應(yīng)用 科學(xué)出版

34、社2002 年第一版5. 李光飛 婁然苗 胡佳文 謝象佐 編著單片機(jī)課程設(shè)計(jì)實(shí)例指 北京航空航天大學(xué)出版社 2004 年第一版6. 周靖武 周靈彬 編著 單片機(jī)系統(tǒng)的 Proteus設(shè)計(jì)與仿真 電子工業(yè)出版社 2007 年第一版7. 張毅剛 主編 單片機(jī)原理及應(yīng)用 高等教育出版社 2003 年第一版8. 張志良 主編 單片機(jī)原理及控制技術(shù) (第 2 版) 北京機(jī)械工業(yè)出版社,20059. 李全利 編著 :?jiǎn)纹瑱C(jī)原理及接口技術(shù) (第 2 版) 北京:高等教育出版社,200410.徐仁貴 主編 :微型計(jì)算機(jī)接口技術(shù)及應(yīng)用 北京:機(jī)械工業(yè)出版社,199814附錄一(電路圖)系統(tǒng)電路圖15附錄二(程序

35、列表)附錄二(程序列表)程序清單:程序文件一:程序文件一:GPSrecive.c#includeunsigned char Num_comma=0;/逗號(hào)紀(jì)錄數(shù)bit read_start=0;/開始接收數(shù)據(jù)標(biāo)志位unsigned char *data_temp= ;/數(shù)據(jù)緩存區(qū)unsigned char *dis_temp=0139250056.25680014.256901203.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)志位

36、:GPGGA#define START$/字符串開始#define END*/字符串結(jié)束void LCD_show( )unsigned char i;LCD_set_position(0);LCD_prints(Time- );for(i=0;i2;i+) LCD_printc(dis_tempi);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(0 x40);LCD_prints(Latit:);for

37、(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(dis_tempi);LCD_printc(*);LCD_set_position(0 x40);LCD_prints(High : );for(i=24;i31;i+) LCD_printc(dis_tempi);LCD_prints(M);delay(255);delay(200);/*串行口中斷子

38、程序*/void serial() interrupt 4RI=0;/軟件清除中斷標(biāo)志位/判斷是否接收到字符“$”,ASCII 碼為 0 x24,收到后開始繼續(xù)數(shù)據(jù)并置標(biāo)志 record=1;if(SBUF=$)/判斷是不是$符號(hào)16flag1=1;/開始接收數(shù)據(jù),計(jì)數(shù)變量初始化(清零) ;igps=0;/記錄緯度數(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;

39、 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)/開始處理 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=SB

40、UF;/將字符放入字符串“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)/海拔高度:0-99999.9if(SBUF!=M)/不接受 M 單位數(shù)據(jù),節(jié)省資源data_tempigps=SBUF;igps+;if(SBUF=*)/判斷是否收到字符“*” ,是,則結(jié)束接收,開始處理for(i=0;iigps;i+)data_tempigps=di

41、s_tempigps;/返回初值;標(biāo)識(shí)結(jié)束一次接收完畢Num_comma=0;17read_start=0;igps=0;/*/void main()TMOD=0 x20;/初始化串口TL1 =0 xfd;TH1 =0 xfd;/4800 波特率SCON=0 x50;/工作方式 1:八位異步通信,允許接收PCON=0 x00;/波特率加倍關(guān)IE=0 x90;/打開總中斷 EA,和串行口中斷 ESTR1=1;/開啟啟動(dòng)定時(shí)器 1LCD_initial();LCD_log();/開機(jī)顯示信息while(1)LCD_show();程序文件二:程序文件二:LCD1602.cLCD1602.c#incl

42、ude header.hvoid LCD_check_busy(void) UCHAR DH;/高字節(jié) do /分兩次寫,每次寫四位,先高位后低位 LCD_RS=0; LCD_RW=1; LCD_EN=0; LCD_EN=1; _nop_(); _nop_(); DH = LCD_DATA & 0 xF0; LCD_EN=0; LCD_RW=0; LCD_RW=1; LCD_EN=1; _nop_(); _nop_(); LCD_EN=0; while (DH & 0 x80);void LCD_write_instruction(unsigned char LCD_instr

43、uction) 18 LCD_DATA&= 0 x0F; LCD_DATA|= (LCD_instruction & 0 xF0);LCD_RS=0; LCD_RW=0; LCD_EN=0;LCD_EN=1;_nop_();_nop_();LCD_EN=0; LCD_DATA&= 0 x0F; LCD_DATA|= (LCD_instruction 4);LCD_EN=1;_nop_();_nop_();LCD_EN=0;LCD_check_busy();/* 輸出一個(gè)字節(jié)數(shù)據(jù)到 LCD */void LCD_write_data(unsigned char LCD_d

44、ata) LCD_DATA&= 0 x0F; LCD_DATA|= (LCD_data & 0 xF0);/ 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&= 0 x0F; LCD_DATA|= (LCD_data 4); / Repeat for least significant nibble. LCD_EN=0; LC

45、D_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(0 x88); LCD_write_instruction(0 x80|x);/* 輸出一個(gè)字符到 LCD */void LCD_printc(unsigned char lcd_data) LCD_write_data(l

46、cd_data);/* 輸出一個(gè)字符串到 LCD */void LCD_prints(unsigned char *lcd_string) unsigned char i=0; while(lcd_stringi!=0 x00)/是否到了最后-0 LCD_write_data(lcd_stringi); i+; 19/* 初始化 LCD */void LCD_initial(void) LCD_write_instruction(LCD_DISPLAY_DOUBLE_LINE);LCD_write_instruction(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISEN

47、ABLE); LCD_write_instruction(LCD_DISPLAY_ON|LCD_CURSOR_OFF|LCD_CURSOR_BLINK_OFF);LCD_cls();/* 開機(jī)顯示信息 */void LCD_log(void)unsigned char i;LCD_set_position(0 x40); LCD_prints(Wellcome! GPS); delay(250);LCD_cls();LCD_set_position(0);LCD_prints(Now!Let me see );LCD_set_position(0 x40); LCD_prints(where your are!);delay(250);delay(250);for(i=0;i1;i+)LCD_cls();LCD_set_position(0); LCD_prints(Please waite!);LCD_set_position(0 x40);LCD_prints(Receiving);delay(250);LCD_cls();LCD_set_position(0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論