基于單片機(jī)微控制器gps高精度授時(shí)時(shí)鐘設(shè)計(jì)_第1頁(yè)
基于單片機(jī)微控制器gps高精度授時(shí)時(shí)鐘設(shè)計(jì)_第2頁(yè)
基于單片機(jī)微控制器gps高精度授時(shí)時(shí)鐘設(shè)計(jì)_第3頁(yè)
基于單片機(jī)微控制器gps高精度授時(shí)時(shí)鐘設(shè)計(jì)_第4頁(yè)
基于單片機(jī)微控制器gps高精度授時(shí)時(shí)鐘設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的GPS高精度授時(shí)時(shí)鐘設(shè)計(jì)學(xué)生姓名:指導(dǎo)教師:所在學(xué)院:專(zhuān) 業(yè):農(nóng)業(yè)電氣化摘要本文設(shè)計(jì)了一種基于P89LPC952高速單片機(jī)的GPS衛(wèi)星授時(shí)時(shí)鐘。它由接收機(jī)、中央處理單元、LCM顯示、鍵盤(pán)、輸出接口組成。利用接收機(jī)提供的標(biāo)準(zhǔn)時(shí)間信號(hào),通過(guò)中央處理單元對(duì)數(shù)據(jù)的處理,從而可同步輸出時(shí)間數(shù)據(jù),保證高精度授時(shí)。這不僅解決了時(shí)間獲取問(wèn)題,而且能真正實(shí)現(xiàn)全球范圍內(nèi)的時(shí)間校準(zhǔn)。更創(chuàng)新性地集成了全世界212個(gè)城市的實(shí)時(shí)時(shí)間顯示。與傳統(tǒng)方法相比,這種全新的時(shí)鐘同步方法具有實(shí)現(xiàn)手段簡(jiǎn)單、精度高、范圍大、不需通道聯(lián)系、不受地理和氣候條件限制等眾多優(yōu)點(diǎn),是時(shí)鐘同步的理想方法。本文介紹

2、了基于P89LPC952的GPS授時(shí)時(shí)鐘裝置的硬件;根據(jù)裝置要實(shí)現(xiàn)的功能,給出了主程序和中斷程序的流程圖和程序介紹。關(guān)鍵詞:授時(shí)時(shí)鐘 P89LPC952 GPS 中央處理單元ABSTRACTA kind of GPS satellite timing clock based on the P89LPC952 High-speed MCU is recommended in the following thesis. It is composed of receptors、central proceeding sections, LCM, keyboard and output connecto

3、rs. The central proceeding section could deal with the data to make the output time data by use of the standard time signals supplied by receptors, thus, keeping highly precision timing. By this way, not only solve the problem of the time obtained, but also the time in the worldwide is really comple

4、tely unified. Even more, creatively integrates 212 cities of the world wides real-time display. Compared with conventional method, this new synchronous clock plan has many advantages, such as simple, high precision, wide extension, no channels needed, no confine of geography and weather environment

5、and so on. It is the ideal way to synchronize the clock. In the following paper, represent the hardware of the GPS timing clock based on the P89LPC952 High-speed MCU. According to the function of the device, list the flow chart of the main program and the interrupt program and the introduction of th

6、ose programs.Keywords: Timing clock P89LPC952 GPS Central proceeding section目錄摘要IABSTRACTII前言IV1.緒論11.1設(shè)計(jì)提出的意義11.2課題主要內(nèi)容12.系統(tǒng)設(shè)計(jì)基礎(chǔ)22.1設(shè)計(jì)思想22.2方案選擇22.3本章小結(jié)33.系統(tǒng)組成原理及硬件設(shè)計(jì)43.1系統(tǒng)的組成和原理43.2硬件電路的設(shè)計(jì)43.3本章小結(jié)104.軟件設(shè)計(jì)114.1軟件系統(tǒng)結(jié)構(gòu)114.2主要算法設(shè)計(jì)124.3本章小結(jié)155.PCB設(shè)計(jì)、組裝及調(diào)試165.1 PCB的設(shè)計(jì)165.2 PCB焊接組裝175.3電路的調(diào)試175.4本章小結(jié)18結(jié)論

7、19參考文獻(xiàn)20致謝21附錄1 系統(tǒng)原理圖22附錄2 主要源代碼23前言20世紀(jì)70年代的計(jì)算機(jī)革命產(chǎn)生了一群新的時(shí)間用戶(hù),他們需要精確的計(jì)算機(jī)時(shí)間。但是,眾所周知,計(jì)算機(jī)時(shí)鐘的守時(shí)性能并不出色。通常,簡(jiǎn)單的時(shí)鐘如腕表和家里的掛鐘的性能要好于計(jì)算機(jī)時(shí)鐘。這種計(jì)算機(jī)時(shí)鐘的性能會(huì)導(dǎo)致很多問(wèn)題,因?yàn)橛泻芏嘤?jì)算機(jī)應(yīng)用需要時(shí)間精度保持在接近1s或更好。例如,出于安全原因,用于金融系統(tǒng)的計(jì)算機(jī)必須能夠精確記錄每次轉(zhuǎn)賬、交易的精確時(shí)間。同樣,用于電信計(jì)費(fèi)的計(jì)算機(jī),它不僅要求單機(jī)能夠準(zhǔn)確記錄通信的時(shí)間,還要求另外城市的計(jì)算機(jī)能夠保持時(shí)間同步, 才能保證網(wǎng)間結(jié)算不會(huì)出問(wèn)題。用于精確物理測(cè)量獲得科學(xué)數(shù)據(jù)的計(jì)算機(jī)系

8、統(tǒng)需要知道測(cè)量的精確時(shí)刻,全自動(dòng)化工業(yè)系統(tǒng)也需要計(jì)算機(jī)在正確的時(shí)刻發(fā)出控制指令。對(duì)同步通信系統(tǒng),如無(wú)線(xiàn)電臺(tái)、電視基站,需要計(jì)算機(jī)在正確的時(shí)間建立鏈路連接。授時(shí)系統(tǒng)就是使儀器或計(jì)算機(jī)與國(guó)際標(biāo)準(zhǔn)時(shí)間達(dá)到精確同步。通常,可以用原子鐘來(lái)保證儀器的時(shí)間與國(guó)標(biāo)時(shí)間達(dá)到精確同步,但是原子鐘價(jià)格昂貴。這里介紹一種簡(jiǎn)單、相對(duì)廉價(jià)的時(shí)間同步方法。利用全球定位系統(tǒng)提供的時(shí)間信號(hào)和秒脈沖,通過(guò)軟件可以使計(jì)算機(jī)的時(shí)鐘與UTC(Universal Time Coordinated 協(xié)調(diào)世界時(shí))達(dá)到精確的同步。1.緒論設(shè)計(jì)提出的意義面對(duì)著現(xiàn)代社會(huì)的快節(jié)奏生活,人們對(duì)時(shí)間的要求就會(huì)越來(lái)越高。而且現(xiàn)在有很多機(jī)構(gòu)對(duì)時(shí)間的同步性要

