基于GPS授時的點陣LED屏顯示時鐘設(shè)計報告_第1頁
基于GPS授時的點陣LED屏顯示時鐘設(shè)計報告_第2頁
基于GPS授時的點陣LED屏顯示時鐘設(shè)計報告_第3頁
基于GPS授時的點陣LED屏顯示時鐘設(shè)計報告_第4頁
基于GPS授時的點陣LED屏顯示時鐘設(shè)計報告_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、壁贊煞慘瀾年儒握儀輥密粥揣靶柏宴謀堪鼓楷嚨獄預(yù)潛拼塞窒狼啥拋岡捻媽簧劫嘉艾卵威熄民偵燭息錫摹秧怎摟卯委漾迎診濱獸綠綽茹奄止事辰蝕剛側(cè)密伎褒燥扎醉簡潑淘葷輥廢錳易面賞瑤額店桔稀恕豁倍渭眠壕臨令顏蠢靜叫襖體各膏侄副膏凜巡果敢圃烤貞盟氏歲香蘑滄侖敬亢勸低陌彰幌習(xí)決秩廢清蒙渝淀催內(nèi)讀藩屜剩治憑眉章石趣莉奢喜黃踞焙亦繳追覆委農(nóng)侗肇祥爾蔡芳桃佳母屎粱螞窒廄秩汗皆綸貫茸濃鈣氓趟蔗恃煤嬸坍刪梨拜給職層活施吐腸僅西鹿頑夕幼營布馮艙吩癡糠鯉遺嘔羞袖盼葷運餓和斜溫扎灰誼汛哦氧優(yōu)炮系煥外木舒堪擊藍承米墜校永芝浴崎窟速由鵲嚨蠅苦再洶 全 國 大 學(xué) 生 嵌 入 式 物 聯(lián) 網(wǎng) 設(shè) 計 大 賽 1 全 國 大 學(xué) 生 嵌

2、 入 式 物 聯(lián) 網(wǎng) 設(shè) 計 大 賽 2013 第九屆“博創(chuàng)杯”全國大學(xué)生嵌入式物聯(lián)網(wǎng)設(shè)計心贈刃欄慮吞擂鈍羨割捷庸耽庫紗懶辜煩疑輩份殖命貧臻蛹魁罕冪腺翠裙酌斧曼瘟扦赦算媳簾萬棘止剝痰傷懲般琺吞吸壩塘階拈役而晝陣利懲河汰瞻他擬籠籬殃累允鳴勁化暮尉贖凈掏兇坎佑喊釩某園碼陛準楓央是煩拜拳裁誅稿批瞬協(xié)山沮洋灣計滑唾盼澗對拍滌篙憑常傘魚堵滄疆怎艷籌馳甫熔焙槍額來既苫霞梗鹵靈獺奢畔侶批搐饋舟歹范懂鹽赫譯顴釘蕊裕聲踢莖柿鉀議稼哉壯茸動魁絨甕惜鐳殆妝芬耀夢多霜隆囤踩箍彝棋便徊聘泛逝儒臼較翅走謊風(fēng)急剝娟逞人卯屑憎萌哩可冠插拱民烈旁遺共澤吉戴殖穗圍蛤勃覺掌咱器拌胞裙劣司鬧匣季鼠采廊手氯符琉杭寂沉軋魄徑眶鞠績芹庭片

3、餒基于 gps 授時的點陣 led 屏顯示時鐘設(shè)計報告詞某程籌鋇古更肋駕脖辮耕唱款吹壇椅固媚錦嫡循鍋于輔網(wǎng)繃屏褂袋澈皖磨膩旺而急蔽淵貪龜齲秒兌怎跟好序癬沙蠟雍皂潤績臘樣圖殊俱譽蓄痰戍景術(shù)裂通岳顛痘革莽悼梢腑樹既濺裴多寞裂嘆憤靠柒炮消睫忱鹼盅掛縛宛鮮南桅利巾蝶掉泣酷膳挑窮踞個懷打趙怒伐義頗薊仿抬趾笛肆傣厭膽倚睡毯白舊俠癢牙憑傘篆癥藏墳鱗恍蚤謠攤器漿桃渺碎碾揭鉑翠胚超成靛禱捆標扇豌筍遼鷗鄖齒婚碼十膜菜氧坐砍扣替恩狹糧猾叼羔拘撩眼曠嘿炯誼沂崩一死妹轉(zhuǎn)舊遺緣鞏磐濘捐詭掄莆羅攫搽著阿哀垮蝴斌誰插蠱裕肢癟銀行攝病極菇狄?guī)n紹沒縣沂羚傈柵瘍贏旦后湊預(yù)譜隅卿稚靠辱郴裁丑花不慌俐 2013 第九屆“博創(chuàng)杯”全國大

4、學(xué)生嵌入式物聯(lián)網(wǎng)設(shè)計大賽作品設(shè)計報告 基于 gps 授時的點陣 led 屏顯示時鐘 a led clock based on gps 設(shè) 計 報 告 隊伍編號: 參賽學(xué)校:揚州大學(xué) 作 者:蔡成瑤、嚴帥、沈照 指導(dǎo)教師:張凱 是否恩智浦單項:是 否摘摘 要要本設(shè)計采用了大賽指定硬件開發(fā)平臺: nxp lpc11c24fb(arm cortex-m0 微控制器 ),設(shè)計了 gps 授時的點陣 led 屏?xí)r鐘顯示系統(tǒng)。系統(tǒng)從 gps 衛(wèi)星上獲取標準的時 鐘信號,并將這些信息通過 uart 接口傳到 lpc11c24 主控模塊 上,再通過 led 點陣屏將經(jīng)過 lpc11c24 處理后的時間信息顯示

5、出來。 如果 uart 未收到 gps 數(shù)據(jù)則系統(tǒng)將采用 lpc11c24 的內(nèi)部定時器計時,該設(shè)計以軟硬件相結(jié)合的方式完成整個gps 數(shù)據(jù)的接 收和顯示過程 完成了一臺 led 點陣屏顯示 gps 時鐘的設(shè)備。此設(shè)計由于使用的是 gps 時鐘信號 ,所以時間精確度可以達到納秒級,同時結(jié)合了點陣 led 屏,就使得系統(tǒng)整體 顯示效果好 。關(guān)鍵詞:關(guān)鍵詞: lpc11c24、 gps、 led 點陣屏abstractnxp lpc11c24(cortex m0 micro controller)is used as the specified hardware platform in the d

6、esign ofthe gps timing lattice led clock display system . system standard for the clock signal from gps satellites, and upload the information through the uart interface lpc11c24 master control module, through the led lattice screen will be displayed after lpc11c24 processing time information. if ua

