




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 PAGE55 / NUMPAGES59基于GPS的精確電子日歷設計摘 要隨著時代的發展,生活節奏的加快,人們的時間觀念愈來愈強,設計開發數字時鐘具有良好的應用前景。然而傳統的時間服務方式越來越難以滿足現代工業化生產實踐對時間的要求。在GPS的高速發展下,其授時功能已日益被人們所關注1。由于單片機價格的低成本、高性能,在自動控制產品中得到了廣泛的應用。本設計利用Atmel公司的AT89S52單片機對電子時鐘進行開發,設計了實現所需功能的硬件電路,應用C語言進行軟件編程,并用實驗板進行演示、驗證。本論文主要介紹構成GPS高精度時鐘的各模塊芯片的功能與各管腳的連接與執行情況,詳細闡述了GPS授時系
2、統中的授時模塊,包括GPS授時的同步利用方式和GPS接受端的數據輸出形式以與GPS模塊與單片機之間的連接通信,來達到讀取GPS信息并且在LCD1602上顯示時間的目的。本文給出了從GPS模塊讀取的數據中截取時間數據并和單片機之間進行傳輸顯示的流程圖與主要程序。考慮到接受GPS信號的問題上,本系統將加入一個DS1302時鐘芯片用來解決GPS信號中斷或者信號強度太低導致讀取不到數據的問題。最后,本文描述了GPS高精度時鐘在設計和實現過程中可能出現的問題與其調試過程,并對該模塊實際應用上的展望。關鍵字:高精度時鐘;GPS接收模塊;AT89C52;LCD1602;DS1302AbstractWith
3、the development of The Times,the accelerating rhythm of life ,peoples concept of time becomes more and more strong,therefore, design and development digital clock has a good application prospect.However, traditional way of time service is increasingly difficult to meet the requirements of modern ind
4、ustrial production practice of the time. In the rapid development of GPS, the GPS clock function is increasingly attention by people.Because of the price of low-cost, high-performance single chip microcomputer has been widely used in automatic control of the products.This design use the AT89S52 micr
5、ocontroller on the electronic clock of Atmel company development,implements the required function of the hardware circuit is designed,application C language for software programming and demonstration, validation with the test board. This paper introduces a GPS high precision clock module chip functi
6、on and the pin connection with the implementation,GPS timing GPS clock module in the system are expounded in detail,including GPS timing synchronization using method and GPS receiving the data output form and the connection between the GPS module and MCU communication,to read the purpose of the GPS
7、information and on the LCD1602 display time. The data read from the GPS module are given in this paper the interception time data and transmission between MCU and shows the flow chart and main program.Considering the received GPS signal problems,this system will join a DS1302 clock chip is used to s
8、olve GPS signal or the signal strength is too low, lead to cant read data.Finally, this article describes the GPS high precision clock possible problems in the process of design and implementation and debugging process, and the module on the practical application prospects. Keywords:High precision c
9、lock;GPS receiver module;AT89C52;LCD1602;DS1302目 錄TOC o 1-3 u 摘 要Abstract第一章 緒論11.1 選題意義和論文任務11.2 國外研究以與趨勢11.3 論文結構2第二章 GPS高精度時鐘的硬件設計32.1 系統主要芯片選型32.1.1 微處理器AT89C5232.1.2 GPS接收模塊42.1.3時鐘芯片DS130252.1.4 顯示模塊LCD160262.2 硬件設計總體思路72.3 硬件電路設計82.3.1 GPS接受模塊和單片機的連接82.3.2 LCD1602和單片機的連接92.3.3 按鍵模塊和單片機的連接102.
10、3.4 時鐘芯片DS1302和單片機的連接10第三章 GPS高精度時鐘的軟件設計113.1 GPS授時系統的同步利用方式113.1.1 脈沖同步方式113.1.2 串行同步方式113.2 GPS授時模塊的形式與流程圖123.3 LCD1602的顯示操作143.3.1 讀狀態操作143.3.2 寫命令操作143.3.3 LCD初始化143.4 GPS高精度時鐘主要程序、流程圖與注釋153.4.1 主程序流程圖153.4.2 初始化程序163.4.3 按鍵檢測程序173.4.4 DS1302的讀寫程序183.4.5 LCD1602的讀寫程序19第四章 調試過程 PAGEREF _Toc1097 2
11、04.1 GPS接收信息強度 PAGEREF _Toc31956 204.2 GPS和單片機的通信 PAGEREF _Toc24571 204.3 程序運行 PAGEREF _Toc26717 204.4 DS1302的晶振頻率 PAGEREF _Toc12577 204.5 誤差分析 PAGEREF _Toc24571 20總結 PAGEREF _Toc2758 21參考文獻22致23附錄24緒論1.1 選題意義和論文任務隨著科技的飛速進步,我國電力系統自動化技術快速發展,為了做到統部統一的管理和調度,整個系統對時間的統一性要求越來越高,同時對時間的同步精度要求也越來越高。互聯網領域在世界各
12、地分布著成千上萬的服務器,計算機監控系統、數據采集系統、大型網絡服務器系統、移動通信網絡系統都需要統一的高精度時間以便管理。GPS時鐘具有工作穩定、時間精度高、安全可靠、無需人工校時維護等優點廣泛應用于廣播電視系統的時間授時、同步鎖定與車站、碼頭、機場、賓館與戶外廣場等場合的時間顯示。GPS性能特點:可以全球全天候工作。GPS能為用戶提供連續、實時的位置、三維速度和精密時間。定位精度高。三維位置定位精度優于25米,三維速度精度優于住0.3米/秒,時間精度100納秒,采用載波測距定位精度可達厘米級。、抗干擾。GPS衛星發射的P碼精測碼擴頻信號,比高靈敏度接收機所能接收的最低信號電平還低幾十個分貝
13、。用戶接收機為了解擴頻接收信號,必須產生與信號中擴頻偽碼一樣的本機偽碼因具有較強的性,此外利用P碼良好的相關特性還可增強用戶接收機抗電子干擾的能力。在許許多多的精密研究中,絕不允許時間上的過多偏差,為了提高時鐘的精確度,需要引入GPS信號,每個GPS衛星上都有2-3個高精度的原子鐘,這幾塊原子鐘互為備份的同時,也互相糾正。另外GPS信號中自帶了誤差糾正碼,接收端可以很容易的把延遲的這段傳輸延遲去掉。本次設計的任務是在查閱國資料的基礎上了解GPS的原理和功能,了解單片機的原理和軟件編程方法,設計單片機最小系統、鍵盤電路、顯示電路、鬧鐘電路。本系統采用AT89C52作為主控制器,為了防止GPS無信
14、號或者信號弱照成無數據輸出,附加了時鐘芯片DS1302充當第二時鐘源,加入按鍵電路用來設定時間值以與鬧鐘值,顯示方面采用LCD1602顯示時間。1.2 國外研究以與趨勢傳統的時間服務方式越來越難以滿足現代工業化生產實踐對時間的要求。隨著GPS的發展,其授時功能已日益被人們所關注。利用GPS OEM接收模塊,進行二次研制開發實現實時時鐘系統,具有精度高、無積累誤差,不受地域、氣候等環境條件限制,操作方便等特點。GPS時鐘可廣泛應用于電力系統、通訊、交通管理與國防等需要對時、計時、守時的相關領域2。目前,市場上基于GPS的同步時鐘系統種類非常多,但擴展的容和接口各有不同,各個時鐘系統所用的中心處理
15、模塊也各有特色。總體上說各種GPS同步時時鐘的差別主要在于其時間的精準度、提供給用戶的接口與輸出信息。從處理器上大體可分為兩大類型,一種是FPGA型,一種是單片機型。前者是基于FPGA實現的,FPGA能夠用硬件實現各功能模塊并行執行,其速度遠遠超過單片機。所以這種系統一般精確度要高,但是其成本也比較高。后一種主要是通過單片機對GPS信號進行采集,再轉換成約定的格式輸出給用戶。由于單片機是由串行軟件指令控制的,所以其體系結構將在很大程度上影響同步時種系統的精確度,使其誤差相對比較大。1.3 論文結構第一章,詳細論述了GPS高精度時鐘的優越性,同時探討了GPS的應用前景,進而提出了本論文的研究任務
16、。第二章,給出了GPS高精度時鐘設計的主要芯片選型,詳細論述了GPS模塊的NEMA0183協議,并以此協議進行數據截取輸出。第三章,給出了GPS接受模塊進行截取數據的原理、流程圖以與主要程序。第四章,給出了在GPS無信號或信號強度太弱時采用時鐘芯片DS1302進行計時并用LCD1602顯示的主要程序。第五章,描述了本系統在設計和實現過程中出現的問題與調試過程。第六章,對全文進行系統的總結,并對GPS時鐘的研究應用進行展望。GPS高精度時鐘的硬件設計2.1 系統主要芯片選型2.1.1 微處理器AT89C52AT89C52是51系列單片機的一個型號,它是ATMEL公司生產的。AT89C52是一個低
17、電壓,高性能CMOS 8位單片機,片含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可提供許多較復雜系統控制應用場合3。 AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Fl
18、ash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發成本。下圖2.1為AT89C52的最小系統4。圖2.1 AT89C52的最小系統2.1.2 GPS接收模塊GPS模塊就是集成了RF射頻芯片、基帶芯片和核心CPU,并加上相關外圍電路而組成的一個集成電路。所謂的基帶芯片就是用來合成即將發射的HYPERLINK :/baike.baidu /view/1203104.htm基帶信號,或對接收到的基帶信號進行解碼。具體地說,就是:發射時,把HYPERLINK :/baike.baidu /view/189722.htm音頻信號編譯成用來發射的基帶碼;接收時,把收到的基帶碼解譯為
19、音頻信號。同時,也負責地址信息(HYPERLINK :/baike.baidu /view/1455.htm手機號、地址)、文字信息(短訊文字、文字)、圖片信息的編譯。GPS接收端可輸出的語句數據格式有$GPGGA,$GPGSA,$GPGSV,$GPRMC,$GPVTG,$LCGLL,$LCVTG,$PGRME,$PGRMF,$PGRMT,$PGRMV,$GPGLL。不同的語句中傳送的信息不同,由于“$GPGGA”語句數據格式輸出的第一位數據就是所需要的時間數據,利于單片機對時間信息的接收處理,因此本接收機授時系統采用“$GPGGA”“$GPRMC”格式輸出時間數據7。$GPGGA(Globa
20、l Positioning System Fix Data(GGA)語句格式如下:$GPGGA, UTC時間,hhmmss(時分秒)格式 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸) 緯度半球N(北半球)或S(南半球) 經度dddmm.mmmm(度分)格式(前面的0也將被傳輸) 經度半球E(東經)或W(西經) GPS狀態:0=未定位,1=非HYPERLINK :/baike.baidu /view/637990.htm差分定位,2=差分定位,6=正在估算 正在使用解算位置的衛星數量(00-12)(前面的0也將被傳輸) HDOP水平精度因子(0.5-99.9) 海拔高度(-9999.
21、9-99999.9) 地球橢球面相對水準面的高度 差分時間(從最近一次接收到差分信號開始的秒數,如果不是HYPERLINK :/baike.baidu /view/637990.htm差分定位將為空) 差分站ID號0000-1023$GPRMC(Recommended Minimum Specific GPS/TRANSIT Data(RMC)語句格式如下:$GPRMC, UTC時間,hhmmss(時分秒)格式 定位狀態,A=有效定位,V=無效定位 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸) 緯度半球N(北半球)或S(南半球) 經度dddmm.mmmm(度分)格式(前面的0也將被
22、傳輸) 經度半球E(東經)或W(西經) 地面速率(000.0-999.9節,前面的0也將被傳輸) 地面航向(000.0-359.9度,以真北為參考基準,前面的0也將被傳輸) UTC日期,ddmmyy(日月年)格式 磁偏角(000.0-180.0度,前面的0也將被傳輸) 磁偏角方向,E(東)或W(西) 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數據無效)2.1.3時鐘芯片DS1302DS1302 是HYPERLINK :/baike.baidu /view/2398.htm美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年
23、、月、日、周、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V-5.5V。采用三線接口與CPU進行HYPERLINK :/baike.baidu /view/141317.htm同步通信,并可采用突發方式一次傳送多個字節的HYPERLINK :/baike.baidu /view/188811.htm時鐘信號或RAM數據。DS1302部有一個318的用于臨時性存放數據的RAMHYPERLINK :/baike.baidu /view/6159.htm寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電
24、的能力,下圖2.2為DS1302的引腳圖。圖2.2 DS1302的引腳圖DS1302的引腳中Vcc1為后備電源,Vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/HYPERLINK :/baike.baidu /view/3717187.htm片選線,通過把RST輸入驅動置高電平來啟動所有的HYPERLINK :/baike.baidu /view/5
25、593592.htm數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入HYPERLINK :/baike.baidu /view/1533062.htm移位寄存器;其次,RST提供終止單字節或多字節數據傳送的方法。當RST為高電平時,所有的HYPERLINK :/baike.baidu /view/5593592.htm數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次HYPERLINK :/baike.baidu /view/5593592.htm數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc2.0V之前,RST必
26、須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),SCLK為時鐘輸入端。DS1302 的控制字如下圖2.3所示,控制字節的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出。圖2.3 DS1302的控制字節2.1.4 顯示模塊LCD1602LCD顯示器分為字段顯示和字符顯示兩種,可采用LCD1602作為顯示器件輸出信息,可以顯示2行16個漢
27、字。液晶顯示模塊具有體積小、功耗低、顯示容豐富、不需要外加驅動電路等優點,是單片機應用設計中最常用的顯示器件,下圖2.4為LCD1602的引腳圖。圖2.4 LCD1602的引腳圖LCD1602其引腳功能如下:RS:數據和指令選擇控制端,RS=0命令狀態;RS=1數據;R/W:讀寫控制線,R/W=0寫操作;R/W=1讀操作;A:背光控制正電源;K:背光控制地;E:數據讀寫操作控制位,E線向LCD模塊發送一個脈沖,LCD模塊和單片機間將進行一次數據交換;DB0-DB7:數據線,可用8位連接,也可只用高4位連接,節約單片機源;VDD:電源端;VEE:亮度控制端(1-5V);VSS:接地端。2.2 硬
28、件設計總體思路在整個系統的硬件設計中,采用AT89C52作為主處理芯片。時間信號采用GPS接收模塊和AT89C52相結合,截取GPS接收端輸出的時間數據并用LCD1602顯示。在GPS接收端無數據輸出時,即無GPS信號或信號強度太弱時,采用DS1302時鐘芯片進行計時。本系統在顯示時間的基礎上加入鬧鐘模塊,并且設置4個功能按鈕可以對當前的時間進行設置并且修改鬧鐘時間。系統采用LCD1602進行輸出顯示,1602中數據總線DB0-7對應單片機中的P1口,3條控制線分別接另外3個單片機端口,其他對應接上電源和地。在鍵盤模塊中添加上拉電阻,上拉電阻可以保證在沒有按鍵輸入時,進入單片機四個I/O口的按
29、鍵狀態均為高電平,防止干擾產生;當有按鍵按下時,相應的端口線狀態轉為低電平,總體框架如下圖2.5所示。圖2.5 高精度GPS時鐘系統的框架簡圖2.3 硬件電路設計系統的整體硬件電路圖如下圖2.5所示:圖2.5 系統的整體硬件電路圖2.3.1 GPS接受模塊和單片機的連接單片機上的3.0和3.1管腳除了作為普通的IO口外,還有另外的用途。P3.0(RXD)、P3.1(TXD)是Receive Data ,Transmit Data的意思,即RXD為接收數據的引腳,TXD為發送數據的引腳。將GPS接收模塊的2條信號線分別對應接上RXD、TXD端口進行數據的通訊,用來接收時間信號并對時間信號進行截取
30、輸出,如下圖2.6所示連接。VCCGPS接收模塊AT89C52 P3.0 P3.1 GROUND圖2.6 GPS接收端和AT89C52的連接2.3.2 LCD1602和單片機的連接LCD1602VSS VDD VEE D0-D7 RS R/W E1602中數據總線DB0-7對應單片機中的P1口,3條控制線分別接另外3個單片機端口,其他對應接上電源和地(下圖2.7)。AT89C52 P2.1 P2.2P1口P2.3 GROUNDGROUNDVCC圖2.7 LCD1602和單片機AT89C52的連接LCD1602中VDD為電源正極,VSS為電源接地端,VEE為液晶顯示器對比度調整端,接正電源時對比
31、度最弱,接地時對比度最高。LCD1602有四種基本的操作時序:讀狀態、寫指令、讀數據和寫數據。讀狀態:輸入:RS=L,RW=H,E=H 輸出:D0-D7 = 狀態字寫指令:輸入:RS=L,RW=L,D0-D7 = 指令碼,E=高脈沖 輸出:無讀數據:輸入:RS=H,RW=H,E=H 輸出:D0-D7 = 數據寫數據:輸入:RS =H,RW=L,D0-D7 = 數據,E=高脈沖 輸出:無2.3.3 按鍵模塊和單片機的連接鍵盤模塊設置了四個按鍵:KEY1、KEY2、KEY3、KEY4。其中KEY1為設置時間值,KEY2為設定值上升鍵,用KEY3為設定值減小鍵,KEY4是設定鬧鐘值。電路連接如下圖2
32、-8所示,4個上拉電阻可以保證在沒有按鍵輸入時,進入單片機四個I/O口的按鍵狀態均為高電平,防止干擾產生;當有按鍵按下時,相應的端口線狀態轉為低電平。圖2.8 按鍵模塊和單片機的連接2.3.4 時鐘芯片DS1302和單片機的連接DS1302與CPU的連接需要三條線,即SCLK、I/O、RST,分別連接單片機的3個端口3.5、3.6、3.7(下圖2.9),用來對DS1302的命令字的讀寫和數據的讀寫。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/HYPERLINK :/baike.baidu /view/3717187.htm片選線,通過把RST輸入驅動置高電平來啟動所有的HYP
33、ERLINK :/baike.baidu /view/5593592.htm數據傳送。圖2.9 DS1302和52單片機的連接GPS高精度時鐘的軟件分析設計3.1 GPS授時系統的同步利用方式3.1.1 脈沖同步方式脈沖同步方式,即同步時鐘每隔一定的時間間隔輸出一個精確的同步脈沖。監控裝置在接收到同步脈沖后進行對時,消除裝置部時鐘的走時誤差。同步脈沖的周期、頻率、電平、脈寬、脈沖的正負、上升和下降時間、同步的時刻等均可能有所變化。根據脈沖輸出接口的不同,同步脈沖分為有源TTL電平輸出、無源空接點輸出、固態繼電器輸出等。有源TTL電平輸出,即每隔一定的時間間隔產生一個TTL電平脈沖,或正脈沖或負
34、脈沖,脈沖的寬度和占空比可以不同。這種輸出,用戶可以直接引出同步信號,不必外加電源。無源空接點輸出,即將同步脈沖作為一開關量輸出,一般是使用一個光電三極管,從集電極輸出。可根據應用要求,在同步時鐘到來時,三極管由導通變截止,或由截止變導通。1PPS(秒脈沖,即:pulse per second 脈沖/秒)輸出,是一個電平信號,一般以方波形式輸出,高電平(也有較少數為低電平的)表示有秒脈沖輸出,其持續時間很短,一般在毫秒量級上,其電平信號為+5V,持續時間為毫秒級,低電平(也有較少數為高電平的)表示沒有信號輸出。高電平上升沿為1PPS輸出的精確時刻。在GPS OEM板取得有效導航解析的時候,秒脈
35、沖上升沿的時刻與GPS時刻相差在50ns以,與串行口輸出的UTC標準時間相差在 1us 以。OEM板先為用戶提供秒脈沖,再提供與該秒脈沖相對應的UTC標準時間。有時在沒有收到衛星信號或導航解無效的情況下(即沒有收到UTC的校正數據),OEM板通過開發工具板也能向外發送秒脈沖,但此時秒脈沖為GPS OEM部未改正鐘差、鐘漂的原始時鐘的時間,其上升沿的時刻不準確、不穩定,誤差較大,無實用價值。僅在取得正確導航解時才可以用UTC時間對GPS OEM部時間進行校正,輸出精確時間。3.1.2 串行同步方式串行同步方式是時鐘以串行數據流的方式輸出時間信息,各種自動裝置接收每秒一次的串行時間信息獲得時間同步
36、。串行通信的標準和格式多種多樣,按信息碼的格式不同,分別有ASCII碼、IRIG-B碼等。按串行通信接口標準的不同,ASCII碼有RS232C、RS422/485等方式,IRIG-B碼有TTL直流電平碼輸出、1kHZ 正弦波調制碼輸出、MANCHESTER調制碼輸出等方式。(1)RS232/422/485串行接口輸出同步時鐘通過RS232/422/485串行口在整秒、整分或整時,輸出一次時間信息。時間信息格式一般是由幀頭、時、分、秒、日、月、年與結束符組成。自動裝置在接收到對時信號后,通過軟件校正部時鐘。使用串行口方式對時,比脈沖對時方式復雜。受接收過程息處理時間的影響,對時精度差。如果要提高
37、對時精度,還需要再給出對時脈沖信號。(2)IRIG-B碼串行輸出IRIG-B是美國最先采用的一種國際時間碼標準。目前電力系統中的許多進口裝置均使用IRIG-B時間碼獲取時間信息,因此IRIG-B碼制串行輸出也應作為GPS同步時鐘輸出的一種可選形式。 IRIG-B信號有TTL直流電平碼和1kHZ正弦波調制碼兩種形式。每一碼脈沖的寬度是10ms,通過改變直流電平占空比或變化1kHZ調制信號的幅值來表示邏輯“1”與“0”與標識符(幀起始符,相鄰秒、分、小時、日期、數據的分隔符)。起始位的上升沿即為同步時刻。IRIG-B TTL直流電平碼的分辨率為10ms,不加調制解調,使用方便,但只適于近距離傳輸。
38、1kHZ正弦波調制碼的分辨率為1ms,適合遠距離傳輸,這種正弦波調制碼一般通過音頻傳輸線路來傳輸數據。所以本文認為,在裝置硬件資源豐富的前提下可以考慮兩種方案同時結合使用,即是將脈沖校時和串口校時結合起來的綜合校時方案。3.2 GPS授時模塊的形式與流程圖OEM板輸出的數據是以數據流的形式輸出,采集的起始時刻未必是一幀數據的開始時刻,所以在數據采集時,必須先判斷字頭塊,在接收到字頭塊后,開始采集數據。OEM板每隔1s自動輸出觀測數據幀和位置數據幀一次,但輸出的格式小時部分加8是多種多樣的,因此必須先給OEM板發送指令來控制其輸出數據格式。接收數據需要設定單片機的波特率,使其與GPS OEM板的
39、傳輸波特率一致。給OEM板發送一條指令,使其發送的0183數據格式為“$GPGGA”,該指令預先存在數據存儲器里,用循環方式順次從程序存儲器里取出數據就可循環發送。然后0EM板將輸出相應格式的數據,單片機對接收的信息進行判初始化斷,如果是“$GPGGA”,則接收下面的6個ASCII碼并存儲在單片機的RAM里;如果不是“$GPGGA”,則繼續判斷,直到是“$GPGGA”。也可采用循環方式接收時間信息。由于接收到的時間是世界標準時(UTC),因此在此時間上加上8h才是準確的時,在超出24h時應作減24h處理,然后進行顯示處理。顯示采用動態顯示原理,每個時間狀態顯示停留一段時間,顯示完后程序跳轉到主
40、函數以便接受下一秒的數據并將其顯示。下圖3.1為授時程序流程圖。是否24發送字節N指向儲存單元發送完否左邊開始取數據送出一位顯示接受字符延時N指向下一個單元循環判斷是否為$GPGGA字符讀完6位YY位控信號右移一位循環6次接收數據并存取N圖3.1 授時程序流程圖3.3LCD1602的顯示操作LCD有四種基本操作,具體如表3.1所示。表3.1LCD與單片機之間的四種基本操作狀態RSR/W操作狀態100寫命令操作(初始化,光標定位等)狀態201讀狀態操作(讀忙標志位)狀態310寫數據操作(要顯示容)狀態411讀數據操作(可以把顯示存儲區中的數據反讀出來)3.3.1 讀狀態操作執行讀狀態字操作,如表
41、3.1所示須滿足RS=0、R/W=1。根據管腳功能,當為有效電平時,狀態命令字可從LCD模塊傳輸到數據總線。同時可以保持一段時間,從而實現讀狀態字的功能。如下圖3.2所示為讀入狀態字流程圖。RS清0等待RW置1等待E置1等待讀入狀態字等待E清0 等待RW清0 等待結束圖3.2讀入狀態字流程圖3.3.2 寫命令操作由表3.1可知當RS=0,R/W=0時,才可以通過單片機或用戶指令把數據即命令,寫到LCD模塊,此時就對LCD進行調制。可采用查詢方式:先讀入狀態字,再判斷忙標志,最后寫命令字。3.3.3LCD初始化從通電開始通過延時,先經過判忙后再進行功能設置,過一段時間后可以設制顯示狀態(如設置行
42、、位或陣列)再經過延時后清屏后再可以設置輸入方式,具體如圖3.3所示。上電延時20ms功能設置延時37us顯示狀態設置清屏延時1.52ms輸入方式設置返回圖3.3LCD初始化流程圖3.4 GPS高精度時鐘主要程序、流程圖與注釋3.4.1 主程序流程圖本系統主程序流程圖如下圖3.4所示。有GPS信號?開始NY初始化設置鬧鐘時間截取GPS時間數據從DS1302讀數據N是否到鬧鈴時間?單片機處理Y鬧鈴操作LCD1602顯示3.4 主程序流程圖在開始的初始化中,需要對各芯片進行初始化,初始化完成后要判斷GPS接收端有沒有數據輸出(有沒有GPS信號),即單片機有沒有數據讀入。如果沒有GPS信息,為了防止
43、時間停滯,采用DS1302計時。因為GPS接收端的數據傳輸是類似于網絡中帶有的數據包傳輸,所以要對其數據進行判斷,在確定下數據頭之后,還需要有一個逗號計數器。這個逗號計數器的作用就是在已獲得的(確定頭部)數據中截取所需的一部分。3.4.2 初始化程序void Initial_LCD1602(void)/LCD1602初始化RW=0;LCDEN=0;write_(0 x38);/寫指令顯示模式設置write_(0 x0c);/顯示光標開與光標設置write_(0 x06);/顯示光標移動設置write_(0 x01);/顯示清屏void init()/總初始化Initial_LCD1602();
44、altp=0;/給各標志位附初值BLA=0;blaflag=0;yearh=20;TMOD=0 x20;/設置定時器模式PCON = 0 x00;/電源控制寄存器設置SCON = 0 x50;/串行口控制寄存器TH1 = 0 xFd;/波特率9600設定TL1 = 0 xFd;TR1 = 1;/啟動定時器EA=1;/開中斷IE=0 x90;/中斷允許控制寄存器3.4.3 按鍵檢測流程按鍵檢測流程圖如下圖3.5所示。初始化按鍵NN按鍵4按下?按鍵1按下?YY切換到鬧鐘界面光標左移一位NN按鍵3按下?按鍵2按下?YY對應的數值減1對應的數值加1圖3.5 按鍵檢測流程圖其中按鍵1為校準當前時間的功能
45、切換按鍵,按鍵2為對應的數值加1的功能按鍵,按鍵3為對應的數值減1按鍵,按鍵4為設置鬧鐘時間的功能切換按鍵,通過這4個按鍵可以對時間進行校準并且設定鬧鐘時間。3.4.4DS1302的讀寫程序/向DS1302寫一個字節void write_a_byte_to_ds1302(uchar datt) uchar i; for(i=0;i=1;/位移操作 /向DS1302讀取一個字節 uchar get_a_byte_from_ds1302() uchar i,b,t; for(i=0;i=1; t=DIO; b|=t7;/位或操作 SCLK=1; SCLK=0; return b/16*10+b%1
46、6;/返回一個十進制數/從DS1302 指定位置讀數據 uchar read_data(uchar addr) uchar dat; CE=0; SCLK=0; CE=1;/CE為1允許讀寫操作 write_a_byte_to_ds1302(addr);/向DS1302寫地址操作 dat=get_a_byte_from_ds1302();/從DS1302讀數據 SCLK=1; CE=0; return dat;/返回數據/向DS1302某地址寫入數據 void write_ds1302(uchar adder,uchar dat) SCLK=0; CE=1;/CE為1允許讀寫操作 write_
47、a_byte_to_ds1302(adder);/向DS1302寫地址操作 write_a_byte_to_ds1302(dat);/向DS1302寫數據 SCLK=0; CE=0;3.4.5LCD1602的讀寫程序void write_(uchar ) /LCD1602寫地址設置P1=;/通過單片機P1口和1602連接RS=0;/RS為0時是地址操作LCDEN=0;delay(10);LCDEN=1;delay(10);LCDEN=0;void write_date(uchar date) /LCD1602寫數據設置P1=date;/通過單片機P1口和1602連接RS=1;/RS為0時是數據
48、操作LCDEN=0;delay(10);LCDEN=1;delay(10);LCDEN=0;void write(uchar add,uchar date)/數據寫入并顯示操作uchar shi,ge;shi=date/10;/取出data數據的十位數ge=date%10;/取出data數據的個位數/write_(0 x80+add);/寫地址操作,0 x80為第一行write_(0 x80+0 x40+add);/寫地址操作,0 xC0為第二行write_date(0 x30+shi);/寫數據操作write_date(0 x30+ge);調試過程4.1 GPS接收信息強度由于GPS接收端對
49、GPS信號的強度要求比較高,所以測試的時候要在比較空曠的場地上進行。4.2 GPS和單片機的通信本系統采用了單片機的P3.0(RXD)、P3.1(TXD)端口,要注意這兩個端口是否正常接收發送數據。GPS模塊和單片機的波特率,中斷等設定要一樣才能進行數據之間的通信。4.3 程序運行判斷單片機程序是否正常運行最直觀的方法是使用示波器。編程使得某引腳(如P1.0循)環取反,可通過示波器觀察到此引腳一定頻率的方波信號。同樣,向串口循環發送任一數據,亦可通過示波器觀察到此信號。4.4 DS1302的晶振頻率DS1302應該外接32.768kHz晶振,測試的時候采用其他頻率的晶振會照成比較大的誤差。4.
50、5 誤差分析在無GPS時,采用DS1302計時時,誤差為每分鐘1S,采用GPS信號計時時誤差小于1S,GPS時鐘比普通的電子時鐘精度高出很多,同時也說明了GPS時鐘的重要性。總結一個時鐘最重要的也是最基本的功能應該是準確度,如果一個時鐘不準,誤差大,那么外表再漂亮也僅僅是一個裝飾物,不具有太大的使用價值。時鐘準不準靠的是我們常說的晶振,大多數是石英晶體諧振器,標準應該是32.768KHz(除高精度原子鐘外)。晶振其實在電子時鐘系統里面就是一個時鐘源,它有兩個重要指標,一個是穩定度,一個是準確度,準確度指的是與標稱值的偏差,穩定度值得是隨著外部因素的變化而產生的變化量。為了使時鐘具有較高的準確度
51、,需要讓晶振工作在接近準確值的溫度圍或者用外圍電路去根據環境溫度去補償溫度偏差給晶振帶來的誤差,即溫度補償。隨著科技的進步,目前還有一種手段,就是通過GPS或其他衛星導航系統的信號馴服晶振,從而實現高精度的頻率和時間信號輸出,是目前達到高授時精度和高穩定度的最有效方式,既GPS時鐘。在科技飛速發展的今天,人們對各類產品的性能要求也是日益提高,對時間的精確度也不例外。有時候時間上僅僅是一點點的差別,也會造成巨大的損失。在了解國外現狀后,從線路、體積和價格方面考慮,選取AT89C52單片機為控制核心,通過外圍元件實時時鐘芯片DS1307構成了一個具有實時時間與日歷顯示、按鍵調時、鬧鈴定時功能的數字
52、時鐘,采用液晶LCD1602作為顯示器,并且在精確度方面上加入了GPS授時模塊。擁有GPS對時功能,使時鐘誤差在一秒以,得知精確的時間。參考文獻1寧.單片機與控制技術M第一版航空航天大學,2005年2樓然苗,光飛 .51系列單片機設計實例.航空航天大學,2004年3閹石數字電子技術基礎高等教育,2005年4嘉奎.電子線路高等教育,2004年5賴麟文.8051單片機嵌入式系統應用.科學,2005年6高峰.單片機微型計算機原理與接口技術科學,2005年7為,董德存.基于GPS技術的分布式授時同步時鐘.微型電腦應用,2005年8Tammy Noergaard,馬洪兵,古源濤譯.嵌入式系統硬件與軟件架
53、構.人民郵電,2008年9Weiss M,Zhang V,Nelson L.Delay variations in some GPS timing receivers.Proceedings of the 1997 IEEE International Frequency Control Symposium, 199710周強,叢海波,吳希杰.利用GPS實現高精度時鐘.信息技術與信息化,2006年11夏雙林.GPS標準時間同步時鐘的設計與實現碩士學位論文.華中科技大學,2008年12Ganssle,Jack G. The Challenges of Real Time Programming.
54、 Embedded SystemsProgramming, July 199813文馬艷,楠,田靜華.GPS高精度水電站授時系統.水利水電專科學校學報,2008年14瑞和.串行技術大全(第1版). 清華大學,2003年15麗伊.GPS衛星時鐘同步系統在綜自變電站中的應用.科技信息,2008年16殷科生.基于高精度GPS時鐘的新型故障錄波裝置.制造業自動化, 2009年17熊志昂,紅瑞,賴順香.GPS技術與工程應用M國防工業,2005年18Ganssle, Jack G. The Art of Designing Embedded Systems. Newnes,1999致 在我進行此畢業論文撰
55、寫的過程中,我的導師秀榮老師我極大的幫助。在這里,我要感在這些在我畢業設計過程中指導和幫助過我的人。首先,我要感我的指導老師老師的悉心指導和嚴格要求。本論文的選題和撰寫都是在老師的指導下完成的。老師為我創造了良好的學習和鍛煉的環境,使我各方面的能力都有了長足的進步;老師對于我設計的指導,思維上的啟迪,都將成為今后工作、學習的寶貴精神財富。在我走向社會,走向工作崗位的過程中,老師給予我的教誨、幫助和殷切期望,促使我更加積極追求新的人生目標。感父母一直默默地給予我關心和支持,父母的悉心關懷,永遠是鼓勵我積極向上的不竭動力。最后,還要感和我一樣即將畢業的同班同學;感大學四年的同寢室室友;感那些沒有提
56、與,但也同樣給予我幫助的老師、同學和朋友!戴程遠2013年4月27日附錄GPS時鐘程序#include#include/#include #define uchar unsigned char #define uint unsigned int/*DS1302*/寄存器宏定義#define WRITE_SECOND 0 x80 #define WRITE_MINUTE 0 x82 #define WRITE_HOUR 0 x84 #define WRITE_MDAY 0 x86#define WRITE_MONTH 0 x88 #define WRITE_WDAY 0 x8A#define W
57、RITE_YEAR 0 x8C#define WRITE_ALMINUTE 0 xC0#define WRITE_ALHOUR 0 xC2#define WRITE_ALARM 0 xC4#define READ_SECOND 0 x81 #define READ_MINUTE 0 x83 #define READ_HOUR 0 x85#define READ_MDAY 0 x87#define READ_MONTH 0 x89 #define READ_WDAY 0 x8B#define READ_YEAR 0 x8D #define READ_ALMINUTE 0 xC1 #define
58、READ_ALHOUR 0 xC3#define READ_ALARM 0 xC5#define WRITE_PROTECT 0 x8Esbit SCLK=P36;sbit DIO=P37;sbit CE=P35;sbit BEEP=P20;sbit DQ=P17;sbit BLA=P24;sbit RS=P21;sbit RW=P22;sbit LCDEN=P23;sbit s1=P00;sbit s2=P01;sbit s3=P02;sbit s4=P03;bit blaflag;uint count0,count1;/*DS1302*/bit amt,altp;uint ytemp,ye
59、ar;uchar num1,num4,s1num,s2num,s3num,s4num,wday,mday,month,flag,alflag;uchar timecount;char miao,shi,fen,yearl,yearh;char alshi,alfen,alarm;/GPS數據存儲數組unsigned char JD10=.; /經度unsigned char JD_a=-; /經度方向unsigned char WD9=.; /緯度unsigned char WD_a=-; /緯度方向unsigned char date_y2=-; /年unsigned char date_m
60、2=-; /月unsigned char date_d2=-; /日unsigned char time_s2=-; /時unsigned char time_f2=-; /分unsigned char time_m2=-; /秒unsigned char speed7=; /速度 x.xxxx.xxxxx.xx 節海里/小時,相當于1.852KM/Hunsigned char high8=; /高度 xx.xxxx.x-xxxx.xunsigned char angle5; /方位角unsigned char use_sat3=-; /使用的衛星數unsigned char total_sa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 纖維加工過程中的節能減排考核試卷
- 琥珀蜜蠟拍賣考核試卷
- 礦物學及巖石學考核試卷
- 糕點行業產品質量評價與監督考核試卷
- 臨清市2024-2025學年五年級數學第二學期期末綜合測試模擬試題含答案
- 珠海三中高一下學期期中考試理科生物試題
- 吉林司法警官職業學院《紀錄片創作與拍攝》2023-2024學年第一學期期末試卷
- 山東蒙陰縣2024-2025學年中考化學試題倒計時模擬卷(2)含解析
- 遼寧省普蘭店市第一中學2025年高三下學期模擬測試(三)語文試題含解析
- 眉山職業技術學院《兒童舞蹈創編(實驗)》2023-2024學年第二學期期末試卷
- 2024年同等學力人員申請碩士學位英語試卷與參考答案
- 心力衰竭超濾治療
- 消毒管理辦法
- 水處理設備安裝及管道施工方案
- 中國牦牛奶行業銷售態勢及消費規模預測研究報告(2024-2030版)
- 基于web的二手物品交易系統的設計與實現
- 金融墊資三方合作協議書范文
- 汽車租賃服務方案(投標方案)
- 電梯維保服務投標方案(技術方案)
- 項目2-低頻電療法
- 2024-2030年海外醫療項目商業計劃書
評論
0/150
提交評論