9、求也越來(lái)也高,而原子鐘的成本又太高,所以,基于單片機(jī)的GPS高精度授時(shí)時(shí)鐘將完全能夠勝任這些高要求的時(shí)間機(jī)構(gòu)。課題主要內(nèi)容本課題主要設(shè)計(jì)一個(gè)可以接收GPS報(bào)文,并能提取報(bào)文中的時(shí)間信息,在一定時(shí)間周期內(nèi)為系統(tǒng)內(nèi)的時(shí)鐘校時(shí),使系統(tǒng)始終運(yùn)行在秒級(jí)精度上。并且可以將GPS的有關(guān)時(shí)間的報(bào)文,通過(guò)另一個(gè)串口向PC端發(fā)送。并且存儲(chǔ)212個(gè)城市的中英文名稱(chēng)和市區(qū)數(shù)據(jù),而且可以用液晶無(wú)延遲顯示這些城市的名稱(chēng)和當(dāng)前時(shí)間,并能通過(guò)鍵盤(pán)實(shí)時(shí)切換的各個(gè)城市的高精度時(shí)鐘。時(shí)鐘在沒(méi)有接收到準(zhǔn)確的GPS報(bào)文的情況下還可以通過(guò)鍵盤(pán)對(duì)時(shí)鐘進(jìn)行手動(dòng)調(diào)整。并且系統(tǒng)內(nèi)帶有一個(gè)鬧鐘,可以通過(guò)鍵盤(pán)對(duì)其進(jìn)行調(diào)整以及控制其起停。并且系統(tǒng)還有

10、實(shí)時(shí)顯示本地經(jīng)緯度功能。在硬件設(shè)計(jì)上,采用先進(jìn)的SMT工藝,使整個(gè)系統(tǒng)迷你化。2.系統(tǒng)設(shè)計(jì)基礎(chǔ)2.1設(shè)計(jì)思想本系統(tǒng)在設(shè)計(jì)之初時(shí),首先要求要有兩個(gè)串口,一個(gè)用來(lái)接收GPS報(bào)文,另一個(gè)用來(lái)向PC發(fā)送時(shí)間數(shù)據(jù)。GPS模塊的1PPS引腳接到單片機(jī)的中斷管腳上,以提高授時(shí)的精度。要讓單片機(jī)能夠存儲(chǔ)、檢索212個(gè)國(guó)家的中英文名稱(chēng)和其時(shí)區(qū)數(shù)據(jù)。并通過(guò)一塊液晶屏幕將整合后的時(shí)間信息顯示。系統(tǒng)內(nèi)要自帶一個(gè)實(shí)時(shí)運(yùn)行的時(shí)鐘。接收到的GPS時(shí)間信息是要為本系統(tǒng)校時(shí),而不是直接為系統(tǒng)提供時(shí)間。這樣系統(tǒng)內(nèi)就始終有一個(gè)時(shí)鐘在運(yùn)行。系統(tǒng)內(nèi)還要有一個(gè)鍵盤(pán),可以實(shí)現(xiàn)系統(tǒng)的時(shí)間調(diào)整、鬧鈴調(diào)整以及其他功能。利用系統(tǒng)內(nèi)已有的時(shí)鐘,設(shè)計(jì)

11、一個(gè)鬧鈴。2.2方案選擇用一片P89LPC952作為中央處理單元,由于P89LPC952只有8K的存儲(chǔ)空間,所以加一片32K鐵電存儲(chǔ)器FM25CL256作為數(shù)據(jù)存儲(chǔ)器。系統(tǒng)框圖如圖1。時(shí)鐘芯片時(shí)鐘芯片MCULCM發(fā)送數(shù)據(jù)GPS鍵盤(pán)圖1 系統(tǒng)框圖P89LPC952有兩個(gè)獨(dú)立的串口,可配置各自獨(dú)立的波特率。鐵電存儲(chǔ)采用串行SPI總線(xiàn)進(jìn)行高達(dá)3Mb/s的速率讀寫(xiě)。完全可以應(yīng)付屏幕顯示的速度。2.3本章小結(jié)本章主要討論基于單片機(jī)的GPS高精度授時(shí)時(shí)鐘的設(shè)計(jì)思想,并詳細(xì)介紹了方案選擇的過(guò)程。其中P89LPC936有足夠的存儲(chǔ)空間,但外部的管腳資源太少,單GM8125就占用了八個(gè)管腳,擴(kuò)展性能太差。P89

12、LPC952有足夠的44個(gè)管腳,但存儲(chǔ)空間只有8K。但SPI總線(xiàn)的高速率彌補(bǔ)了空間的不足。3.系統(tǒng)組成原理及硬件設(shè)計(jì)3.1系統(tǒng)的組成和原理整個(gè)系統(tǒng)由單片機(jī)中央控制和運(yùn)算模塊、GPS模塊、鐵電數(shù)據(jù)存儲(chǔ)模塊、機(jī)內(nèi)時(shí)鐘和鬧鈴模塊以及鍵盤(pán)和顯示模塊組成。單片機(jī)中央控制與運(yùn)算模塊負(fù)責(zé)接收GPS報(bào)文,讀寫(xiě)I2C時(shí)鐘,將GPS報(bào)文中的時(shí)間信息提取出來(lái),經(jīng)過(guò)與默認(rèn)城市的市區(qū)數(shù)據(jù)運(yùn)算后,在1PPS中斷到來(lái)的時(shí)刻,將時(shí)間數(shù)據(jù)寫(xiě)入I2C時(shí)鐘芯片,同時(shí)將時(shí)間數(shù)據(jù)以及從存儲(chǔ)器中讀出的城市中英文名稱(chēng)整合后送屏幕顯示。GPS模塊通過(guò)天線(xiàn)接收多顆衛(wèi)星傳來(lái)的定位及時(shí)間數(shù)據(jù),通過(guò)串口以TTL-232電平將數(shù)據(jù)送出,并產(chǎn)生1PPS