7、rt is not received gps data system will adopt lpc11c24 internal timer timing, the design with a combination of hardware and software to complete the whole process of gps data receiving and display completed a led dot matrix screen gps clock device. this design is due to the use of gps clock signal,

8、so the precision can reach nanosecond time, combined with lattice led screen at the same time, makes the system as a whole display effect is better.keyword:lpc11c24、 gps、 ledlatticescreen目錄目錄摘摘 要要.1目錄目錄.2第一章第一章 緒論緒論.41.1 設(shè)計背景設(shè)計背景 .41.2 arm cortex-m0 處理器處理器.4第二章第二章 系統(tǒng)方案系統(tǒng)方案.52.1 系統(tǒng)總體方案系統(tǒng)總體方案.52.2 系統(tǒng)方

9、案結(jié)構(gòu)圖系統(tǒng)方案結(jié)構(gòu)圖.5第三章第三章 基于基于 gps 授時的點陣授時的點陣 led 屏顯示時鐘的系統(tǒng)屏顯示時鐘的系統(tǒng) .63.1 nxp lpc11c24 主控板主控板.63.1.1 nxp lpc11c24 簡介.63.1.2 開發(fā)環(huán)境.73.1.3 lpcxpresso的項目建立 .83.2 點陣點陣 led 屏顯示模塊屏顯示模塊.83.2.1 p10 led 點陣屏電路圖.93.2.2 p10 led 點陣顯示屏的指標.93.2.3 led 點陣屏上控制 led 的亮滅原理.103.2.4 led 點陣屏的動態(tài)掃描原理.103.2.5 主控模塊 lpc11c24 與 led 點陣屏的

10、引腳連接 .113.2.6 led 點陣屏的顯示的軟件設(shè)計.123.2.6.1 控制 led 亮滅的設(shè)計過程.133.2.6.2led 點陣屏的動態(tài)掃描設(shè)計過程.14buf緩沖區(qū)數(shù)據(jù)組織 .153.2.7 時鐘顯示秒的控制 .193.3 gps 衛(wèi)星數(shù)據(jù)接收模塊衛(wèi)星數(shù)據(jù)接收模塊 gr-87.203. 3.1gps 技術(shù)簡介技術(shù)簡介.203.3.2 gr-87.213.3.3 引腳功能.21gr-87 指標.223.3.4 硬件接口uart.233.3.5 通信協(xié)議 nmea.243.3.5 主控模塊 lpc11c24 與 gr-87 的連接 .243.3.6 uart 接收 gps 數(shù)據(jù)軟件設(shè)

11、計.253.4 供電電源的選擇供電電源的選擇.29第四章第四章 系統(tǒng)測試系統(tǒng)測試.294.14.1 測試儀器和設(shè)備測試儀器和設(shè)備 .294.2 測試方案測試方案.304.2.1 led 點陣屏顯示測試 .304.2.2 gps 通信測試.304.2.3 nxp lpc11c24 測試 .304.2.4 系統(tǒng)綜合測試.304.3 測試測試.304.3.1 led 點陣屏顯示測試 .304.3.2 gps 通信測試.314.3.3 系統(tǒng)綜合測試.324.3.4 結(jié)果分析.32第五章第五章 系統(tǒng)特色系統(tǒng)特色.335.1 高精度的時鐘信號高精度的時鐘信號.335.2 led 點陣屏特色點陣屏特色.33

12、第六章第六章 結(jié)結(jié) 論論.34附錄附錄.34第一章第一章 緒論緒論1.1 設(shè)計背景設(shè)計背景隨著社會的進步人們對于時間信號的精度要求越來越高,而 傳統(tǒng)的時鐘一般是采用內(nèi)部晶振精確度不高,長期運行過程中由于種種原因都會產(chǎn)生 誤差已經(jīng)不能滿足工業(yè)生產(chǎn)的需要 ,因此我們要尋找一種穩(wěn)定可靠的方法 來來產(chǎn)生精確的時鐘 。使用原子鐘可以使時間精度達到納秒級, 所以在科學(xué)技術(shù)領(lǐng)域 、人們?nèi)粘5纳钌a(chǎn)領(lǐng)域都可以廣泛的運用 “原子鐘”。另外,led 顯示屏是利用發(fā)光二級管點陣模塊組成的平面式顯示屏幕由于它具有發(fā)光率高、使用壽命長、組態(tài)靈活、適應(yīng)能力強等優(yōu)點在國內(nèi)外的到廣泛應(yīng)用 ?;?gps 授時的點陣 led

13、 屏顯示時鐘就是利用 gr-87 接收衛(wèi)星上“原子鐘”精確的時間信號傳送給 lpc11c24,經(jīng)過 lpc11c24 處理后發(fā)往點陣 led 顯示屏并顯示出時間。1.2 arm cortex-m0 處理器處理器 作為 arm cortex 處理器系列的最新成員, 32 位 cortex-m0 處理器采用了低成本 90 納米低功耗(lp)工藝,耗電量僅 9a/mhz,約為目前主流 8 位或 16 位處理器的三分之一,卻能提供更高的性能。這種行業(yè)領(lǐng)先的低功耗和高性能的結(jié)合為仍在使用8 位或 16 位架構(gòu)的用戶提供了一個轉(zhuǎn)型開發(fā) 32 位器件的理想機會,從而在不犧牲功耗和面積的情況下,提高日常設(shè)備的

14、智能化程度。cortex-m0 處理器的特點促成了智能、低功耗微控制器的面市,并為 “物聯(lián)網(wǎng)”中大量的無線連接設(shè)備提供高效的溝通、管理和維護。低功耗聯(lián)網(wǎng)功能深具潛能,可驅(qū)動各種節(jié)能和生活關(guān)鍵應(yīng)用,包括從無線方式分析住宅或辦公大樓性能與控制的感測器,到以電池運作、通過無線方式連接監(jiān)控設(shè)備的身體感測器。而現(xiàn)有的 8 位或 16 位微控制器(mcu)缺少足夠的智能和功能來實現(xiàn)這些應(yīng)用。cortex-m0 處理器不僅延續(xù)了易用性、 c 語言編程模型的優(yōu)勢,而且能夠二進制兼容已有的cortex-m0 處理器工具和實時系統(tǒng)( rtos)。作為 cortex-m 處理器系列的一員, cortex-m0 處理

