freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機(微控制器)gps定位系統(tǒng)(編輯修改稿)

2025-06-12 19:35 本頁面
 

【文章內容簡介】 0 為顯示數(shù)據(jù) RS=“L”, 表示 DB7—— DB0 為顯示指令數(shù)據(jù) 5 R/W(SID) H/L R/W=“H”,E=“H”, 數(shù)據(jù)被讀到 DB7—— DB0 R/W=“L”,E=“H→L”, DB7 —— DB0 的數(shù)據(jù)被寫到IR 或 DR 6 E(SCLK) H/L 使能信號 7 DB0 H/L 三態(tài)數(shù)據(jù)線 8 DB1 H/L 三態(tài)數(shù)據(jù)線 9 DB2 H/L 三態(tài)數(shù)據(jù)線 10 DB3 H/L 三態(tài)數(shù)據(jù)線 11 DB4 H/L 三態(tài)數(shù)據(jù)線 12 DB5 H/L 三態(tài)數(shù)據(jù)線 13 DB6 H/L 三態(tài)數(shù)據(jù)線 14 DB7 H/L 三態(tài)數(shù)據(jù)線 15 PSB H/L H: 8 位或 4 位并口方式, L:串口方式(見注釋 1) 16 NC 空腳 17 /RESET H/L 復位端,低電平有效(見注釋 2) 18 VOUT LCD 驅動電壓輸出端 19 A VDD 背光源正端( +5V)(見注釋 3) 20 K VSS 背光源負端(見注釋 3) *注釋 1: 如在實際應用中僅使用串口通訊模式,可將 PSB 接固定低電平,也可以將模塊上的 J8 和 “GND”用焊錫短接。 第 3 章 系統(tǒng)軟件設計 程序初 始化模塊 初始化模塊完成開機上電后對單片機、液晶顯示器和 GPS 模塊 的初始化工作。對單片機設置串口工作模式、設置波特率和中斷工作模式;對液晶顯示器設置開機畫面和顯示模式;完成對 GPS 模塊 串口的成功通信。 數(shù)據(jù) 接收 處理模塊負責處理從 GPS 接收到的數(shù)據(jù)。在單片機串口收到信息后,先判別是否為語句引導頭 “ $”, 再接收信息內容 , 然后根據(jù)語句標識區(qū)分出信息類別以對收到 ASCII 碼進行處理顯示 。若 整個數(shù)據(jù)接收正確, 便 對數(shù)據(jù)進行處理;若接收不正確,則重新進行接收。 全球定位系統(tǒng)的主程序流程如下圖: 圖 31 軟件系統(tǒng)調試 在對 GPS接收到的衛(wèi)星信息進行處理時,碰到較為麻煩的問題是在對接收到的時間信息進行轉換上。直接從衛(wèi)星接收到的時間是 UTC 時間, 北京時間應在 UTC時間上加上 8小時才是準確的北京時,在超出24 小時時應作減 24 小時處理。 剛開始將對時間轉換的算法放在主函數(shù)中處理,程序如下: if(g_Ptr == 2) //接收到正確的數(shù)據(jù)幀 { i = g_DisTime[0]39。039。 。//提取時間的小時位高位并轉換碼型 j = g_DisTime[1]39。039。//提取時間的小時位低位并轉換碼型 j = i*10 + j+ 8。 //在 UTC時間上加上 8個小時 if (j = 24) //判斷得到的時間是否超過 24 小時,超出變作減 24 處理 { j = 24。 } g_DisTime[0] = j/10+39。039。 //將北京時間高一位作碼型變換并賦予高一位顯示 g_DisTime[1] = j%10 +39。039。//將北京時間高二位作碼型變換并賦予高二位顯示 } 在調試中出現(xiàn)一個問題,在做了以上 的處理后,時間的小時位數(shù)據(jù)并不完全正確,高位顯示的與北京時間相同,但低位卻與 UTC 時間相同。在做了各種嘗試(如在 UTC 時間上做加 9 處理、直接給六位時間g_DisTime[5]賦值等)后總結出這樣一個問題,以上的算法處理只對六位數(shù)據(jù)位的高一位處理有效,低五位的顯示始終都是正確 UTC 時間。經(jīng)過分析,初步認定上面的程序并沒有被完全的執(zhí)行。因 GPS 接收模塊源源不斷的傳送數(shù)據(jù)給單片機處理,在運行過程中定位信息大約每秒鐘更新一次,在主函數(shù)中對收到的時間進行處理時有可能會出現(xiàn)還沒來得及處理完畢時便接收到下一幀數(shù)據(jù),故時間 的處理就可能會有只對高一位處理完成而沒完成處理好低五位時又進入了串行口中斷,那么液晶顯示的結果就是經(jīng)過處理的高一位 (北京時間 )和未經(jīng)處理的低五位 (UTC 時間 )。考慮到以上原因,將原放在主函數(shù)的時間轉換處理程序放置在到中斷時一收到 UTC 時間就對其進行轉換處理。經(jīng)過了調試,終于在液晶上顯示出來正確的北京時間,證明了以上的分析、推斷的正確性。 參考文獻 [1]楊 剛,電子系統(tǒng)設計與實踐,電子工業(yè)出版社, [2]何希才,新型實用電子電路 400例 ,電子工業(yè)出版社 , [3]楊 剛,電子系統(tǒng)設 計與實踐,電子工業(yè)出版社, [2]高 鋒,單片微型計算機原理與接口技術,科學出版社 , 2021 [1]洪大永, GPS全球定位系統(tǒng)技術及應用, 廈門大學出版社 , 1998 附 錄 軟件程序 uchar GPS_time[9]。 //UTC 時間 uchar xdata GPS_wd[12]。 //緯度 uchar xdata GPS_jd[13]。 //經(jīng)度 uchar GPS_warn。 //定位警告 uchar GPS_quality。 //定位質量 uchar GPS_status。 //定位狀態(tài) uchar GPS_alt[8]。 //海拔 uchar GPS_sv[3]。 //使用衛(wèi)星 uchar GPS_speed[10]。 //速度 uchar GPS_date[9]。 //UTC 日期 uchar Segment。 //逗號計數(shù) uchar Bytes_counter。 uchar Command。 void GPRMC(uchar)。 void GPGGA(uchar)。 void GPVTG(uchar)。 void GPGSA(uchar)。 void gps(uchar)。 void gps(uchar tmp) { //_send_byte(tmp)。 if(tmp == 39。$39。)//起始標志 { Command = 0。 ReceivingF = 1。 Bytes_counter = 0。 Segment = 0。 //清空語句段計數(shù)器 return。 } if(ReceivingF) { if(tmp == 39。,39。) { ++Segment。 Bytes_counter = 0。 //清空段字節(jié)計數(shù)器 return。 } if(tmp == 39。*39。)//收到結束標志 { ReceivingF = 0。 EndF = 1。 return。 } if(Segment == 0) { if(Bytes_counter == 3) //段 0,語句類型判斷 switch(tmp) { case 39。G39。:Command = 1。//語句類型 $GPGGA GGAF = 1。 break。 case 39。M39。:Command = 2。//語句類型 $GPRMC RMCF = 1。 break。 case 39。T39。:Command = 3。//語 句類型 $GPVTG VTGF = 1。 break。 case 39。S39。:break。 default:Command = 0。 //非有效數(shù)據(jù)類型,終止當前數(shù)據(jù)接收 ReceivingF = 0。 break。 } if(Bytes_counter == 4) if(Command==0 amp。amp。 tmp==39。A39。) { Command = 4。//語句類型 $GPGSA GSAF = 1。 } } else { switch(Command) { case 1:GPGGA(tmp)。 break。 case 2:GPRMC(tmp)。 break。 case 3:GPVTG(tmp)。 break。 case 4:GPGSA(tmp)。 break。 default:break。 } } ++Bytes_counter。 } NewByteF = 0。 return。 } void GPGGA(uchar tmp) { switch(Segment) { case 1: if(Bytes_counter == 2 || Bytes_counter == 5) //$GPGGA 段 1, UTC 時間, hhmmss(時分秒)格式 ,取前 6 位 轉換為 HH:MM:SS格式 { GPS_time[Bytes_counter] = 39。:39。 ++Bytes_counter。 } if(Bytes_counter8) GPS_time[Bytes_counter] = tmp。 GPS_time[8] = 39。\039。 break。 case 2: if(Bytes_counter == 3) //$GPGGA 段 2處理 緯度 (度分)格式 { GPS_wd[Bytes_counter] = 39。.39。 //接收第二個字節(jié)后插入 39。.39。 ++Bytes_counter。 GPS_wd[11] = 39。\039。 } if(Bytes_counter ==
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1