13、秒脈沖。在鐵電存儲(chǔ)模塊中,創(chuàng)新性地存儲(chǔ)了全世界212個(gè)城市的中英文名稱(chēng)和時(shí)區(qū)數(shù)據(jù),這就使整個(gè)系統(tǒng)不僅僅是一臺(tái)高精度授時(shí)時(shí)鐘,更是一臺(tái)高精度的世界時(shí)鐘??梢圆樵?xún)這212個(gè)城市的實(shí)時(shí)時(shí)間。而且只用存儲(chǔ)其中2bytes的存儲(chǔ)空間,實(shí)現(xiàn)了可將任意城市的時(shí)間設(shè)為在系統(tǒng)主界面顯示的城市名稱(chēng)和當(dāng)前時(shí)間,這就為長(zhǎng)途旅行帶來(lái)更多的方便。機(jī)內(nèi)時(shí)鐘和鬧鈴模塊自身一直在有一個(gè)時(shí)鐘運(yùn)行,單片機(jī)通過(guò)I2C總線(xiàn)讀取其中的時(shí)間數(shù)據(jù),而且芯片內(nèi)還有一個(gè)報(bào)警中斷引腳,用來(lái)做鬧鈴的開(kāi)關(guān)??偟膩?lái)說(shuō),就是單片機(jī)將所有接收到的時(shí)間數(shù)據(jù)于讀取的城市數(shù)據(jù)運(yùn)算整合,送屏幕顯示,并和機(jī)內(nèi)時(shí)鐘的報(bào)警中斷共同控制系統(tǒng)鬧鈴。鍵盤(pán)則用以進(jìn)入菜單,實(shí)現(xiàn)時(shí)

14、鐘調(diào)整等各種功能。3.2硬件電路的設(shè)計(jì)3.2.1 P89LPC952單片機(jī)系統(tǒng)設(shè)計(jì)P89LPC952是飛利浦最新的一款單片機(jī),含有多種低成本的封裝形式。它采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時(shí)間只需2到4個(gè)時(shí)鐘周期。6倍于標(biāo)準(zhǔn)80C51 器件。8KB可擦除Flash程序存儲(chǔ)器,單字節(jié)擦除特性使得任何字節(jié)都可用于非易失性數(shù)據(jù)存儲(chǔ)。兩個(gè)增強(qiáng)型UART,具有波特率發(fā)生器、間隔檢測(cè)、幀錯(cuò)誤檢測(cè)和自動(dòng)地址檢測(cè)功能。400kHz字節(jié)寬度的I2C通信端口和SPI通信端口。片內(nèi)高精度的RC振蕩器選項(xiàng)帶有時(shí)鐘倍頻器,無(wú)需外接振蕩器件。VDD操作電壓范圍為2.43.6V。I/O口可承受5V電壓。端口“輸入模式匹配”

15、檢測(cè)。當(dāng)P0口管腳的值與一個(gè)可編程的模式匹配或者不匹配時(shí),可產(chǎn)生一個(gè)中斷鍵盤(pán)中斷。在本系統(tǒng)中主要應(yīng)用了單片機(jī)的內(nèi)部晶振、兩個(gè)增強(qiáng)型UART、I2C通信端口、P0口鍵盤(pán)中斷和一個(gè)外部中斷。SPI總線(xiàn)采用I/O口軟件模擬的方式。并用I/O口軟件模擬的方式驅(qū)動(dòng)液晶顯示模塊。在單片機(jī)電路設(shè)計(jì)中,按照飛利浦給出的接口定義,接出了ICP在電路編程接口,并預(yù)留了JTAG10針在線(xiàn)調(diào)試接口2。ICP在電路編程接口定義如圖2。JTAG接口的定義圖如圖3。圖2 ICP在電路編程接口定義圖3 JTAG在線(xiàn)調(diào)試接口定義 ICP是一種串行編程方式,其通過(guò)一根時(shí)鐘線(xiàn)與一根數(shù)據(jù)線(xiàn)串行傳輸編程指令及數(shù)據(jù)。在開(kāi)發(fā)過(guò)程中,不需將

16、芯片從系統(tǒng)板上取下,即可實(shí)現(xiàn)重新編程。不占用程序存儲(chǔ)空間,不受串口的影響3。電源電路的設(shè)計(jì)由于系統(tǒng)中需要兩種電壓,例如單片機(jī)、串行電平轉(zhuǎn)換芯片、時(shí)鐘芯片鐵電存儲(chǔ)芯片為3.3V供電,而GPS模塊、蜂鳴器和液晶屏幕則用5V供電。所以系統(tǒng)中要設(shè)計(jì)出兩種電壓的輸出。由直流輸入到5V輸出使用SPX3819,而3.3V輸出采用LM1117-33。SPX3819持續(xù)輸出電流可達(dá)500mA,壓降為340mV。由于僅提供固定輸出電壓,無(wú)需外部電壓設(shè)定電阻,因而減少了所需的板空間。而且SPX3819還具有反向電池保護(hù)、反饋電流限制和負(fù)載掉電保護(hù)等功能4。LM1117-33輸出電流可達(dá)800mA,但壓差偏高。當(dāng)輸入

17、輸出的壓差達(dá)到1.2V時(shí)芯片才能正常工作。在本系統(tǒng)中由于是將SPX3819輸出的5V接入其輸入管腳,所以芯片完全可以正常工作5。由于電壓中含有許多高頻干擾源,這些高頻成分很容易經(jīng)過(guò)電源進(jìn)入通信系統(tǒng)中。另外系統(tǒng)自身的發(fā)送頻率也會(huì)經(jīng)過(guò)電源感應(yīng)反饋到通信系統(tǒng)造成干擾。因而可在電源電路中并入多個(gè)不同容值的電容所構(gòu)成的濾波電路來(lái)抑制各種高頻信號(hào)。使系統(tǒng)能夠得到穩(wěn)定可靠且低干擾的電源,保證系統(tǒng)的可靠運(yùn)行6。電源電路如圖4所示。圖4 電源電路3.2.3 GPS模塊電路設(shè)計(jì)GPS模塊采用臺(tái)灣HOLUX公司的GR-85模塊。GR-85模塊采用美國(guó)瑟孚(SiRF)公司所設(shè)計(jì)的第二代低耗電量衛(wèi)星定位接收芯片,是一個(gè)

18、完整的衛(wèi)星定位接收器。其耗電量低,且能同時(shí)追蹤12顆定位衛(wèi)星的訊號(hào),每0.1秒接收一次,每秒更新一次定位,支持NMEA0183 2.2版本規(guī)格輸出。而且支持1PPS秒脈沖的輸出7。GR-85總共有六個(gè)管腳,管腳定義如表1。表1 GR-85管腳定義管腳定義管腳描述1VCC_5V5.5V電源輸入2TXA串行口輸出A3RXA串行口輸入A4RXB串行口輸入B5GND接地61PPS時(shí)間標(biāo)記:1PPS時(shí)間標(biāo)記輸出鐵電外部數(shù)據(jù)存儲(chǔ)模塊設(shè)計(jì)對(duì)于各城市的中英文名稱(chēng)以及時(shí)區(qū)數(shù)據(jù)采用Ramtron公司的FM25CL25632K的數(shù)據(jù)存儲(chǔ)器。FM25CL256是用先進(jìn)的鐵電技術(shù)制造32Kb的非易失性存儲(chǔ)器。鐵電隨機(jī)存