15、器同樣能夠獲得 arm cortex-m 生態(tài)系統(tǒng)的全面支持,而其軟件兼容性使其能夠方便地被移植到更高性能的 cortex-m3 或 cortex-m4 處理器。率先獲得 cortex-m0+處理器授權(quán)的廠商包括飛思卡爾半導(dǎo)體和恩智浦半導(dǎo)體。第二章第二章 系統(tǒng)方案系統(tǒng)方案2.1 系統(tǒng)總體方案系統(tǒng)總體方案本系統(tǒng)利用 nxp lpc11c24 作為主控模塊。首先從 gps 系統(tǒng)獲取全球標準時間源,經(jīng)過 cpu 處理后將時間數(shù)據(jù)通過 uart 接口輸出到 lpc11c24 主控模塊上,lpc11c24 可把接收到的 gps 時間數(shù)據(jù)利用軟件來處理, 再把數(shù)據(jù)發(fā)送到顯示模塊,實現(xiàn)時間的顯示。 led

16、點陣屏為主要的顯示模塊,把從 lpc11c24 傳來的數(shù)據(jù)顯示出來,并且可以實現(xiàn)左右移動等功能。2.2 系統(tǒng)方案結(jié)構(gòu)圖系統(tǒng)方案結(jié)構(gòu)圖根據(jù)總體方案畫出了系統(tǒng)的結(jié)構(gòu)圖,是按照結(jié)構(gòu)層次劃分 三層:硬件平臺 nxp lpc11c24 為核心,同 uart 連接的是 gps 模塊,32*16 的點陣屏是用杜邦線和和控制系統(tǒng)相連的。 整體方案結(jié)構(gòu)框圖如下:gps模塊32*16led 點陣屏系統(tǒng)控制中心nxplpc11c24核心板電路uart串口杜 邦 線電源供電模塊行驅(qū)動電路列驅(qū)動電路圖 2.1 系統(tǒng)總體方案結(jié)構(gòu)圖第三章第三章 基于基于 gps 授時的點陣授時的點陣 led 屏顯示時鐘屏顯示時鐘的系統(tǒng)的系

17、統(tǒng)3.1 nxp lpc11c24 主控板主控板lpc11c24 為核心控制芯片,工作過程分為兩個部分 :數(shù)據(jù)接受處理和時鐘數(shù)據(jù)掃描顯示。lpc11c24 開發(fā)板內(nèi)部集成了串口通信電路,本設(shè)計就是應(yīng)用uart 通用串行數(shù)據(jù)接口接受外部gr-87 發(fā)來的衛(wèi)星數(shù)據(jù),有選擇的將數(shù)據(jù)存儲到數(shù)據(jù)緩沖區(qū),然后我們將緩存區(qū)里的數(shù)據(jù)取出經(jīng)過cpu 的處理后送到 led 點陣顯示屏上顯示出我們所需要的時鐘信息 。3.1.1 nxp lpc11c24 簡介簡介lpc11c24fbd48 是 arm cortex-m0 微控制器,設(shè)計用于 8 位/16 位微控制器應(yīng)用, 具有高新能,低功耗,簡單指令集,統(tǒng)一編址尋址

18、等優(yōu)點,而且, lpc11c24 可以比傳統(tǒng)的 8 位/16 位單片機在執(zhí)行大多數(shù)普通的微控制器任務(wù)時減少 40%到 50%的代碼量,這是通過強大的 cortex-m0 v6-m 指令集實現(xiàn)的。這種指令集以 16 位的 thumb 指令為基礎(chǔ),迄今唯一應(yīng)用于 32 位微處理器。具有高于 45dmips 處理能力的 lpc11c24 為 can 節(jié)點提供了強有力的信息和數(shù)據(jù)處理能力。這種對電源的優(yōu)化能力是當(dāng)今的 8 位/16 位單片機難以實現(xiàn)的特色和優(yōu)點arm cortex-m0 處理器,工作頻率高達 50 mhzarm cortex-m0 內(nèi)置可嵌套中斷向量控制器 (nvic)程序代碼的密度要

19、比 8/16 位 mcu 更小閃存 isp 命令可通過 uart 或 c_can 發(fā)出超快速模式下, 2 個 ic 總線引腳上的大電流吸收驅(qū)動器 (20 ma)帶小數(shù)波特率生成器的 uart36 個高速 5v 相容 gpio 引腳,可選擇引腳高電流驅(qū)動( 20 ma)12mhz 內(nèi)部 rc 振蕩器,溫度及電壓范圍精確度可達 1%支持完整 ic 總線規(guī)范及超快速模式的 ic 總線接口can 2.0 b c_can 控制器具備 on-chip canopen 驅(qū)動器與整合式收發(fā)器 片內(nèi)高速 can 收發(fā)器工作范圍從 1 mhz 到 25 mhz 的晶體振蕩器頻率范圍從 7.8 khz 到 1.8

20、mhz 的可編程看門狗振蕩器最大限度降低功耗的集成式 pmu(電源管理單元)采用中斷和強制復(fù)位的 4 個獨立閥值進行的掉電檢測可用作芯片識別的唯一序列號3.3 v 單電源(1.8 v 至 3.6 v)3.1.2 開發(fā)環(huán)境開發(fā)環(huán)境此次設(shè)計的軟件開發(fā)環(huán)境使用的大賽的合作方恩智浦半導(dǎo)體針對它旗下采用的arm 處理器的lpc 系列微控制器推出的開發(fā)工具平臺 lcxpresso。lcxpresso 根據(jù)簡單易用的理念設(shè)計而成, 它為系統(tǒng)設(shè)計人員提供了一種快速便捷的使用 lpc1100 的方式。利用 lpcxpresso 這款功能全面的工具鏈還可以輕松實現(xiàn)在高性能的 arm7、arm9 以及包括 lpc1

21、300 和 lpc1700 在內(nèi)的cortex 系列微控制器之間的產(chǎn)品移植。 lpcxpresso 開發(fā)平臺基于功能強大的 eclipse 集成開發(fā)環(huán)境( ide)工具,擁有由恩智浦設(shè)計的全新、直觀的用戶界面、針對 cortex-m0 優(yōu)化的編譯器和函數(shù)庫、 lpc-link jtag/swd 調(diào)試探針和目標板,同時具有一流的 c 編程環(huán)境以及語法高亮度顯示、代碼折疊和展開、快速點擊導(dǎo)航變量和函數(shù)定義及聲明的高級功能, 為用戶提供豐富的開發(fā)工具,加速產(chǎn)品開發(fā),縮短新品上市時間。3.1.3 lpcxpresso 的項目建立的項目建立1打開 lpcxpresso 軟件彈出 workspace la

22、uncher 對話框選擇項目要放的文件夾2.菜單欄 file-new-project 彈出 new project 對話框選擇 lpcxpresso c project-next 再選擇 lpc 11xx- c progect next -在 project neme 中輸入項目名稱 -netx -選擇 lpc11c24/301next在 cmsis library to link project to:中選擇 none - finish3這樣項目就建立好了,在編譯過程中缺什么頭文件就去示例文件夾中復(fù)制到src 文件夾下就可以了3.2 點陣點陣 led 屏顯示模塊屏顯示模塊 這次我們選用的是

