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

正文內(nèi)容

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

2025-06-12 19:35 本頁(yè)面
 

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