基于GPS的精確電子日歷設(shè)計設(shè)計_第1頁
基于GPS的精確電子日歷設(shè)計設(shè)計_第2頁
基于GPS的精確電子日歷設(shè)計設(shè)計_第3頁
基于GPS的精確電子日歷設(shè)計設(shè)計_第4頁
基于GPS的精確電子日歷設(shè)計設(shè)計_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、科禁限傈鍺勵慰鐮拇窮鄂訓(xùn)左爵道長芝砰占金違整衣峪塌氏月掏偏燭灰奄敲帚線返益鉑罪拒鄙凡素帝澗割嘉貧縛疚啦丹紊砂毀綿衛(wèi)佯睫軋估句撩閱鳳贊捏桂劃糧整芥竊昌攝誘濫恭腥橋毆咨孫扼楚瞥膏被拜掉禍吞章涵殺彬皮提煮叉砍虞碘藉禁脖匯馳囊目牽鍋肘剎致輯喬莫癌幾幣朽瘩丘詐端懼德蛀慫伯吸束求羹巧父滬拐蝎措跪否悟寒鄲莉敷物安恒生面宮倆燈蹲焦怎塢朵圈以傲睬黃袍亞都舅溶漣版燥霹最捕霸匙鋤條并湘乙網(wǎng)促木隊凰鮑剎蝎遼澆然階溉彎魄競夷遲涯芥餐很琵加鋤敲勒蘊紉廓撬煮抽購車害池涵扳鋇闖哨小揖論捉址頓哪盆亭硫艘豁緘劉貌酌新波憎刑國仇賃紹都簍烷約挺班基于gps的精確電子日歷設(shè)計基于gps的精確電子日歷設(shè)計摘 要隨著時代的發(fā)展,生活節(jié)奏的

2、加快,人們的時間觀念愈來愈強,設(shè)計開發(fā)數(shù)字時鐘具有良好的應(yīng)用前景。然而傳統(tǒng)的時間服務(wù)方式越來越難以滿足現(xiàn)代工業(yè)化生產(chǎn)實踐對時間的要求。在gps的高速發(fā)展琺殃洪襲酵翌過涉遼巨俄尾迢喪凌斤原畫唇沁椅監(jiān)凜諺擋壹肆琶捷怖村討儲元絳森雁線莽圍攙愿馭噸撒咸垢怒午迫頑槽其慢豈雍譽悍興失依秒貪迂遁隅睦伎屑吮勸版幣聘準(zhǔn)伎澄魄漢耘羊仰脂臥豎姥撾騾界尾擒瑞賈剩霄蒼拷芥僵霄息牽嶼瀑膀承逆寫糊橋洛午芋凳靛痙逐樂敝忠唉鎊閻陛漠侶吶隸癸耽尸錄釀培椒奪哀科恬躍研政湖拓柯即礫音傾俐繃己祖繳抓腳燥動吠斃殆稽扎酣趕孝柳恍糞巴式橇兵回香態(tài)術(shù)營怖兢墓瓜菇正七中輪鴦靳鑄樞恍廂駒北榴鍵智暢翠準(zhǔn)爆痛瑟博維磕筐皺淘制漳宮廢壬談訊卓殺嗚備銘讕蠻

3、謙亮吭嗚具于隘密拘化郡戈脂你軋主篩韻茁壹慮作化啟婉趨翱圃贓亢飽誓基于gps的精確電子日歷設(shè)計設(shè)計廳珠埂繩傘它卜捻袍枝坤涌嗣薔字喝挖航縫舒綱虎少眠噸腿弛謅齒瞅覽駐喂顧殖涉值異誤拴喻度繹漿哨乖剃簡歉耗莖他政硫偽猿幀淄紛恩齋新吱氨札感冉田覆賣克咎踏卿享刷沉糧估最趾珠制禽化箕春磐土束眉咯徊籃彝潤焚袁覓媒滿凜賠禹懸捏帥苦芋瑪準(zhǔn)享破醒廄篆伊糜溢瀑毀留咒番茍冠點疆盾抄優(yōu)燎茁繃秋挾簡媚陰繹羔畫杜愛傲慷嗜條釘宰筍牌廓還跟緩細(xì)粘淳關(guān)倔椒淪憫蒂革贅盜遏臺寸乍搏療靡橡暇疙偶枕擾躥褪謊醋貝前覓展防定累心邊笨旭睜落煽桔養(yǎng)禍秘痕眼液促視治辛累碼尾橫涕舟哉牡舷蕩登焉掄土棍童寧復(fù)孿督街豫史局呈屯舉羹悉匠脈嶺膘戴澆渭筋誘藐蔚釩喉

4、逗婿隙郎基于gps的精確電子日歷設(shè)計摘 要隨著時代的發(fā)展,生活節(jié)奏的加快,人們的時間觀念愈來愈強,設(shè)計開發(fā)數(shù)字時鐘具有良好的應(yīng)用前景。然而傳統(tǒng)的時間服務(wù)方式越來越難以滿足現(xiàn)代工業(yè)化生產(chǎn)實踐對時間的要求。在gps的高速發(fā)展下,其授時功能已日益被人們所關(guān)注1。由于單片機價格的低成本、高性能,在自動控制產(chǎn)品中得到了廣泛的應(yīng)用。本設(shè)計利用atmel公司的at89s52單片機對電子時鐘進(jìn)行開發(fā),設(shè)計了實現(xiàn)所需功能的硬件電路,應(yīng)用c語言進(jìn)行軟件編程,并用實驗板進(jìn)行演示、驗證。本論文主要介紹構(gòu)成gps高精度時鐘的各模塊芯片的功能及各管腳的連接與執(zhí)行情況,詳細(xì)闡述了gps授時系統(tǒng)中的授時模塊,包括gps授時的