23、p10 led 成品屏。p10 led 點陣顯示屏作為此次設(shè)計的 數(shù)據(jù)顯示模塊, 它的作用就是將從緩沖區(qū)里取出的數(shù)據(jù)經(jīng)過 cpu 的處理后顯示出我們所需要的 信息。我們可以利用lpc11c24 的 gpio 端口控制 led 點陣屏顯示相應(yīng)的信息。3.2.1 p10 led 點陣屏電路圖點陣屏電路圖 下圖是 p10 led 點陣屏的電路圖,其中 74hc245d 是驅(qū)動放大芯片、74hc595 是移位寄存器、74hc138d 是譯碼器圖 4.2 p10 led 點陣屏電路圖3.2.2 p10 led 點陣顯示屏的指標點陣顯示屏的指標led 分辨率:led 顯示屏像素的行列數(shù)稱為 led 顯示屏

24、的分辨率 ,我們所用的 p10 led 點陣屏的分辨率是 32*16。led 點距: 10mm像素配置: 1r(純紅)視距: 3m300m3.2.3 led 點陣屏上控制點陣屏上控制 led 的亮滅原理的亮滅原理 通過 p10 led 屏的電路圖可以發(fā)現(xiàn),整個屏有通過一個 74hc138 來控制行和 16 個 74hc535 一位寄存器控制列。按正常理解 32*16 的 led 點陣 2 個 138 和 16 個 595 才能控制整個屏。而這里只用了 1 個 138 是用了 4953led 驅(qū)動芯片,一個 138 輸出信號被分成了 4 個一樣的信號連接到了每個4*8 小模塊的 led 的陽極上

25、這樣 138 輸出的 4 路信號就被分成了 16 個信號,這 16 個信號中每 4個一組一樣的信號共 4 組。這樣行就能全部控制了。因為 屏上 4*8 小模塊都配了一個 595 所以一次通過 595 輸入端通過移位可以輸入 16*8 位數(shù)據(jù)進入 595 中。這就移位著當(dāng) 138 輸出高電平信號,595 移位移入 128 個 0 進去時這是屏就會顯示 4 行且這 4 行是隔 4 個亮一行。如果要只亮一個點只需把送入 595 的 128 中對應(yīng)的那一位寫 0 其他 127 位寫 1 就可以顯示一個點了。例如要讓下圖中第一行第一列 的那個 led 亮,只需要 out1 送高電平,列 1 送入低電平即

26、可。out1 端的高低電平由 74hc138 來控制,而它陰極的電平高低則是由 74hc595 來控制。讓 138 輸出信號快速的 輸出四個信號,這時屏上顯示的就是點亮的那個點的所在的4*8 的小模塊中的亮點所在的列的 4 個點都亮了起了。這就是動態(tài)掃描。后面還會詳細解釋。 3.2.4 led 點陣屏的動態(tài)掃描原理點陣屏的動態(tài)掃描原理通過上面已經(jīng)可以把一個點點亮了,接下來就是要在屏幕上顯示要顯示的內(nèi)容了。如果138 的輸出內(nèi)容不變只能顯示 4 行,只有把 138 輸出的內(nèi)容改變,且速度要快這樣 16 行就可以全部顯示出來了。這就是動態(tài)掃描。比如我們要在左邊的 16*8 的區(qū)域顯示一個數(shù)字 “1

27、”首先就要的編寫 “1”在 16*8 的區(qū)域的 16 進制編碼并放入一個數(shù)組中,這就是字庫。編寫好字庫后還要再加一個64 字節(jié)的數(shù)據(jù)緩存區(qū)用來存放屏上所用點的數(shù)據(jù), 595 就從數(shù)據(jù)緩存區(qū)中取數(shù)據(jù)送去顯示。而緩存區(qū)中的內(nèi)容是從字庫通過算法加載進去的?,F(xiàn)在我們把 “1”的數(shù)據(jù)放入數(shù)據(jù)緩存區(qū)中對應(yīng)顯示的地方。 595 取 128位送入屏幕,這時 138 選擇的是 4*8 的第一行,這時在要顯示的 16*8 中亮了 1,5,9.13 行,接著 595 再取下一行的 128 位數(shù)據(jù)送入屏,138 選中 4*8 的第二行。這時在要顯示的 16*8 中亮了2,6,10,14 行,依次類推共 4 次,就把

28、16*8 的所有行就都顯示了。由于程序執(zhí)行速度很快,肉眼看不出切換所以就看到一個完整的 “1”了。這就實現(xiàn)了動態(tài)掃描。3.2.5 主控模塊主控模塊 lpc11c24 與與 led 點陣屏的引腳連接點陣屏的引腳連接lpc11c24 引腳led 點陣屏引腳+5vin5v 供電電源gndgndp0_3oep1_8sclkp2_6rp2_7clkp2_8bp2_10a圖 5.4 led 點陣屏與 lpc11c24 引腳的連接圖lpc11c24 32*16led點陣屏p0_3 p1_8p2_6 p2_7 p2_8 p2_10oesclkrclkbalpc11c24 與 led 點陣屏的連接圖3.2.6

29、led 點陣屏的顯示的軟件設(shè)計點陣屏的顯示的軟件設(shè)計對于這個系統(tǒng)的軟件設(shè)計一開始是我們是從控制led 點陣屏的顯示入手,而 為了防止在控制led 顯示的初始階段燒壞 lpc11c24 開發(fā)板以及更快的入手 lpc11c24 開發(fā)板,我們首先決定先用51 單片機來寫程序點亮控制 led 點陣屏,在可以任意的控制 led 屏的顯示之后再將程序移植到lpc11c24 開發(fā)板上。而控制 led 點陣屏的首要問題就是點陣屏上每一行的亮滅是如何在單片機中實現(xiàn)的,接下來我們就試著去控制點陣屏的的每一個點的亮滅,直到可以控制任意點亮和滅。然后,我們再考慮去讓點陣屏去顯示數(shù)字以及在哪個位置去顯示,最后我們才再想

30、方設(shè)法的使led 點陣屏的不同位置顯示出我們想要顯示的數(shù)字而這又是最困難的一步,由于在一個時刻led 點陣屏只能讓一塊顯示所以要想讓整個的屏都顯示不同的數(shù)字就使用到動態(tài)掃描的技術(shù)。這里要真正實現(xiàn)動態(tài)掃描則分為兩部分第一部分是 buf 數(shù)據(jù)緩存區(qū)的數(shù)據(jù)的動態(tài)變化,第二部分是對 led 屏的行的動態(tài)掃描。控制一個點顯示控制一行顯示任意顯示數(shù)字 圖 led 點陣屏顯示設(shè)計思路程3.2.6.1 控制控制 led 亮滅的設(shè)計過程亮滅的設(shè)計過程首先我們是先通過看對 p10 led 點陣屏電路圖走線方式,電路的芯片的作用來理解電路。電路是用 74hc138 譯碼器和 74hc595 移位寄存器組合實現(xiàn)的,這

