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

正文內(nèi)容

基于gps定位系統(tǒng)的公交車自動報站系統(tǒng)-資料下載頁

2025-11-27 02:27本頁面

【導(dǎo)讀】本系統(tǒng)設(shè)計的是基于GPS定位系統(tǒng)的公交車自動報站系統(tǒng)。硬件上是由單片機(jī)。、液晶顯示模塊、GPS接受器、SPR模組等組成。能夠?qū)崿F(xiàn)衛(wèi)星定位,公交車。語音報站等功能。是否到達(dá)預(yù)設(shè)的各個站點(diǎn)。本系統(tǒng)的優(yōu)越性主要體現(xiàn)在通過GPS對公交車進(jìn)行實(shí)時定位,無需人工干預(yù),便可準(zhǔn)確無誤的進(jìn)行自動報站,以實(shí)現(xiàn)朽能化和高可靠性。

  

【正文】 6 經(jīng)度半球 E(東經(jīng))或 W(西經(jīng)) 7 地面速率( ~ 節(jié),前面的 0 也將被傳輸) 8 地面航向( ~ 度,以真北為參考基準(zhǔn),前面的 0 也將被傳輸) 9 UTC 日期, ddmmyy(日月年)格式 10 磁偏角( ~ 度,前面的 0 也將被傳輸) 11 磁偏角方向, E(東)或 W(西) 12 模式指示(僅 NMEA0183 版本輸出, A=自主定位 , D=差分, E=估算, N=數(shù)據(jù)無效)*/ include include define uchar unsigned char define uint unsigned int uchar StrGpsWD[10][5]。 //存放緯度數(shù)據(jù) 。 uchar StrGpsJD[11][5]。 //存放經(jīng)度數(shù)據(jù) 。 uint i,k,b。 uint Recflag。 //記錄標(biāo)志 。 uint IgpsWD。 //緯度數(shù)據(jù)計數(shù)變量 。 uint IgpsJD。 //經(jīng)度數(shù)據(jù)計數(shù)變量 。 uint Numa。 //逗號計數(shù)變量 。 //void DisableALLOUT()。 //禁用所有輸出語句 。 //void EnableGPRMC()。 //使能 $GPRMC 輸出語句 。 void delay()。 void dislpay1()。 void main() { __asm(INT OFF)。 青島大學(xué)本科生畢業(yè)論文(設(shè)計) 21 *P_IOB_Attrib = 0x0480。 //初始化 IOB IOB10 端口 *P_IOB_Dir = 0x0400。 *P_IOB_Data = 0x0000。 intial_IO_lcd()。 init_lcd()。 *P_UART_Command1 = 0x0020。 //內(nèi)部復(fù)位 *P_UART_BaudScalarLow = 0x0000。 //設(shè)置波特率 *P_UART_BaudScalarHigh = 0x0005。 *P_UART_Command2 = 0x0080。 //使能接收通道 delay(100)。 *P_UART_Command1 = 0x0080。 //使能接收中斷 __asm(INT IRQ)。 while(1) { display1(0x80,緯度 : )。 display1(0x88,經(jīng)度 : )。 if(IgpsWD==10) { if(IgpsJD==11) //顯示接收到的數(shù)據(jù) { display2(0x90, StrGpsWD[1],StrGpsWD[2])。 // 緯度 strcat(s1,s2)。連接字符串 s1,s2 display2(0x91, StrGpsWD[3],StrGpsWD[4])。 display2(0x92, StrGpsWD[5],StrGpsWD[6])。 display2(0x93, StrGpsWD[7],StrGpsWD[8])。 display2(0x94, StrGpsWD[9], )。 delay(100)。 display2(0x98, StrGpsJD[1],StrGpsJD[2])。 //經(jīng)度 display2(0x99, StrGpsJD[3],StrGpsJD[4])。 display2(0x9a, StrGpsJD[5],StrGpsJD[6])。 display2(0x9b, StrGpsJD[7],StrGpsJD[8])。 display2(0x9c, StrGpsJD[9],StrGpsJD[10])。 } delay(100)。 *P_Watchdog_Clear = 0x0001。 } } //串口接收中斷 void IRQ7(void)__attribute__((ISR))。 void IRQ7(void) 青島大學(xué)本科生畢業(yè)論文(設(shè)計) 22 { unsigned int ii。 ii=*P_UART_Command2。 iiamp。=0x0080。 if(ii==0x0080) { if(*P_UART_Data==0x52) //‘ R’區(qū)分指令 GPRMC { Recflag=1。 i=0。 IgpsWD=0。 IgpsJD=0。 Numa=0。 } if(Recflag==1) { if(*P_UART_Data==0x2c) //檢查逗號‘,’ Numa++。 if(Numa==3) { *StrGpsWD[IgpsWD]=*P_UART_Data。 IgpsWD++。 } if(Numa==5) { *StrGpsJD[IgpsJD]=*P_UART_Data。 IgpsJD++。 } if(*P_UART_Data==0x2a) //檢查‘ *’ { *StrGpsWD[IgpsWD]=39。\039。 *StrGpsJD[IgpsJD]=39。\039。 Recflag=0。 IgpsWD=0。 IgpsJD=0。 Numa=0。 *P_UART_Command2=0x0000。 delay(500)。 *P_UART_Command2=0x0080。 青島大學(xué)本科生畢業(yè)論文(設(shè)計) 23 } } }} //延時子程序 void delay(uint a) { while(a) *P_Watchdog_Clear = 0x0001。 } 分離提取得到的是分離的 ASCII 碼型的字符串,無法直接用于車輛位置的判斷。根據(jù)數(shù)字的 ASCII 碼值對應(yīng)表將它轉(zhuǎn)化數(shù)字并整合成整型或者浮點(diǎn)型式數(shù)值,此時可方便地與站點(diǎn)坐標(biāo)庫進(jìn)行簡單的數(shù)值比較運(yùn)算。 經(jīng)緯度坐標(biāo)的變化 1 秒約等于 30 米的距離,故設(shè)定以某站站牌為圓心, 半徑 60 米(即經(jīng)緯度約 2 秒)內(nèi)區(qū)域?yàn)樵撜咀鴺?biāo)范圍,當(dāng)車駛?cè)朐搱A形區(qū)域則產(chǎn)生到站信號;當(dāng)車駛離該區(qū)域則產(chǎn)生出站信號, 單片機(jī)發(fā)出聲音信號,通過外接揚(yáng)聲器實(shí)現(xiàn)語音報站 。 坐標(biāo)比較程序: pp=trs_data(StrGpsWD1)。 qq=trs_data(StrGpsJD1)。 //轉(zhuǎn)化為浮點(diǎn)型 while(TotalStop) { //坐標(biāo)比較 *P_Watchdog_Clear=0x0001。 if((fabs(ppstrWD[jj]))=2) { if((fabs(qqstrJD[jj]))=2) flag_in=1。 break。 } } ... 液晶顯示部分設(shè)計 C 系列中文模塊 顯示資料 RAM 顯示數(shù)據(jù) RAM 提供 64x2 個字節(jié)的空間,最多可以控制 4 行 16 字( 64 個字)的中文字型顯示,當(dāng)寫入顯示資料 RAM 時,可以分別顯示 CGROM, HCGROM 與 CGRAM 的字型;本系列模塊可以顯示三種字型,分 別是半寬的 HCGROM 字型、 CGRAM 字型及中文 CGROM 字型,三種字型的選擇,由在 DDRAM 中寫入的編碼選擇,在 0000H~ 0006H 的編碼中將選擇 CGRAM 的自定字型, 02H~ 7FH 的編碼中將選擇半寬英數(shù)字的字型,至青島大學(xué)本科生畢業(yè)論文(設(shè)計) 24 于 A1 以上的編碼將自動的結(jié)合下一個字節(jié),組成兩個字節(jié)的編碼達(dá)成中文字型的編碼BIG5( A140~ D75F) GB(A1A0~ F7FF),詳細(xì)各種字型編碼如下: 1. 顯示半寬字型:將 8 位資料寫入 DDRAM 中,范圍為 02H~ 7FH 的編碼。 2. 顯示 CGRAM 字型:將 16 位資料寫入 DDRAM 中,總共有 0000H, 0002H, 0004H,0006H 四種編碼。 3. 顯示中文字形:將 16 位資料寫入 DDRAM 中,范圍為 A140H~ D75FH 的編碼(BIG5) , A1A0H~ F7FFH 的編碼 (GB)。將 16 位資料寫入 DDRAM 方式為透過連續(xù)寫入兩個字節(jié)的資料來完成,先寫入高字節(jié)( D15~ D8)再寫入低字節(jié)( D7~ D0)。 顯示程序?qū)崿F(xiàn) void init_lcd(void) /*初始化程序 */ { *P_IOA_Buffer|=lcd_rst。 /*復(fù)位 */ *P_IOA_Bufferamp。=(~lcd_psb)。 /*選擇串口 */ lcd_delay(6)。 wr_lcd (m,0x30)。 /*30基本指令動作 */ wr_lcd (m,0x01)。 /*清屏,地址指針指向 00H*/ lcd_delay(100)。 wr_lcd (m,0x06)。 /*光標(biāo)的移動方向 */ wr_lcd (m,0x0c)。 /*開顯示,關(guān)游標(biāo) */ } void wr_lcd(unsigned int dat_m,unsigned int content)。/*向液晶發(fā)送字節(jié) 子程序 */ void display1(unsigned int addr,unsigned char *ch); /*在地址 addr顯示字符 子程序 */ 本文選取了青島市 125 路公交車從臺東到苗嶺路共 24 站作為默認(rèn)線路 。 各站站名表以字符串組的形式存儲(數(shù)組 str[24]存放站名表),并從臺東到苗嶺路依次編碼為 00H~23H,將其對應(yīng)站名在屏幕上顯示。 12864C液晶中文顯示模塊每屏最多可實(shí)現(xiàn) 32個中文字 符。字符顯示 RAM在液晶模塊中的地址為 80H~ 9FH。字符顯示的 RAM的地址與 32個字符顯示區(qū)域有著一一對應(yīng)的關(guān)系,其對應(yīng)關(guān)系如表 。 表 12864C液晶中文顯示模塊字符顯示地址 80H 81H 82H 83H 84H 85H 86H 87H 90H 91H 92H 93H 94H 95H 96H 97H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH 青島大學(xué)本科生畢業(yè)論文(設(shè)計) 25 SPR_Demo 的軟件設(shè)計 為了簡 單起見,主函數(shù)中使用按鍵方式選擇播放 A202 S480、錄音,函數(shù)流程如圖 所示: 在這里掃描鍵盤的操作在 128Hz 的時基中斷中進(jìn)行,在語音播放時按鍵無效。 A2021 語音播放函數(shù)設(shè)計: 由于語音資源存儲在外擴(kuò)存儲器 SPR4096 上,語音播放采用手動播放方式。手動語音播放,關(guān)鍵在于語音資源數(shù)據(jù)的獲取,需要得到語音資源的地址。下面分析一下剛剛燒錄文件的數(shù)據(jù)格式,如圖 : NOKey KEY3 KEY2 KEY1 判斷鍵值 開始 初始化 SIO 口 初始化鍵盤 得到鍵盤值 播 放A2000 格式語音 播放S480 格式語音 錄音放音 清看門狗 圖 主函數(shù)流程圖 青島大學(xué)本科生畢業(yè)論文(設(shè)計) 26 在上圖的前 4 個字節(jié)為 “SPRW”的 ASCII 碼,主要作用是標(biāo)識該芯片是通過 ResWriter工具燒錄的(詳細(xì)參考 ResWriter 工具使用說明書 ——索引表),接下來的 4 個字節(jié)為整合后資源的起始地址 00 00 00 6E(由于 SPR4096 的最大地址為 0x7ffff,所以使用 4 個字節(jié)標(biāo)識,即兩個字的長度),然后是整合后資源的結(jié)束地址。整合的概念,就是將
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1