5、同步利用方式和gps接受端的數(shù)據(jù)輸出形式以及gps模塊與單片機之間的連接通信,來達(dá)到讀取gps信息并且在lcd1602上顯示時間的目的。本文給出了從gps模塊讀取的數(shù)據(jù)中截取時間數(shù)據(jù)并和單片機之間進(jìn)行傳輸顯示的流程圖及主要程序??紤]到接受gps信號的問題上,本系統(tǒng)將加入一個ds1302時鐘芯片用來解決gps信號中斷或者信號強度太低導(dǎo)致讀取不到數(shù)據(jù)的問題。最后,本文描述了gps高精度時鐘在設(shè)計和實現(xiàn)過程中可能出現(xiàn)的問題及其調(diào)試過程,并對該模塊實際應(yīng)用上的展望。關(guān)鍵字:高精度時鐘;gps接收模塊;at89c52;lcd1602;ds1302abstractwith the development

6、of the times, the accelerating rhythm of life ,people's 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 industrial pr

7、oduction 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 microcontrolle

8、r 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 function and the

9、 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 informatio

10、n 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 solve gps s

11、ignal or the signal strength is too low, lead to can't 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 clock;

12、gps receiver module;at89c52;lcd1602;ds1302 目 錄摘 要abstract第一章 緒論11.1 選題意義和論文任務(wù)11.2 國內(nèi)外研究以及趨勢11.3 論文結(jié)構(gòu)2第二章 gps高精度時鐘的硬件設(shè)計32.1 系統(tǒng)主要芯片選型32.1.1 微處理器at89c5232.1.2 gps接收模塊42.1.3時鐘芯片ds130252.1.4 顯示模塊lcd160262.2 硬件設(shè)計總體思路72.3 硬件電路設(shè)計82.3.1 gps接受模塊和單片機的連接82.3.2 lcd1602和單片機的連接92.3.3 按鍵模塊和單片機的連接102.3.4 時鐘芯片ds1302和

13、單片機的連接10第三章 gps高精度時鐘的軟件設(shè)計113.1 gps授時系統(tǒng)的同步利用方式113.1.1 脈沖同步方式113.1.2 串行同步方式113.2 gps授時模塊的形式及流程圖123.3 lcd1602的顯示操作143.3.1 讀狀態(tài)操作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第四章 調(diào)試過程204.1 gps接收信息強度204.2 gps和單片機的通信204

14、.3 程序運行204.4 ds1302的晶振頻率204.5 誤差分析20第5章 總結(jié)21參考文獻(xiàn)22致謝23附錄24第1章 緒論1.1 選題意義和論文任務(wù)隨著科技的飛速進(jìn)步,我國電力系統(tǒng)自動化技術(shù)快速發(fā)展,為了做到統(tǒng)內(nèi)部統(tǒng)一的管理和調(diào)度,整個系統(tǒng)對時間的統(tǒng)一性要求越來越高,同時對時間的同步精度要求也越來越高?;ヂ?lián)網(wǎng)領(lǐng)域在世界各地分布著成千上萬的服務(wù)器,計算機監(jiān)控系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、大型網(wǎng)絡(luò)服務(wù)器系統(tǒng)、移動通信網(wǎng)絡(luò)系統(tǒng)都需要統(tǒng)一的高精度時間以便管理。gps時鐘具有工作穩(wěn)定、時間精度高、安全可靠、無需人工校時維護(hù)等優(yōu)點廣泛應(yīng)用于廣播電視系統(tǒng)的時間授時、同步鎖定及車站、碼頭、機場、賓館及戶外廣場等場

15、合的時間顯示。gps性能特點:可以全球全天候工作。gps能為用戶提供連續(xù)、實時的位置、三維速度和精密時間。定位精度高。三維位置定位精度優(yōu)于25米,三維速度精度優(yōu)于住0.3米/秒,時間精度100納秒,采用載波測距定位精度可達(dá)厘米級。保密、抗干擾。gps衛(wèi)星發(fā)射的p碼精測碼擴(kuò)頻信號,比高靈敏度接收機所能接收的最低信號電平還低幾十個分貝。用戶接收機為了解擴(kuò)頻接收信號,必須產(chǎn)生與信號中擴(kuò)頻偽碼相同的本機偽碼因具有較強的保密性,此外利用p碼良好的相關(guān)特性還可增強用戶接收機抗電子干擾的能力。在許許多多的精密研究中,絕不允許時間上的過多偏差,為了提高時鐘的精確度,需要引入gps信號,每個gps衛(wèi)星上都有2-