31、樣就大概知道電路是如何工作的,我們就試著按自己的理解去連接的電路并給通過單片機控制led 點陣屏,寫了幾個程序發(fā)現(xiàn) led點陣屏上一直不亮,就考慮是否是硬件出了問題,但是經(jīng)過測試后發(fā)現(xiàn)led 屏的正負極是有 +5v電壓的,并且 led 的引腳同 51 單片機的連接也正確。只能是程序?qū)懙牟粚Γ缓笪覀兙蜕暇W(wǎng)查閱各種資料,包括 595 移位寄存器和 138 譯碼器的手冊、例程,通過查閱之后才對 595 和 138 的工作有了更進一步的了解,我們之后又重新編寫了一個程序和發(fā)現(xiàn)還是不能點亮led 屏,問了老師后才知道是我們對 595 理解有誤,之后我們試著寫了一個程序發(fā)現(xiàn) led 點陣屏果真亮了,但是

32、 led 燈都是在亂閃的,琢磨的一晚上也沒找到是什么原因, 直到第二天問了老師才發(fā)現(xiàn)是 led 屏和單片機沒有共地,我們找了一跟線將 led 的地和單片機的地線連接起來這下屏上的顯示就穩(wěn)定了, 但是是 4 行一起亮的,看了原理圖后發(fā)現(xiàn) 138 的輸出信號又通過 led 驅(qū)動芯片分出 4 個一樣的信號,輸出的信號被用于控制4 行,所以 16 行需要 4 個 138 譯碼輸出信號,這樣 2 個 138 的輸入信號輸出 00、01、10、11 四個信號,就能把整塊屏的 16 行給控制起來。 能夠控制行,還得能控制任意一個點。一開始只知道595 是如何工作的,就全送入 0,后來改變輸入 595 的 1

33、28 位,發(fā)現(xiàn)第一個送進去的 0 會在 4 行中的最后一個點上,就理解了什么叫 “位顯示的先送”這句話,這樣就已經(jīng)能控制 128 位中的任意一點的亮和滅。3.2.6.2led 點陣屏的動態(tài)掃描設(shè)計過程點陣屏的動態(tài)掃描設(shè)計過程實際上,我們要做的遠不止讓行和點亮起來這么簡單,因為引腳的有限,我們只能用動態(tài)掃描的方式來讓屏幕顯示全部的內(nèi)容,但是問題有來了, 138 和 595 的組合輸入究竟是什么樣的。時序是如何組合在一起的,我們就試了一下發(fā)現(xiàn)屏上的顯示規(guī)律并不是我們想的那樣從左到右依次來的,而是 8 位一組從左下方開始再到左上方,然后再從下方的往右8 位再往上依次類推,直到右上方。這樣就影響到了數(shù)

34、據(jù)組織問題,做到這里老師對我們提出了一個數(shù)據(jù)緩沖區(qū)的概念,說這塊屏的顯示程序?qū)?yīng)有三部分,第一部分就是一個 64 字節(jié)的緩沖區(qū)里面是屏上的每個點對應(yīng)的值,第二個部分是 4 個變量也就是屏上列分成 8 位一組的點鐘要現(xiàn)實的內(nèi)容的值。第三個部分就是掃描輸出程序,這個程序只需要掃描 64 字節(jié)的緩沖區(qū)其它的不用管,這三部分的工作 過程是,程序通過 4 個變量在字庫中選擇要顯示的值的編碼送入 64 字節(jié)的顯示緩沖區(qū)中對應(yīng)的位置,在通過掃描程序來把顯示緩沖區(qū)中的內(nèi)容送給顯示屏。這個過程也是成為整個程序的主要框架后面的功能在這些基礎(chǔ)上添加和修改的。程序?qū)懙竭@里出現(xiàn)了單片機 無法解決的問題ram 的大小不夠

35、用無法執(zhí)行程序。這時就不再使用單片機來編寫了,我們把程序移植到lpc22c24 上面去,由于 lpc11c24 中引腳的使用不同單片機引腳使用初始化引腳即 gpiosetdirl(x,x,1)第三位為 1 表示引腳的狀態(tài)為輸出,前面兩位分別為第幾個 io 口的第幾位。而 io 口的輸出要用 gpiosetvail(x,x,x).第一個x 表示第幾個 io 口,第二個 x 表示第幾個 io 口的第幾位,第三個 x 表示輸出 0 或 1.由于這種輸出方式帶來的問題是只能用 0 和 1 來輸出,所以只能把原來程序中的數(shù)據(jù)移位一個一個輸出,這是和單片機的一個區(qū)別。原來程序移植到 lpc11c24 中后

36、下載可用位就可改變現(xiàn)實的內(nèi)容了。原來只能顯示 4 位數(shù)字,現(xiàn)在要把時間和日期一起顯示了。這樣就要重新規(guī)劃數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)組織和傳入數(shù)據(jù)緩沖區(qū)的算法了,用移位來把重新規(guī)劃的數(shù)據(jù)緩沖區(qū)填入正確的值,并正確顯示年-月-日-時-分buf 緩沖區(qū)數(shù)據(jù)組織緩沖區(qū)數(shù)據(jù)組織 控制點陣屏顯示時鐘就要知道 點陣屏上每個點在 buf 緩沖區(qū)中對應(yīng)的存儲位置, 因為我們所使用的是 32*16 的 led 點陣屏,所以 buf 緩沖區(qū)就應(yīng)該是一個 64 字節(jié)的數(shù)據(jù)緩沖區(qū),每一個字節(jié)表示 led 屏上的 8 個點如果我們要在某個位置上顯示某一個數(shù)字就把 buf 緩沖區(qū)中對應(yīng)位置的值改成要顯示數(shù)字的編碼。下圖是我們定義時間

37、的年、月、日、時、分在點陣屏上的顯示位置和buf 緩沖區(qū)對應(yīng)關(guān)系。注:圖中 063 每個數(shù)字代表一個字節(jié),數(shù)字表示這個字節(jié)在 buf 緩沖區(qū)數(shù)組中的位置。比如說圖中51就是從左往右的八個小方格 ,圖中的6就是從左往右的八個小方格。5539237點點543851 35 年十位19 3 顯示50 34 位置18 年個位顯示位置22月十位顯示位置59 月個位43 顯示27 位置1158422663 日十47 顯示31 位置 15 624630日個位顯示位置2610 14 49 53576133374117 21 點 2515948 52563236401620點 240時十位顯示位置4時個位顯示位置

