版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 本 科 畢 業(yè) 設 計(論文)單片機控制的gps定位系統(tǒng)設計the design of gps positioning system controllcd by single-chip microprocessor學 院(系): 計算機科學與技術系 專 業(yè): 通信工程 學 生 姓 名: 學 號: xxxxxx 指 導 教 師(職稱): (教授) 評 閱 教 師: 完 成 日 期: 2011年3月 (英文)單片機控制的gps定位系統(tǒng)設計通信工程專業(yè) xxx摘要gps技術在軍事、通訊、氣象、勘探、導航、遙感、大地測量、地球動力以及天文等眾多學科領域得到極其廣泛的應用,推動了科學技術的迅猛發(fā)展,也
2、豐富了人類的科學文化生活?,F在,gps的外型設計已經轉向便攜式發(fā)展,逐步踏入尋常百姓的生活中。所以,對gps的研究具有十分重要的意義。 論文主要研究gps的定位原理與技術,單片機的編程及其應用,液晶屏的功能及其實現方法。制作了一套設計方案,以軟、硬件相結合的方式完成整個gps數據接收和顯示的過程。完成了一臺液晶顯示的手持式gps定位接收設備,并依次顯示實時時間及所在地的經緯度。該定位系統(tǒng)完成后,定位精度能達到15m,所以該裝置在測控領域的應用開發(fā)中具有一定的實用價值和借鑒價值。關鍵詞at89c52單片機;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 控制任務2122 數據采集方案22 硬件設計321 整版設計322 電源模塊設計423 顯示模塊設計524 gps數據模塊設計53 軟件設計731 主程序設計732 顯示驅動程序933 硬件連接設置1034 lcd顯示工作模式1035 系統(tǒng)主程序1036 數據接收程序114 調試及性能分析1341 軟件
8、調試14411 目標程序糾錯14412 子程序功能調試14413 整體程序綜合調試1642 硬件調試18結束語21參考文獻21附錄一:(電路圖)22附錄二:(程序列表)23致謝321 前言11 gps前景 由于gps技術所具有的全天候、高精度和自動測量的特點,作為先進的測量手段和新的生產力,已經融入了國民經濟建設、國防建設和社會發(fā)展的各個應用領域。隨著冷戰(zhàn)結束和全球經濟的蓬勃發(fā)展,美國政府宣布2000年至2006年期間,在保證美國國家安全不受威脅的前提下,取消sa政策,gps民用信號精度在全球范圍內得到改善,利用c/a碼進行單點定位的精度由100米提高到20米,這將進一步推動gps技術的應用,
9、提高生產力、作業(yè)效率、科學水平以及人們的生活質量,刺激gps市場的增長。據有關專家預測,在美國,單單是汽車gps導航系統(tǒng),2000年后的市場將達到30億美元,而在我國,汽車導航的市場也將達到50億元人民幣??梢姡琯ps技術市場的應用前景非??捎^。12 gps概述廣義的gps,包括美國gps、歐洲伽利略、俄羅斯glonass、中國北斗等全球衛(wèi)星定位系統(tǒng),也稱gnss。狹義的gps,即指美國的全球定位系統(tǒng)global positioning system,簡稱gps。公眾常稱的gps,通常是指gps系統(tǒng)的接收設備,如手持式gps、汽車導航儀等。即全球定位系統(tǒng)(global positioning
10、system)。簡單地說,這是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個系統(tǒng)可以保證在任意時刻,地球上任意一點都可以同時觀測到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點的經緯度和高度,以便實現導航、定位、授時等功能。這項技術可以用來引導飛機、船舶、車輛以及個人,安全、準確地沿著選定的路線,準時到達目的地。全球定位系統(tǒng)(gps)是20世紀70年代由美國陸??杖娐摵涎兄频男乱淮臻g衛(wèi)星導航定位系統(tǒng) 。其主要目的是為陸、海、空三大領域提供實時、 全天候和全球性的導航服務,并用于情報收集、核爆監(jiān)測和應急通訊等一些軍事目的,是美國獨霸全球戰(zhàn)略的重要組成。經過20余年的研究實驗,耗資300億美元,到19
11、94年3月,全球覆蓋率高達98%的24顆gps衛(wèi)星星座己布設完成。 gps全球衛(wèi)星定位系統(tǒng)由三部分組成:空間部分gps星座;地面控制部分地面監(jiān)控系統(tǒng);用戶設備部分gps 信號接收機。gps定位技術具有高精度、高效率和低成本的優(yōu)點,使其在各類大地測量控制網的加強改造和建立以及在公路工程測量和大型構造物的變形測量中得到了較為廣泛的應用。本設計是一個lcd1602電子液晶顯示屏顯示動畫的設計。整機以atmel 公司生產的40腳單片機at89c52為核心,介紹了以它為控制系統(tǒng)的lcd電子液晶顯示屏的動態(tài)設計和開發(fā)過程。該電子顯示屏內部自帶了ascii碼識別顯示控制電路部分,如果需要顯示一個西文字符,只
12、需要讓單片機給他輸入這個西文字符的ascii碼即可。文中詳細介紹了lcd顯示的硬件設計思路、硬件電路各個部分的功能及原理、相應軟件的程序設計。121 控制任務本設計采用at89c52單片機為核心控制芯片,控制任務包括兩個部分:數據接受控制和顯示控制。:數據接收控制:51單片機內部集成了串行口通信電路,本設計應用這個電路接收外部數據,其數據格式為八位數據+1位停止位。把接收到的數據存儲到數據緩沖區(qū)。:顯示控制:利用51單片機的i/o端口控制lcd1602液晶顯示器顯示相應信息;顯示之前先從緩沖區(qū)取出數據,經過cpu處理過后,送到lcd1620顯示需要信息。122 數據采集方案為了減少接收出錯的問
13、題,采集數據時使用串行口中斷數據接收方式。方案:直接接收,不論接收到的數據是什么,先把串行口發(fā)送過來的數據接收到數據緩沖區(qū)過后,再對數據進行處理。gps模塊為一種智能模塊,它每秒鐘會發(fā)出幾種數據,包括:$gpgga、$gprmc、$pgrmv、$pgrmo、$pgrmc等數據格式。每個數據為1536個字節(jié)數據,如果把每個數據都接收到單片機的緩沖區(qū),那么單片機就需要很大的數據存儲器ram,這樣單片機內部的ram是不夠用的,更何況還有程序處理。所以這種數據采集的方案是不行的。方案:選擇接收,先判斷接收到的數據的格式,然后選擇需要的格式中的一些數據進行存儲。這樣就大大的節(jié)余了ram,解決ram不夠用
14、的問題。例如:接收$gpgga格式數據的時間:前五次數據接收的時候先判斷數句格式(依次判斷接收到的數據是否先后為$、g、p、g、g、a),如果是,然后判斷接下來的逗號(,)是第幾個逗號。如果是第一個,說明接下來的數據是時間,如果是第二個,說明接下來的數據是緯度,依此類推。本設計采用這種方案接收數據。方案比較:前者數據接收的方案雖然接收的方法簡單,接收程序編寫很容易,但是學要很大的ram空間,設計時需要外加存儲器,程序編寫時就得多寫上數據存儲處理程序。這樣就大大的增加了開發(fā)的諸多問題,包括成本,開發(fā)時間,試調難度等。后者數據接收方案比起前者來說節(jié)約了不少的ram,而且再數據接收前只需要先簡單判斷
15、接收到的數據格式即可;而且減少了中斷處理的時間,讓給其它進程工作。減少了開發(fā)的成本和開發(fā)時間,以及電路的復雜程度。所以本設計采用第二種數據接收的方案。2 硬件設計系統(tǒng)硬件部分電路大致上可以分成穩(wěn)壓電源、單片機小系統(tǒng)及外圍電路和lcd顯示屏電路三部分。電路為單片機89c52控制的gps器件,實現定位系統(tǒng)數據的采集和現實。其中所使用的器件主要是3個,打片機89c52、gps模塊garmin gps25以及l(fā)cd顯示模塊mgls-12032a。在這里僅列出單片機和lcd接口部分電路的器件名稱和相關的主要功能。l 89c52:lcd的控制器,控制字符的發(fā)送和點陣顯示的時序。l max202:ttl電平
16、和rs-232電平的轉換芯片。l lcd:液晶顯示模塊。在單片機的 控制下,按照要求的格式顯示接受到的數據。21 整版設計設計原理圖:電源串行口51單片機gps模塊lcd1602以單片機為核心將gps數據發(fā)送模塊,lcd1602顯示模塊系統(tǒng)的結合在一起形成一個整體,實現特定功能。22 電源模塊設計各個模塊的電源供電電壓均為5v,所以只需要設計5v單電源供電即可。設計采用穩(wěn)壓芯片lm7805做電源穩(wěn)壓核心。電路圖如下所示,輸入電壓為220v交流電,經過變壓器降壓為9v交流電,再運用二極管的單向導電性對9v交流電整流,使用二級管連接成整流槽,使電壓負電壓整流成正電壓。電容c1為濾波電容,讓電壓波紋
17、幅度減小,然后由lm7805集成穩(wěn)壓芯片將輸入電壓整流為5v穩(wěn)壓源。小電容c3,、c4為高頻信號濾除電容,改善負載的瞬態(tài)響應。圖2-1 電源模塊電路圖23 顯示模塊設計由與本設計顯示需要顯示相應的數據信息,包括相應的西文字符,所以不采用數碼管顯示,采用帶西文字庫的lcd1602做顯示器,顯示電路如下圖2-2 液晶顯示電路圖電路中的可變電阻rv2最大阻值為1k,其作用為調節(jié)vee輸入引腳的電壓,實現對lcd1602對比度的調節(jié)。lcd的數據端口的工作方式有兩種,一種為8數據線工作方式,另一種為4數據線工作方式。為了節(jié)余端口,本設計采用4數據線工作方式。每次向lcd寫8為數據分兩次寫,先高位后低位
18、。24 gps數據模塊gps數據模塊不需要自己設計,采用成品電路模塊做數據傳送。我們只需要設計gps數據通行部分即可。gpgga數據格式:$gpgga,m,m,*xx$gpgga:起始引導符及語句格式說明(本句為gps定位數據); :utc時間,格式為hhmmss.ss; :緯度,格式為ddmm.mmm(第一位是零也將傳送); :緯度半球,n或s(北緯或南緯) :經度,格式為dddmm.mmm(第一位零也將傳送); :經度半球,e或w(東經或西經); :定位質量指示,a 為有效位置, v為非有效接收警告,即當前天線視野上方的衛(wèi)星個數少于3顆; :使用衛(wèi)星數量,從00到12(第一個零也將傳送);
19、 :水平精確度,0.0到99.9; :天線離海平面的高度,-9999.9到9999.9米; m :指單位米:大地水準面高度,-9999.9到9999.9米; m :指單位米:差分gps數據期限(rtcm sc-104),最后設立rtcm傳送的秒數量;:差分參考基站標號,從0000到1023(首位0也將傳送)。 * : 語句結束標志符。 xx : 從$開始到*之間的所有ascii碼的異或校驗和。: 回車。: 換行。gps數據通信為232串口通信,在通信過程中就需要數據電平轉換,應用到232通信電平轉換芯片max232,電路如下:圖2-3 max232電路在單片機串口收到信息后,先判別是否為語句引
20、導頭“$”,然后再接收信息內容,在收到“*”字符asc碼后再接收二個字節(jié)結束接收,然后根據語句標識區(qū)分出信息類別以對收到asc碼進行處理顯示。注意在處理北京時間時應在utc時間上加上8小時才是準確的北京時,在超出24小時時應作減24小時處理。3 軟件設計本設計的主要功能是接收gps模塊傳送的數據,并顯示出相應的數據信息,包括當地時間、緯度、經度以及高度。數據接收部分,采用串行口中斷接收數據。顯示部分就采用一個i/o口控制lcd1602顯示相應的信息。31 主程序設計系統(tǒng)主程序的總體結構如圖3-1所示。系統(tǒng)的主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,包括設置串口、定時器、中斷,lcd1602初始化
21、;然后lcd顯示屏進入開機狀態(tài),顯示開機信息(lcd_log),轉入正常的顯示,并接收數據,每次顯示兩串字符。接著由于單片機沒有停機指令,所以可以設置系統(tǒng)程序不斷地循環(huán)執(zhí)行數據信息顯示。系統(tǒng)程序結構屬中斷方式,絕大多數功能在中斷服務子程序中完成。根據總體結構,可將程序劃分為幾個功能化模塊:串行口中斷服務程序、顯示子程序、掃描程序。各個模塊可進行獨立設計、調試和查錯,最終再連接成一個整體。開始系統(tǒng)初始化顯示開機信息顯示數據信息圖3-1 系統(tǒng)主程序的總體結構系統(tǒng)主程序的總體結構如圖3-1所示,首先是系統(tǒng)初始化,然后是顯示開機信息,最后根據系統(tǒng)接收到的信息綜合處理,得到數據顯示到顯示屏上。ny進入中
22、斷清除接收中斷標志位退出中斷數據格式判斷不符合置標志位符合數據接收標志位01數據接收完畢清除標志圖3-2 數據接收程序流程圖32 顯示驅動程序void lcd_check_busy(void); /忙檢查void lcd_cls(void); /清屏void lcd_write_data(unsigned char); /寫數據void lcd_write_instruction(unsigned char); /寫指令void lcd_set_position(unsigned char); /設置光標位置void lcd_initial(void); /lcd1602初始化void lcd
23、_printc(unsigned char); /輸出單個字符void lcd_prints(unsigned char *);/輸出字符串void lcd_log(void);/開機信息顯示void lcd_show(void);/信息顯示 void delay(unsigned char);/延時33 硬件連接設置#define lcd_data p2 /lcd的數據口#define lcd_busy lcd_data7; /lcd忙信號位sbit lcd_rs=p20; /lcd寄存器選擇sbit lcd_rw=p21; /lcd讀寫控制sbit lcd_en=p22; /lcd使能信號
24、寄存器選擇位rs,當rs=1時選擇數據寄存器ddram。 當rs=0時選擇指令寄存器cdram。讀寫選擇位rw,當rs=1時讀數據寄存器。 當rs=0時寫數據或指令到寄存器。讀寫使能信號en,當en=1時讀取數據。當en為下降沿是為寫數據或指令。檢測lcd是否在處理其它數據而處于忙狀態(tài)時,則讀取忙狀態(tài)信號位,當rs=0,rw=1,e=1時,lcd會輸出八位數據,其中最高位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數據線lcd_write_instruction(lcd_ac_auto_increment | lcd_move_disenable); /光標自動+1,關閉自動移動顯示lcd_write_instruction(lcd_display_on | lcd_cursor_off | lcd_cursor_blink_off);/顯示開、光標顯示關、光標閃爍關 lcd_cls( );/清屏35 系統(tǒng)主程序/*/void main()tmod=0x20;/初始化串口tl1 =0xfa;th1 =0xfa;/4800波特率s
26、con=0x50;/工作方式1:八位異步通信,允許接收pcon=0x00;/波特率加倍關ie=0x90;/打開總中斷ea,和串行口中斷estr1=1;/開啟啟動定時器1lcd_initial( );/lcd1602初始化lcd_log( );/顯示開機信息 while(1) lcd_show( );/除了數據接收狀態(tài),一直處理顯示 在串口通信中需要設置串口通信的數據傳輸速度,及波特率,設置定時器的溢出率即可,晶振為11。0592mhz,當tl1 =0xfa;,th1 =0xfa時為4800kbps波特率。計算公式為:t0初值x=2tmod特殊功能寄存器為定時器計數器工作方式寄存器,前四位控制定
27、時器1,后四位控制定時器0;本設計采用定時器1,工作方式2(八位自動重裝載,n=8),scon為串行口數據通信控制特殊寄存器,高三位為工作方式控制位,本設計采用工作方式1,8位數據異步通信。d4位為接收允許控制位,本設計要采用串行口中斷接收gpgga數據,所以該為置1。ie為中斷允許控制特殊寄存器,本設計要打開串行口中斷和總中斷。36 數據接收程序/*串行口中斷子程序*/ri=0;/軟件清除中斷標志位,串行口中斷需要軟件清零,去除中斷標志進入中斷過后要先判斷接收數據的格式,否則會出現亂接收數據,出現接收到的數據不對的問題,先判斷是否接收到gpgga格式語句的第一個字符“$”,其ascii碼為0
28、x24,收到后,繼續(xù)判斷格式是不是為gpgga,分五次中斷判斷,如果是,開始記錄數據并設置記錄標志(read_start),否則退出數據接收中斷,程序設計如下:if(sbuf=$)/判斷是不是$符號flag1=1;/接收到$,起始字符igps=0;/記錄緯度數據字符數量的變量num_comma=0;/記錄逗號數量的變量 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;/開始接收數據 else read_start=0通過上述格式判斷后,說明接下來的數據就是所需要的gpgga格式數據,然后選擇所需要的數據接收并存到緩存區(qū),每個數據都是以逗號隔開的,我們只需要判斷該逗號是第幾個逗號就可以知道后面來的數據是表示說明含義。程序設計如下if(read_start=1)/開始接收gpgga中的數據信息,(sbuf=,)/利用gprmc數據中的逗號間隔,區(qū)分接收到/的數據表示的信息 num_comma+;/記錄逗號個數,標志數據
30、的意義if(num_comma=1)/接收時間,時分秒格式 data_tempigps=sbuf;igps+;/接收到的數據個數加1if(num_comma=2)/接收接收緯度,ddmm.mmm格式data_tempigps=sbuf; igps+;if(num_comma=4)/接收經度,ddmm.mmm格式data_tempigps=sbuf; igps+;if(num_comma=10)/海拔高度:099999.9if(sbuf!=m)/為節(jié)約ram空間,不接收m字符 data_tempigps=sbuf;igps+;判斷這一幀數據是否接收完畢,每一個數據格式都是以 * 符號結束的,當接
31、收到 * 號時表示這一幀數據已經發(fā)送完畢。程序設計如下:if(sbuf=*)/判斷是否收到gprmc格式語句的字符“*”,/如果是,則表示接收完畢,開始處理for(i=0;iigps;i+)data_tempigps=dis_tempigps;/數據放到顯示緩沖區(qū)/返回初值;標識結束一次接收完畢read_start=0;num_comma=0;igps=0;4 調試及性能分析一個單片機系統(tǒng)經過總體設計,在允許的條件下,根據本設計系統(tǒng)的需求性首先采用在pc機上用模擬開發(fā)軟件進行檢測和調試,再進行硬件的組裝與調試。41 軟件調試軟件調試采用proteus 7.1、操作系統(tǒng)windows xp,在p
32、c機上對目標電路原理圖和程序進行檢測和調試。4。1。1 目標程序糾錯圖4-1目標程序調試412 子程序功能調試程序設計通常采用模塊程序設計,調試時可對一個個子程序分別進行調試,設置好入口條件,然后采用單步運行或斷點運行方式,檢查系統(tǒng)cpu現場、ram和i/o口狀態(tài),看程序執(zhí)行結果符合設計要求。圖4-2 子程序功能調試分步編譯c51程序,通過一系列的調試,驗證各個子程序的正確性。并從項目工程的角度綜合調試,調試整個項目,如圖4-3所示:圖4-3 生成hex文件在調試成功順利編譯之后,通過一系列設置,生成hex目標文件,4-4所示:圖4-4 生成hex文件413 整體程序綜合調試即把各子程序整體連
33、起來進入到綜合電路調試,能實現預計的功能顯示。圖4-5整體測試用軟件仿真調試和修改完畢,下一步焊接硬件進行硬調試。圖4-6 運行仿真電路42硬件調試焊接硬件,檢查線路連接正確無誤。硬件調試環(huán)境,電源輸入220v交流電,輸出4。98v直流電,給電路板接通4。98v直流電源。調試過程如以下幾圖所示。在7號樓6樓的計算機硬件實驗室里,借助實驗板等設備仿真與調試,由于是第一次啟動,所以系統(tǒng)整體反應較慢,如圖4-7:圖4-7 冷啟動界面待系統(tǒng)運行一段時間之后,單片機與gps模塊之間進行數據的處理,把處理所得的信息按照預定格式顯示在數據窗口內,如圖4-8所示:圖4-8 啟動一段時間之后待系統(tǒng)運行穩(wěn)定后,各
34、個預定數據正常顯示,如圖4-9所示,界面顯示搜索接收到9顆衛(wèi)星所發(fā)出的gps信號,并顯示當前日期為2011/04/08,時間為11:35:21,經緯度為東經:1123237,南緯325810等信息,基本上滿足預先設計的結果。圖4-9 仿真運行界面信息通過不斷的調試、排錯,系統(tǒng)處于穩(wěn)定正常接收出路數據狀態(tài),如圖4-10所示,整體接收界面良好,系統(tǒng)運行穩(wěn)定,每隔1秒數據窗口連續(xù)滾動實時顯示gps接收到的數據信息。圖4-10 整體仿真運行效果結束語以上僅對lcd顯示屏的結構和驅動、顯示電路原理作一詳細介紹和分析。由于自己知識水平的局限和時間的倉促,設計中或還存在著一些不足,我真誠的接受老師們的批評和
35、指正。從課題選擇、方案論證到具體設計,每一步對我來說無疑是巨大的嘗試和挑戰(zhàn),我不斷地給自己提出新的問題,然后去論證、推翻,在這個往復的過程中,我這篇稚嫩的設計日趨完善。每一次改進我都收獲良多,雖然我的設計作品不是很成熟,而且借鑒了前人的很多資料,但我仍然心里有一種莫大的幸福感,因為我實實在在地走過了一個完整的設計所應該走的每一個過程,并且享受了每一個過程,更重要的是這個設計中我加入了自己鮮活的思想。在做這次畢業(yè)設計過程中使我學到了很多,加深了對單片機、集成模塊、lcd液晶顯示屏和c語言的理解,驗證了所學理論知識,提高了基本的解決實際問題的能力,并增加了對電子設計方面的興趣。希望這次的經歷能讓我
36、在以后的工作和生活中不斷成長與進步。 參考文獻1 周國運。單片機原理及應用(c語言版)。北京:中國水利水電出版社,20102 邱致和,王萬義。 gps原理與應用。北京:電子工業(yè)出版社,2001 3 51單片機接收gps數據的算法與實現。 淮安:淮安信息職業(yè)技術學院,20084 王丙祥,李建海。 基于89c52的gps板電路設計與實現。西安文理學院學報(自然科學版),20075 衛(wèi)星接收模組使用手冊。長天科技股份有限公司6 聶榮。實例解析pcb設計技巧-基于protel dxp。 北京:機械工業(yè)出版社, 20067 王惠南。 gps導航原理與應用。北京:科學出版社,20038 洪大永。gps全球
37、定位系統(tǒng)技術及其應用。廈門:廈門大學出版社,19989 李征航??臻g定位技術及應用。武漢:武漢大學出版社,200310 李洪濤,許國昌,薛鴻印。gps應用程序設計。 北京:科學出版社,199911 錢天爵,翟學林。gps全球定位系統(tǒng)及其應用。北京:海潮出版社,199412 王廣運,郭秉義,李洪濤。差分gps定位技術與應用。北京:電子工業(yè)出版社,1996附錄一:(電路圖)系統(tǒng)電路圖附錄二:(程序列表)程序清單:程序文件一:gpsrecive.c#includeunsigned char num_comma=0;/逗號紀錄數bit read_start=0;/開始接收數據標志位unsigned c
38、har *data_temp= ;/數據緩存區(qū)unsigned char *dis_temp=0139250056.25680014.256901203.5;/顯數據unsigned char i,igps=0;/igps紀錄接收次數,以表示存儲在數組中的位置bit flag1=0,flag2=0,flag3=0,flag4=0,flag5=0;/接收標志位:gpgga#define start$/字符串開始#define end*/字符串結束void lcd_show( )unsigned char i;lcd_set_position(0);lcd_prints(time- );for(i
39、=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(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:);f
40、or(i=15;i24;i+) lcd_printc(dis_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;/軟件清除中斷標志位/判斷是否接收到字符“$”,ascii碼為0x24,收到后開始繼續(xù)數據并置標志/record=1;if(sbuf=$)/判斷是不是$符號flag1=1;/開
41、始接收數據,計數變量初始化(清零);igps=0;/記錄緯度數據字符數量的變量num_comma=0;/記錄逗號數量的變量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 r
42、ead_start=0;if(read_start=1)/開始處理gprmc中的數據信息,if(sbuf=,)/利用gpgga數據中的逗號間隔,判斷數據信息num_comma+;/記錄逗號個數,標志數據的意義if(num_comma=1)/接收時間,時分秒格式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_
43、comma=10)/海拔高度:099999.9if(sbuf!=m)/不接受m單位數據,節(jié)省資源data_tempigps=sbuf;igps+;if(sbuf=*)/判斷是否收到字符“*”,是,則結束接收,/開始處理for(i=0;iigps;i+)data_tempigps=dis_tempigps;/返回初值;標識結束一次接收完畢num_comma=0;read_start=0;igps=0;/*/void main()tmod=0x20;/初始化串口tl1 =0xfd;th1 =0xfd;/4800波特率scon=0x50;/工作方式1:八位異步通信,允許接收pcon=0x00;/波特
44、率加倍關ie=0x90;/打開總中斷ea,和串行口中斷estr1=1;/開啟啟動定時器1lcd_initial();lcd_log();/開機顯示信息while(1)lcd_show();程序文件二:lcd1602.c#include 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 & 0xf0; lcd_en=0; lcd_rw=0; lcd_rw=1; lc
45、d_en=1; _nop_(); _nop_(); lcd_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_(
46、);lcd_en=0;lcd_check_busy();/* 輸出一個字節(jié)數據到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_da
47、ta|= (lcd_data 4); / repeat for 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光標定位到x處 */ void lcd_set_position(unsigned char x) lcd_write_instruction(0x88); lcd_write_instruction(0x80|x);/* 輸出一個字符
48、到lcd */void lcd_printc(unsigned char lcd_data) lcd_write_data(lcd_data);/* 輸出一個字符串到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();/* 開機顯示信息 */void lcd_log(void)unsigned char i;lcd_set_position(0x40);lcd_prints(wellcome! gps); delay(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭旅游開支的合理規(guī)劃與控制
- 車庫出租協議合同范本
- 小區(qū)車庫買賣合同范文
- 各自有子女再婚協議書
- 項目資金資助合同
- 房產證抵押借款合同協議
- 2025年華東師大版高一數學下冊月考試卷含答案
- 2025至2031年中國五連衣鉤行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國高溫高速超細纖維噴射染色機數據監(jiān)測研究報告
- 2025至2030年中國零部件標記機數據監(jiān)測研究報告
- 神經外科進修匯報課件
- 2024老年人靜脈血栓栓塞癥防治中國專家共識(完整版)
- 騰訊營銷師認證考試題庫(附答案)
- 鄰近鐵路營業(yè)線施工安全監(jiān)測技術規(guī)程 (TB 10314-2021)
- 四年級上冊脫式計算100題及答案
- 資本市場與財務管理
- 河南近10年中考真題數學含答案(2023-2014)
- 八年級上學期期末家長會課件
- 2024年大學試題(宗教學)-佛教文化歷年考試高頻考點試題附帶答案
- HGE系列電梯安裝調試手冊(ELS05系統(tǒng)SW00004269,A.4 )
- 尤文肉瘤的護理查房
評論
0/150
提交評論