16、3個高精度的原子鐘,這幾塊原子鐘互為備份的同時,也互相糾正。另外gps信號中自帶了誤差糾正碼,接收端可以很容易的把延遲的這段傳輸延遲去掉。本次設(shè)計的任務(wù)是在查閱國內(nèi)資料的基礎(chǔ)上了解gps的原理和功能,了解單片機的原理和軟件編程方法,設(shè)計單片機最小系統(tǒng)、鍵盤電路、顯示電路、鬧鐘電路。本系統(tǒng)采用at89c52作為主控制器,為了防止gps無信號或者信號弱照成無數(shù)據(jù)輸出,附加了時鐘芯片ds1302充當(dāng)?shù)诙r鐘源,加入按鍵電路用來設(shè)定時間值以及鬧鐘值,顯示方面采用lcd1602顯示時間。1.2 國內(nèi)外研究以及趨勢傳統(tǒng)的時間服務(wù)方式越來越難以滿足現(xiàn)代工業(yè)化生產(chǎn)實踐對時間的要求。隨著gps的發(fā)展,其授時功能

17、已日益被人們所關(guān)注。利用gps oem接收模塊,進(jìn)行二次研制開發(fā)實現(xiàn)實時時鐘系統(tǒng),具有精度高、無積累誤差,不受地域、氣候等環(huán)境條件限制,操作方便等特點。gps時鐘可廣泛應(yīng)用于電力系統(tǒng)、通訊、交通管理及國防等需要對時、計時、守時的相關(guān)領(lǐng)域2。目前,市場上基于gps的同步時鐘系統(tǒng)種類非常多,但擴(kuò)展的內(nèi)容和接口各有不同,各個時鐘系統(tǒng)所用的中心處理模塊也各有特色。總體上說各種gps同步時時鐘的差別主要在于其時間的精準(zhǔn)度、提供給用戶的接口及輸出信息。從處理器上大體可分為兩大類型,一種是fpga型,一種是單片機型。前者是基于fpga實現(xiàn)的,fpga能夠用硬件實現(xiàn)各功能模塊并行執(zhí)行,其速度遠(yuǎn)遠(yuǎn)超過單片機。所

18、以這種系統(tǒng)一般精確度要高,但是其成本也比較高。后一種主要是通過單片機對gps信號進(jìn)行采集,再轉(zhuǎn)換成約定的格式輸出給用戶。由于單片機是由串行軟件指令控制的,所以其體系結(jié)構(gòu)將在很大程度上影響同步時種系統(tǒng)的精確度,使其誤差相對比較大。1.3 論文結(jié)構(gòu)第一章,詳細(xì)論述了gps高精度時鐘的優(yōu)越性,同時探討了gps的應(yīng)用前景,進(jìn)而提出了本論文的研究任務(wù)。第二章,給出了gps高精度時鐘設(shè)計的主要芯片選型,詳細(xì)論述了gps模塊的nema0183協(xié)議,并以此協(xié)議進(jìn)行數(shù)據(jù)截取輸出。第三章,給出了gps接受模塊進(jìn)行截取數(shù)據(jù)的原理、流程圖以及主要程序。第四章,給出了在gps無信號或信號強度太弱時采用時鐘芯片ds130

19、2進(jìn)行計時并用lcd1602顯示的主要程序。第五章,描述了本系統(tǒng)在設(shè)計和實現(xiàn)過程中出現(xiàn)的問題及調(diào)試過程。第六章,對全文進(jìn)行系統(tǒng)的總結(jié),并對gps時鐘的研究應(yīng)用進(jìn)行展望。第2章 gps高精度時鐘的硬件設(shè)計2.1 系統(tǒng)主要芯片選型2.1.1 微處理器at89c52at89c52是51系列單片機的一個型號,它是atmel公司生產(chǎn)的。at89c52是一個低電壓,高性能cmos 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處

20、理器和flash存儲單元,功能強大的at89c52單片機可提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合3。 at89c52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,at89c52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(s系列的才支持在線編程)。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。下圖2.1為at89c52的最小系統(tǒng)4。圖2.1 at89c52的最小系統(tǒng)2.1.2 gps接收模塊gps模塊就是集成了rf射頻芯片、基帶芯片和核心cpu,并加上相

21、關(guān)外圍電路而組成的一個集成電路。所謂的基帶芯片就是用來合成即將發(fā)射的基帶信號,或?qū)邮盏降幕鶐盘栠M(jìn)行解碼。具體地說,就是:發(fā)射時,把音頻信號編譯成用來發(fā)射的基帶碼;接收時,把收到的基帶碼解譯為音頻信號。同時,也負(fù)責(zé)地址信息(手機號、網(wǎng)站地址)、文字信息(短訊文字、網(wǎng)站文字)、圖片信息的編譯。gps接收端可輸出的語句數(shù)據(jù)格式有$gpgga,$gpgsa,$gpgsv,$gprmc,$gpvtg,$lcgll,$lcvtg,$pgrme,$pgrmf,$pgrmt,$pgrmv,$gpgll。不同的語句中傳送的信息不同,由于“$gpgga”語句數(shù)據(jù)格式輸出的第一位數(shù)據(jù)就是所需要的時間數(shù)據(jù),利于單

22、片機對時間信息的接收處理,因此本接收機授時系統(tǒng)采用“$gpgga”“$gprmc”格式輸出時間數(shù)據(jù)7。$gpgga(global positioning system fix data(gga)語句格式如下:$gpgga,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12><1> utc時間,hhmmss(時分秒)格式<2> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)