19、儲(chǔ)器(FRAM)具有非易失性,并且可以像RAM一樣快速讀寫(xiě),數(shù)據(jù)在掉電后可以保存10年,相對(duì)于EEPROM或其他非易失性存儲(chǔ)器,F(xiàn)RAM具有系統(tǒng)可靠性更高,結(jié)構(gòu)更簡(jiǎn)單等諸多優(yōu)點(diǎn)。與EEPROM不同,F(xiàn)M25CL256以SPI總線(xiàn)進(jìn)行寫(xiě)操作,操作無(wú)須延時(shí)。當(dāng)數(shù)據(jù)被移入芯片后,寫(xiě)操作僅需幾百納秒,下一個(gè)總線(xiàn)周期可以立刻開(kāi)始而無(wú)須進(jìn)行數(shù)據(jù)輪循。另外,F(xiàn)M25CL256具有比其它非易失性存儲(chǔ)器高得多的讀寫(xiě)操作次數(shù),可以承受超過(guò)100億次的讀寫(xiě)操作8。基于以上選擇了FM25CL256,在實(shí)際讀取應(yīng)用中,每次在調(diào)用片內(nèi)數(shù)據(jù)送去顯示時(shí),根本沒(méi)有讀取延時(shí)。它就像單片機(jī)中的一個(gè)大容量RAM存儲(chǔ)區(qū)。這樣,單片機(jī)中

20、所可以在液晶上顯示的漢字就全部?jī)?chǔ)存在其中。而且它還存儲(chǔ)了默認(rèn)城市數(shù)據(jù)索引的首地址。這樣即使在系統(tǒng)完全掉電的情況下,默認(rèn)的數(shù)據(jù)也不會(huì)丟失,增加了系統(tǒng)的人性化,也賦予了系統(tǒng)更多的創(chuàng)新性。3.2.5時(shí)鐘和鬧鈴模塊的設(shè)計(jì)時(shí)鐘芯片采用了飛利浦公司生產(chǎn)的PCF8563芯片,PCF8563是低功耗的CMOS 實(shí)時(shí)時(shí)鐘/日歷芯片,它提供一個(gè)可編程時(shí)鐘輸出,一個(gè)中斷輸出和掉電檢測(cè)器,所有的地址和數(shù)據(jù)通過(guò)I2C總線(xiàn)接口串行傳遞。最大總線(xiàn)速度為400Kb/s,每次讀寫(xiě)數(shù)據(jù)后,內(nèi)嵌的字地址寄存器會(huì)自動(dòng)產(chǎn)生增量。芯片的I2C總線(xiàn)從地址:讀0A3H;寫(xiě)0A2H。PCF8563有16個(gè)8位寄存器,所有16個(gè)寄存器設(shè)計(jì)成可尋

21、址的8位并行寄存器,前兩個(gè)寄存器(內(nèi)存地址00H,01H)用于控制寄存器和狀態(tài)寄存器,內(nèi)存地址02H08H用于時(shí)鐘計(jì)數(shù)器(秒年計(jì)數(shù)器),地址09H0CH用于報(bào)警寄存器(定義報(bào)警條件),地址0DH控制CLKOUT管腳的輸出頻率,地址0EH和0FH分別用于定時(shí)器控制寄存器和定時(shí)器寄存器。秒、分鐘、小時(shí)、日、月、年、分鐘報(bào)警、小時(shí)報(bào)警、日?qǐng)?bào)警寄存器,編碼格式為BCD,星期和星期報(bào)警寄存器不以BCD格式編碼。當(dāng)一個(gè)RTC寄存器被讀時(shí),所有計(jì)數(shù)器的內(nèi)容被鎖存,因此,在傳送條件下, 可以禁止對(duì)時(shí)鐘/日歷芯片的錯(cuò)讀9。由于單片機(jī)內(nèi)有一個(gè)標(biāo)準(zhǔn)的I2C總線(xiàn)接口,這樣單片機(jī)就可以實(shí)時(shí)讀取I2C接口上的數(shù)據(jù),然后直

22、接送到屏幕顯示。在實(shí)際實(shí)驗(yàn)中,效果非常好。I2C總線(xiàn)接口定義要求在SDA和SCL線(xiàn)上各加一個(gè)上拉電阻,本系統(tǒng)內(nèi)選用電阻阻值為5.1K。在中斷引腳上加入一個(gè)10 K的上拉電阻。并在時(shí)鐘芯片的電源腳接入一個(gè)備用電池,當(dāng)系統(tǒng)通電時(shí),二極管因反向電壓而截止備用電池向時(shí)鐘芯片供電。當(dāng)系統(tǒng)掉電時(shí),二極管導(dǎo)通,由備用電池向時(shí)鐘芯片供電。時(shí)鐘電路圖如圖5。圖5 時(shí)鐘電路電路圖在PCF8563芯片中的第3腳為報(bào)警中斷管腳,當(dāng)一個(gè)或多個(gè)報(bào)警寄存器寫(xiě)入合法的分鐘、小時(shí)、日或星期數(shù)值且這些數(shù)值與當(dāng)前的分鐘、小時(shí)、日或星期數(shù)值相等則該管腳產(chǎn)生低電平中斷。但是只有一個(gè)低電平中斷是不能驅(qū)動(dòng)蜂鳴器發(fā)聲的,還要有一個(gè)讓蜂鳴器發(fā)

23、聲的方波,這可以由單片機(jī)的一個(gè)I/O管腳生成。中斷管腳是低電平有效,方波始終都有。這樣就可以加一個(gè)或非門(mén)讓中斷管腳作方波輸出的開(kāi)關(guān)。在實(shí)際電路中用一片2輸入4與非門(mén)74HC00也可以組成一個(gè)或非門(mén),其邏輯電路圖如圖6。圖6 74HC00組成或非門(mén)邏輯電路圖其運(yùn)算為:真值表如表2。表2 真值表ALARMWAVEOUTPUT001010100110即中斷管腳為高電平時(shí),無(wú)論方波輸出為高電平還是低電平,最后輸出的都是低電平。反之,當(dāng)中斷管腳為低電平時(shí),方波輸出高電平,則總輸出為低電平;方波輸出低電平,則總輸出為高電平。這就實(shí)現(xiàn)了鬧鈴的功能。3.2.6鍵盤(pán)及顯示模塊的設(shè)計(jì)在設(shè)計(jì)方案中,鍵盤(pán)的設(shè)計(jì)是比較