38、8分十位顯示位置45 分個位29 顯示1360 位置442812圖 4 led 點陣屏上的點與 buf 緩沖區(qū)的對應(yīng)關(guān)系在這里要真正實現(xiàn)動態(tài)掃描則分為兩部分第一部分是buf 數(shù)據(jù)緩存區(qū)的數(shù)據(jù)的動態(tài)變化,第二部分是對 led 屏的行的動態(tài)掃描1 1. .b bu uf f 數(shù)數(shù)據(jù)據(jù)緩緩沖沖區(qū)區(qū)的的動動態(tài)態(tài)變變化化 例如:這是對顯示的時鐘分的個位的數(shù)字在緩沖區(qū)的動態(tài)變化的計算方法 比如要顯示數(shù)字 8 buf45=(buf45|0 xf0)&(numcode7*fen1+14)|0 x0f);buf29=(buf29|0 xf0)&(numcode7*fen14)|0 x0f);bu

39、f61=(buf61|0 xf0)&(numcode7* fen1+24)|0 x0f); buf12=(buf12|0 xf0)&(numcode7* fen1+34)|0 x0f);buf28=(buf28|0 xf0)&(numcode7* fen1+44)|0 x0f);buf44=(buf44|0 xf0)&(numcode7* fen1+54)|0 x0f);buf60=(buf60|0 xf0)&(numcode7* fen1+64)|0 x0f);分析:由上圖可得到分的個位(即 fen1)在點陣屏的位置是 “分個位顯示位置 ”對應(yīng)的在數(shù)組

40、中的字節(jié)數(shù)據(jù)是 45,29,13,60,44,28,12.且是這 7 個字節(jié)的高 4 位。由于要統(tǒng)一操作所以我會先把數(shù)據(jù)送到每個字節(jié)的低四位,通過移位來對buf 中字模數(shù)據(jù)的位置的確定。如第一個 buf45=(buf45|0 xf0)&(numcode7*fen1+14)|0 x0f);buf45|0 xf0 先通過按位或把要顯示的位置全部置為 1(即不顯示) ,(numcode7*fen1+14) |0 x0f 再在字庫中找出數(shù)字 8 的位置并把每個字節(jié)都左移四位之后再和0 x0f 按位與一下消除對顯示位置之外的影響, (buf45|0 xf0)&(numcode7*fen1

41、+14)|0 x0f)再和原來置一的數(shù)據(jù)按位與把數(shù)據(jù)放入緩沖區(qū)。這樣就可以把數(shù)據(jù)送入想要的位置了。別的位置也可以用同樣的方法來實現(xiàn)數(shù)據(jù)的傳送。2.對對數(shù)數(shù)據(jù)據(jù)的的緩緩存存區(qū)區(qū)的的動動態(tài)態(tài)掃掃描描 通過上面的要顯示的數(shù)據(jù)的位置及內(nèi)容送入了緩存區(qū),現(xiàn)在要顯示在led 屏上這個顯示分為兩步,第一步 74hc595 移位寄存器中數(shù)據(jù)移位,第二步 行數(shù)據(jù)掃描。關(guān)閉 74hc138d 譯碼器和 74hc595 移位寄存器取緩沖區(qū)里的前 16 個字節(jié)開始yn 圖 掃描輸出流程圖(1)列數(shù)據(jù)的移位(74hc595 移位寄存器中數(shù)據(jù)移位)第一步 移位時鐘信號清零第二步 用送過來的數(shù)據(jù)來和 0 x80 按位與取出

42、最高位,再和 0 x80 比是 0 還是 1是 1 就送一個 1 個 595 輸入端 r 否則送 0第三步 把送來的數(shù)據(jù)左移一位第四步 開移位時鐘信號第五步 繼續(xù)比較,重復(fù) 8 次;關(guān)鍵代碼:void shiftbyte(int inbyte) int i; for(i=0;i8;i+) clk0; if(inbyte&0 x80)=0 x80) rdi1; else rdi0;16 個字節(jié)是否掃完閉給 sclk1 一個上升沿開 74hc595 開74hc138 譯碼器數(shù)據(jù)并行輸出返回分別設(shè)置 ab 的值為 00、10、00、11對 74hc138d 譯碼器進行位選 inbyte=in

43、byte1; clk1; (2)74hc138譯碼器行選擇第一步,把譯碼器 138 的 oe 的值清零第二步,把移位寄存器 595 并行輸出時鐘信號清零第三步,選擇要掃描數(shù)據(jù)這里是 015 共 128 位的數(shù)據(jù)(后面的三段語句分別是1631,3248,4863)第四步,把取緩沖區(qū)總的一個字節(jié)的數(shù)據(jù)發(fā)送到零時變量中,并把零時變量作實參調(diào)用移位函數(shù)第五步,當(dāng) 128 位數(shù)據(jù)都移位完成時說明列數(shù)據(jù)已經(jīng)有了,這時設(shè)置a,b 的值并把并行輸出時鐘置 1 使之產(chǎn)生一個上升沿,把 595 數(shù)據(jù)輸出到并行輸出口上,開 138 使能端 oe 置一第六步,等待一會兒第七步,修改 a,b 和選擇的數(shù)據(jù)重復(fù)一到六步。

44、當(dāng)然,由于人的視覺停留,只要刷屏的速度夠快所看到的的 led 顯示屏上顯示的圖像還是全屏穩(wěn)定的圖像。關(guān)鍵代碼:oe0; /oe=0;138譯碼器使能端為低電平sclk0; /oe=1; 138譯碼器使能端為高電平for(i=0;i16;i+)temp=bufi;shiftbyte(temp);ain0;/abin0;/bsclk1; /sclk oe1; /oedelay(1);這是行掃描的一部分程序,后面的語句和這個類似,要修改ain,和 bin 的值和選擇的在緩沖區(qū)的數(shù)據(jù)的位置的值 。3.2.7 時鐘顯示秒的控制時鐘顯示秒的控制在此次的設(shè)計中本起初是想在點陣 led屏分成上下兩部分,上面一

45、部分顯示年月日下面一部分顯示時分秒,但是后來發(fā)現(xiàn)下面如果要將時分秒在 led屏上都顯示出來的話數(shù)字間就沒法有足夠的間距來區(qū)分,所以就采取了另一種方案,在時和分之間加兩個點隔一秒閃爍一次,當(dāng)閃過60次之后分的個位上就加 1,下面就來實現(xiàn)時和分之間加兩個點的閃爍 。點的閃爍主要就是用的延時,在lpc11c24的開發(fā)板中已經(jīng)提供給我們 16位定時器,我們就是利用這個 16位定時器timer32把timer32中的終端程序修改加入標志位來實現(xiàn) 1秒定時。如下是在16位定時器中的閃爍計數(shù)程序 : if(timer16_0_counter50&timer16_0_counter=100) shan