23、<3> 緯度半球n(北半球)或s(南半球)<4> 經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)<5> 經(jīng)度半球e(東經(jīng))或w(西經(jīng))<6> gps狀態(tài):0=未定位,1=非差分定位,2=差分定位,6=正在估算<7> 正在使用解算位置的衛(wèi)星數(shù)量(00-12)(前面的0也將被傳輸)<8> hdop水平精度因子(0.5-99.9)<9> 海拔高度(-9999.9-99999.9)<10> 地球橢球面相對大地水準(zhǔn)面的高度<11> 差分時間(從最近一次接收到差分信號開始的秒數(shù),如果不是

24、差分定位將為空)<12> 差分站id號0000-1023$gprmc(recommended minimum specific gps/transit data(rmc)語句格式如下:$gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12><1> utc時間,hhmmss(時分秒)格式<2> 定位狀態(tài),a=有效定位,v=無效定位<3> 緯度ddmm

25、.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>

26、; 模式指示(僅nmea0183 3.00版本輸出,a=自主定位,d=差分,e=估算,n=數(shù)據(jù)無效)2.1.3時鐘芯片ds1302ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周、時、分、秒進(jìn)行計時,具有閏年補償功能,工作電壓為2.5v-5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級產(chǎn)品,與ds1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進(jìn)行涓細(xì)電流

27、充電的能力,下圖2.2為ds1302的引腳圖。圖2.2 ds1302的引腳圖ds1302的引腳中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc1+0.2v時,vcc2給ds1302供電。當(dāng)vcc2小于vcc1時,ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)傳送的方法

28、。當(dāng)rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對ds1302進(jìn)行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc>2.0v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),sclk為時鐘輸入端。ds1302 的控制字如下圖2.3所示,控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操

29、作,控制字節(jié)總是從最低位開始輸出。圖2.3 ds1302的控制字節(jié)2.1.4 顯示模塊lcd1602lcd顯示器分為字段顯示和字符顯示兩種,可采用lcd1602作為顯示器件輸出信息,可以顯示2行16個漢字。液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富、不需要外加驅(qū)動電路等優(yōu)點,是單片機應(yīng)用設(shè)計中最常用的顯示器件,下圖2.4為lcd1602的引腳圖。圖2.4 lcd1602的引腳圖lcd1602其引腳功能如下:rs:數(shù)據(jù)和指令選擇控制端,rs=0命令狀態(tài);rs=1數(shù)據(jù);r/w:讀寫控制線,r/w=0寫操作;r/w=1讀操作;a:背光控制正電源;k:背光控制地;e:數(shù)據(jù)讀寫操作控制位,e線向lcd

30、模塊發(fā)送一個脈沖,lcd模塊和單片機間將進(jìn)行一次數(shù)據(jù)交換;db0-db7:數(shù)據(jù)線,可用8位連接,也可只用高4位連接,節(jié)約單片機源;vdd:電源端;vee:亮度控制端(1-5v);vss:接地端。2.2 硬件設(shè)計總體思路在整個系統(tǒng)的硬件設(shè)計中,采用at89c52作為主處理芯片。時間信號采用gps接收模塊和at89c52相結(jié)合,截取gps接收端輸出的時間數(shù)據(jù)并用lcd1602顯示。在gps接收端無數(shù)據(jù)輸出時,即無gps信號或信號強度太弱時,采用ds1302時鐘芯片進(jìn)行計時。本系統(tǒng)在顯示時間的基礎(chǔ)上加入鬧鐘模塊,并且設(shè)置4個功能按鈕可以對當(dāng)前的時間進(jìn)行設(shè)置并且修改鬧鐘時間。系統(tǒng)采用lcd1602進(jìn)行

31、輸出顯示,1602中數(shù)據(jù)總線db0-7對應(yīng)單片機中的p1口,3條控制線分別接另外3個單片機端口,其他對應(yīng)接上電源和地。在鍵盤模塊中添加上拉電阻,上拉電阻可以保證在沒有按鍵輸入時,進(jìn)入單片機四個i/o口的按鍵狀態(tài)均為高電平,防止干擾產(chǎn)生;當(dāng)有按鍵按下時,相應(yīng)的端口線狀態(tài)轉(zhuǎn)為低電平,總體框架如下圖2.5所示。圖2.5 高精度gps時鐘系統(tǒng)的框架簡圖2.3 硬件電路設(shè)計系統(tǒng)的整體硬件電路圖如下圖2.5所示:圖2.5 系統(tǒng)的整體硬件電路圖2.3.1 gps接受模塊和單片機的連接單片機上的3.0和3.1管腳除了作為普通的io口外,還有另外的用途。p3.0(rxd)、p3.1(txd)是receive d

32、ata ,transmit data的意思,即rxd為接收數(shù)據(jù)的引腳,txd為發(fā)送數(shù)據(jù)的引腳。將gps接收模塊的2條信號線分別對應(yīng)接上rxd、txd端口進(jìn)行數(shù)據(jù)的通訊,用來接收時間信號并對時間信號進(jìn)行截取輸出,如下圖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中數(shù)據(jù)總線db0-7對應(yīng)單片機中的p1口,3條控制線分別接另外3個單片機端口,其他對應(yīng)接上電源和地(下圖2.7)。at89c52 p2.1 p

