版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)校代碼:11059學(xué)號(hào):0805070058Hefei畢業(yè)論文〔設(shè)計(jì)〕BACHELORDISSERTATION論文題目:基于單片機(jī)的GPS定位信息顯示系統(tǒng)設(shè)計(jì)學(xué)位類別:__________工學(xué)學(xué)士________________年級(jí)專業(yè)〔班級(jí)〕:__08級(jí)自動(dòng)化〔1〕班___作者姓名:________王致忠__________________導(dǎo)師姓名:________王慶龍_________________完成時(shí)間:_______2023年5月20日___________基于單片機(jī)的GPS定位信息顯示系統(tǒng)設(shè)計(jì)中文摘要GPS全球定位系統(tǒng)在實(shí)際生活中被廣泛應(yīng)用,是當(dāng)今信息時(shí)代開展中的重要組成局部。因其具有性能好、精度高、應(yīng)用廣的特點(diǎn),使其成為了迄今為止最好的定位導(dǎo)航系統(tǒng)。本論文詳細(xì)介紹了一種基于單片機(jī)、GPS接收模塊、12864液晶顯示模塊等器件的GPS實(shí)時(shí)顯示功能的實(shí)現(xiàn)。分別從硬件設(shè)計(jì)和軟件設(shè)計(jì)等方面對(duì)其作了詳細(xì)的闡述,并且結(jié)合硬件的特點(diǎn)研究了MCS-51系列單片機(jī)如何與GPS接收模塊實(shí)現(xiàn)串行通信,該系統(tǒng)是根據(jù)GPS模塊數(shù)據(jù)輸出根本原理設(shè)計(jì)而成的。它是一臺(tái)體積小巧、攜帶方便、可以獨(dú)立使用的全天候?qū)崟r(shí)的定位導(dǎo)航設(shè)備。關(guān)鍵詞:GPS;單片機(jī);GPS接收模塊;12864液晶屏Microcontroller-basedGPSPositioningInformationDisplaySystemDesignABSTRACTGPSGlobalPositioningSystemiswidelyusedinreallife,isanimportantpartinthedevelopmentoftoday'sinformationage.Becauseofitsgoodperformance,highaccuracy,wideapplication,makingitbyfarthebestnavigationandpositioningsystem.ThisthesisisdescribedindetailbasedonmicrocontrollerGPSreceivermodule,12,864LCDdisplaysandotherdevicesGPSreal-timedisplayfunctionimplementation.Fromhardwareandsoftwareimplementationgaveadetailedexpositionofthedesign,andcombinedwiththehardwarefeaturesoftheMCS-51seriesmicrocontrollerGPSreceivermoduletoachieveserialcommunication,thesystemdesignisbasedonthebasicprincipleoftheGPSmoduledataoutput.Itisacompact,portable,andcanbeusedindependently,all-weatherreal-timepositioningandnavigationequipment.KEYWORD:GPS;microcontroller;GPSreceivermodule;12864LCD目錄第一章緒論11.1課題背景及意義11.2論文主要內(nèi)容2第二章GPS定位信息顯示系統(tǒng)方案設(shè)計(jì)32.1GPS全球定位系統(tǒng)簡(jiǎn)介32.2GPS信號(hào)接收方案選擇52.3GPS接收模塊的研究52.4總體方案的設(shè)計(jì)6第三章基于單片機(jī)的GPS硬件電路設(shè)計(jì)83.1基于單片機(jī)的GPS硬件電路總體結(jié)構(gòu)83.2基于單片機(jī)的GPS定位信息顯示系統(tǒng)設(shè)計(jì)硬件電路簡(jiǎn)介83.2.1STC89C52簡(jiǎn)介83.2.2SiRFStarIIGPS信號(hào)接收模塊123.2.312864液晶顯示模塊介紹133.3基于單片機(jī)的GPS硬件連接介紹15第四章基于單片機(jī)的GPS軟件設(shè)計(jì)174.1NMEA-0183數(shù)據(jù)格式174.1.1輸入語(yǔ)句174.1.2輸出語(yǔ)句184.2基于單片機(jī)的GPS定位系統(tǒng)軟件開發(fā)環(huán)境―KeiluVision2204.2.18051開發(fā)工具20uVision2集成開發(fā)環(huán)境204.2.3編輯器和調(diào)試器214.2.4測(cè)試程序224.2.5KeilC編譯步驟234.3基于單片機(jī)的GPS軟件設(shè)計(jì)思路254.4模塊軟件設(shè)計(jì)264.4.1液晶模塊初始化模塊264.4.2GPS數(shù)據(jù)接收模塊28第五章系統(tǒng)調(diào)試與實(shí)驗(yàn)結(jié)果305.1硬件調(diào)試305.2軟件調(diào)試305.3實(shí)驗(yàn)結(jié)果315.4實(shí)驗(yàn)結(jié)果分析32第六章總結(jié)33致謝34參考文獻(xiàn)35附錄36第一章緒論1.1課題背景及意義1978年2月22日第一顆GPS試驗(yàn)衛(wèi)星的入軌運(yùn)行,開創(chuàng)了以導(dǎo)航衛(wèi)星為動(dòng)態(tài)點(diǎn)的無線電導(dǎo)航定位的新時(shí)代。GPS衛(wèi)星所發(fā)送的導(dǎo)航定位信號(hào),是一種可供無數(shù)用戶共享的空間信息資源[1]。陸地、海洋和空間的廣闊用戶,只要持有一種能夠接收、跟蹤、變換和測(cè)量GPS信號(hào)的接收機(jī),就可以全天時(shí)、全天候和全球性的測(cè)量運(yùn)動(dòng)載體的七維狀態(tài)參數(shù)和三維狀態(tài)參數(shù)。其用途之廣,影響之大,是其他無線電接收裝置都望塵莫及的。不僅如此,GPSGPS技術(shù)的陸地應(yīng)用GPS技術(shù)在陸地上的開發(fā)應(yīng)用可以表達(dá)在許多方面,如:各種車輛的行駛狀態(tài)監(jiān)控;旅游者或旅游車的景點(diǎn)導(dǎo)游;應(yīng)急車輛的快速引導(dǎo)行駛;高精度時(shí)間比對(duì)和頻率控制;大氣物理觀測(cè);地球物理資源勘探;工程建設(shè)的施工放樣測(cè)量;大型建筑和煤氣田的沉降檢測(cè);板內(nèi)運(yùn)動(dòng)狀態(tài)和地殼形變測(cè)量;陸地以及海洋大地測(cè)量基準(zhǔn)的測(cè)定;工程、區(qū)域、國(guó)家等各種類型大地測(cè)量控制網(wǎng)的測(cè)量和建設(shè)等。GPS技術(shù)的海洋應(yīng)用GPS技術(shù)在海洋方面有著極其重要的作用,比方:遠(yuǎn)洋船舶的最正確航線測(cè)定;遠(yuǎn)洋船隊(duì)在途中航行的實(shí)時(shí)調(diào)度和監(jiān)測(cè);內(nèi)河船只的實(shí)時(shí)調(diào)度和自主導(dǎo)航測(cè)量;海洋救援的搜索和定點(diǎn)測(cè)量;遠(yuǎn)洋漁船的結(jié)隊(duì)航行和作業(yè)調(diào)度;海洋油氣平臺(tái)的就位和復(fù)位測(cè)定;海底沉船位置的精確探測(cè);海底管道鋪設(shè)測(cè)量;海岸地球物理勘探;水文測(cè)量;海底大地測(cè)量控制網(wǎng)的布測(cè);海底地形的精細(xì)測(cè)量;船運(yùn)貨物失竊報(bào)警;凈化海洋;海洋糾紛或海損事故的定點(diǎn)測(cè)定;港口交通管制;海洋災(zāi)難檢測(cè)等。GPS技術(shù)的航空應(yīng)用GPS技術(shù)在航空方面的應(yīng)用主要表達(dá)在:民航飛機(jī)的在途自主導(dǎo)航;飛機(jī)精密著陸;飛機(jī)空中加油控制;飛機(jī)編隊(duì)飛行的平安保護(hù);航空援救的搜索和定點(diǎn)測(cè)量;機(jī)載地球物理勘探;飛機(jī)探測(cè)災(zāi)區(qū)大小和標(biāo)定測(cè)量;攝影和遙感飛機(jī)的七維狀態(tài)參數(shù)和三維姿態(tài)參數(shù)測(cè)量等。GPS技術(shù)的航天應(yīng)用GPS技術(shù)在航天方面同樣也有著很重要的作用:低軌道通訊衛(wèi)星群的實(shí)時(shí)軌道測(cè)量;衛(wèi)星入軌和衛(wèi)星回收的實(shí)時(shí)點(diǎn)位測(cè)量;載入航天器的在軌防護(hù)探測(cè);星載GPS的遮掩天體大小和大氣參數(shù)測(cè)量;對(duì)地觀測(cè)衛(wèi)星的七維狀態(tài)參數(shù)和三維狀態(tài)參數(shù)測(cè)量[2]。由此可見,GPS技術(shù)已經(jīng)延伸到各個(gè)領(lǐng)域的方方面面,但是要完成以上所述的各種用途,最根本的就是要具備能夠接收GPS信號(hào)并且能夠調(diào)制輸出的設(shè)備,而這種設(shè)備最根本的功能就是能夠顯示當(dāng)時(shí)所處地點(diǎn)的經(jīng)緯度以及UTC標(biāo)準(zhǔn)時(shí)間?,F(xiàn)在世面上已經(jīng)有許多基于GPS接收模塊所開發(fā)的產(chǎn)品,如GPS手持機(jī)、車載GPS導(dǎo)航儀等等,雖然其功能強(qiáng)大,但價(jià)格相對(duì)而言比擬昂貴,而且對(duì)于普通應(yīng)用沒有必要。所以基于這種情況下,本次設(shè)計(jì)針對(duì)普通用戶使用GPS的切實(shí)需要,設(shè)計(jì)并制作基于單片機(jī)的GPS定位信息顯示系統(tǒng)。1.2論文主要內(nèi)容本次設(shè)計(jì)的主要任務(wù)是在GPS和單片機(jī)的理論知識(shí)根底上,選擇適宜的單片機(jī)提取GPS接收模塊接收的數(shù)據(jù)并且由液晶顯示模塊顯示接收的數(shù)據(jù)。在此次設(shè)計(jì)過程中,主要熟悉所選用的GPS接收模塊的性能指標(biāo),學(xué)習(xí)NMEA封包并懂得如何使用NMEA輸出命令,結(jié)合單片機(jī)的相關(guān)知識(shí)能實(shí)現(xiàn)對(duì)GPS接收到的衛(wèi)星信息進(jìn)行提取,并在液晶顯示器上選擇性的顯示需要的數(shù)據(jù)。第二章GPS定位信息顯示系統(tǒng)方案設(shè)計(jì)2.1GPS全球定位系統(tǒng)簡(jiǎn)介全球定位系統(tǒng)(GPS)是本世紀(jì)70年代由美國(guó)陸??杖娐?lián)合研制的新一代空間衛(wèi)星導(dǎo)航定位系統(tǒng)。其主要目的是為陸、海、空三大領(lǐng)域提供實(shí)時(shí)、全天候和全球性的導(dǎo)航效勞,并用于情報(bào)收集、核爆監(jiān)測(cè)和應(yīng)急通訊等一些軍事目的,是美國(guó)獨(dú)霸全球戰(zhàn)略的重要組成局部。全球定位系統(tǒng)由三局部構(gòu)成:(1)地面控制局部,由主控站(負(fù)責(zé)管理、協(xié)調(diào)整個(gè)地面控制系統(tǒng)的工作)、地面天線(在主控站的控制下,向衛(wèi)星注入尋電文)、監(jiān)測(cè)站(數(shù)據(jù)自動(dòng)收集中心)和通訊輔助系統(tǒng)(數(shù)據(jù)傳輸)組成。(2)空間局部,由24顆衛(wèi)星組成,分布在6個(gè)軌道平面上。(3)用戶裝置局部,主要由GPS接收機(jī)和衛(wèi)星天線組成[3]。這三局部的相互關(guān)系如圖2.1所示。圖2.1GPS全球定位系統(tǒng)組成1978年2月22日,第一顆GPS試驗(yàn)衛(wèi)星的發(fā)射成功,標(biāo)志著工程研制階段的開始。1989年2月14日,第一顆GPS工作衛(wèi)星的發(fā)射成功,宣告GPS系統(tǒng)進(jìn)入了生產(chǎn)作業(yè)階段。GPS系統(tǒng)經(jīng)過16年的發(fā)射試驗(yàn)衛(wèi)星,到開發(fā)GPS信號(hào)應(yīng)用,進(jìn)而發(fā)射工作衛(wèi)星,終于在1994年3月建成了信號(hào)覆蓋率到達(dá)了98%的GPS工作星座,它由24顆圖2.2Block2衛(wèi)星圖全球定位系統(tǒng)有很多特點(diǎn),其主要特點(diǎn)如下:(1)全天候;(2)全球覆蓋;(3)三維定速定時(shí)高精度;(4)快速省時(shí)高效率;(5)應(yīng)用廣泛多功能。24顆GPS衛(wèi)星在離地面2萬公里的高空上,以12小時(shí)的周期環(huán)繞地球運(yùn)行,使得在任意時(shí)刻,在地面上的任意一點(diǎn)都可以同時(shí)接收到6顆以上GPS衛(wèi)星的定位信息。只要有4顆衛(wèi)星的定位信息,GPS接收機(jī)就能向用戶提供三維坐標(biāo)、時(shí)間及移動(dòng)速度等信息參數(shù)。由于衛(wèi)星的位置精確可知,在GPS觀測(cè)中,我們可得到衛(wèi)星到接收設(shè)備的距離,根據(jù)三維坐標(biāo)中的距離公式,利用3顆衛(wèi)星,就可以組成3個(gè)方程式,解出觀測(cè)點(diǎn)的位置(X,Y,Z)??紤]到衛(wèi)星的時(shí)鐘與接收機(jī)時(shí)鐘之間的誤差,實(shí)際上有4個(gè)未知數(shù),X、Y、Z和鐘差,因而需要引入第4顆衛(wèi)星,形成4個(gè)方程式進(jìn)行求解,從而得到觀測(cè)點(diǎn)的經(jīng)緯度和高程。由于衛(wèi)星運(yùn)行軌道、衛(wèi)星時(shí)鐘存在誤差,大氣對(duì)流層、電離層對(duì)信號(hào)的影響,以及人為的SA保護(hù)政策,使得民用GPS的定位精度只有100米。美國(guó)政府宣布從2000年起,在保證美國(guó)國(guó)家平安不受威脅的前提下,取消SA政策,GPS民用信號(hào)精度在全球范圍內(nèi)得到改善,利用C/A碼進(jìn)行單點(diǎn)定位的精度由100米提高到20米。為了到達(dá)更高的定位精度,往往還采用了差分GPS(DGPS)技術(shù),建立基準(zhǔn)站(差分臺(tái))進(jìn)行GPS觀測(cè),利用的基準(zhǔn)站精確坐標(biāo),與觀測(cè)值進(jìn)行比擬,從而得出一修正數(shù),并對(duì)外發(fā)布。接收機(jī)收到該修正數(shù)后,與自身的觀測(cè)值進(jìn)行比擬,消去大局部誤差,得到一個(gè)比擬準(zhǔn)確的位置。實(shí)驗(yàn)說明,利用差分GPS2.2GPS信號(hào)接收方案選擇要實(shí)現(xiàn)在液晶顯示器上顯示出接收到的GPS數(shù)據(jù)信息,首先要實(shí)現(xiàn)GPS信號(hào)的接收。在接收GPS信號(hào)方案上可以有兩種選擇。第一種方案是選擇GPS接收芯片然后再根據(jù)芯片設(shè)計(jì)標(biāo)準(zhǔn),設(shè)計(jì)外圍電路和安裝天線等,選擇這個(gè)方案的優(yōu)點(diǎn)是可以掌握到GPS接收局部的電路設(shè)計(jì)技術(shù),但是這個(gè)方案的缺點(diǎn)也是顯而易見的,首先實(shí)現(xiàn)的難度較大,不容易成功,其次由于GPS接收芯片一般都是廠商直接供貨,單獨(dú)采購(gòu)價(jià)格會(huì)很高。第二種方案是選擇成品的GPS接收模塊,采用這個(gè)方案的優(yōu)點(diǎn)是由于現(xiàn)階段GPS接收模塊的制造技術(shù)已經(jīng)相當(dāng)成熟,性能穩(wěn)定并且使用非常方便,定位成功后直接就可以通過模塊輸出GPS相關(guān)信息。并且在經(jīng)過大規(guī)模的商業(yè)化生產(chǎn)后價(jià)格已經(jīng)能被我們所接受,這樣的模塊在市面上也能夠容易的購(gòu)置到。從上面的分析可以知道,選擇GPS接收模塊就能夠很好的作為本次設(shè)計(jì)接收GPS定位信息的解決方案,因此我選擇第二種方案來完本錢次設(shè)計(jì)。2.3GPS接收模塊的研究GPS接收模塊是接收機(jī)的關(guān)鍵局部,而且型號(hào)很多,功能各異,一般組成結(jié)構(gòu)主要由低噪聲下變頻器、并行信號(hào)通道、CPU、儲(chǔ)存器等組成。GPS接收模塊通過它的接收天線獲取衛(wèi)星信號(hào),經(jīng)過變頻、放大、濾波、相關(guān)、混頻等一系列處理,可以實(shí)現(xiàn)對(duì)天線視界內(nèi)衛(wèi)星的跟蹤、鎖定和測(cè)量。在獲取了衛(wèi)星的位置信息和測(cè)算出衛(wèi)星信號(hào)傳播時(shí)間之后,即可計(jì)算出天線位置。用戶通過輸入輸出接口,與GPS接收模塊進(jìn)行信息交換,實(shí)現(xiàn)功能。GPS接收模塊內(nèi)部結(jié)構(gòu)如圖2.3所示。圖2.3GPS接收模塊內(nèi)部結(jié)構(gòu)2.4總體方案的設(shè)計(jì)本次設(shè)計(jì)要求通過單片機(jī)控制GPS器件實(shí)現(xiàn)定位信息顯示功能。在這里使用常見的MCS-51型單片機(jī)作為處理器,利用MCS-51單片機(jī)的串行接口接收SiRFStarIIGPS信號(hào)接收模塊輸出的數(shù)據(jù)信號(hào),并通過軟件方法篩選出其中有用的定位數(shù)據(jù),最后通過單片機(jī)的并行接口輸出至液晶顯示模塊顯示的方案。該GPS定位信息顯示系統(tǒng)硬件局部主要由以下幾個(gè)局部組成:(1)接收局部:以SiRFStarIIGPS接收模塊為核心的GPS接收機(jī);(2)控制電路:由51單片機(jī)作為微處理器控制GPS信號(hào);(3)顯示局部:12864LCD液晶顯示模塊;(4)電源電路局部:用以提供系統(tǒng)工作時(shí)所必須的電。單片機(jī)系統(tǒng):本次設(shè)計(jì)使用51單片機(jī)作為微處理器,控制GPS數(shù)據(jù)的讀取和傳輸過程。利用其串行接口接收SiRFStarIIGPS接收模塊輸出的NMEA-0183語(yǔ)句數(shù)據(jù),并將接收到的數(shù)據(jù)經(jīng)過篩選和處理后發(fā)送到12864液晶顯示器顯示。外圍電路:外圍電路一局部是由GPS接收器件及其輔助電路組成,一局部是LCD液晶顯示模塊的電源電路和顯示電路。SiRFStarIIGPS接收模塊主要由變頻器、信號(hào)通道、存儲(chǔ)器、中央處理器和輸入輸出接口構(gòu)成。它接收天線獲取的衛(wèi)星信號(hào),經(jīng)過變頻、放大、濾波、相關(guān)、混頻等一系列處理,可以實(shí)現(xiàn)對(duì)天線視界內(nèi)衛(wèi)星的跟蹤、鎖定和測(cè)量定位。單片機(jī)控制程序:編寫程序,實(shí)現(xiàn)單片機(jī)控制系統(tǒng)的初始化,控制GPS器件完成數(shù)據(jù)的采集,進(jìn)行相應(yīng)的信號(hào)處理,并通過單片機(jī)接口輸出至液晶顯示模塊顯示必要的數(shù)據(jù)。由此可知:GPS接收模塊將接收到的GPS衛(wèi)星導(dǎo)航電文調(diào)制解碼,轉(zhuǎn)換為標(biāo)準(zhǔn)格式后,送給單片機(jī),當(dāng)單片機(jī)接收到GPS發(fā)送過來的導(dǎo)航電文后,經(jīng)過片內(nèi)程序的識(shí)別篩選,將篩選出來的導(dǎo)航電文送到顯示模塊,并且最后通過液晶顯示器按照要求顯示出來。第三章基于單片機(jī)的GPS硬件電路設(shè)計(jì)3.1基于單片機(jī)的GPS硬件電路總體結(jié)構(gòu)根據(jù)總體設(shè)計(jì)方案,該基于單片機(jī)的GPS硬件電路設(shè)計(jì)主要由GPS信號(hào)接收局部〔SiRFStarIIGPS信號(hào)接收模塊〕、控制芯片〔STC89C52單片機(jī)〕、顯示局部〔12864LCD液晶顯示模塊〕這幾局部構(gòu)成。其大體結(jié)構(gòu)框圖如圖3.1圖3.1基于單片機(jī)的GPS硬件總體結(jié)構(gòu)框圖3.2基于單片機(jī)的GPS定位信息顯示系統(tǒng)設(shè)計(jì)硬件電路簡(jiǎn)介STC89C52簡(jiǎn)介STC89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),采用40引腳雙列直插封裝方式。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容[4]。STC89C52引腳如圖3.2所示:圖3.2STC89C52引腳圖其引腳說明如下:主電源引腳〔2根〕:VCC(Pin40):電源輸入,接+5V電源;GND(Pin20):接地線。外接晶振引腳〔2根〕:XTAL1(Pin19):片內(nèi)振蕩電路的輸入端;XTAL2(Pin18):片內(nèi)振蕩電路的輸出端??刂埔_〔4根〕:RST(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位;ALE/PROG(Pin30):地址鎖存允許信號(hào);PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào);EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平那么從內(nèi)部程序存儲(chǔ)器讀指令??删幊梯斎?輸出引腳〔32根〕:STC89C52單片機(jī)有4組8位的可編程I/O口,分別為P0、P1、P2、P3口,每個(gè)口有8根引腳,共32根。P0口〔Pin39~Pin32〕:8位雙向I/O口線,名稱為P0.0~P0.7;P1口〔Pin1~Pin8〕:8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7;P2口〔Pin21~Pin28〕:8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7;P3口〔Pin10~Pin17〕:8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7。STC89C52主要功能如表3.1所示。表3.1STC89C52主要功能主要功能特性兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫FlashROM32個(gè)雙向I/O口256x8bit內(nèi)部RAM3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24MHz2個(gè)串行中斷可編程UART串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫中斷口線3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能時(shí)鐘電路STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘電路如圖3.3(a)所示,在RXD和TXD引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用[5]。外部方式的時(shí)鐘電路如圖3.3〔b〕所示,RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用?!瞐〕內(nèi)部方式時(shí)鐘電路〔b〕外部方式時(shí)鐘電路圖3.3時(shí)鐘電路(2)復(fù)位復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)[6]。除PC之外,復(fù)位操作還對(duì)其他一些存放器有影響,它們的復(fù)位狀態(tài)如表3.2所示。表3.2一些存放器的復(fù)位狀態(tài)存放器復(fù)位狀態(tài)存放器復(fù)位狀態(tài)PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00HRST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。假設(shè)使用頗率為6MHz的晶振,那么復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過4us才能完成復(fù)位操作。整個(gè)復(fù)位電路包括芯片內(nèi)、外兩局部。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)[7]。SiRFStarIIGPS信號(hào)接收模塊該設(shè)計(jì)中GPS信號(hào)接收模塊所選用的是SiRFStarIIGPS接收模塊,該模塊是由美國(guó)瑟孚科技所生產(chǎn)。主要使用到的引腳如圖3.4所示。該模塊具有12通道并行接收能力,所接收的GPS信號(hào)屬于民用頻段的L1信號(hào)〔1575.42MHz〕,在沒有SA干擾的情況下平均定位誤差為10米,動(dòng)態(tài)速度誤差為0.1米/秒,信號(hào)靈敏度到達(dá)-142dBm,冷啟動(dòng)定位時(shí)間為42秒,熱啟動(dòng)時(shí)間為38秒,重新定位時(shí)間僅僅需要圖3.4SiRFStarII引腳圖GPS數(shù)據(jù)輸出格式為標(biāo)準(zhǔn)的NMEA-0183標(biāo)準(zhǔn),采集地理信息的更新速率為每?jī)擅胍淮?,地圖坐標(biāo)系為WGS-84坐標(biāo)系[8]。該模塊天線采用的是體積小、可靠性高、靈敏度高的微帶天線,該天線封裝在模塊內(nèi)部,更進(jìn)一步的提高了整個(gè)模塊的可靠性。該模塊實(shí)物圖如圖3.5所示。圖3.5GPS接收模塊它的工作電壓為2.7V-3.3V,工作電流僅為75mA,它由GSP2e數(shù)字IC、GRF2i射頻IC和GSW2模塊化軟件組成。GSP2e主要集成了一個(gè)增強(qiáng)型GPS內(nèi)核、一個(gè)50MHz的ARM7CPU、獨(dú)立的內(nèi)部總線和外部總線、1MbEDODRAM、高精度實(shí)時(shí)時(shí)鐘、GPS接收機(jī)外部設(shè)備和2個(gè)UART。GRF2i主要由片內(nèi)壓控振蕩器和基準(zhǔn)振蕩器、集成中頻濾波器(IF)、集成LNA和數(shù)字接口等組成。GSW2模塊化軟件很容易集成到現(xiàn)有系統(tǒng)中,并提供功能強(qiáng)大的開發(fā)環(huán)境。SiRFStarII除增加了中央處理器和衛(wèi)星信號(hào)追蹤引擎,SiRFStarII在芯片組中集成了兆位存儲(chǔ)器(DRAM),這個(gè)是其它同類產(chǎn)品的八倍。這使其不僅可執(zhí)行各項(xiàng)GPS功能,還能為用戶應(yīng)用提供額外存儲(chǔ)。將IF濾波器集成到射頻芯片內(nèi)而無需新增外部濾波器,從而進(jìn)一步降低了元件的數(shù)目并增加了可靠性。該芯片的主要特征如表3.3所示。表3.3SiRFStarII主要特征SiRFStarII特點(diǎn)功能用處信號(hào)捕捉從有遮擋地區(qū)走出時(shí)快速重捕衛(wèi)星信號(hào)在遮擋環(huán)境下提供更多的定位結(jié)果信號(hào)跟蹤跟蹤弱信號(hào)比正常信號(hào)信噪比低20dB改善信號(hào)可利用性,在信號(hào)衰減嚴(yán)重的地方也可定位單衛(wèi)星定位在短暫的僅能收到一顆衛(wèi)星的情況下定位在信號(hào)阻塞的地區(qū)也可定位,適于車載GPS多級(jí)消除誤差減小GPS反射徑帶來的誤差使GPS定位準(zhǔn)確度提高到5m差分GPS周期〔大約30分鐘〕更新星歷和修正時(shí)間功率幾乎變成了以前的20%,增加使用時(shí)間功率分配1s內(nèi)有800ms的時(shí)間接收機(jī)不工作,僅僅有200ms的時(shí)間用于重捕、跟蹤、定位工作在不想頻繁給出定位結(jié)果的情況下,節(jié)省功耗3.2.312864液晶顯示模塊介紹(1)液晶顯示模塊概述12864液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字〔16X16點(diǎn)陣〕、128個(gè)字符〔8X16點(diǎn)陣〕及64X256點(diǎn)陣顯示RAM〔GDRAM〕。12864液晶顯示模塊引腳如圖3.6所示。圖3.612864液晶顯示電路圖主要技術(shù)參數(shù)和顯示特性:電源:VDD3.3V~5V(內(nèi)置升壓電路,無需負(fù)壓);顯示內(nèi)容:128列×64行;顯示顏色:黃綠;顯示角度:6:00鐘直視;LCD類型:STN;與MCU接口:8位或4位并行/3位串行;配置LED背光;多種軟件功能:光標(biāo)顯示、畫面移位、自定義字符、睡眠模式等;邏輯工作電壓(VDD):4.5~5.5V;電源地(GND):0V;工作溫度(Ta):0~60℃(常溫)/-20~75℃〔寬溫〕[9]。12864有20接口引腳,引腳說明如表3.4所示。表3.412864引腳說明引腳序號(hào)名稱說明1CS1#U1片選。2CS2#U2片選。3VSS電源地。4VDD電源輸入〔+5V〕。5VO液晶顯示比照度調(diào)節(jié)。6DI數(shù)據(jù)輸入。7R/W讀寫選擇。R/W=1,讀狀態(tài);R/W=0,寫狀態(tài)。8E讀寫使能。9-16D0-D7數(shù)據(jù)總線。17RST液晶模組復(fù)位。RST#=L,復(fù)位。18VEE液晶驅(qū)動(dòng)電源。19VLED+LED電源正〔5.0V〕。20VLED-LED電源地。3.3基于單片機(jī)的GPS硬件連接介紹整個(gè)硬件設(shè)計(jì)要求GPS接收模塊輸出的信號(hào)通過單片機(jī)STC89C52、GPS信號(hào)接收模塊、12864液晶顯示模塊、電源相連接實(shí)現(xiàn)系統(tǒng)功能。硬件電路設(shè)計(jì)如圖3.7所示。圖3.7GPS硬件電路圖第四章基于單片機(jī)的GPS軟件設(shè)計(jì)4.1NMEA-0183數(shù)據(jù)格式NMEA-0183是美國(guó)國(guó)家海洋電子協(xié)會(huì)〔NationalMarineElectronicsAssociation〕為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式。它是在過去海用電子設(shè)備的標(biāo)準(zhǔn)格式0180和0182的根底上,增加了GPS接收機(jī)輸出的內(nèi)容而完成的。目前廣泛采用的是Ver2.00版本?,F(xiàn)在除少數(shù)早期的GPS接收機(jī)外,幾乎所有的GPS接收機(jī)均采用了這一格式。此協(xié)議是為了在不同的GPS導(dǎo)航設(shè)備中建立統(tǒng)一的RTCM標(biāo)準(zhǔn)。這種格式的廣泛使用使得GPS接收模塊的通用化和互換性大大提高。這種格式所輸出的語(yǔ)句采用的是ASCII字符碼,包含了緯度、經(jīng)度、速度、日期、時(shí)間、航向、以及衛(wèi)星信號(hào)情況等信息。其串行通信默認(rèn)參數(shù)為:波特率=9600bps,數(shù)據(jù)位=8bit,開始位=1bit,停止位=1bit,無奇偶校驗(yàn)。幀格式形如:$aaccc,ddd,ddd,…,ddd*hh<CR><LF>(1)“$〞:幀命令起始位;(2)aaccc:地址域,前兩位為識(shí)別符,后三位為語(yǔ)句名;(3)ddd…ddd:數(shù)據(jù);(4)“*〞:校驗(yàn)和前綴;(5)hh:校驗(yàn)和〔checksum〕,$與*之間所有字符ASCII碼的校驗(yàn)和〔各字節(jié)做異或運(yùn)算,得到校驗(yàn)和后,再轉(zhuǎn)換16進(jìn)制格式的ASCII字符?!?6)<CR><LF>:CR〔CarriageReturn〕+LF〔LineFeed〕幀結(jié)束,回車和換行。輸入語(yǔ)句NMEA-0183輸入語(yǔ)句是指GPS接收模塊可以接收的語(yǔ)句。輸入語(yǔ)句包括初始位置,時(shí)間,秒脈沖狀態(tài),差分模式,NMEA輸出間隔等設(shè)置信息。這些語(yǔ)句是GPS接收機(jī)可以接受的語(yǔ)句。一般情況下初始化信息語(yǔ)句為PGRMI?!鏕PRMI,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh<CR><LF><1>緯度ddmm.mmmm〔度分〕格式〔前面的0也將被傳輸〕;<2>緯度半球N〔北半球〕或S〔南半球〕;<3>經(jīng)度dddmm.mmmm〔度分〕格式〔前面的0也將被傳輸〕;<4>經(jīng)度半球E〔東經(jīng)〕或W〔西經(jīng)〕;<5>UTC日期,ddmmyy〔日月年〕格式;<6>UTC時(shí)間,hhmmss〔時(shí)分秒〕格式;<7>接收機(jī)命令,A=自動(dòng)定位,R=機(jī)器重新啟動(dòng)。4.1.2SiRFStarII的輸出語(yǔ)句有十余種,其主要語(yǔ)句有GPALM〔歷書數(shù)據(jù)〕、GPGGA(GPS標(biāo)準(zhǔn)數(shù)據(jù),定位數(shù)據(jù))、GPGSV〔衛(wèi)星狀態(tài)〕、GPGSA、GPRMC、GPVTG、PGRME、PGRMF、PGRMT、PGRMV〔GARMIN定義的語(yǔ)句,3D速度信息〕、LCGLL、LCVTG〔NMEA標(biāo)準(zhǔn)語(yǔ)句〕等??赏ㄟ^GPS串口調(diào)試軟件發(fā)送相應(yīng)的命令語(yǔ)句給SiRFStarII芯片,此后芯片會(huì)根據(jù)命令語(yǔ)句設(shè)置參數(shù)。幾種常用的數(shù)據(jù)格式如下:〔1〕GPS標(biāo)準(zhǔn)數(shù)據(jù)〔GPGGA〕,其結(jié)構(gòu)為:$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15><CR><LF><1>UTC時(shí)間,格式為hhmmss.sss;<2>緯度,格式為ddmm.mmmm〔前導(dǎo)位數(shù)缺乏那么補(bǔ)0〕;<3>緯度半球,N或S〔北緯或南緯〕;<4>經(jīng)度,格式為dddmm.mmmm〔前導(dǎo)位數(shù)缺乏那么補(bǔ)0〕;<5>經(jīng)度半球,E或W〔東經(jīng)或西經(jīng)〕;<6>定位質(zhì)量指示,0=定位無效,1=定位有效;<7>使用衛(wèi)星數(shù)量,從00到12〔前導(dǎo)位數(shù)缺乏那么補(bǔ)0〕;<8>水平精確度,0.5到99.9;<9>天線離海平面的高度,-9999.9到9999.9米<10>高度單位,M表示單位米;<11>大地橢球面相對(duì)海平面的高度,-999.9到9999.9米;<12>高度單位,M表示單位米;<13>差分GPS數(shù)據(jù)期限〔RTCMSC-104〕,最后設(shè)立RTCM傳送的秒數(shù)量;<14>差分參考基站標(biāo)號(hào),從0000到1023〔前導(dǎo)位數(shù)缺乏那么補(bǔ)0〕;<15>校驗(yàn)和?!?〕可視衛(wèi)星狀態(tài)輸出語(yǔ)句〔GPGSV〕,其結(jié)構(gòu)為:$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*<8><CR><LF><1>總的GSV語(yǔ)句電文數(shù);<2>當(dāng)前GSV語(yǔ)句號(hào);<3>可視衛(wèi)星總數(shù),00至12;<4>衛(wèi)星編號(hào),01至32;<5>衛(wèi)星仰角,00至90度;<6>衛(wèi)星方位角,000至359度,實(shí)際值;<7>信噪比〔C/No〕,00至99dB;無表未接收到訊號(hào);<8>校驗(yàn)和?!?〕推薦最小GPS/TRANSIT數(shù)據(jù)〔GPRMC〕,其結(jié)構(gòu)為:$GPRMC,<1>,<2>,<2>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>其中“GP〞為交談識(shí)別符;“RMC〞為語(yǔ)句識(shí)別符;“hh〞為校驗(yàn)和,其代表了“$〞與“*〞之間所有字符的按位異或值〔不包括這兩個(gè)字符〕。$GPRMC語(yǔ)句數(shù)據(jù)區(qū)的內(nèi)容為:<1>定位點(diǎn)的協(xié)調(diào)世界時(shí)間〔UTC〕,hhmmss〔時(shí)分秒〕格式;<2>定位狀態(tài),A=有效定位,V=無效定位;<3>定位點(diǎn)緯度,ddmm.mmmm〔度分〕格式;<4>緯度半球,N〔北半球〕或S〔南半球〕;<5>定位點(diǎn)經(jīng)度,dddmm.mmmm〔度分〕格式;<6>經(jīng)度半球,E〔東經(jīng)〕或W〔西經(jīng)〕;<7>地面速率,000.0~999.9節(jié);<8>地面航向,000.0~359.9度;<9>UTC日期,ddmmyy〔日月年〕格式;<10>磁偏角,000.0~180度;<11>磁偏角方向,E〔東〕或W〔西〕;<12>工作模式:A=自主,D=差分,E=評(píng)估,N=數(shù)據(jù)無效[10]。4.2基于單片機(jī)的GPS定位系統(tǒng)軟件開發(fā)環(huán)境―KeiluVision24.2.18051開發(fā)工具KeiluVision2是美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)C語(yǔ)言的語(yǔ)法來開發(fā),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),它還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入。KeilC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語(yǔ)言環(huán)境,同時(shí)保存了匯編代碼高效,快速的特點(diǎn)。C51編譯器功能的不斷增強(qiáng),使我們可以更加貼近CPU本身及其他的衍生品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個(gè)集成開發(fā)環(huán)境包括:編譯器,匯編器,實(shí)時(shí)操作系統(tǒng),工程管理器,調(diào)試器。uVision2IDE可為它們提供單一而靈活的開發(fā)環(huán)境[11]。KeiluVision2與同類開發(fā)環(huán)境具有以下優(yōu)點(diǎn):(1)真正的集成調(diào)試環(huán)境,集成了編緝器、編譯器、調(diào)試器;(2)眾多強(qiáng)大軟硬件調(diào)試手段,包括邏輯分析儀、跟蹤器、邏輯筆、波形發(fā)生器、影子存儲(chǔ)器、記時(shí)器、程序時(shí)效分析、數(shù)據(jù)時(shí)效分析、硬件測(cè)試儀、事件觸發(fā)器;(3)所有類型的單片機(jī)集成在一個(gè)調(diào)試環(huán)境下,支持匯編、C、PL/M源程序混合調(diào)試;(4)支持軟件模擬,支持工程管理;(5)支持點(diǎn)屏功能,直接點(diǎn)擊屏幕就可以觀察變量的值,方便快捷;(6)功能強(qiáng)大的觀察窗口,支持所有的數(shù)據(jù)類型;(7)樹狀結(jié)構(gòu)顯示,一目了然;(8)在線直接修改、編譯、調(diào)試源程序,錯(cuò)誤指令定位[12]。uVision2集成開發(fā)環(huán)境(1)工程管理工程〔project〕是由源文件、開發(fā)工具選項(xiàng)以及編程說明三局部組成的。一個(gè)單一的uVision2工程能夠產(chǎn)生一個(gè)或多個(gè)目標(biāo)程序。產(chǎn)生目標(biāo)程序的源文件構(gòu)成“組〞。開發(fā)工具選項(xiàng)可以對(duì)應(yīng)目標(biāo),組或單個(gè)文件。uVision2包含一個(gè)器件數(shù)據(jù)庫(kù)(devicedatabase),可以自動(dòng)設(shè)置匯編器、編譯器、連接定位器及調(diào)試器選項(xiàng),來滿足用戶充分利用特定微控制器的要求。此數(shù)據(jù)庫(kù)包含:片上存儲(chǔ)器和外圍設(shè)備的信息,擴(kuò)展數(shù)據(jù)指針(extradatapointer)或者加速器(mathaccelerator)的特性。uVision2可以為片外存儲(chǔ)器產(chǎn)生必要的連接選項(xiàng):確定起始地址和規(guī)模[13]。(2)集成功能uVision2的強(qiáng)大功能有助于用戶按期完工。集成源極瀏覽器利用符號(hào)數(shù)據(jù)庫(kù)使用戶可以快速瀏覽源文件。用詳細(xì)的符號(hào)信息來優(yōu)化用戶變數(shù)存儲(chǔ)器;文件尋找功能:在特定文件中執(zhí)行全局文件搜索;工具菜單:允許在V2集成開發(fā)環(huán)境下啟動(dòng)用戶功能;可配置SVCS接口:提供對(duì)版本控制系統(tǒng)的入口;PC-LINT接口:對(duì)應(yīng)用程序代碼進(jìn)行深層語(yǔ)法分析;Infineon的EasyCase接口:集成塊集代碼產(chǎn)生;Infineon的DAVE功能:協(xié)助用戶的CPU和外部程序。DAVE工程可被直接輸入uVision2。編輯器和調(diào)試器(1)源代碼編輯器uVision2編輯器包含了所有用戶熟悉的特性。彩色語(yǔ)法顯像和文件辯識(shí)都對(duì)C源代碼進(jìn)行和優(yōu)化。可以在編輯器內(nèi)調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使你更快速地檢查和修改程序。(2)斷點(diǎn)uVision2允許用戶在編輯時(shí)設(shè)置程序斷點(diǎn)〔甚至在源代碼未經(jīng)編譯和匯編之前〕,用戶啟動(dòng)V2調(diào)試器之后,斷點(diǎn)即被激活。斷點(diǎn)可設(shè)置為條件表達(dá)式,變量或存儲(chǔ)器訪問,斷點(diǎn)被觸發(fā)后,調(diào)試器命令或調(diào)試功能即可執(zhí)行。在屬性框(attributescolumn)中可以快速瀏覽斷點(diǎn)設(shè)置情況和源程序行的位置,代碼覆蓋率信息可以讓你區(qū)分程序中已執(zhí)行和未執(zhí)行的局部。調(diào)試函數(shù)語(yǔ)言u(píng)Vision2中,你可以編寫或使用類似C的數(shù)語(yǔ)言進(jìn)行調(diào)試。內(nèi)部函數(shù):如printf,memset,rand及其它功能的函數(shù);信號(hào)函數(shù):模擬產(chǎn)生CPU的模擬信號(hào)和脈沖信號(hào);用戶函數(shù):擴(kuò)展指令范圍,合并重復(fù)動(dòng)作。變量和存儲(chǔ)器用戶可以在編輯器中選中變呈來觀察其取值。雙層窗口顯示,可進(jìn)行以下調(diào)整:當(dāng)前函數(shù)的局部變量;用戶在兩個(gè)不同watch窗口頁(yè)面上的自定義變量;堆棧調(diào)用(callstack)頁(yè)面上的調(diào)用記錄〔樹〕(calltree);不同格式的四個(gè)存儲(chǔ)區(qū)[14]。測(cè)試程序uVision2調(diào)試器具備所有常規(guī)源極調(diào)試,符號(hào)調(diào)試特性以及歷史跟蹤,代碼覆蓋,復(fù)雜斷點(diǎn)等功能。DDE界面和shift語(yǔ)言支持自動(dòng)程序測(cè)試。CPU和外設(shè)模擬裝置uVision2為8051及衍生產(chǎn)品提供了高速CPU模擬功能和片上擴(kuò)展口.在對(duì)話框內(nèi)可直接觀察和修改I/O值,也可以用預(yù)裝的C-LIKE宏指令書寫符號(hào)函數(shù)來提供動(dòng)態(tài)輸入。(2)目標(biāo)監(jiān)控器uVision2含一個(gè)可配置的監(jiān)控器,可測(cè)試目標(biāo)器件上的軟件體。監(jiān)控器用uVision2的調(diào)試器直接工作,可支持代碼區(qū)。它要求目標(biāo)系統(tǒng)具備6字節(jié)堆??臻g,6KB的代碼ROM和256字節(jié)XdataRAM。(3)MCB517/251啟開工具包在開始一項(xiàng)8051工程時(shí),MCB啟開工具會(huì)對(duì)你有很大幫助。每一個(gè)啟開工具包括一套2K字節(jié)的開發(fā)工具和許多可快速運(yùn)行的舉例程序。用戶可在檢測(cè)8051性能的同時(shí),查看開發(fā)工具的可行性。MCB517AC板含高性能InfineonC517A單片機(jī),它提供標(biāo)準(zhǔn)8052外圍設(shè)備和A/D轉(zhuǎn)換器,PWM,搜索/比擬,8位數(shù)據(jù)指針,一個(gè)高速運(yùn)算單元[15]。同時(shí)包含對(duì)81C90CAN控制器和代碼區(qū)的支持。本次設(shè)計(jì)軟件采用了C語(yǔ)言程序編寫,并在KeiluVision2開發(fā)環(huán)境下編譯、調(diào)試。KeilC編譯步驟KeiluVision2C51軟件是目前功能最強(qiáng)大的單片機(jī)C語(yǔ)言集成開發(fā)環(huán)境,這里介紹簡(jiǎn)單的編譯步驟。運(yùn)行Keilc51進(jìn)入編輯界面,如圖4.1所示。圖4.1Keilc51編輯界面首先進(jìn)入菜單project/newproject建立一個(gè)新工程,如圖4.2所示。圖4.2建立新工程選擇要保存的路徑,輸入工程文件的名字,如圖4-3所示。圖4.3保存路徑根據(jù)使用的單片機(jī)選擇相應(yīng)的型號(hào),如圖4.4所示。圖4.4選擇單片機(jī)型號(hào)(5)單擊“Target1”前面的“+〞號(hào),然后在“SourceGroup1”上單擊右鍵,彈出如圖4.5所示界面參加源文件。如還沒有源文件請(qǐng)先進(jìn)入菜單File/New生成一個(gè)圖4.5參加源文件界面(6)進(jìn)行輸出文件設(shè)置,進(jìn)入菜單project/optionsfortarget選擇OUTPUT選項(xiàng)卡,勾選CrestHEXFile項(xiàng),如圖4.6所示。圖4.6輸出文件設(shè)置(7)程序編寫完成后進(jìn)入菜單Project/Buildtarget編譯工程,如圖4.7所示。生成的*.HEX文件即可作為下載程序使用[13]。圖4.7生成文件4.3基于單片機(jī)的GPS軟件設(shè)計(jì)思路該GPS設(shè)計(jì)的核心局部是GPS接收模塊與單片機(jī)的通訊,以及單片機(jī)將收到的信息篩選編排顯示位置后送到LCD液晶顯示模塊顯示。在設(shè)計(jì)該軟件時(shí)采用了模塊化的思想,之所以采用模塊化的設(shè)計(jì)思想,主要是想到了軟件模塊化前方便軟件的調(diào)試,同時(shí)也方便了該軟件的移植,在不同的硬件平臺(tái)上運(yùn)行該軟件只需要更改相應(yīng)的軟件模塊就可以實(shí)現(xiàn)。該軟件模塊設(shè)計(jì)分為液晶模塊初始化模塊,GPS數(shù)據(jù)接收模塊,單片機(jī)模塊這三個(gè)主要模塊。其程序流程圖如圖4.8所示。圖4.8軟件程序流程圖4.4模塊軟件設(shè)計(jì)4.4.1液晶模塊初始化模塊在該設(shè)計(jì)中所使用的是12864液晶顯示模塊,其初始化程序如下所示:#include"LCD.h"voidclr_screen(){Lcd_WriteCmd(0x34);//擴(kuò)充指令操作delay(5);Lcd_WriteCmd(0x30);//根本指令操作delay(5);Lcd_WriteCmd(0x01);//清屏delay(5);}voidLcd_WriteCmd(ucharcmd){ LCD_RS=0; LCD_RW=0; LCD_EN=0; _nop_(); _nop_(); P0=cmd; DelayNOP();LCD_EN=1; DelayNOP(); LCD_EN=0;}voidLcd_WriteDat(uchardat){ LCD_RS=1; LCD_RW=0; LCD_EN=0;P0=dat; DelayNOP(); LCD_EN=1;DelayNOP(); LCD_EN=0;}voidLcd_Init(void){ LCD_PSB=1;//并口方式 Lcd_WriteCmd(0x34);//擴(kuò)充指令操作 delay(5); Lcd_WriteCmd(0x30);//根本指令操作 delay(5); Lcd_WriteCmd(0x0C);//顯示開,關(guān)光標(biāo) delay(5); Lcd_WriteCmd(0x01);//去除LCD的顯示內(nèi)容 delay(5);}voidLcd_SetPos(ucharX,ucharY){ucharpos;if(X==0){X=0x80;}elseif(X==1){X=0x90;}elseif(X==2){X=0x88;}elseif(X==3){X=0x98;}pos=X+Y;Lcd_WriteCmd(pos);//顯示地址}voidLcd_DispLine(ucharline,ucharpos,uchar*str){ inti=0; Lcd_SetPos(line,pos); while(str[i]!='\0') { Lcd_WriteDat(str[i]); i++; }}4.4.2GPS數(shù)據(jù)接收模塊首先要對(duì)GPS接收模塊是否有信號(hào)發(fā)送給單片機(jī)進(jìn)行識(shí)別,而且由于GPS接收模塊發(fā)送出來的數(shù)據(jù)不是我們?nèi)啃枰?,所以有必要再?duì)語(yǔ)句進(jìn)行識(shí)別,然后取入我們所需要的語(yǔ)句GPRMC。其識(shí)別程序如下:if(GPS_RMC_Parse(rev_buf,&GPS))//解析GPRMC{RMC_YES;GPS_DisplayOne(); //顯示GPS信息error_num=0;gps_flag=0;rev_stop=0;}else{error_num++;if(error_num>=20)//如果數(shù)據(jù)無效超過20次{RMC_NO;error_num=20;GPS_Init();//返回初始化}gps_flag=0;rev_stop=0;REV_NO;}程序代碼詳見附錄。第五章系統(tǒng)調(diào)試與實(shí)驗(yàn)結(jié)果完成了系統(tǒng)的硬件設(shè)計(jì)、制作和軟件編程之后,要使系統(tǒng)能夠按照設(shè)計(jì)意圖正常運(yùn)行,必須進(jìn)行硬件和軟件系統(tǒng)調(diào)試。5.1硬件調(diào)試硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計(jì)的錯(cuò)誤和工藝性故障等。檢查所設(shè)計(jì)的硬件電路板所有的器件和引腳是否正確。第一步,我用數(shù)字萬用表進(jìn)行了逐一對(duì)點(diǎn)的檢查,檢查各導(dǎo)線間是否有短路與開路的故障。第二步測(cè)輸入5V電源〔0V地〕線是否與電路中的對(duì)應(yīng)點(diǎn)的電源〔地〕線相連接是否正確;及檢查開關(guān)是否正常,是否連接正確。測(cè)芯片管座與芯片管座之間用導(dǎo)線連接起來的對(duì)應(yīng)腳是否導(dǎo)通和截止。(2)將仿真插頭插入單片機(jī)插座進(jìn)行調(diào)試,檢查各接口是否滿足設(shè)計(jì)的要求。(3)將程序代碼經(jīng)過Keil軟件仿真生成的〔.hex〕文件,用編程器將生成的文件導(dǎo)入單片機(jī)STC89C52中。(4)將寫入程序的單片機(jī)插入硬件電路單片機(jī)管座,查看液晶顯示器12864顯示結(jié)果是否符合設(shè)計(jì)要求。5.2軟件調(diào)試軟件調(diào)試的任務(wù)是利用開發(fā)工具進(jìn)行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序的錯(cuò)誤,同時(shí)也能發(fā)現(xiàn)硬件的故障。軟件調(diào)試是一個(gè)模塊一個(gè)模塊進(jìn)行的,首先單獨(dú)調(diào)試各子程序是否能夠按照預(yù)期的功能,接口電路的控制是否正常,最后調(diào)試整個(gè)程序,尤其注意的是各模塊間能否正確的傳遞參數(shù)。(1)檢查12864液晶顯示模塊程序,觀察在液晶顯示器上是否能夠顯示相應(yīng)的字符。(2)檢查GPS模塊程序,通過觀察12864液晶顯示情況理解GPS信號(hào)接收狀況。(3)通過GPS模塊程序和12864液晶顯示模塊程序的結(jié)合,觀察12864液晶顯示器上的GPS顯示信息。5.3實(shí)驗(yàn)結(jié)果經(jīng)過軟件局部和硬件局部的調(diào)試,最后實(shí)現(xiàn)了其功能。GPS初始化如圖5.1所示。圖5.1GPS初始化時(shí)間、經(jīng)緯度顯示結(jié)果如圖5.2所示。圖5.2時(shí)間、經(jīng)緯度顯示結(jié)果5.4實(shí)驗(yàn)結(jié)果分析圖5-2所示的實(shí)驗(yàn)結(jié)果是我在合肥學(xué)院竹苑A座419寢室測(cè)試的結(jié)果。谷歌地圖顯示這個(gè)位置的經(jīng)緯度如圖5.3所示。圖5.3谷歌地圖顯示結(jié)果GPS定位顯示系統(tǒng)設(shè)計(jì)所測(cè)量出來的結(jié)果中,時(shí)間是很精確的,但是經(jīng)緯度有所差異,根據(jù)我的裝置顯示的結(jié)果是北緯31度45分15秒,東經(jīng)117度14分51秒。谷歌地圖上顯示的結(jié)果是北緯31.7505度,東經(jīng)117.2530度。經(jīng)過單位換算可知,谷歌地圖顯示的結(jié)果是北緯31度45分18秒,東經(jīng)117度15分10秒。由于我所選用的GPS接收模塊的版本比擬低,而且在實(shí)驗(yàn)過程中有其他因素干擾,比方天氣方面和電離層的影響,以及在谷歌地圖上點(diǎn)選的位置有誤差,最終使得我所測(cè)量的結(jié)果與谷歌地圖之間有些許誤差,但是誤差是能夠被接受的,因此,本次試驗(yàn)結(jié)果是可靠、有效的,滿足設(shè)計(jì)要求。第六章總結(jié)隨著GPS的應(yīng)用越來越廣泛,GPS設(shè)備普及速度也將大大加快,在我們國(guó)內(nèi)GPS產(chǎn)業(yè)才剛剛起步,GPS產(chǎn)業(yè)的興起勢(shì)必也將大大的推進(jìn)GPS在民間的應(yīng)用。GPS已在各個(gè)領(lǐng)域發(fā)揮了重要的作用,為促進(jìn)人類開展作出了不可估量的奉獻(xiàn)。不過由于專業(yè)GPS設(shè)備價(jià)格昂貴,普通消費(fèi)者難以承受,所以也限制了GPS在民間的大量應(yīng)用,現(xiàn)在各個(gè)GPS廠商的當(dāng)務(wù)之急便是降低GPS的制造本錢,削減一些普通消費(fèi)者平時(shí)用不到的專業(yè)功能,保存一些根本的實(shí)用功能,以加快GPS在民間普及的速度。本次畢業(yè)設(shè)計(jì),主要是了解GPS的原理,熟悉GPS接收機(jī)的工作原理及其各局部工作流程。GPS信號(hào)處理模塊由SiRFStarII實(shí)現(xiàn),通過SiRFStarII與MCS-51兼容系列單片機(jī)相連,配備了所需的外圍電路,同時(shí)配有液晶顯示器,可以顯示字符,并詳細(xì)介紹了該GPS接收機(jī)的硬件和軟件設(shè)計(jì)。畢業(yè)設(shè)計(jì)是本科學(xué)習(xí)階段一次非常重要的理論與實(shí)際相結(jié)合的時(shí)機(jī),通過本次比擬完整的設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),通過理論和實(shí)際相結(jié)合,鍛煉了我的綜合運(yùn)用所學(xué)知識(shí)的能力,以及解決實(shí)際工程的能力,同時(shí)也提高了我查閱文獻(xiàn)資料、設(shè)計(jì)手冊(cè)、設(shè)計(jì)標(biāo)準(zhǔn)以及繪圖的水平,而且通過對(duì)整體的掌控,對(duì)局部的取舍,以及對(duì)細(xì)節(jié)的斟酌處理,都能使我的能力得到提升,經(jīng)驗(yàn)得到豐富。順利如期的完本錢次畢業(yè)設(shè)計(jì)給了我很大的信心,讓我了解專業(yè)知識(shí)的同時(shí)也對(duì)本設(shè)計(jì)的開展前景充滿信心。提高是有限的但也是全面的,正是這一次設(shè)計(jì)讓我積累了無數(shù)實(shí)際經(jīng)驗(yàn),使我的頭腦更好地被知識(shí)武裝起來,讓我在未來的工作學(xué)習(xí)中有更好的應(yīng)變能力,更強(qiáng)的溝通力和理解力。由于水平有限和時(shí)間問題,有許多缺乏。本設(shè)計(jì)只是GPS入門級(jí)的設(shè)計(jì),不能滿足現(xiàn)在市場(chǎng)上日益劇烈的競(jìng)爭(zhēng)環(huán)境,實(shí)用性還有待提高,功能也有待完善??傊谧鲞@次畢業(yè)設(shè)計(jì)的過程中,既復(fù)習(xí)了已學(xué)的專業(yè)知識(shí),又學(xué)到了實(shí)際經(jīng)驗(yàn),是我人生中一次難得的學(xué)習(xí)經(jīng)歷,更是對(duì)自己綜合能力的考驗(yàn)和提高。致謝本課題是在王慶龍老師的悉心指導(dǎo)下完成的,論文從選題到寫作及最后成稿,王老師都給予了我精心的指導(dǎo)和極大的幫助。王老師淵博的科學(xué)知識(shí)、遠(yuǎn)見卓識(shí)的科學(xué)創(chuàng)新和嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度給了我深遠(yuǎn)的影響,同時(shí)王老師隨和的性格更讓我感到親切。在設(shè)計(jì)階段,王老師在資料搜集、程序調(diào)試、論文寫作等方面都給予我嚴(yán)格的要求和關(guān)鍵性的指導(dǎo),在此衷心感謝幾個(gè)月來王老師對(duì)我的關(guān)心和指導(dǎo)。感謝電子系所有老師在畢業(yè)設(shè)計(jì)期間為我們提供良好的實(shí)驗(yàn)環(huán)境。此外,我還要對(duì)在這次設(shè)計(jì)中,幫助和支持我的同學(xué),表示感謝!王致忠2023年5月于合肥學(xué)院參考文獻(xiàn)[1]劉基余.GPS衛(wèi)星導(dǎo)航定位原理與方法[M],北京:科學(xué)出版社,2003.[2]劉基余,李征航.全球定位系統(tǒng)原理及其應(yīng)用[M],北京:測(cè)繪出版社,1993.[3]王惠南.GPS導(dǎo)航原理與應(yīng)用[M],北京:科學(xué)出版社,2003.[4]潘永雄.新編單片機(jī)原理與應(yīng)用[M],西安:西安電子科技大學(xué)出版社,2003.[5]張鵬.單片機(jī)原理及應(yīng)用[M],成都:電子科技大學(xué)出版社,2004.[6]張立科.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M],北京:人民郵電出版社,2000.[7]余錫存,曹國(guó)華.單片機(jī)原理及接口技術(shù)[M],西安:西安電子科技大學(xué)出版社,2023.[8]劉曉,伍小東,姚軍光,等.基于單片機(jī)采集GPS數(shù)據(jù)系統(tǒng)的設(shè)計(jì)[J],青島科技大學(xué)學(xué)報(bào),2006,27(2):172-175.[9]姚敏,郭慶.基于MCS-51系列單片機(jī)的GPS獨(dú)立定位設(shè)備的研究[J],計(jì)算機(jī)與信息技術(shù),2006,2(8):79-82.[10]李勇軍,楊青,龐樹杰,等.基于OEM板的GPS接收機(jī)設(shè)計(jì)[J],農(nóng)機(jī)化研究,2006,5(12):109-111.[11]王丙祥,李建海.基于89C52的GPS板電路設(shè)計(jì)與實(shí)現(xiàn)[J],西安文理學(xué)院學(xué)報(bào):自然科學(xué)版,2007,10(3):98-101.[12]AnnaM.Murphy,ShinichiTsutsumi,PererGaussen.ALow-Power,Low-CostBipolarGPSReceiverChip[J],IEEEJOURNALOFSOLID-STATECIRCUITS.1997,4(4):587-591.[13]李洪濤.GPS應(yīng)用程序設(shè)計(jì)[M],北京:科學(xué)出版社,1999.[14]許進(jìn),周寧.GPS接收機(jī)的單片機(jī)通訊接口[J],電子器件,1999,22(3):23-26.[15]索明何,饒運(yùn)濤,邢海霞,等.基于單片機(jī)的液晶顯示系統(tǒng)設(shè)計(jì)[J],科技廣場(chǎng),2023,7(2):22-24.附錄主程序//定義頭文件,函數(shù)和變量#include<reg52.h>#include<stdio.h>#include<string.h>#include"GPS.h"#include"LCD.h"#include"display.h"charxdatarev_buf[80];//接收緩存ucharxdatarev_start=0;//接收開始標(biāo)志ucharxdatarev_stop=0;//接收停止標(biāo)志ucharxdatagps_flag=0;//GPS處理標(biāo)志ucharxdatachange_page=0;//換頁(yè)顯示標(biāo)志ucharxdatanum=0;voidUart_Init(void){ TMOD=0x21; //00100001 PCON=0X00; TH0=0x3c; TL0=0xb0; TH1=0xFA; //11111010 TL1=0xFA; //11111010 TR1=1;//開啟定時(shí)器1 REN=1;//允許接收數(shù)據(jù) SM0=0; SM1=1; TI=0; RI=0; EA=1;//開總中斷 ES=1;//串口1中斷允許 ET0=1;//定時(shí)器1中斷允許}voidmain(void)//主函數(shù){ ucharerror_num=0; Lcd_Init(); //初始化LCD GPS_Init();//初始化GPS rev_stop=0; REV_NO; while(1) { if(rev_stop)//如果接收完一行 { TR0=1;//開啟定時(shí)器 REV_YES;if(GPS_RMC_Parse(rev_buf,&GPS))//解析GPRMC{RMC_YES;GPS_DisplayOne(); //顯示GPS信息 error_num=0;gps_flag=0;rev_stop=0;}else{error_num++;if(error_num>=20)//如果數(shù)據(jù)無效超過20次{RMC_NO;error_num=20;GPS_Init();//返回初始化}gps_flag=0;rev_stop=0;REV_NO;}}}voidtimer0(void)interrupt1{ staticucharcount=0; TH0=0x3c; TL0=0xb0; count++; if(count==200)//2*5秒鐘 { count=0; change_page++;//換頁(yè) if(change_page==10) change_page=0; } }voidUart_Receive(void)interrupt2{ ucharch; ES=0; if(RI) { ch=SBUF; if((ch=='$')&&(gps_flag==0))//如果收到字符'$',便開始接收 { rev_start=1; rev_stop=0; } if(rev_start==1)//標(biāo)志位為1,開始接收 { rev_buf[num++]=ch;//字符存到數(shù)組中 if(ch=='\n')//如果接收到換行 { rev_buf[num]='\0'; rev_start=0; rev_stop=1; gps_flag=1; num=0; } } } RI=0; //RI清0,重新接收 ES=1; }SiRFStarIIGPS接收模塊程序#include"GPS.h"#include"LCD.h"#include<string.h>ucharcodeinit1[]={"GPS顯示終端"};ucharcodeinit3[]={"GPS初始化"};ucharcodeinit4[]={"搜索定位衛(wèi)星"};staticucharGetComma(ucharnum,char*str);staticdoubleGet_Double_Number(char*s);staticfloatGet_Float_Number(char*s);staticvoidUTC2BTC(DATE_TIME*GPS);voidGPS_Init(void){ Lcd_DispLine(0,0,init1); Lcd_DispLine(1,0,init3); Lcd_DispLine(2,0,init4);}intGPS_RMC_Parse(char*line,GPS_INFO*GPS){ ucharch,status,tmp; floatlati_cent_tmp,lati_second_tmp; floatlong_cent_tmp,long_second_tmp; char*buf=line; ch=buf[5]; status=buf[GetComma(2,buf)]; if(ch=='C')//如果第五個(gè)字符是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; GPS->D.hour=(buf[7]-'0')*10+(buf[8]-'0');//時(shí)間 GPS->D.minute=(buf[9]-'0')*10+(buf[10]-'0'); GPS->D.second=(buf[11]-'0')*10+(buf[12]-'0'); tmp=GetComma(9,buf); GPS->D.day=(buf[tmp+0]-'0')*10+(buf[tmp+1]-'0');//日期 GPS->D.month=(buf[tmp+2]-'0')*10+(buf[tmp+3]-'0'); GPS->D.year=(buf[tmp+4]-'0')*10+(buf[tmp+5]-'0')+2000; UTC2BTC(&GPS->D); return1; } } return0;}intGPS_GGA_Parse(char*line,GPS_INFO*GPS){ ucharch,status; char*buf=line; ch=buf[4]; status=buf[GetComma(2,buf)]; if(ch=='G')//$GPGGA { if(status!=',') { return1; } } return0;}staticfloatStr_To_Float(char*buf){ floatrev=0; floatdat; intinteger=1; char*str=buf; inti; while(*str!='\0') { switch(*str) { case'0': dat=0; break; case'1': dat=1; break; case'2': dat=2; break; case'3': dat=3; break; case'4': dat=4; break; case'5': dat=5; break; case'6': dat=6; break; case'7': dat=7; break; case'8': dat=8; break; case'9': dat=9; break; case'.': dat='.'; break; } if(dat=='.') { integer=0; i=1; str++; continue; } if(integer==1) { rev=rev*10+dat; } else { rev=rev+dat/(10*i); i=i*10; } str++; } returnrev;}staticfloatGet_Float_Number(char*s){ charbuf[10]; uchari; floatrev; i=GetComma(1,s); i=i-1; strncpy(buf,s,i); buf[i]=0; rev=Str_To_Float(buf); returnrev; }staticdoubleStr_To_Double(char*buf){ doublerev=0; doubledat; intinteger=1; char*str=buf; inti; while(*str!='\0') { switch(*str) { case'0': dat=0; break; case'1': dat=1; break; case'2': dat=2; break; case'3': dat=3; break; case'4': dat=4; break; case'5': dat=5; break; case'6': dat=6; break; case'7': dat=7; break; case'8': dat=8; break; case'9': dat=9; break; case'.': dat='.'; break; } if(dat=='.') { integer=0; i=1; str++; continue; } if(integer==1) { rev=rev*10+dat; } else { rev=rev+dat/(10*i); i=i*10; } str++; } returnrev;}staticdoubleGet_Double_Number(char*s){ charbuf[10]; uchari; doublerev; i=GetComma(1,s); i=i-1; strncpy(buf,s,i); buf[i]=0; rev=Str_To_Double(buf); returnrev; }staticucharGetComma(ucharnum,char*str){ uchari,j=0; intlen=strlen(str); for(i=0;i<len;i++) { if(str[i]==',') j++; if(j==num) returni+1; } return0; }staticvoidUTC2BTC(DATE_TIME*GPS){ GPS->second++; if(GPS->second>59) { GPS->second=0; GPS->minute++; if(GPS->minute>59) { GPS->minute=0; GPS->hour++; } } GPS->hour=GPS->hour+8; if(GPS->hour>23) { GPS->hour-=24; GPS->day+=1; if(GPS->month==2||GPS->month==4||GPS->month==6||GPS->month==9||GPS->month==11) { if(GPS->day>30) { GPS->day=1; GPS->month++; } } else { if(GPS->day>31) { GPS->day=1; GPS->month++; } } if(GPS->year%4==0) { if(GPS->day>29&&GPS->month==2) { GPS->day=1; GPS->month++; } } else { if(GPS->day>28&&GPS->month==2) { GPS->day=1; GPS->month++; } } if(GPS->month>12) { GPS->month-=12; GPS->year++; } }}voidInt_To_Str(intx,char*Str){ intt; char*Ptr,Buf[5]; inti=0; Ptr=Str; if(x<10) //當(dāng)整數(shù)小于10時(shí),轉(zhuǎn)化為"0x"的格式 { *Ptr++='0'; *Ptr++=x+0x30; } else { while(x>0) { t=x%10; x=x/10; Buf[i++]=t+0x30; //通過計(jì)算把數(shù)字轉(zhuǎn)化成ASCII碼形式 } i--; for(;i>=0;i--) //將得到的字符串倒序 { *(Ptr++)=Buf[i]; } } *Ptr='\0';}12864液晶顯示模塊程序#include"LCD.h"voidclr_screen(){Lcd_WriteCmd(0x34);//擴(kuò)充指令操作delay(5);Lcd_WriteCmd(0x30);//根本指令操作delay(5);Lcd_WriteCmd(0x01);//清屏delay(5);}voidLcd_WriteCmd(ucharcmd){ LCD_RS=0; LCD_RW=0; LCD_EN=0; _nop_(); _nop_(); P0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寒露文化傳承與應(yīng)用模板
- 小學(xué)數(shù)學(xué)《分?jǐn)?shù)除法》50道應(yīng)用題包含答案
- DB2201T 60-2024 西餐廳服務(wù)規(guī)范
- 職業(yè)導(dǎo)論-房地產(chǎn)經(jīng)紀(jì)人《職業(yè)導(dǎo)論》深度自測(cè)卷1
- 親子活動(dòng)主持詞
- 二零二五年度船舶運(yùn)輸代理合同
- 人教版四年級(jí)數(shù)學(xué)上冊(cè)寒假作業(yè)(九)(含答案)
- 上海市竹欣中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期英語(yǔ)期末測(cè)試卷(含答案無聽力原文及音頻)
- 重慶市第一中學(xué)2024-2025學(xué)年高三上學(xué)期12月月考生物試題(有答案)
- 燕山大學(xué)《數(shù)字信號(hào)處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 高中歷史教學(xué)中開展小組合作學(xué)習(xí)的思考
- 監(jiān)理資料檔案盒背脊貼紙
- 數(shù)學(xué)八下學(xué)霸電子版蘇教版
- SQL Server 2000在醫(yī)院收費(fèi)審計(jì)的運(yùn)用
- 《FANUC-Oi數(shù)控銑床加工中心編程技巧與實(shí)例》教學(xué)課件(全)
- 微信小程序運(yùn)營(yíng)方案課件
- 陳皮水溶性總生物堿的升血壓作用量-效關(guān)系及藥動(dòng)學(xué)研究
- 安全施工專項(xiàng)方案報(bào)審表
- 學(xué)習(xí)解讀2022年新制定的《市場(chǎng)主體登記管理?xiàng)l例實(shí)施細(xì)則》PPT匯報(bào)演示
- 好氧廢水系統(tǒng)調(diào)試、驗(yàn)收、運(yùn)行、維護(hù)手冊(cè)
- 五年級(jí)上冊(cè)口算+脫式計(jì)算+豎式計(jì)算+方程
評(píng)論
0/150
提交評(píng)論