版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
摘要在當(dāng)今這個快速開展的信息化時代,GPS全球定位系統(tǒng)被廣泛應(yīng)用于實際生活中,扮演著重要的角色。它性能良好、精度準(zhǔn)確、應(yīng)用廣泛,在當(dāng)今世界導(dǎo)航定位系統(tǒng)中處于獨一無二的尖峰位置。自20世紀(jì)90年代向全世界所有國家免費開放以來,以全球化的覆蓋、全天候連續(xù)實時提供高精度的三維位置、三維速度和時間信息的能力,很好的解決了人類導(dǎo)航和定位等問題。論文討論基于單片機的GPS接收系統(tǒng)設(shè)計,提出了對GPS全球定位系統(tǒng)定位信息的接收以及對各定位參數(shù)數(shù)據(jù)的提取方法,介紹各個器件功能并給出了系統(tǒng)的硬件電路及軟件流程圖,通過本設(shè)計方法,本系統(tǒng)單片機控制GPS模塊較為精確地計算和顯示日期、時間、經(jīng)度、緯度等衛(wèi)星信息。研究GPS的原理與技術(shù)的同時,介紹單片機的編程及其應(yīng)用,液晶顯示屏及其實現(xiàn)方法。制作完整的方案,以軟硬件相結(jié)合的方法來完成整個GPS數(shù)據(jù)接收和顯示的過程。該定位系統(tǒng)的制作與學(xué)習(xí)完成時,本設(shè)計在測控領(lǐng)域的應(yīng)用開發(fā)中具有一定的實用價值和借鑒價值。關(guān)鍵詞:單片機GPS導(dǎo)航定位AbstractIntoday'srapiddevelopmentoftheinformationage,GlobalPositioningSystem(GPS)iswidelyusedinreallife.Itplayinganimportantroleinthisworld.Ithasgoodperformance,accurateprecisionandusedwidely.Atauniquepeakpositionofthenavigationandpositioningsystemintoday'sworld.Sincethe1990s,itopenandfreeforallthecountryintheworld,itsolvemanyproblemsofhumannavigationandpositioningverywellbytheglobalizationofthecover,offerthehighprecisionofthreedimensionalpositionaroundtheclockandcontinuousreal-time,thespeedofthe3Dandtheabilityoftimeinformation.PaperdiscussestheGPSreceivingsystembasedonsinglechipdesign,proposedtotheGlobalPositioningSystem(GPS)howtoreceiverspositioninginformationandeachpositioningparametersofdataextractionmethod,itintroduceeachdevicefunction.Thesystemhardwarecircuitandthesoftwareflowchartwasgivenout.Throughthisdesignmethod,thesingle-chipmicrocomputercontrolGPScalculatedexactlyandshowsomeinformationofsatellitelikethedatethetimethelongitudeandthelatitude.AtthesametimewiththeprincipleandtechnologyofGPS,Itintroducetheprogrammingandtheapplicationofthesinglechipmicrocomputer,LCDanditsrealizationmethod.CompletethewholeGPSdatareceivinganddisplaytheprocesswiththemethodofcombiningthesoftwareandhardware,andmakeacompletesolutionstosolveproblems.Whenthepositioningsystemofproductionandlearninghadcompleted,thisdesignispracticalvaluableandreferencevalueableintheapplicationdevelopmentofMeasurementandcontrolfield.Keywords:singlechip,GPS,navigationpositioning目錄摘要IAbstractII目錄III前言11GPS的組成及根本理論21.1GPS的根本組成21.2GPS系統(tǒng)根本原理31.2.1GPS導(dǎo)航系統(tǒng)根本原理31.2.2GPS接收機31.2.3GPS定位原理42硬件介紹62.1.核心控制模塊STC89C5262.1.1STC89C52外觀介紹62.1.2STC89C52引腳功能62.1.3STC89C52的主要功能82.1.4STC89C52總控制電路8晶振122.2上拉電阻132.3SIRF3IIIGPS模塊142.3.1SIRF3IIIGPS模塊參數(shù)142.3.2GPSNMEA-0183協(xié)議152.3.3NMEA-0183協(xié)議詳解162.3.4RoyalTek3571LPGPS數(shù)據(jù)通信192.4藍(lán)色背光字庫LCD192.4.1控制器STN7920202.4.2STN7920局部指令詳解202.4.3STN7920初始化流程252.4.4STN7920與微機接口253硬件電路273.1系統(tǒng)框圖273.2硬件電路設(shè)計273.2.1單片機最小系統(tǒng)273.2.2GPS模塊設(shè)計293.2.3電源模塊設(shè)計294軟件設(shè)計314.1主程序流程314.2數(shù)據(jù)接收處理程序流程324.3程序語句335調(diào)試與檢測365.1硬件調(diào)試365.2軟件調(diào)試36總結(jié)37致謝38參考文獻(xiàn)39附件40前言GPS是英文NavigationSatelliteTimingandRanging/GlobalPositioningSystem的字頭縮寫詞〔NAVSTAR/GPS〕的簡稱。其含義為,由衛(wèi)星的測時和測距經(jīng)行導(dǎo)航,而構(gòu)成的全球衛(wèi)星定位系統(tǒng)。國際上已經(jīng)公認(rèn)將這一全球定位系統(tǒng)簡稱為GPS。GPS系統(tǒng)的前身為美軍研制的“子午儀〞導(dǎo)航衛(wèi)星系統(tǒng)〔Transit〕,由1958年研制,1964年正式開始投入使用。此系統(tǒng)涉及5—6顆衛(wèi)星而組成的星網(wǎng)工作,每天最多可繞地球13次,并且沒有方法讀出高度信息,在定位經(jīng)度上也差強人意。子午儀系統(tǒng)的誕生令研發(fā)部門對衛(wèi)星定位取得了初步的經(jīng)驗,同時驗證了由衛(wèi)星系統(tǒng)進(jìn)行定位的可行性,為GPS系統(tǒng)的研發(fā)與制造奠定了堅實的根底。由于衛(wèi)星定位顯示出在導(dǎo)航方面的巨大優(yōu)越性及子午儀系統(tǒng)存在對潛艇和艦船導(dǎo)航方面的巨大缺陷。美國海軍實驗室〔NRL〕創(chuàng)立出全球定位網(wǎng)方案,名為Tinmation。該方案用12到18顆衛(wèi)星組成10000km高度。并且在于67年、69年和74年這三年分別發(fā)射了一顆試驗衛(wèi)星,并將原子鐘計時系統(tǒng)初步試驗在這些衛(wèi)星上,這就是GPS系統(tǒng)精確定位的根底。但美國空軍后來提出了名為621-B的以每星群4到5顆衛(wèi)星組成3至4個星群的方案,方案中,所有衛(wèi)星里除1顆衛(wèi)星采用同步軌道,其余的所有衛(wèi)星都使用周期為24h的傾斜軌道。這個方案用偽隨機碼〔PRN〕作為根底來傳播衛(wèi)星的測距信號,它的功能強大,就算信號密度低于環(huán)境噪聲的1%時仍然能將其檢測出來。偽隨機碼的成功運用對于GPS系統(tǒng)的研發(fā)成功有著重要的奠基作用。海軍方案主要用于為艦船提供低動態(tài)的二維定位,空軍的方案那么是用于為其提供高動態(tài)效勞,但是系統(tǒng)類型太過于復(fù)雜。由于同時研制兩個系統(tǒng)會造成巨大的費用,并且這里兩個方案都是為了提供全球定位而設(shè)計的,因此1973年美國國防部將二者合二為一,同時由國防部牽頭的衛(wèi)星導(dǎo)航定位聯(lián)合方案局領(lǐng)導(dǎo),將辦事機構(gòu)設(shè)立在洛杉磯的空軍航天處。組成該機構(gòu)的成員很多,美國陸軍、海軍陸戰(zhàn)隊、交通部、國防制圖局、北約和澳大利亞的代表,都是該機構(gòu)的重要成員。1GPS的組成及根本理論1.1GPS的根本組成GPS的三大重要組成局部分別為空間衛(wèi)星星座、地面監(jiān)控站和用戶設(shè)備。1.GPS空間衛(wèi)星共有24顆衛(wèi)星。由21顆工作衛(wèi)星和3顆在軌備用衛(wèi)星組成。所有衛(wèi)星均勻的分布在軌道平面的傾角為55°的6個軌道平面內(nèi),衛(wèi)星的平均高度為20230千米,運行周期為11h58分鐘。空間衛(wèi)星用L波段的兩個無線電載波分別向廣闊用戶連續(xù)不斷地發(fā)送含有衛(wèi)星的位置信息的導(dǎo)航定位信號,使得衛(wèi)星成為一個動態(tài)的點。存在于在地球的任何地點、任何時刻、在高度15°以上。平均可同時觀測到6顆至9顆衛(wèi)星。GPS衛(wèi)星產(chǎn)生兩組電碼,一組稱為P碼〔ProciseCode10123MHz〕。一組頻率1.023MHz,重復(fù)周期一毫秒,碼間距1微秒,相當(dāng)于300m,稱為C/A碼〔Coarse/AcquisitionCode11023MHz〕。一組頻率10.23MHz,重復(fù)周期266.4天,碼間距0.1微秒,相當(dāng)于30m,稱為P碼〔ProciseCode10123MHz〕。2.地面控制局部是由5個全球監(jiān)測站、3個地面控制站和一個主控站組成。5個監(jiān)測站均配裝有精密的銫鐘和能夠連續(xù)測量到所有可見衛(wèi)星的接收機。監(jiān)測站將取得的衛(wèi)星觀測數(shù)據(jù),包括電離層和氣象數(shù)據(jù),經(jīng)過初步處理后,傳送到主控站。主控站從各監(jiān)測站收集跟蹤數(shù)據(jù),計算出衛(wèi)星的軌道和時鐘參數(shù),然后將結(jié)果送到3個地面控制站。地面控制站在每顆衛(wèi)星運行至上空時,把這些導(dǎo)航數(shù)據(jù)及主控站指令注入到衛(wèi)星。這種注入每顆GPS衛(wèi)星每天一次,并在衛(wèi)星離開注入站作用范圍之前進(jìn)行最后的注入。如果某地面站發(fā)生故障,那么在衛(wèi)星中預(yù)存的導(dǎo)航信息還可以用一段時間,但導(dǎo)航精度會隨之慢慢越降越低。3.GPS用戶設(shè)備由GPS接收機、數(shù)據(jù)處理軟件及其終端設(shè)備〔如計算機〕等組成。GPS接收機可以捕獲到按一定衛(wèi)星高度截止角所選擇的待測衛(wèi)星的信號,跟蹤衛(wèi)星的運行,并且對信號進(jìn)行交換、放大和處理,再通過計算機和相應(yīng)軟件,經(jīng)過基線解算、網(wǎng)平差,而求出GPS接收機中心的三維坐標(biāo)。GPS接收機的結(jié)構(gòu)分為兩局部。分別為天線單元和接收單元。體積小,重量輕等指標(biāo)漸漸成為優(yōu)質(zhì)接收機的標(biāo)準(zhǔn)。1.2GPS系統(tǒng)根本原理GPS定位系統(tǒng)工作原理是由地面主控站收集各監(jiān)測站的觀測資料和氣象信息,計算各衛(wèi)星的星歷表及衛(wèi)星鐘改正數(shù),按規(guī)定的格式編輯導(dǎo)航電文,通過地面上的注入站向GPS衛(wèi)星注入這些信息。GPS導(dǎo)航系統(tǒng)根本原理測量出用戶接收機與位置的衛(wèi)星之間的距離,這是GPS的根本原理。之后結(jié)合多顆衛(wèi)星的數(shù)據(jù)變可以得知接收機的具體坐標(biāo)。衛(wèi)星的位置是根據(jù)星載時鐘所記錄的時間在衛(wèi)星星歷中查出的,而用戶到衛(wèi)星的距離那么通過記錄衛(wèi)星信號傳播到用戶所經(jīng)歷的時間,再將得到的結(jié)果乘以光速。由于大氣層電離層的干擾,這一距離并不是用戶與衛(wèi)星之間的真實距離,而是一種叫做偽距〔PR〕的距離。當(dāng)GPS衛(wèi)星正常運行時,源源不斷地用1和0二進(jìn)制碼元組成的偽隨機碼〔簡稱偽碼〕發(fā)射導(dǎo)航電文。導(dǎo)航電文包括衛(wèi)星星歷、工作狀況、時鐘改正、電離層時延修正、大氣折射修正等信息。這些信息從衛(wèi)星信號中解調(diào)制出來,以50b/s調(diào)制在載頻上發(fā)射。導(dǎo)航電文每個主幀中包含5個子幀每幀長6s。前三幀各為10個字碼;每隔三十秒重復(fù)一次,每小時更新一次。后兩幀一共15000b。導(dǎo)航電文中的內(nèi)容主要包括遙測碼、轉(zhuǎn)換碼、第1、2、3數(shù)據(jù)塊,其中最為重要的當(dāng)數(shù)星歷數(shù)據(jù)。當(dāng)用戶接受到導(dǎo)航電文時,提取出衛(wèi)星時間并將衛(wèi)星時間與自己的時鐘做比照,由此可以得到衛(wèi)星與用戶的距離,這時再利用導(dǎo)航電文中的衛(wèi)星星歷數(shù)據(jù)推算出衛(wèi)星發(fā)射電文時所處的具體位置,用戶在WGS-84大地坐標(biāo)系中的位置或速度等定位信息。GPS接收機源源不斷地發(fā)射導(dǎo)航電文是GPS導(dǎo)航系統(tǒng)衛(wèi)星工作的主要作用。但是,由于衛(wèi)星星載時鐘與用戶接受機使用的時鐘并不可能時時同步,所以除了用戶的三維坐標(biāo)x、y、z外,還要引進(jìn)一個Δt的未知數(shù)來作為衛(wèi)星與接收機之間的時間差,在此條件下再利用4個方程解出x、y、z和Δt。因此假設(shè)要想了解接收機所處的具體位置,最少也要能接收到4個衛(wèi)星的信號。GPS接收機能夠收到可用于授時的精準(zhǔn)度數(shù)到達(dá)納秒級的時間信息,還可以用于預(yù)報未來幾個月內(nèi)衛(wèi)星所處概略位置的預(yù)報星歷,計算定位時所需衛(wèi)星坐標(biāo)的播送星歷,精度為幾米至幾十米,以及衛(wèi)星狀況等GPS系統(tǒng)信息。接收機對碼的量測可以得到衛(wèi)星與接收機之間的距離,由于含有接收機衛(wèi)星鐘的誤差和大氣傳播的誤差,那么該距離稱為偽距。對0A碼測得的偽距為UA碼偽距,精度約為20米左右,對P碼測得的偽距為P碼偽距,精度約為2米左右。GPS接收機對收到的衛(wèi)星信號,進(jìn)行解碼或采用其它技術(shù),將調(diào)制在載波上的信息去掉后,就可以恢復(fù)載波。載波相位學(xué)術(shù)上更應(yīng)被稱為載波拍頻相位,因為它收到的是受多普勒頻移影響的衛(wèi)星信號載波相位與接收機本機振蕩產(chǎn)生信號相位這兩者之差。一般情況下,在接收機鐘可確定的歷元時刻量測,同時保持著對衛(wèi)星信號的有效跟蹤,就可以記錄下相位的變化值,但是開始觀測時的接收機和衛(wèi)星振蕩器的相位初值是未知的,起始?xì)v元的相位整數(shù)也是未知的,即整周模糊度,只能在數(shù)據(jù)處理中作為參數(shù)解算。相位觀測值的精度高至毫米,但是前提是必須解出整周模糊度,由此而來只有在相對定位、并有一段連續(xù)觀測值的情況下才能使用相位觀測值,而要為到達(dá)優(yōu)于米級的定位,精度也必須只能采用相位觀測值。GPS定位原理GPS定位分為兩種類型:〔1〕單點定位,根據(jù)一臺接收機的觀測數(shù)據(jù)來確定接收機位置的方式就是單點定位,它只能采用偽距觀測量,可用于車船等的概略導(dǎo)航定位。〔2〕相對定位〔差分定位〕根據(jù)兩臺以上接收機的觀測數(shù)據(jù)來確定觀測點之間的相對位置的方法即為相位定位或差分定位,它既可采用偽距觀測量也可采用相位觀測量,大地測量或工程測量均應(yīng)采用相位觀測值進(jìn)行相對定位。在GPS觀測量中存在很多種誤差,其中包括衛(wèi)星和接收機的種差、大氣傳播延遲、多路徑效應(yīng)等,在定位計算時還要受到衛(wèi)星播送星歷誤差的影響,在進(jìn)行相對定位時大局部公共誤差被削弱或者抵銷,因此定位精度將有很大的提升,雙頻接收機可以根據(jù)兩個頻率的觀測量抵消大氣中電離層誤差的主要局部,在精度要求高,接收機間距離較遠(yuǎn)時〔大氣有明顯差異〕,應(yīng)選用雙頻接收機。GPS定位的根本原理是根據(jù)高速運動的衛(wèi)星瞬間位置作為的起算數(shù)據(jù),采用空間距離前方交會的方法,確定待測點的位置。2硬件介紹2.1.核心控制模塊STC89C52本設(shè)計需要一個核心控制模塊來連接各個局部的工作,STC89C52單片機即為該系統(tǒng)的核心控制模塊。STC89C52外觀介紹本設(shè)計采用宏晶科技生產(chǎn)的STC89C52芯片,芯片采用40腳雙列直插式封裝,32個I/O口,芯片工作電壓3.8~5.5V,工作溫度0-70°C〔商業(yè)級〕,工作頻率可高達(dá)30MHz,芯片的外形和引腳見下列圖圖2.1STC89C52芯片外形圖1.1為STC89C52的外形圖STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。STC89C52引腳功能圖2.2STC89C52引腳圖1、STC89C52引腳功能:①主電源引腳〔2根〕VCC(Pin40):電源輸入,接+5V電源GND(Pin20):接地線②外接晶振引腳〔2根〕XTAL1(Pin19):片內(nèi)振蕩電路的輸入端XTAL2(Pin1):片內(nèi)振蕩電路的輸出端③控制引腳〔4根〕RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個機器周期的高電平將使單片機復(fù)位。ALE/PROG(Pin30):地址鎖存允許信號EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平那么從內(nèi)部程序存儲器讀指令。PSEN(Pin29):外部存儲器讀選通信號。④可編程輸入/輸出引腳〔32根〕STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位〔8根引腳〕,共32根。PO口〔Pin39~Pin32〕:8位雙向I/O口線,名稱為P0.0~P0.7P1口〔Pin1~Pin8〕:8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7P2口〔Pin21~Pin28〕:8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7P3口〔Pin10~Pin17〕:8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7STC89C52的主要功能STC89C52主要功能如下表所示。表2.1STC89C52主要功能主要功能特性兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫FlashROM32個雙向I/O口256x8bit內(nèi)部RAM3個16位可編程定時/計數(shù)器中斷時鐘頻率0-24MHz2個串行中斷可編程UART串行通道2個外部中斷源共6個中斷源2個讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能STC89C52總控制電路STC89C52總控制電路如下列圖:圖2.3單片機總控制電路STC89C52的內(nèi)部電路:1時鐘電路STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時鐘電路如圖2.4(a)所示,在RXD和TXD引腳上外接定時元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。外部方式的時鐘電路如圖2.4〔b〕所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供單片機使用。示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供單片機使用。RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供單片機使用?!瞐〕內(nèi)部方式時鐘電路〔b〕外部方式時鐘電路圖2.4時鐘電路2復(fù)位電路復(fù)位電路保證系統(tǒng)可靠的進(jìn)行復(fù)位且具有一定的抗干擾能力?!?〕復(fù)位操作復(fù)位是單片機的初始化操作。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復(fù)位鍵重新啟動。除PC之外,復(fù)位操作還對其他一些存放器有影響,它們的復(fù)位狀態(tài)如下表所示。表2.2復(fù)位狀態(tài)對存放器的影響存放器復(fù)位狀態(tài)存放器復(fù)位狀態(tài)PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H〔2〕復(fù)位信號及其產(chǎn)生RST引腳是復(fù)位信號的輸入端。復(fù)位信號是高電平有效,其有效時間應(yīng)持續(xù)24個振蕩周期(即二個機器周期)以上。假設(shè)使用頗率為6MHz的晶振,那么復(fù)位信號持續(xù)時間應(yīng)超過4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號的電路邏輯如圖2.6所示:圖2.5復(fù)位信號的電路邏輯圖整個復(fù)位電路包括芯片內(nèi)、外兩局部。外部電路產(chǎn)生的復(fù)位信號(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個機器周期的S5P2時刻對施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號。單片機的復(fù)位有上電復(fù)位和按鈕手動復(fù)位兩種。如圖2-12〔a〕所示為上電復(fù)位電路,圖〔b〕所示為上電按鍵復(fù)位電路。上電復(fù)位是利用電容充電來實現(xiàn)的,即上電瞬間RST端的電位與VCC相同,隨著充電電流的減少,RST的電位逐漸下降。圖2-12(a)中的R是施密特觸發(fā)器輸入端的一個10K?下拉電阻,時間常數(shù)為10×10-6×10×103=100ms。只要VCC的上升時間不超過1ms,振蕩器建立時間不超過10ms,這個時間常數(shù)足以保證完成復(fù)位操作。上電復(fù)位所需的最短時間是振蕩周期建立時間加上2個機器周期時間,在這個時間內(nèi)RST的電平應(yīng)維持高于施密特觸發(fā)器的下閾值。上電按鍵復(fù)位2-12〔b〕所示。當(dāng)按下復(fù)位按鍵時,RST端產(chǎn)生高電平,使單片機復(fù)位。圖2.6兩種復(fù)位方式592晶振11.0592晶振能夠準(zhǔn)確的劃分時鐘頻率,與UART〔通用異步接收器/發(fā)送器〕量常見的波特率相關(guān)。特別是較高的波特率〔19600,19200〕,不管多么乖僻的值,這些晶振都是準(zhǔn)確的,常被使用的。目前有許多極好的編譯程序能顯示代碼,在速度和尺寸方面都很有成效。同時,當(dāng)定時器1被用作波特率發(fā)生器時,波特率工作于方式1和方式3是由定時器1的溢出率和SMOD的值(PCON.7雙倍速波特率)決定:方式1、3波特率=(定時器1的溢出率)特殊時,定時器被設(shè)在自動重袋模式(模式2,TMOD的高四位為0100B),其為:方式1、3波特率=11.0592MHZ晶振的一些典型波特率如下表:表2.311.0592晶振典型波特率波特率SMODTH1192001OFDH96000OFDH48000OFAH24000OF4H12000OF8H3000OAOH更換一種計算方式,它將以修改公式到達(dá)我們需求的波特率來計算出晶振。最小晶振頻率=波特率x384x2SMOD這就是我們所需波特率的最小晶振頻率,此頻率能成倍增加到達(dá)我們需求的時鐘頻率。例如:波特率為19.2KH2的最小晶振頻率:3.6864=19200x384x2(波特率為19.2K的SMOD為1)11.0592=3.6864x3其中TH1是由倍乘數(shù)(3)確定TH1=256-3=253=0FDH用來確定定時器的重裝值,公式也可改為倍乘數(shù)的因子:晶振頻率=波特率x(256-TH1)x384x2SMOD這是波特率為19.24K的晶振頻率。以上的例子可知,被乘數(shù)(3)是用來確定TH1:TH1=256-3=253=0FDH19.2K波特率的晶振為11.0592=19200x(256-0FDH)x384x2(19.2k的SMOD為1)其它值也會得出好的結(jié)果,但是11.0592MHZ是較高的晶振頻率,也允許高波特率。2.2上拉電阻在實際應(yīng)用中,p0口絕大局部多數(shù)情況都是作為單片機系統(tǒng)的地址/數(shù)據(jù)線使用,當(dāng)傳送地址或數(shù)據(jù)時,CPU發(fā)出控制信號,翻開上面的與門,使多路轉(zhuǎn)接開關(guān)MUX打向上邊,使內(nèi)部地址/數(shù)據(jù)線與下面的場效應(yīng)管反相接通狀態(tài)。這時的輸出驅(qū)動電路由于上下兩個EET處于反相,形成推拉式電路結(jié)構(gòu),大大的提高了負(fù)載能力。而當(dāng)輸入數(shù)據(jù)時,數(shù)據(jù)信號那么直接從引腳通過輸入緩沖器進(jìn)入內(nèi)部總線。P0口也可作為通用的I/O口使用。這時,CPU發(fā)來的控制信號為低電平,封鎖了與門,并將輸出驅(qū)動電路的上拉場效應(yīng)管截止,而多路的轉(zhuǎn)接開關(guān)MUX打向下邊,與D鎖存器的Q端接通。當(dāng)P0口作為輸出口使用時,由鎖存器和驅(qū)動器構(gòu)成數(shù)據(jù)輸出通路。由于通路已有輸出鎖存器,因此數(shù)據(jù)輸出可以與外設(shè)直接相接,無需再加上數(shù)據(jù)鎖存器電路。進(jìn)行數(shù)據(jù)輸出時,來自CPU的寫脈沖加在D鎖存器的CP端,數(shù)據(jù)寫入D鎖存器,并向端口引腳輸出。但要注意,由于輸出電路是漏極開路電路,必須外接上拉電阻才能有高電平輸出。2.3SIRF3IIIGPS模塊SIRF3帶TTL和232兩種電平輸出的GPS的板,GPS開發(fā)板帶備份電池,使GPS開發(fā)板可以具備熱啟動、暖啟動的功能。采用通用的2.54mm間距的排針引出,并且增加了秒脈沖輸出及顯示,可以通過板載LED來判斷定位狀態(tài)〔綠色LED閃爍即定位成功〕2.3.1SIRF3IIIGPS模塊參數(shù)RoyalTek3571LP低功耗和小尺寸板是最新的代RoyalTekGPS模塊。模塊是以最新SiRF和RoyalTek專有導(dǎo)航技術(shù),具有穩(wěn)定、準(zhǔn)確的導(dǎo)航數(shù)據(jù)。體積小主要應(yīng)用在移動導(dǎo)航裝置,個人定位器,探測器和車輛定位測速照相機。其主要參數(shù)見下表。表2.4SIRF3IIIGPS模塊主要參數(shù)名稱主要參數(shù)芯片組SIRF3靈敏度-159DB功耗搜索時:45mA定位后:35mA外觀尺寸25.4(長)*25.4(寬)*3(高)mm重量7克操作溫度攝氏-40℃———+儲存溫度攝氏-45℃———+工作電壓3.3+/1-5%V(VDC)衛(wèi)星通道20定位資料更新一秒定位時間(平均值)熱啟動:1秒暖啟動:38秒冷啟動:42秒定位精度位置:10米圓周誤差(CEP)速度:0.1米/秒時間:1微秒使用范圍海拔高度:小于18000米速度:小于515米/秒輸出格式TTL數(shù)據(jù)輸出(nmea0183)GPGGA,GPGSA,GPGSV,GPRMC,GPVTG,GPGLL可選.地球坐標(biāo)系WGS84傳輸速率4800,9600,38400可選天線連接方式外接天線備用電池?zé)o模塊連接方式貼片2.3.2GPSNMEA-0183協(xié)議RoyalTek3571LP內(nèi)嵌GPSNMEA-0183協(xié)議詳解NMEA協(xié)議是為了在不同的GPS〔全球定位系統(tǒng)〕導(dǎo)航設(shè)備中建立統(tǒng)一的BTCM〔海事無線電技術(shù)委員會〕標(biāo)準(zhǔn),由美國國家海洋電子協(xié)會〔NMEA-TheNationalMarineElectronicsAssocia-tion〕制定的一套通訊協(xié)議。GPS接收機根據(jù)NMEA-0183協(xié)議的標(biāo)準(zhǔn)標(biāo)準(zhǔn),將位置、速度等信息通過串口傳送到PC機、PDA等設(shè)備。NMEA-0183協(xié)議是GPS接收機應(yīng)當(dāng)遵守的標(biāo)準(zhǔn)協(xié)議,也是目前GPS接收機上使用最廣泛的協(xié)議,大多數(shù)常見的GPS接收機、GPS數(shù)據(jù)處理軟件、導(dǎo)航軟件都遵守或者至少兼容這個協(xié)議。不過,也有少數(shù)廠商的設(shè)備使用自行約定的協(xié)議比方GARMIN的GPS設(shè)備〔局部GARMIN設(shè)備也可以輸出兼容NMEA-0183協(xié)議的數(shù)據(jù)〕。軟件方面NMEA-0183協(xié)議定義的語句非常多,但是常用的或者說兼容性最廣的語句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面給出這些常用NMEA-0183的字段定義解釋。2.3.3NMEA-0183協(xié)議詳解NMEA-0183協(xié)議定義的語句非常多但是常用的或者說兼容性最廣的語句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面給出這些常用NMEA-0183語句的字段定義解釋。$GPGGA例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F字段0:$GPGGA,語句ID,說明該語句為GlobalPositioningSystemFixData〔GGA〕GPS定位信息字段1:UTC時間,hhmmss.sss,時分秒格式字段2:緯度ddmm.mmmm,度分格式〔前導(dǎo)位數(shù)缺乏那么補0〕字段3:緯度N〔北緯〕或S〔南緯〕字段4:經(jīng)度dddmm.mmmm,度分格式〔前導(dǎo)位數(shù)缺乏那么補0〕字段5:經(jīng)度E〔東經(jīng)〕或W〔西經(jīng)〕字段6:GPS狀態(tài),0=未定位,1=非差分定位,2=差分定位,3=無效PPS,6=正在估算字段7:正在使用的衛(wèi)星數(shù)量〔00-12〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段8:HDOP水平精度因子〔0.5-99.9〕字段9:海拔高度〔-9999.9-99999.9〕字段10:地球橢球面相對大地水準(zhǔn)面的高度字段11:差分時間〔從最近一次接收到差分信號開始的秒數(shù),如果不是差分定位將為空〕字段12:差分站ID號0000-1023〔前導(dǎo)位數(shù)缺乏那么補0,如果不是差分定位將為空〕字段13:校驗值$GPGSA例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A字段0:$GPGSA,語句ID,說明該語句為GPSDOPandActiveSatellites〔GSA〕當(dāng)前衛(wèi)星信息字段1:定位模式,A=自動手動2D/3D,M=手動2D/3D字段2:定位類型,1=未定位,2=2D定位,3=3D定位字段3:PRN碼〔偽隨機噪聲碼〕,第1信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段4:PRN碼〔偽隨機噪聲碼〕,第2信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段5:PRN碼〔偽隨機噪聲碼〕,第3信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段6:PRN碼〔偽隨機噪聲碼〕,第4信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段7:PRN碼〔偽隨機噪聲碼〕,第5信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段8:PRN碼〔偽隨機噪聲碼〕,第6信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段9:PRN碼〔偽隨機噪聲碼〕,第7信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段10:PRN碼〔偽隨機噪聲碼〕,第8信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段11:PRN碼〔偽隨機噪聲碼〕,第9信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段12:PRN碼〔偽隨機噪聲碼〕,第10信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段13:PRN碼〔偽隨機噪聲碼〕,第11信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段14:PRN碼〔偽隨機噪聲碼〕,第12信道正在使用的衛(wèi)星PRN碼編號〔00〕〔前導(dǎo)位數(shù)缺乏那么補0〕字段15:PDOP綜合位置精度因子〔0.5-99.9〕字段16:HDOP水平精度因子〔0.5-99.9〕字段17:VDOP垂直精度因子〔0.5-99.9〕字段18:校驗值$GPRMC例:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,*hh字段0:$GPRMC,語句ID,說明該語句為GPSSatellitesinView〔GSV〕可見衛(wèi)星信息字段1:UTC時間,hhmmss.sss(時分秒.毫秒)格式字段2:定位狀態(tài),A=有效定位,V=無效定位字段3:緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)字段4:緯度半球N(北半球)或S(南半球)字段5:經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)字段6:經(jīng)度半球E(東經(jīng))或W(西經(jīng))字段7:地面速率(000.0~999.9節(jié),前面的0也將被傳輸)字段8:地面航向(000.0~359.9度,以正北為參考基準(zhǔn),前面的0也將被傳輸)字段9:UTC日期,ddmmyy(日月年)格式字段10:磁偏角(000.0~180.0度,前面的0也將被傳輸)字段11:磁偏角方向,E(東)或W(西)字段12:模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)其他字段定義解釋與該段語句類似。具體詳見該協(xié)議。2.3.4RoyalTek3571LPGPS數(shù)據(jù)通信RoyalTek3571LPGPS數(shù)據(jù)通信見下列圖:圖2.7RoyalTek3571LPGPS數(shù)據(jù)通信由圖可見該模塊與微機通信只需一個串口便可實現(xiàn),假設(shè)程序中內(nèi)嵌NMEA-0183協(xié)議,便可實現(xiàn)GPS數(shù)據(jù)解析,具體有關(guān)協(xié)議解析的程序設(shè)計將在第四章軟件設(shè)計中介紹。2.4藍(lán)色背光字庫LCD12864LCD藍(lán)色背光,帶字庫。提供8位,4位并行接口及串行接口可選。并行接口適配M6800時序,自動電源啟動復(fù)位功能內(nèi)部自建振蕩源。64×16位字符顯示RAM(DDRAM最多16字符×4行,LCD顯示范圍16×2行)2M位中文字型ROM(CGROM),總共提供8192個中文字型(16×16點陣)。16K位半寬字型ROM(HCGROM),總共提供126個西文字型(16×8點陣)。64×16位字符產(chǎn)生RAM(CGRAM)。本設(shè)計采用的液晶為采用ST7920驅(qū)動器的液晶顯示器其內(nèi)部有豐富的可用資源包括自帶字庫其中包含了內(nèi)建BIG-5碼繁體中文字型庫,內(nèi)建GB碼簡體中文字型庫。因此在設(shè)計的時候可以不用生產(chǎn)顯示的漢字點陣直接在程序中定義需要顯示的文字因此在很大程度上降低了程序的設(shè)計復(fù)雜程度。2.4.1控制器STN7920本設(shè)計采用的液晶為采用ST7920驅(qū)動器的液晶顯示器其內(nèi)部有豐富的可用資源包括自帶字庫其中包含了內(nèi)建BIG-5碼繁體中文字型庫,內(nèi)建GB12864LCD中文圖形液晶模塊的軟件特性主要由ST7920控制驅(qū)動器決定。ST7920同時作為控制器和驅(qū)動器,它可提供33路com輸出和64路seg輸出。在驅(qū)動器ST7921的配合下,最多可以驅(qū)動256×32點陣液晶。2.4.2STN7920局部指令詳解1去除顯示〔CLEAR〕格式00000001將DDRAM填滿“20H〞〔空格〕代碼,并且設(shè)定DDRAM的地址計數(shù)器〔AC〕為00H,更新設(shè)置進(jìn)入設(shè)定點將I/D設(shè)為1,游標(biāo)右移AC加1。2地址歸0〔HOME〕格式0000001X設(shè)定DDRAM的地址存放器為00H,并且將游標(biāo)移到開頭原點位置;這個指令并不改變DDRAM的內(nèi)容。3進(jìn)入設(shè)定點〔ENTRYMODESET〕初始值:06H格式000001I/DS指定在顯示數(shù)據(jù)的讀取與寫入時,設(shè)定游標(biāo)的移動方向及指定顯示的移位I/D=1,游標(biāo)右移,DDRAM地址計數(shù)器〔AC〕加1,I/D=0,游標(biāo)左移,DDRAM地址計數(shù)器〔AC〕減1。S:顯示畫面整體位移見下表表2.5顯示畫面整體位移SI/D功能描述HH畫面整體左移HL畫面整體右移4顯示開關(guān)設(shè)置〔DISPLAYSTATUS〕初始值:08H格式00001DCB控制整體顯示開關(guān),游標(biāo)開關(guān),游標(biāo)位置顯示反白開關(guān),D=1,整體顯示開;D=0,整體顯示關(guān),但是不改變DDRAM內(nèi)容C=1,游標(biāo)顯示開;C=0,游標(biāo)顯示關(guān)B=1,游標(biāo)位置顯示反白開,將游標(biāo)所在地址上的內(nèi)容反白顯示;B=0,正常顯示。5游標(biāo)或顯示移位控制(CURSORANDDISPLAYSHIFTCONTORL)初始值:0001XXXXB〔X=0,1〕格式0001S/CR/LXX這條指令不改變DDRAM的內(nèi)容見下表表2.6游標(biāo)移動方向S/CR/L方向AC的值LL游標(biāo)向左移動AC=AC-1LH游標(biāo)向右移動AC=AC+1HL顯示向左移動,游標(biāo)跟著移動AC=ACHH顯示向右移動,游標(biāo)跟著移動AC=AC6功能設(shè)定(FUNCTIONSET)初始值:0011X0XXB(X=0,1)格式001DLX0/REXXDL:8/4位接口控制位,DL=1,8位MPU接口;DL=1,4位MPU接口RE:指令集選擇控制位。RE=1,擴充指令集;RE=0,根本指令集。同一指令的動作不能同時改變DL和RE,需先改變DL再改變RE才能確保設(shè)置正確。7設(shè)定CGRAM地址格式10A5A4A3A2A1A0設(shè)定CGRAM地址到地址計數(shù)器〔AC〕,AC范圍為00H~3FH需確認(rèn)擴充指令中SR=0〔卷動位置或RAM地址選擇〕。8設(shè)定DDRAM地址格式10A5A4A3A2A1A0設(shè)定DDRAM地址到地址計數(shù)器〔AC〕第一行AC范圍80H~8FH,第二行AC范圍90H~9FH。備注:ST7920控制器的128×64點陣液晶其實原理上等同256×32點陣,第三行對應(yīng)的DDRAM地址緊接第一行;第四行對應(yīng)的DDRAM地址緊接第二行。用戶在使用行反白功能時,如果第一行反白,第三行必然反白。第二行反白,第四行必然反白。這是正?,F(xiàn)象。9讀取忙標(biāo)志和地址(RS=0,R/W=1)格式BFA6A5A4A3A2A1A0讀取忙標(biāo)志以確定內(nèi)部動作是否完成,同時可以讀出地址計數(shù)器〔AC〕的值。寫顯示數(shù)據(jù)到RAM(RS=1,R/W=0)格式D7D6D5D4D3D2D1D0當(dāng)顯示數(shù)據(jù)寫入后會使AC改變,每個RAM〔CGRAM,DDRAM〕地址都可以連續(xù)寫入2個字節(jié)的顯示數(shù)據(jù),當(dāng)寫入第二個字節(jié)時,地址計數(shù)器〔AC〕的值自動加一。讀取顯示RAM數(shù)據(jù)〔RS=1,R/W=1〕格式D7D6D5D4D3D2D1D0讀取后會使AC改變設(shè)定RAM〔CGRAM,DDRAM〕地址后,先要Dummyread一次后才能讀取到正確的顯示數(shù)據(jù),第二次讀取不需要Dummyread,除非重新設(shè)置了RAM地址。STN7920擴充指令詳細(xì)說明擴充指令如表2.6所示:表2.7member表的邏輯結(jié)構(gòu)控制信號控制代碼執(zhí)行時間RSR/WD7D6D5D4D3D2D1D0待命模式000000000172us卷動地址或RAM地址選擇000000001SR72us反白顯示00000001R1R072us睡眠模式0000001SLXX72us擴充功能設(shè)定00001DLX1/REG072us設(shè)定繪圖RAM地址001000A3A2A1A072usA6A5A4A3A2A1A01待命模式格式00000001進(jìn)入待命模式,執(zhí)行如何其它指令都可以結(jié)束待命模式;該指令不能改變RAM的內(nèi)容。2卷動位置或者RAM地址選擇初始值:02H格式0000001SR當(dāng)SR=1時,允許輸入垂直卷動地址,當(dāng)SR=0時,允許設(shè)定CGRAM地址〔根本指令〕。3反白顯示初始值:04H格式0000010R0選擇2行中的任意一行作反白顯示,并可決定反白與否。R0初始值為0,第一次執(zhí)行時為反白顯示,再次執(zhí)行時為正常顯示通過R0選擇要作反白處理的行:R0=0第一行,R0=1第二行。說明:參考根本指令詳細(xì)說明中的DDRAM地址說明。128×64點陣的液晶執(zhí)行反白功能時實用意義不大,因為一三行連在一起,二四行連在一起,用戶對第一行執(zhí)行反白顯示操作時,第三行必然也反白顯示。4睡眠模式初始值:000010XXB(X=0,1)格式00001SL00SL=1,脫離睡眠模式;SL=0,進(jìn)入睡眠模式。5擴充功能設(shè)定初始值:001DLX100B(DL=1,8BIT并口;DL=0,4BIT并口 X=0,1)格式001DLXREGXDL:8/4位接口控制位DL=1,8位MPU接口;DL=1,4位MPU接口RE:指令集選擇控制位RE=1,擴充指令集;RE=0,根本指令集G:繪圖顯示控制位G=1,繪圖顯示開;G=0,繪圖顯示關(guān)。同一指令的動作不能同時改變RE及DL、G,需先改變DL或G再改變RE才能確保設(shè)置正確。6設(shè)定繪圖RAM地址格式1000A3A2A1A0A6A5A4A3A2A1A0設(shè)定GDRAM地址到地址計數(shù)器〔AC〕,先設(shè)置垂直位置再設(shè)置水平位置〔連續(xù)寫入2字節(jié)數(shù)據(jù)來完成垂直與水平坐標(biāo)的設(shè)置〕垂直地址范圍:AC6~AC0,水平地址范圍:AC3~AC0。2.4.3STN7920初始化流程開電源初始化量程設(shè)定點06H顯示開關(guān)0C0H去除屏幕開電源初始化量程設(shè)定點06H顯示開關(guān)0C0H去除屏幕01H功能設(shè)定功能設(shè)定控制字30H控制延時>40msXRESET滴——>高延時>100us字延時>10ms延時>100us控制延時>37us圖2.8STN7920初始化流程2.4.4STN7920與微機接口圖2.9STN7920與微機接口3硬件電路3.1系統(tǒng)框圖系統(tǒng)框圖如下:圖3.1系統(tǒng)框圖3.2硬件電路設(shè)計硬件電路的設(shè)計包括單片機最小系統(tǒng)、GPS模塊以及電源模塊的設(shè)計。單片機最小系統(tǒng)圖3.2單片機最小系統(tǒng)系統(tǒng)采用11.0592MHZ晶振,串口方式1接受GPS信息,P1口和P3口用于12864LED液晶顯示接口,可以顯示實時時間、緯度、經(jīng)度及其它GPS數(shù)據(jù)信息。本系統(tǒng)主要有兩個硬件模塊組成;GPS接收模塊和液晶顯示模塊。GPS模塊用于接收GPS衛(wèi)星的信號,并計算出模塊測試點所在位置的衛(wèi)星信息。采用的GPS模塊由變頻器、信號通道、微處理器、存儲單元和接收天線組成。單片機主控制器的串口接收口連接GPS模塊數(shù)據(jù)發(fā)送端接收衛(wèi)星信息。液晶顯示模塊用于顯示接收到的數(shù)據(jù)信息。12864數(shù)據(jù)連接單片機P1口,雙電源供電。GPS模塊設(shè)計圖3.3GPS模塊電路根據(jù)Royaltek官方提供的設(shè)計文檔上圖為本次設(shè)計任務(wù)的GPS模塊實際電路圖。由圖可見,該模塊只需要簡單的外圍元件即可工作。需要注意的是,模塊的工作電壓為3.3V,如果加上5V電壓可能會造成該模塊損壞,造成模塊無法工作。即要設(shè)計附加穩(wěn)壓器的電源模塊。電源模塊設(shè)計圖3.4電源電路GPS模塊的工作電壓為3.3V,如果加上5V電壓可能會造成該模塊損壞,造成模塊無法工作。因此該模塊應(yīng)運而生。由一對穩(wěn)壓器和一對電容組成的電源模塊使得GPS可以平安正常運行。同時為GPS的移動性提供了很大的方便。4軟件設(shè)計4.1主程序流程全球定位系統(tǒng)的主程序流程如下列圖:圖4.1GPS主程序流程圖系統(tǒng)軟件主要由初始化模塊、數(shù)據(jù)接收處理模塊組成。初始化模塊完成開機上電后對單片機、液晶顯示器和GPS模塊的初始化工作。對單片機設(shè)置串口工作模式、設(shè)置波特率和中斷工作模式;對液晶顯示器設(shè)置開機畫面和顯示模式;完成對GPS模塊串口的成功通信。4.2數(shù)據(jù)接收處理程序流程數(shù)據(jù)接收處理模塊負(fù)責(zé)處理從GPS接收到的數(shù)據(jù)。在單片機串口收到信息后,先判別是否為語句導(dǎo)頭“$〞,再接收信息內(nèi)容,然后根據(jù)語句標(biāo)識區(qū)分出信息類別以對收到ASCII碼進(jìn)行處理顯示。本設(shè)計中,接收時主要提取并存儲以下數(shù)據(jù)內(nèi)容;當(dāng)前日期、時間、定位狀態(tài)、緯度、經(jīng)度。特別注意的是GPS發(fā)送的時間是世界統(tǒng)一時,與我國的時區(qū)相差八個小時,所以還要將時間作轉(zhuǎn)換。北京時間應(yīng)在UTC時間上加上8小時才是準(zhǔn)確的北京時,在超出24小時時應(yīng)作減24小時處理。轉(zhuǎn)換時間要考慮到年月日的變更。數(shù)據(jù)更新率為每秒一次。系統(tǒng)工作時GPS模塊不斷得到新的數(shù)據(jù),單片機不斷刷新RAM,處理完后的數(shù)據(jù)送液晶顯示器顯示。數(shù)據(jù)接收處理程序流程圖如下圖4.2數(shù)據(jù)接收處理程序流程圖4.3程序語句在串行中斷接收GPS信號中,下面以時間提取為例,由判斷幀頭打破數(shù)據(jù)的分段提取方法程序如下:intGPS_RMC_Parse(char*line,GPS_INFO*GPS){ ucharch,status,tmp; floatlati_cent_tmp,lati_second_tmp; floatlong_cent_tmp,long_second_tmp; floatspeed_tmp; char*buf=line; ch=buf[5]; status=buf[GetComma(2,buf)]; if(ch=='C')//如果第五個字符是C,($GPRMC) { if(status=='A')//如果數(shù)據(jù)有效,那么分析 { GPS->NS=buf[GetComma(4,buf)]; GPS->EW=buf[GetComma(6,buf)]; GPS->latitude=Get_Double_Number(&buf[GetComma(3,buf)]); GPS->longitude=Get_Double_Number(&buf[GetComma(5,buf)]); GPS->latitude_Degree=(int)GPS->latitude/100;//別離緯度 lati_cent_tmp=(GPS->latitude-GPS->latitude_Degree*100); GPS->latitude_Cent=(int)lati_cent_tmp; lati_second_tmp=(lati_cent_tmp-GPS->latitude_Cent)*60; GPS->latitude_Second=(int)lati_second_tmp; GPS->longitude_Degree=(int)GPS->longitude/100; //別離經(jīng)度 long_cent_tmp=(GPS->longitude-GPS->longitude_Degree*100); GPS->longitude_Cent=(int)long_cent_tmp; long_second_tmp=(long_cent_tmp-GPS->longitude_Cent)*60; GPS->longitude_Second=(int)long_second_tmp; speed_tmp=Get_Float_Number(&buf[GetComma(7,buf)]);//速度(單位:海里/時) GPS->speed=speed_tmp*1.85;//1海里=1.85公里 GPS->direction=Get_Float_Number(&buf[GetComma(8,buf)]);//角度 GPS->D.hour=(buf[7
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州衛(wèi)生職業(yè)技術(shù)學(xué)院《Web應(yīng)用開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州鐵路職業(yè)技術(shù)學(xué)院《車輛電器與電子技術(shù)實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年陜西省安全員C證考試(專職安全員)題庫及答案
- 2025甘肅省安全員《A證》考試題庫
- 2025安徽省安全員《A證》考試題庫及答案
- 揚州慢公開課課件2
- 《菱形的判定方法》課件
- 安全風(fēng)險管控課件
- 《管理學(xué)院簡介》課件
- 棉鞋里的陽光課件
- 修井作業(yè)冬季和雨季技術(shù)服務(wù)方案
- 三相電能表測量誤差不確定分析報
- 色彩基礎(chǔ)知識ppt
- Q∕GDW 12082-2021 輸變電設(shè)備物聯(lián)網(wǎng)無線傳感器通用技術(shù)規(guī)范
- 加油站冬季安全教育
- 皮爾遜Ⅲ型曲線模比系數(shù)計算(共享版).xls
- 腹膜透析并發(fā)腹膜炎臨床路徑
- (完整版)市政工程施工工期定額(定稿).docx
- 商業(yè)發(fā)票INVOICE模板
- 超聲波焊接作業(yè)指導(dǎo)書(共8頁)
- 《你的生命有什么可能》PPT
評論
0/150
提交評論