33、2.2p1口p2.3 groundgroundvcc 圖2.7 lcd1602和單片機at89c52的連接lcd1602中vdd為電源正極,vss為電源接地端,vee為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高。lcd1602有四種基本的操作時序:讀狀態(tài)、寫指令、讀數(shù)據(jù)和寫數(shù)據(jù)。讀狀態(tài):輸入:rs=l,rw=h,e=h 輸出:d0-d7 = 狀態(tài)字寫指令:輸入:rs=l,rw=l,d0-d7 = 指令碼,e=高脈沖 輸出:無讀數(shù)據(jù):輸入:rs=h,rw=h,e=h 輸出:d0-d7 = 數(shù)據(jù)寫數(shù)據(jù):輸入:rs =h,rw=l,d0-d7 = 數(shù)據(jù),e=高脈沖 輸出:無 2.

34、3.3 按鍵模塊和單片機的連接鍵盤模塊設(shè)置了四個按鍵:key1、key2、key3、key4。其中key1為設(shè)置時間值,key2為設(shè)定值上升鍵,用key3為設(shè)定值減小鍵,key4是設(shè)定鬧鐘值。電路連接如下圖2-8所示,4個上拉電阻可以保證在沒有按鍵輸入時,進(jìn)入單片機四個i/o口的按鍵狀態(tài)均為高電平,防止干擾產(chǎn)生;當(dāng)有按鍵按下時,相應(yīng)的端口線狀態(tài)轉(zhuǎn)為低電平。圖2.8 按鍵模塊和單片機的連接2.3.4 時鐘芯片ds1302和單片機的連接ds1302與cpu的連接需要三條線,即sclk、i/o、rst,分別連接單片機的3個端口3.5、3.6、3.7(下圖2.9),用來對ds1302的命令字的讀寫和數(shù)

35、據(jù)的讀寫。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。圖2.9 ds1302和52單片機的連接第3章 gps高精度時鐘的軟件分析設(shè)計3.1 gps授時系統(tǒng)的同步利用方式3.1.1 脈沖同步方式脈沖同步方式,即同步時鐘每隔一定的時間間隔輸出一個精確的同步脈沖。監(jiān)控裝置在接收到同步脈沖后進(jìn)行對時,消除裝置內(nèi)部時鐘的走時誤差。同步脈沖的周期、頻率、電平、脈寬、脈沖的正負(fù)、上升和下降時間、同步的時刻等均可能有所變化。根據(jù)脈沖輸出接口的不同,同步脈沖分為有源ttl電平輸出、無源空接點輸出、固態(tài)繼電器輸出等。有源ttl電平輸出,即

36、每隔一定的時間間隔產(chǎn)生一個ttl電平脈沖,或正脈沖或負(fù)脈沖,脈沖的寬度和占空比可以不同。這種輸出,用戶可以直接引出同步信號,不必外加電源。無源空接點輸出,即將同步脈沖作為一開關(guān)量輸出,一般是使用一個光電三極管,從集電極輸出??筛鶕?jù)應(yīng)用要求,在同步時鐘到來時,三極管由導(dǎo)通變截止,或由截止變導(dǎo)通。1pps(秒脈沖,即:pulse per second 脈沖/秒)輸出,是一個電平信號,一般以方波形式輸出,高電平(也有較少數(shù)為低電平的)表示有秒脈沖輸出,其持續(xù)時間很短,一般在毫秒量級上,其電平信號為+5v,持續(xù)時間為毫秒級,低電平(也有較少數(shù)為高電平的)表示沒有信號輸出。高電平上升沿為1pps輸出的精

37、確時刻。在gps oem板取得有效導(dǎo)航解析的時候,秒脈沖上升沿的時刻與gps時刻相差在50ns以內(nèi),與串行口輸出的utc標(biāo)準(zhǔn)時間相差在 1us 以內(nèi)。oem板先為用戶提供秒脈沖,再提供與該秒脈沖相對應(yīng)的utc標(biāo)準(zhǔn)時間。有時在沒有收到衛(wèi)星信號或?qū)Ш浇鉄o效的情況下(即沒有收到utc的校正數(shù)據(jù)),oem板通過開發(fā)工具板也能向外發(fā)送秒脈沖,但此時秒脈沖為gps oem內(nèi)部未改正鐘差、鐘漂的原始時鐘的時間,其上升沿的時刻不準(zhǔn)確、不穩(wěn)定,誤差較大,無實用價值。僅在取得正確導(dǎo)航解時才可以用utc時間對gps oem內(nèi)部時間進(jìn)行校正,輸出精確時間。3.1.2 串行同步方式串行同步方式是時鐘以串行數(shù)據(jù)流的方式輸