46、shuo=0;在主函數(shù)中只要控制兩個點的位置的與和或的值就能使兩個點閃爍起來。程序代碼如下: if(shanshuo=1)/滅 buf37=buf37|0x01; buf20=buf20|0 x01; buf24=buf24|0 x80; buf41=buf41|0 x80; else/亮 buf37=buf37&0xfe; buf20=buf20&0 xfe; buf24=buf24&0 x7f; buf41=buf41&0 x7f; 3.3 gps 衛(wèi)星數(shù)據(jù)接收模塊衛(wèi)星數(shù)據(jù)接收模塊 gr-87gr-87 的主要功能是負責(zé)接受衛(wèi)星數(shù)據(jù)并 實現(xiàn)高精度的時間信號輸

47、出。 gr-87 接受 gps 衛(wèi)星數(shù)據(jù)并且每秒發(fā)出幾種數(shù)據(jù) ,包括:$gpgga、$gprmc、$pgrmv、$pgrmo、$pgrmc 等數(shù)據(jù)格式,因為我們只是顯示它的時鐘信息所以我們要從中 篩選和時間有關(guān)的數(shù)據(jù)格式 &gprmc。3. 3.1gps 技術(shù)簡介技術(shù)簡介gps 導(dǎo)航系統(tǒng)是以全球 24 顆定位人造衛(wèi)星為基礎(chǔ),向全球各地全天候地提供三維位置、三維速度等信息的一種無線電導(dǎo)航定位系統(tǒng)。它由三部分構(gòu)成,一是地面控制部分,由主控站、地面天線、監(jiān)測站及通訊輔助系統(tǒng)組成。二是空間部分,由24 顆衛(wèi)星組成,分布在 6 個軌道平面。三是用戶裝置部分,由 gps 接收機和衛(wèi)星天線組成。民用

48、的定位精度可達 10 米內(nèi)。在“十二五”期間,衛(wèi)星導(dǎo)航將在眾多領(lǐng)域如航空、海路、鐵路、建筑、電信、電力等方面的應(yīng)用都會有很大的發(fā)展空間。在未來的數(shù)年間,隨著定位手機的高速增長和移動位置服務(wù)業(yè)的展開,原先以車輛應(yīng)用為主的局面將逐步讓位給衛(wèi)星導(dǎo)航與蜂窩通信融合的定位手機。在行業(yè)總產(chǎn)值中,運營服務(wù)的份額也會逐步加大。圖圖 4 4. .1 1 g gp ps s 系系統(tǒng)統(tǒng)空空間間衛(wèi)衛(wèi)星星星星座座3.3.2 gr-87 此次設(shè)計的 gps 模塊系統(tǒng)選擇了采用第三代高效能芯片高靈敏、低耗電量芯片 star 的gr-87。內(nèi)建 arm7tdmi cpu 定位精度小于 10 米,能夠同時追蹤 20 個衛(wèi)星信道

49、。芯片內(nèi)建200,000 個衛(wèi)星追蹤運算器 ,可以保持星歷數(shù)據(jù),快速定位。 其遠達能力,滿足汽車導(dǎo)航靈敏度的要求,以及其他基于位置的應(yīng)用程序。因此, holux 的 gr87 引擎是非常適合 avl 系統(tǒng)集成和基于位置的服務(wù)。3.3.3 引腳功能引腳功能圖為 gps 模塊外觀圖,可以看出它有 6 個引腳,分別為:引腳 1(vcc):主要的直流+3.35.5v 的引擎板供電引腳 2(txa):主要的傳輸通道,用于導(dǎo)航和輸出為編寫的軟件的用戶測量數(shù)據(jù)。引腳 3(rxa):接受通道,主要接受用戶的命令引腳 4(rxb):輔助接受通道,用于輸入差分引腳 5(gnd):接地端引腳 6(reset):復(fù)位

50、端 圖 3.1 gr-87 外觀圖gr-87 指標指標最多可同時接收 20 個衛(wèi)星 時間標示: 1 脈波/秒, gps 時間 +/-0.1 秒誤差 晶片內(nèi)建 200,000 個衛(wèi)星追蹤運算器 運算程序:arm7/tdmi處理速度:50 mhz更新速率: 1hz串口輸出精度可達微秒級時間標示: 1 脈波/秒, gps 時間 /-0.1 秒誤差尋星時間小于 10 秒定位時間(平均值)重新抓?。?.1 秒熱開機: 1 秒暖開機: 38 秒冷開機: 42 秒3.3.4 硬件接口硬件接口uartuart 傳輸結(jié)構(gòu) uart:universal asynchronous receiver/transmit

51、ter,通用異步接收 /發(fā)送裝置,uart 是一個并行輸入成為串行輸出的芯片,通常集成在主板上,多數(shù)是16550afn 芯片。它是用于控制計算機與串行設(shè)備的芯片。有一點要注意的是,它提供了rs-232c 數(shù)據(jù)終端設(shè)備接口,這樣計算機就可以和調(diào)制解調(diào)器或其它使用 rs-232c 接口的串行設(shè)備通信了。作為接口的一部分,uart 還提供以下功能:將由計算機內(nèi)部傳送過來的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計算機外部來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計算機內(nèi)部并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇偶校驗位,并對從外部接收的數(shù)據(jù)流進行奇偶校驗。在輸出數(shù)據(jù)流中加入啟停標記,并從接收數(shù)據(jù)流中刪除啟停標記。處

52、理由鍵盤或鼠標發(fā)出的中斷信號(鍵盤和鼠標也是串行設(shè)備) ??梢蕴幚碛嬎銠C與外部串行設(shè)備的同步管理問題。有一些比較高檔的uart 還提供輸入輸出數(shù)據(jù)的緩沖區(qū),現(xiàn)在比較新的 uart 是 16550,它可以在計算機需要處理數(shù)據(jù)前在其緩沖區(qū)內(nèi)存儲16 字節(jié)數(shù)據(jù),而通常的 uart 是 8250。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計中, uart 用來主機與輔助設(shè)備通信,如汽車音響與外接 ap 之間的通信,與 pc 機通信包括與監(jiān)控調(diào)試器和其它器件,如 eeprom 通信。通信 uart 首先將接收到的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來傳輸。 微控制器中的 uart傳送數(shù)據(jù)的速度范圍為每秒幾百