24、特殊的,也是比較有創(chuàng)新性的。它看似和普通的矩陣鍵盤(pán)沒(méi)什么兩樣(鍵盤(pán)電路如圖7),實(shí)際上他用了飛利浦單片機(jī)的一項(xiàng)特殊的功能鍵盤(pán)中斷。鍵盤(pán)中斷功能主要用于當(dāng)P0口等于或不等于特定的模式時(shí)產(chǎn)生一個(gè)中斷。該功能可用于對(duì)鍵盤(pán)的識(shí)別。有3個(gè)特殊功能寄存器用于該功能。鍵盤(pán)中斷屏蔽寄存器(KBMASK)用于定義連接到P0口的使能觸發(fā)中斷的輸入管腳。鍵盤(pán)模式寄存器(KBPATN)用于定義與P0口值相比較的模式。當(dāng)鍵盤(pán)中斷功能有效且條件匹配時(shí),鍵盤(pán)中斷控制寄存器(KBCON)中的鍵盤(pán)中斷標(biāo)志(KBIF)置位。如果通過(guò)置位IEN1寄存器的EKBI位和EA位將中斷使能,則會(huì)產(chǎn)生一個(gè)中斷。鍵盤(pán)中斷控制寄存器(KBCON

25、)中的PATN_SEL位用于比較時(shí)定義等于或不等于10。圖7 鍵盤(pán)電路顯示模塊采用金鵬公司的OCMJ4×8C,該模塊采用ST7920芯片,內(nèi)建中文字庫(kù),支持三種控制接口,分別是8位微處理器接口,4位微處理器接口及串行接口。所有的功能,包含顯示RAM,字型產(chǎn)生器,都包含在一個(gè)芯片里面,只要一個(gè)最小的微處理系統(tǒng),就可以操作模塊11。在本系統(tǒng)中,采用的是串行接口。其引腳與單片機(jī)的連接對(duì)應(yīng)方式如表3。表3 液晶模塊與單片機(jī)的連接方式單片機(jī)液晶模塊功能P5.0RST低電平液晶復(fù)位P5.1RS高電平位數(shù)據(jù);低電平為指令P5.2SID串行數(shù)據(jù)端口P5.3SCLK串行時(shí)鐘端口3.3本章小結(jié)本章詳細(xì)介

26、紹了系統(tǒng)的硬件組成及硬件原理,在硬件設(shè)計(jì)中,比較有特色的設(shè)計(jì)為鬧鈴電子開(kāi)關(guān)的設(shè)計(jì)和鍵盤(pán)的設(shè)計(jì)。其中鍵盤(pán)的設(shè)計(jì)得益于P89LPC900系列單片機(jī)特有的鍵盤(pán)中斷功能。這種功能使得系統(tǒng)的效率以及鍵盤(pán)的識(shí)別效率都大大地提高。4.軟件設(shè)計(jì)4.1軟件系統(tǒng)結(jié)構(gòu)在硬件系統(tǒng)已經(jīng)搭建好的基礎(chǔ)上,就可以參照硬件的連接方式來(lái)編寫(xiě)軟件代碼。首先要確定系統(tǒng)所要實(shí)現(xiàn)的功能和代碼執(zhí)行的方式。系統(tǒng)所要實(shí)現(xiàn)的功能在前文已經(jīng)以提過(guò),不再贅述。代碼執(zhí)行的方式構(gòu)想為:開(kāi)機(jī)畫(huà)面和自檢完畢后,進(jìn)入初始畫(huà)面。初始畫(huà)面為默認(rèn)城市的名稱(chēng)和現(xiàn)在時(shí)鐘。按菜單鍵進(jìn)入系統(tǒng)菜單,系統(tǒng)菜單中實(shí)現(xiàn)四個(gè)功能:(1) 顯示任意城市時(shí)鐘;(2) 手動(dòng)調(diào)整默認(rèn)城市時(shí)

27、鐘;(3) 設(shè)置鬧鈴;(4) 顯示本地經(jīng)緯度。按相應(yīng)數(shù)字鍵進(jìn)入相應(yīng)的功能,一般是按執(zhí)行鍵確認(rèn),按取消鍵返回。按上下鍵確認(rèn)進(jìn)行光標(biāo)移動(dòng)和翻動(dòng)城市。系統(tǒng)大致框圖如圖8。圖8主程序框圖4.2主要算法設(shè)計(jì)4.2.1 GPS報(bào)文接收程序設(shè)計(jì)由于GPS模塊輸出的所有報(bào)文都為ASCII碼,而且每一個(gè)報(bào)文行都以$開(kāi)始,其后緊跟報(bào)文行的關(guān)鍵字,最后以*結(jié)束本行。能確定每一個(gè)報(bào)文行的惟一屬性為報(bào)文行的關(guān)鍵字,所以報(bào)文接收函數(shù)就以判斷報(bào)文行開(kāi)始是否為$GPRMC,如果是則往后直到接收到*字符為止的所有數(shù)據(jù)全部接收,否則拋棄所有接收數(shù)據(jù)。其流程圖為圖9。圖9 GPS報(bào)文接收程序流程圖4.2.2鍵盤(pán)掃描的程序設(shè)計(jì)前文已

28、經(jīng)提到,飛利浦單片機(jī)在P0口上有特殊的鍵盤(pán)中斷,可以大大提高系統(tǒng)的效率以及鍵盤(pán)的識(shí)別效率。在本系統(tǒng)中首先將KBPATN=0xF0,KBMASK=0xF0。然后讓單片機(jī)在P0口不等于0xF0時(shí)產(chǎn)生鍵盤(pán)中斷,只有鍵盤(pán)中斷產(chǎn)生了,才會(huì)執(zhí)行鍵盤(pán)掃描及處理程序。其程序如下:void key_judge(void)P0=0xF0;if(Key_sign) /判斷是否有鍵按下 Key_sign=0; /清除按鍵標(biāo)志位 ReadKey(); Key_Process(); void KEY_INT(void) interrupt 7Key_sign=1; / 按鍵標(biāo)志位置1KBCON=0x00;其中KEY_IN

29、T函數(shù)為鍵盤(pán)中斷處理程序。當(dāng)有鍵按下時(shí),該函數(shù)將按鍵標(biāo)志位置1,然后就跳出中斷函數(shù)。在任何一個(gè)需要使用到鍵盤(pán)的函數(shù)中,都只是不斷地在查詢(xún)按鍵標(biāo)志位是否為1就可以。在key_judge函數(shù)中可以看到進(jìn)入函數(shù)是最基本的只是做兩件事,把P0口付值為0xF0,然后就是查詢(xún)按鍵標(biāo)志位Key_sign是否為1。為零則跳出函數(shù),不去掃描鍵盤(pán)。反之,才去掃描P0口,去取按鍵的鍵值。這樣就大大提高了代碼的效率。假設(shè)普通的鍵盤(pán)掃描程序每執(zhí)行一次為1ms,則在主程序循環(huán)中每循環(huán)1000次左右就能節(jié)省出1s的時(shí)間。這在提高系統(tǒng)的實(shí)時(shí)性和時(shí)鐘的精度是大有好處的。4.2.3菜單的程序設(shè)計(jì)菜單是一個(gè)系統(tǒng)得以實(shí)現(xiàn)多種功能的最