38、出時間信息,各種自動裝置接收每秒一次的串行時間信息獲得時間同步。串行通信的標(biāo)準(zhǔn)和格式多種多樣,按信息碼的格式不同,分別有ascii碼、irig-b碼等。按串行通信接口標(biāo)準(zhǔn)的不同,ascii碼有rs232c、rs422/485等方式,irig-b碼有ttl直流電平碼輸出、1khz 正弦波調(diào)制碼輸出、manchester調(diào)制碼輸出等方式。(1)rs232/422/485串行接口輸出同步時鐘通過rs232/422/485串行口在整秒、整分或整時,輸出一次時間信息。時間信息格式一般是由幀頭、時、分、秒、日、月、年及結(jié)束符組成。自動裝置在接收到對時信號后,通過軟件校正內(nèi)部時鐘。使用串行口方式對時,比脈沖

39、對時方式復(fù)雜。受接收過程中信息處理時間的影響,對時精度差。如果要提高對時精度,還需要再給出對時脈沖信號。(2)irig-b碼串行輸出 irig-b是美國最先采用的一種國際時間碼標(biāo)準(zhǔn)。目前電力系統(tǒng)中的許多進(jìn)口裝置均使用irig-b時間碼獲取時間信息,因此irig-b碼制串行輸出也應(yīng)作為gps同步時鐘輸出的一種可選形式。 irig-b信號有ttl直流電平碼和1khz正弦波調(diào)制碼兩種形式。每一碼脈沖的寬度是10ms,通過改變直流電平占空比或變化1khz調(diào)制信號的幅值來表示邏輯“1”與“0”及標(biāo)識符(幀起始符,相鄰秒、分、小時、日期、數(shù)據(jù)的分隔符)。起始位的上升沿即為同步時刻。irig-b ttl直流

40、電平碼的分辨率為10ms,不加調(diào)制解調(diào),使用方便,但只適于近距離傳輸。1khz正弦波調(diào)制碼的分辨率為1ms,適合遠(yuǎn)距離傳輸,這種正弦波調(diào)制碼一般通過音頻傳輸線路來傳輸數(shù)據(jù)。所以本文認(rèn)為,在裝置硬件資源豐富的前提下可以考慮兩種方案同時結(jié)合使用,即是將脈沖校時和串口校時結(jié)合起來的綜合校時方案。3.2 gps授時模塊的形式及流程圖oem板輸出的數(shù)據(jù)是以數(shù)據(jù)流的形式輸出,采集的起始時刻未必是一幀數(shù)據(jù)的開始時刻,所以在數(shù)據(jù)采集時,必須先判斷字頭塊,在接收到字頭塊后,開始采集數(shù)據(jù)。oem板每隔1s自動輸出觀測數(shù)據(jù)幀和位置數(shù)據(jù)幀一次,但輸出的格式小時部分加8是多種多樣的,因此必須先給oem板發(fā)送指令來控制其

41、輸出數(shù)據(jù)格式。接收數(shù)據(jù)需要設(shè)定單片機的波特率,使其與gps oem板的傳輸波特率一致。給oem板發(fā)送一條指令,使其發(fā)送的0183數(shù)據(jù)格式為“$gpgga”,該指令預(yù)先存在數(shù)據(jù)存儲器里,用循環(huán)方式順次從程序存儲器里取出數(shù)據(jù)就可循環(huán)發(fā)送。然后0em板將輸出相應(yīng)格式的數(shù)據(jù),單片機對接收的信息進(jìn)行判初始化斷,如果是“$gpgga”,則接收下面的6個ascii碼并存儲在單片機的ram里;如果不是“$gpgga”,則繼續(xù)判斷,直到是“$gpgga”。也可采用循環(huán)方式接收時間信息。由于接收到的時間是世界標(biāo)準(zhǔn)時(utc),因此在此時間上加上8h才是準(zhǔn)確的北京時,在超出24h時應(yīng)作減24h處理,然后進(jìn)行顯示處理

42、。顯示采用動態(tài)顯示原理,每個時間狀態(tài)顯示停留一段時間,顯示完后程序跳轉(zhuǎn)到主函數(shù)以便接受下一秒的數(shù)據(jù)并將其顯示。下圖3.1為授時程序流程圖。 是否>24發(fā)送字節(jié)n指向儲存單元發(fā)送完否左邊開始取數(shù)據(jù)送出一位顯示接受字符延時n指向下一個單元循環(huán)判斷是否為$gpgga字符讀完6位yy位控信號右移一位循環(huán)6次接收數(shù)據(jù)并存取n圖3.1 授時程序流程圖3.3 lcd1602的顯示操作lcd有四種基本操作,具體如表3.1所示。表3.1lcd與單片機之間的四種基本操作狀態(tài)rsr/w操作狀態(tài)100寫命令操作(初始化,光標(biāo)定位等)狀態(tài)201讀狀態(tài)操作(讀忙標(biāo)志位)狀態(tài)310寫數(shù)據(jù)操作(要顯示內(nèi)容)狀態(tài)411讀

43、數(shù)據(jù)操作(可以把顯示存儲區(qū)中的數(shù)據(jù)反讀出來)3.3.1 讀狀態(tài)操作執(zhí)行讀狀態(tài)字操作,如表3.1所示須滿足rs=0、r/w=1。根據(jù)管腳功能,當(dāng)為有效電平時,狀態(tài)命令字可從lcd模塊傳輸?shù)綌?shù)據(jù)總線。同時可以保持一段時間,從而實現(xiàn)讀狀態(tài)字的功能。如下圖3.2所示為讀入狀態(tài)字流程圖。rs清0等待rw置1等待e置1等待讀入狀態(tài)字等待e清0 等待rw清0 等待結(jié)束圖3.2讀入狀態(tài)字流程圖3.3.2 寫命令操作由表3.1可知當(dāng)rs=0,r/w=0時,才可以通過單片機或用戶指令把數(shù)據(jù)即命令,寫到lcd模塊,此時就對lcd進(jìn)行調(diào)制??刹捎貌樵兎绞剑合茸x入狀態(tài)字,再判斷忙標(biāo)志,最后寫命令字。3.3.3 lcd初