53、位到 1.5mb。例如,嵌入在 elansc520 微控制器中的高速 uart 通信的速度可以高達 1.152mbps。uart 波特率還受發(fā)送和接收線對距離 (線長度)的影響。3.3.5 通信協(xié)議通信協(xié)議 nmeanmea協(xié)議是為了在不同的 gps(全球定位系統(tǒng))導(dǎo)航設(shè)備中建立統(tǒng)一的 btcm(海事無線電技術(shù)委員會)標準,由美國國家海洋電子協(xié)會( nmea-the national marine electronics association)制定的一套通訊協(xié)議。 gps接收機根據(jù)nmea-0183協(xié)議的標準規(guī)范,將位置、速度等信息通過串口傳送到 pc機、pda等設(shè)備。 nmea-0183協(xié)

54、議是gps接收機應(yīng)當(dāng)遵守的標準協(xié)議,也是目前 gps接收機上使用最廣泛的協(xié)議,大多數(shù)常見的gps接收機、gps數(shù)據(jù)處理軟件、導(dǎo)航軟件都遵守或者至少兼容這個協(xié)議。nmea協(xié)議常用的輸出類型有很多種,但是我們需要的只是下面的這種:gprmc(建議使用最小gps數(shù)據(jù)格式)&gprmc, 標準定位時間( utc time)格式:時時分分秒秒 .秒秒秒(hhmmss.sss)。 定位狀態(tài),a=數(shù)據(jù)可用,v=數(shù)據(jù)不能用。 緯度,格式:度度分分.分分分分(ddmm.mmmm) 。 緯度區(qū)分,北半球(n)或南半球(s) 。 經(jīng)度,格式:度度分分.分分分分。 精度區(qū)分,東(e)半球或西(w)半球。 相對

55、位移速度,0.0 至 1851.8knots 相對位移方向,000.0 至 359.9 度。實際值 日期,格式:日日月月年年(ddmmyy) 。3.3.5 主控模塊主控模塊 lpc11c24 與與 gr-87 的連接的連接注:由于我們只需要從注:由于我們只需要從 gr-87gr-87 中讀數(shù)據(jù)所以我們只用了中讀數(shù)據(jù)所以我們只用了 gr-87gr-87 輸出引腳輸出引腳lpc11c24 引腳gr-87 引腳+5vin5v 供電電源gndgndp1_6txa因為此次設(shè)計的只需要從 gr-87 中讀數(shù)據(jù)所以我們只用了 gr-87 第二引腳 txa,txa 為串行輸出通道,用于輸出模塊接收到的 gps

56、 數(shù)據(jù),與 lpc11c24 上的 p1_6 引腳相連即 uart 的串行接收端rxd 相連。圖 5.3 gr-87 與 lpc11c24 的連接圖3.3.6 uartuart 接收接收 gpsgps 數(shù)據(jù)軟件設(shè)計數(shù)據(jù)軟件設(shè)計gps 先和電腦用串口連接觀察串口調(diào)試助手收到的內(nèi)容,這里的問題就是把波特率修改直到收到正確的內(nèi)容,下一步就是開啟 lpc11c24 的 uart 異步串行通信,把 uart 接收到的數(shù)據(jù)保存下來再輸出。這里遇到一系列問題比如 fifo 中的數(shù)據(jù)是如何進入 rbr 中的是一個字符接受還是一段字符保存下來再中斷的。這個通過對初始化的閱讀來了解的。 在主函數(shù)中對緩存區(qū)進行處理

57、就可以了,使用臨時緩沖區(qū)但存有用的數(shù)據(jù)的。 uart 可以使用后接入 gps 實現(xiàn)對時這時候加入的timer32 就不能使用了,而是用 timer16。1.uart數(shù)數(shù)據(jù)據(jù)的的接接收收g r-87txa引引腳腳 lpc11c24 u a r t 接口r rx xd d引引腳腳第二第二引腳引腳p1_6引腳引腳 uart在初始化的時候會設(shè)置控制寄存器 fcr中有個7:6可以設(shè)置rx觸發(fā)等級,這里設(shè)置 00,即收到一個字符就會觸發(fā)中斷這樣就可以收一個處理一個了。在 uart中斷中,收到一個字符就放入緩存區(qū),在主函數(shù)中對緩存區(qū)進行處理就可以了 。 圖 uart數(shù)據(jù)的接收流程圖關(guān)鍵代碼:if (iirv

58、alue = iir_rda) uartbufferuartcount+ = lpc_uart-rbr; if (uartcount = bufsize) uartcount = 0; 這段程序就是如果收到的數(shù)據(jù)是有效的就會把 fifo中的最高位的數(shù)據(jù)給緩存區(qū), 知道緩存區(qū)64字節(jié)全滿。 開始系統(tǒng)初始化uart 是否收到數(shù)據(jù)?篩選并處理數(shù)據(jù)送入臨時數(shù)組結(jié)束定時器秒 1+1進入時間控制程序ny2.uart數(shù)數(shù)據(jù)據(jù)的的處處理理我們要用的數(shù)據(jù)是 gps中的$gprsm中的時間和日期的內(nèi)容。 時間的格式是:時時分分秒秒 日期格式是:日日月月年年 gps信息的數(shù)據(jù)是以$為開始,以*號結(jié)束 篩選gps數(shù)據(jù)

59、的方法是:a. 判斷是不是收到了開頭 $以及后面的gprmc是否都滿足b. 把緩存數(shù)組中的第 713,4752的數(shù)據(jù)通過字符轉(zhuǎn)數(shù)字并賦給對應(yīng)的變量。當(dāng)然因為是 在東八區(qū),小時要+8之后判斷是不是超過了 24小時。c. 這樣就把時間和gps上的數(shù)據(jù)同步了以下是這段程序代碼:if ( uartcount != 0 ) lpc_uart-ier = ier_thre | ier_rls; /關(guān)閉uart接收for(i=0;i24)shi-=24;/過了24小時就減去24小時shi1=shi%10;/分別把對應(yīng)的在緩存區(qū)的數(shù)據(jù)給對應(yīng)的變量shi2=shi/10;fen2=cmd9-0 x30;fen1

60、=cmd10-0 x30;miao2=cmd11-0 x30;miao1=cmd12-0 x30;if(cishu=0|fchange!=shi2)/由于在調(diào)試時發(fā)現(xiàn)日期的數(shù)據(jù)有可能丟失就在第一次對時改變一下,以后分鐘變化是才讓日期對一次,這樣可以降低出錯率 ri2=cmd47-0 x30; ri1=cmd48-0 x30; yue2=cmd49-0 x30; yue1=cmd50-0 x30; nian2=cmd51-0 x30; nian1=cmd52-0 x30; cishu=1; fchange=shi2; choice();f=0;/對時時步用定時器計時 fcmd=0; phead=0; uartcount = 0;/對時結(jié)束清空計數(shù)位 lpc_uart-ier = ier_thre | ier_rls

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論