30、基本接口,本系統(tǒng)菜單設(shè)計(jì)的比較簡(jiǎn)潔。由于菜單只有四項(xiàng),一屏4行剛好能顯示得下,所以沒(méi)有設(shè)計(jì)滾屏的效果。在菜單中也使用了查詢(xún)鍵值的方式來(lái)處理。每一個(gè)按鍵都有唯一的鍵值,當(dāng)函數(shù)查詢(xún)到的鍵值與某個(gè)函數(shù)的入口吻合時(shí),就進(jìn)入相應(yīng)的函數(shù)。如果沒(méi)有按鍵按下,則函數(shù)始終在查詢(xún)鍵值,屏幕也將始終在顯示菜單。如果函數(shù)得到取消鍵的鍵值,則跳出函數(shù)返回主函數(shù)。菜單程序的流程圖如圖10。圖10 菜單程序框圖4.2.4設(shè)置默認(rèn)城市的程序設(shè)計(jì)當(dāng)開(kāi)機(jī)自檢時(shí),將從鐵電存儲(chǔ)器內(nèi)讀出默認(rèn)城市的中英文名稱(chēng)和時(shí)區(qū)數(shù)據(jù),并把名稱(chēng)在屏幕的第一二行顯示,而時(shí)區(qū)數(shù)據(jù)則用來(lái)作時(shí)間計(jì)算的參數(shù)。而且時(shí)區(qū)的數(shù)據(jù)是始終存儲(chǔ)于單片機(jī)的RAM區(qū)內(nèi)不變的。只

31、有當(dāng)修改默認(rèn)城市的時(shí)候它才會(huì)變化。開(kāi)機(jī)時(shí)讀取地鐵但存儲(chǔ)器時(shí)首先得到的是默認(rèn)城市各種數(shù)據(jù)在跌電存儲(chǔ)器內(nèi)存儲(chǔ)的首地址,然后再通過(guò)這個(gè)首地址再去讀取這個(gè)首地址后35bytes的數(shù)據(jù)。存到單片機(jī)的內(nèi)存中。這樣做不僅可以使數(shù)據(jù)存儲(chǔ)量達(dá)到最小化,而且可以使設(shè)置好的參數(shù)在系統(tǒng)掉點(diǎn)時(shí)也不會(huì)丟失。使系統(tǒng)更加人性化。在改變默認(rèn)城市時(shí),首先通過(guò)讀取鐵電存儲(chǔ)器改變了單片機(jī)RAM區(qū)中存的城市名及市區(qū)參數(shù),然后就將鐵電存儲(chǔ)器內(nèi)存儲(chǔ)的2bytes首地址數(shù)據(jù)改變。這才完成一次修改。4.3本章小結(jié)本章主要論述了所有程序在系統(tǒng)內(nèi)運(yùn)行的大致流程,給出了流程圖。并將四個(gè)比較有代表性的算法的思想陳述出來(lái)。其實(shí)在這個(gè)程序之中四大菜單所實(shí)

32、現(xiàn)的功能都是比較有代表性的,只是由于函數(shù)比較大,像時(shí)鐘調(diào)整的函數(shù)足有300行。所以在這里不便陳述。但是有一點(diǎn)要必須說(shuō)明的就是,由于P89LPC952只有8Kb的程序存儲(chǔ)區(qū),所以系統(tǒng)內(nèi)存儲(chǔ)的所有程序代碼都是經(jīng)過(guò)仔細(xì)優(yōu)化的。5.PCB設(shè)計(jì)、組裝及調(diào)試5.1 PCB的設(shè)計(jì)5.1.1 PCB設(shè)計(jì)軟件Protel 99se在系統(tǒng)設(shè)計(jì)當(dāng)中硬件電路的設(shè)計(jì)沒(méi)有用萬(wàn)用板搭接,因?yàn)槿f(wàn)用板所有線(xiàn)路的連接幾乎全靠實(shí)際的導(dǎo)線(xiàn),焊接復(fù)雜,可靠性差。而且萬(wàn)用板只適用于DIP封裝的器件,而P89LPC952等器件都為表面貼片封裝,所以在設(shè)計(jì)之初我們就選擇了制作印制電路板。制作印制電路板我們用的是Protel 99se畫(huà)出原理

33、圖,生成PCB。Protel 99se是Protel公司(現(xiàn)已更名為Altium公司)于2000年推出的一款EDA軟件,是Protel家族中性能較為穩(wěn)定的一個(gè)版本。它不僅是以前版本的升級(jí),更是一個(gè)全面集成全32位的電路設(shè)計(jì)系統(tǒng)。Protelc99SE的功能十分強(qiáng)大,集原理圖設(shè)計(jì)、可編程邏輯器件的建立、電路混合信號(hào)仿真、印制電路板(PCB)設(shè)計(jì)與布線(xiàn).、信號(hào)完整性檢查以及設(shè)計(jì)規(guī)則分析等功能于一身,功能非常強(qiáng)大。在印制電路板設(shè)計(jì)中,按照以下步驟,完成了印制電路板的制作。用 Protel 99se畫(huà)出電路連接原理圖,然后給出每一個(gè)器件的封裝,例如P89LPC952的封裝為QFP44-2。對(duì)電路的原理

34、進(jìn)行ERC檢查。用update to PCB功能生成PCB版圖。根據(jù)外殼的大小畫(huà)好機(jī)械層與禁布層的線(xiàn),就是手工將各器件的封裝放到布線(xiàn)區(qū)內(nèi),排好各自的位置。在電路板的手工布局時(shí),盡量按照原理圖的元件排布方式進(jìn)行布局,并在單片機(jī)封裝的周?chē)舫鲎銐虻目臻g。進(jìn)行DRC檢查。設(shè)置好自動(dòng)布線(xiàn)的規(guī)則。在生成PCB時(shí),電源和地的導(dǎo)線(xiàn)應(yīng)大于18mil,普通導(dǎo)線(xiàn)應(yīng)大于12mil。上層導(dǎo)線(xiàn)為橫向,下層導(dǎo)線(xiàn)為縱向。最后自動(dòng)布線(xiàn),手工調(diào)整,制板。5.1.2 PCB工藝SMT在設(shè)計(jì)中,除了時(shí)鐘芯片等極少量器件采用直插封裝外,其余元件全部采用SMT工藝。SMT是無(wú)需對(duì)印制板鉆插裝孔,直接將處式元器件或適合于表面組裝的微型元