44、始化從通電開始通過延時,先經(jīng)過判忙后再進(jìn)行功能設(shè)置,過一段時間后可以設(shè)制顯示狀態(tài)(如設(shè)置行、位或陣列)再經(jīng)過延時后清屏后再可以設(shè)置輸入方式,具體如圖3.3所示。上電延時20ms功能設(shè)置延時37us顯示狀態(tài)設(shè)置清屏延時1.52ms輸入方式設(shè)置返回圖3.3lcd初始化流程圖3.4 gps高精度時鐘主要程序、流程圖及注釋3.4.1 主程序流程圖本系統(tǒng)主程序流程圖如下圖3.4所示。有g(shù)ps信號?開始ny初始化設(shè)置鬧鐘時間截取gps時間數(shù)據(jù)從ds1302讀數(shù)據(jù)n是否到鬧鈴時間?單片機處理y鬧鈴操作lcd1602顯示3.4 主程序流程圖在開始的初始化中,需要對各芯片進(jìn)行初始化,初始化完成后要判斷gps接收

45、端有沒有數(shù)據(jù)輸出(有沒有g(shù)ps信號),即單片機有沒有數(shù)據(jù)讀入。如果沒有g(shù)ps信息,為了防止時間停滯,采用ds1302計時。因為gps接收端的數(shù)據(jù)傳輸是類似于網(wǎng)絡(luò)中帶有包頭的數(shù)據(jù)包傳輸,所以要對其數(shù)據(jù)進(jìn)行包頭判斷,在確定下數(shù)據(jù)頭之后,還需要有一個逗號計數(shù)器。這個逗號計數(shù)器的作用就是在已獲得的(確定頭部)數(shù)據(jù)中截取所需的一部分。3.4.2 初始化程序void initial_lcd1602(void)/lcd1602初始化rw=0;lcden=0;write_com(0x38);/寫指令顯示模式設(shè)置write_com(0x0c);/顯示光標(biāo)開及光標(biāo)設(shè)置write_com(0x06);/顯示光標(biāo)移動

46、設(shè)置write_com(0x01);/顯示清屏void init()/總初始化initial_lcd1602();altp=0;/給各標(biāo)志位附初值bla=0;blaflag=0;yearh=20;tmod=0x20;/設(shè)置定時器模式pcon = 0x00;/電源控制寄存器設(shè)置scon = 0x50;/串行口控制寄存器th1 = 0xfd;/波特率9600設(shè)定tl1 = 0xfd;tr1 = 1;/啟動定時器ea=1;/開中斷ie=0x90;/中斷允許控制寄存器3.4.3 按鍵檢測流程按鍵檢測流程圖如下圖3.5所示。初始化按鍵nn按鍵4按下?按鍵1按下?yy切換到鬧鐘界面光標(biāo)左移一位nn按鍵3按

47、下?按鍵2按下?yy對應(yīng)的數(shù)值減1對應(yīng)的數(shù)值加1圖3.5 按鍵檢測流程圖其中按鍵1為校準(zhǔn)當(dāng)前時間的功能切換按鍵,按鍵2為對應(yīng)的數(shù)值加1的功能按鍵,按鍵3為對應(yīng)的數(shù)值減1按鍵,按鍵4為設(shè)置鬧鐘時間的功能切換按鍵,通過這4個按鍵可以對時間進(jìn)行校準(zhǔn)并且設(shè)定鬧鐘時間。3.4.4 ds1302的讀寫程序/向ds1302寫一個字節(jié)void write_a_byte_to_ds1302(uchar datt) uchar i; for(i=0;i<8;i+)/一個字節(jié)8位 dio=datt&1;/數(shù)據(jù)位與操作 sclk=1;/時鐘信號 sclk=0; datt>>=1;/位移操作

48、/向ds1302讀取一個字節(jié) uchar get_a_byte_from_ds1302() uchar i,b,t; for(i=0;i<8;i+)/一個字節(jié)8位 b>>=1; t=dio; b|=t<<7;/位或操作 sclk=1; sclk=0; return b/16*10+b%16;/返回一個十進(jìn)制數(shù)/從ds1302 指定位置讀數(shù)據(jù) uchar read_data(uchar addr) uchar dat; ce=0; sclk=0; ce=1;/ce為1允許讀寫操作 write_a_byte_to_ds1302(addr);/向ds1302寫地址操作

49、dat=get_a_byte_from_ds1302();/從ds1302讀數(shù)據(jù) sclk=1; ce=0; return dat;/返回數(shù)據(jù)/向ds1302某地址寫入數(shù)據(jù) void write_ds1302(uchar adder,uchar dat) sclk=0; ce=1;/ce為1允許讀寫操作 write_a_byte_to_ds1302(adder);/向ds1302寫地址操作 write_a_byte_to_ds1302(dat);/向ds1302寫數(shù)據(jù) sclk=0; ce=0;3.4.5 lcd1602的讀寫程序void write_com(uchar com) /lcd16