35、件器貼、焊到印制或其他基板表面規(guī)定位置上的裝聯(lián)技術(shù)。這種技術(shù)的目的就是使系統(tǒng)更加迷你化12。SMT工藝的優(yōu)勢(shì):(1) 組裝密度高;(2) 可靠性高;(3) 高頻特性好;(4) 降低成本;(5) 便于自動(dòng)化生產(chǎn)。5.2 PCB焊接組裝由于貼裝芯片體積和管腳間距都很小,如果每個(gè)引腳都焊的話(huà),光P89LPC952的44個(gè)管腳就要焊半個(gè)小時(shí)。在焊接芯片時(shí)我使用了一種更為快捷的焊接工藝拖芯片工藝。這種工藝可以提高工作效率和質(zhì)量都在90%以上。下面大略介紹一下這種工藝的步驟:焊接前,先在其中的一個(gè)焊盤(pán)點(diǎn)一點(diǎn)錫,最好在角上,然后把貼片元件沿著PCB平推到焊盤(pán)的位置,注意讓元件的管腳和焊盤(pán)完全吻合,然后用烙鐵

36、點(diǎn)一下剛才點(diǎn)過(guò)焊錫的焊盤(pán)和管腳,把它們焊接在一起。這時(shí)芯片已經(jīng)定位穩(wěn)了,小心把對(duì)角的管腳也焊上,芯片就固定住了。這時(shí),采用堆焊錫的辦法,把錫熔解后全堆到管腳上,使它們?nèi)颗c焊盤(pán)管腳浸潤(rùn),當(dāng)然管腳間都短路了,不過(guò)不要緊,接下來(lái)是第三步。拿起PCB板,略微傾斜,用烙鐵熔解管腳上的焊錫,然后沿著管腳的方向移動(dòng),把錫“帶走”,管腳間就出現(xiàn)了整齊的空隙,過(guò)量的焊錫在重力的作用下會(huì)和焊盤(pán)脫離。最后3個(gè)管腳可能會(huì)粘連,這時(shí)用吸錫器或用帶松香的引線(xiàn)把多余的錫帶走。按以上步驟重復(fù)操作,可以很快焊接完畢。這種拖芯片的工藝在南方的工廠里應(yīng)用非常廣泛,在北方比較少見(jiàn)。這種工藝不需要特殊的助焊劑,而且有芯片管腳越多越省

37、時(shí)的優(yōu)點(diǎn)。完全可以取代大型的貼片機(jī)。5.3電路的調(diào)試在PCB連接的調(diào)試過(guò)程中采用了軟硬結(jié)合的方法。在調(diào)整每一個(gè)模塊時(shí),首先用萬(wàn)用表測(cè)試其電路的連通性。測(cè)試連通行為100%。然后編一段基本的驅(qū)動(dòng)程序,讓系統(tǒng)加電運(yùn)行??词欠裼邢鄳?yīng)的效果。在沒(méi)有仿真器的系統(tǒng)中,器件的調(diào)試都為盲調(diào)。看不到程序每一步運(yùn)行的效果。所以首先要測(cè)試液晶顯示的效果。當(dāng)顯示正常后,其他模塊的調(diào)試都要依賴(lài)液晶模塊的顯示。在調(diào)試時(shí),還遵循了分塊調(diào)整的原則。一塊調(diào)好了再調(diào)下一塊。這樣萬(wàn)一遇到了不正常之處,其錯(cuò)誤查找的范圍就可以降到最低限。5.4本章小結(jié)PCB的SMT工藝是現(xiàn)在最先進(jìn)也是最流行工藝,如果沒(méi)有借助這種工藝按系統(tǒng)的器件量是不

38、可能放入這么精巧的一個(gè)機(jī)殼中的。而拖芯片的方法大大縮短了焊接用時(shí),電路板的焊接只用了三四個(gè)小時(shí)。而這種嚴(yán)格的調(diào)試原則使整個(gè)系統(tǒng)在最短的時(shí)間里就可以完成最基本的功能。結(jié)論經(jīng)過(guò)對(duì)軟、硬件的設(shè)計(jì)及實(shí)現(xiàn),最后所完成的基于單片機(jī)的GPS高精度授時(shí)時(shí)鐘在運(yùn)行過(guò)程中性能良好。系統(tǒng)可以實(shí)現(xiàn)準(zhǔn)確接收GPS報(bào)文,并對(duì)時(shí)間信息進(jìn)行運(yùn)算處理,在整10秒時(shí)刻為系統(tǒng)內(nèi)運(yùn)行的I2C時(shí)鐘授時(shí)。單片機(jī)將讀出的時(shí)間數(shù)據(jù)與讀出的城市數(shù)據(jù)整合,送LCM顯示。具有菜單功能,菜單共四項(xiàng)。實(shí)現(xiàn)了顯示任意城市時(shí)鐘、設(shè)任意城市時(shí)鐘為默認(rèn)、在GPS未接收到準(zhǔn)確數(shù)據(jù)時(shí)手動(dòng)調(diào)整默認(rèn)城市時(shí)鐘、鬧鐘調(diào)整和顯示本地經(jīng)緯度等功能。本設(shè)計(jì)所完成的授時(shí)時(shí)鐘具有

39、設(shè)計(jì)成體積小、重量輕、運(yùn)行穩(wěn)定等優(yōu)點(diǎn)。本設(shè)計(jì)的應(yīng)用范圍比較廣泛,在各個(gè)對(duì)時(shí)間精度要求高或?qū)r(shí)間同步性要求高的有所需求的行業(yè)使用。參考文獻(xiàn)1胡勇,丁萬(wàn)山多串口擴(kuò)展解決方案J計(jì)算機(jī)應(yīng)用2005(5):63-642張雅娟,戴勝華JTAG基本原理及仿真器性能比較J單片機(jī)與嵌入式系統(tǒng)應(yīng)用2007(5):18-203譚思云,周 仲P89LPC935單片機(jī)在串口通信和ICP編程上的應(yīng)用J微計(jì)算機(jī)信息2005,21(7) :66-684Sipex CorporationSPX3819 data sheetOLUSA,20045CYStek CorporationLM1117 data sheetOLTaiwa

40、n,20056朱樹(shù)紅,夏羅生數(shù)控系統(tǒng)電源部分抗干擾分析與研究J機(jī)床電器2007(1):26-27,317Holux CorporationGR-85 GPS Engine Board Users GuideOLTaiwan,20048Mike AlwaisFRAM_單芯片全能存儲(chǔ)技術(shù)J電子設(shè)計(jì)應(yīng)用2007(5):170,1309陳承貴多功能時(shí)鐘/芯片PCF8563及應(yīng)用J科技經(jīng)濟(jì)市場(chǎng)2006(1):43-4410周立功等LPC900系列Flash 單片機(jī)應(yīng)用技術(shù)(上冊(cè))M北京:北京航空航天大學(xué)出版社,200411金鵬電子有限公司C系列中文液晶顯示模塊使用說(shuō)明書(shū)OL肇慶,200412袁康敏SMT

41、生產(chǎn)過(guò)程中有關(guān)問(wèn)題的探討J電子工藝技術(shù)2006,27(1):41-43致謝附錄1 系統(tǒng)原理圖附錄2 主要源代碼/*主程序*/void main(void)uint addl,addh;uchar alarm_a1;char I2C_temp7;KBPATN=0xF0;KBMASK=0xF0; KBCON=0x00;IO_Init();IP0=0;IP0H=0x14;IP1=0x02;IP1H=0x02;IP2=0x0c;IP2H=0x0c; ISP_Init();TCON=0x04;EX1=1;EKBI=1; EI2C=1;sendRQ=0;EA=1; P5=P5|0x03;Init_LCM(

42、);Send_CMD(0x01);addl=(int)(Read_Word(0x1CFD);addh=(int)(Read_Word(0x1CFE);addh<<=8;add_in=addl|addh;city_data=Read_Word(add_in+32);city_offset=Read_Word(add_in+34); while(1) beep=0; if(GPS_Data60='*') I2C_temp0=ASC2H(GPS_Data12,GPS_Data13);I2C_temp1=ASC2H(GPS_Data10,GPS_Data11);I2C_te

43、mp2=ASC2H(GPS_Data8,GPS_Data9);I2C_temp3=ASC2H(GPS_Data52,GPS_Data53);I2C_temp5=ASC2H(GPS_Data54,GPS_Data55);I2C_temp6=ASC2H(GPS_Data56,GPS_Data57);if(city_offset=1) I2C_temp2=I2C_temp2+8+city_data; else I2C_temp2=I2C_temp2+8-city_data; dis_enable=0; City_Time_Compute(I2C_temp); if(GPS_Data19='A

44、'&&GPS_Data13='0'&&int_sign) int_sign=0;city_data=Read_Word(add_in+32); city_offset=Read_Word(add_in+34);EI2C=1;do wture=ISendStr(0xa2,0x02,I2C_time,7); while(!wture);EI2C=0;Delay(500);key_judge(); if(key_value=14)menu_enable=1; while(menu_enable) key_judge(); file_main()

45、;Send_CMD(off_cursor); if (sendRQ)signs=1;sendtoPC(GPS_Data);sendRQ=0; if(key_value<10) key_value=18;alarm_a0=0x00;EI2C=1;do wture=ISendStr(0xa2,0x01,alarm_a,1); while(!wture);EI2C=0; EI2C=1; do rture=IRcvStr(0xa2,0x02,I2C_time,7); while(!rture); EI2C=0; LCD_I2C_time(); beep=1; /*UART中斷*/void uar

46、t_int(void) interrupt 4 RI_0=0;switch(GPS_Data_Point)case 0:if(S0BUF='$')GPS_DataGPS_Data_Point=S0BUF;GPS_Data_Point=1;elseGPS_Data_Point=0;break;case 1:if(S0BUF='G')GPS_DataGPS_Data_Point=S0BUF;GPS_Data_Point=2;elseGPS_Data_Point=0;break;case 2:if(S0BUF='P')GPS_DataGPS_Data_

47、Point=S0BUF;GPS_Data_Point=3;elseGPS_Data_Point=0;break;case 3:if(S0BUF='R')GPS_DataGPS_Data_Point=S0BUF;GPS_Data_Point=4;elseGPS_Data_Point=0;break;case 4:if(S0BUF='M')GPS_DataGPS_Data_Point=S0BUF;GPS_Data_Point=5;elseGPS_Data_Point=0;break;case 5:if(S0BUF='C')GPS_DataGPS_Da

48、ta_Point=S0BUF;GPS_Data_Point=6;elseGPS_Data_Point=0;break;default :if(GPS_Data_Point>=6)if(S0BUF!='*') GPS_Data_Point=GPS_Data_Point+1;GPS_DataGPS_Data_Point=S0BUF;elseGPS_Data_Point=GPS_Data_Point+1;GPS_DataGPS_Data_Point=S0BUF;/*手動(dòng)時(shí)鐘調(diào)整*/void hand_time_adjust(void)/*任意城市時(shí)鐘*/void any_cit

49、y_time(void)int addl,addh,add_in_temp;uchar j,city_data_temp,city_offset_temp,city_n16;char time_temp7;bit read_enable=0;add_in_temp=add_in;city_data_temp=city_data;city_offset_temp=city_offset;Send_CMD(0x01);Delay(50);FM25CL256_Read(add_in+16,16,city_n);Send_CMD(DDRAM_0);for(j=0;j<16;j+) Send_DA

50、T(city_nj);FM25CL256_Read(add_in,16,city_n);Send_CMD(DDRAM_1);for(j=0;j<16;j+) Send_DAT(city_nj);EI2C=1;dorture=IRcvStr(0xa2,0x02,I2C_time,7); while(!rture);EI2C=0;right_time();dis_time();key_value=18;while(city_enable) key_judge(); if(key_value=12) key_value=18;add_in_temp+=35;read_enable=1;if(a

51、dd_in_temp>7385) add_in_temp=0; if(key_value=16) key_value=18;add_in_temp-=35;read_enable=1;if(add_in_temp<0) add_in_temp=7385; if(key_value=13) key_value=18;I2C_time0=ASC2BCD(sec_H,sec_L);I2C_time1=ASC2BCD(min_H,min_L);I2C_time2=ASC2BCD(hour_H,hour_L);I2C_time3=ASC2BCD(date_H,date_L);I2C_time

52、5=ASC2BCD(mon_H,mon_L);I2C_time6=ASC2BCD(year_H,year_L);add_in=add_in_temp;city_data_temp=Read_Word(add_in+32); city_offset_temp=Read_Word(add_in+34);city_offset=city_offset_temp;city_data=city_data_temp;addl=(uchar)(add_in&0x00ff);addh=(uchar)(add_in>>8);Write_Word(0x1cfd,addl);Write_Word(0x1cfd+1,addh);EI2C=1;do wture=ISendStr(0xa2,0x02,I2C_time,7); while(!wture);EI2C=0; if(key_value=18) if(read_enable=1) read_enable=0; city_data_temp=Read_Word(add_in_temp+32)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論