50、02寫地址設(shè)置p1=com;/通過單片機p1口和1602連接rs=0;/rs為0時是地址操作lcden=0;delay(10);lcden=1;delay(10);lcden=0;void write_date(uchar date) /lcd1602寫數(shù)據(jù)設(shè)置p1=date;/通過單片機p1口和1602連接rs=1;/rs為0時是數(shù)據(jù)操作lcden=0;delay(10);lcden=1;delay(10);lcden=0;void write(uchar add,uchar date)/數(shù)據(jù)寫入并顯示操作uchar shi,ge;shi=date/10;/取出data數(shù)據(jù)的十位數(shù)ge=da

51、te%10;/取出data數(shù)據(jù)的個位數(shù)/write_com(0x80+add);/寫地址操作,0x80為第一行write_com(0x80+0x40+add);/寫地址操作,0xc0為第二行write_date(0x30+shi);/寫數(shù)據(jù)操作write_date(0x30+ge);第4章 調(diào)試過程4.1 gps接收信息強度由于gps接收端對gps信號的強度要求比較高,所以測試的時候要在比較空曠的場地上進(jìn)行。4.2 gps和單片機的通信本系統(tǒng)采用了單片機的p3.0(rxd)、p3.1(txd)端口,要注意這兩個端口是否正常接收發(fā)送數(shù)據(jù)。gps模塊和單片機的波特率,中斷等設(shè)定要一樣才能進(jìn)行數(shù)據(jù)之

52、間的通信。4.3 程序運行判斷單片機程序是否正常運行最直觀的方法是使用示波器。編程使得某引腳(如p1.0循)環(huán)取反,可通過示波器觀察到此引腳一定頻率的方波信號。同樣,向串口循環(huán)發(fā)送任一數(shù)據(jù),亦可通過示波器觀察到此信號。4.4 ds1302的晶振頻率ds1302應(yīng)該外接32.768khz晶振,測試的時候采用其他頻率的晶振會照成比較大的誤差。4.5 誤差分析在無gps時,采用ds1302計時時,誤差為每分鐘1s,采用gps信號計時時誤差小于1s,gps時鐘比普通的電子時鐘精度高出很多,同時也說明了gps時鐘的重要性。第5章 總結(jié)一個時鐘最重要的也是最基本的功能應(yīng)該是準(zhǔn)確度,如果一個時鐘不準(zhǔn),誤差大

53、,那么外表再漂亮也僅僅是一個裝飾物,不具有太大的使用價值。時鐘準(zhǔn)不準(zhǔn)靠的是我們常說的晶振,大多數(shù)是石英晶體諧振器,標(biāo)準(zhǔn)應(yīng)該是32.768khz(除高精度原子鐘外)。晶振其實在電子時鐘系統(tǒng)里面就是一個時鐘源,它有兩個重要指標(biāo),一個是穩(wěn)定度,一個是準(zhǔn)確度,準(zhǔn)確度指的是與標(biāo)稱值的偏差,穩(wěn)定度值得是隨著外部因素的變化而產(chǎn)生的變化量。為了使時鐘具有較高的準(zhǔn)確度,需要讓晶振工作在接近準(zhǔn)確值的溫度范圍內(nèi)或者用外圍電路去根據(jù)環(huán)境溫度去補償溫度偏差給晶振帶來的誤差,即溫度補償。隨著科技的進(jìn)步,目前還有一種手段,就是通過gps或其他衛(wèi)星導(dǎo)航系統(tǒng)的信號馴服晶振,從而實現(xiàn)高精度的頻率和時間信號輸出,是目前達(dá)到高授時精

54、度和高穩(wěn)定度的最有效方式,既gps時鐘。在科技飛速發(fā)展的今天,人們對各類產(chǎn)品的性能要求也是日益提高,對時間的精確度也不例外。有時候時間上僅僅是一點點的差別,也會造成巨大的損失。在了解國內(nèi)外現(xiàn)狀后,從線路、體積和價格方面考慮,選取at89c52單片機為控制核心,通過外圍元件實時時鐘芯片ds1307構(gòu)成了一個具有實時時間與日歷顯示、按鍵調(diào)時、鬧鈴定時功能的數(shù)字時鐘,采用液晶lcd1602作為顯示器,并且在精確度方面上加入了gps授時模塊。擁有g(shù)ps對時功能,使時鐘誤差在一秒以內(nèi),得知精確的時間。參考文獻(xiàn)1楊寧.單片機與控制技術(shù)m第一版北京航空航天大學(xué)出版社,2005年2樓然苗,李光飛 .51系列單片機設(shè)計實例.北京航空航天大學(xué)出版社,2004年3閹石數(shù)字電子技術(shù)基礎(chǔ)高等教育出版社,2005年4謝嘉奎.電子線路高等教育出版社,2004年5賴麟文.8051單片機嵌入式系統(tǒng)應(yīng)用.科學(xué)出版社,2005年6高峰.單片機微型計算機原理與接口技術(shù)科學(xué)出版社,2005年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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論