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

正文內(nèi)容

基于gps和gprs的車載智能終端-searchreadpudncom-資料下載頁

2024-11-12 15:31本頁面

【導(dǎo)讀】以達(dá)到雙向控制。具體分析了Rockwell公司的“Jupiter”GPS接收機(jī)的內(nèi)部電。闡述了如何利用W77E58單片機(jī)模塊和GPS與GPRS模塊SIM100的串。達(dá)到對車輛的監(jiān)控,同時監(jiān)控中心也可以將必要的信息反饋給車載終端。在經(jīng)GPRS模塊傳送給監(jiān)控中心。軟件設(shè)計都是基于c51,使用keilc51開發(fā)環(huán)。境,編碼效率較高,程序容易理解。到重視,尤其是車載監(jiān)控系統(tǒng)越來越多地受到業(yè)界的關(guān)注。本文介紹了作者設(shè)計。該系統(tǒng)將GPRS、GPS技術(shù)相結(jié)合,利用GPRS的數(shù)據(jù)傳輸功能,實。全球定位系統(tǒng)GPS是由美國為高精

  

【正文】 用超級終端對其進(jìn)行 AT 控制,以下是超級終端配置的步驟說明: 步驟 1 建立連接 在 WIDOWS 操作環(huán)境下,運行附件中超級終端程序,為新建的連接起一個名字(如: ITM100),并選擇相應(yīng)圖標(biāo),完成后單擊確定,對新建的連接進(jìn)行配置。 步驟 2 參數(shù)設(shè)置 29 首先選擇國家代碼和輸入你所在地區(qū)的長途區(qū)號,在選擇串口時請注意,務(wù)必選擇和 無線模塊相連的數(shù)據(jù)電纜所連接的 PC 串口。 步驟 3 端口配置 每秒位數(shù)設(shè)為 115200,數(shù)據(jù)位為 8,關(guān)閉奇偶校驗,數(shù)據(jù) 流控制采用硬件方式,停止 位為 1。選擇“確定”之后即可通過 AT 命令對模塊進(jìn)行控制 說明: 在 GPRS 數(shù)據(jù)傳輸模式下, TE(應(yīng)用設(shè)計 )發(fā)送 +++給 TA(模塊 )可以暫停數(shù)據(jù)傳輸,進(jìn) 入 AT 命令模式。然后通過 ATO 命令返回數(shù)據(jù)傳輸模式,重新啟動數(shù)據(jù)傳輸。 (4)SIM100 模塊與遠(yuǎn)端監(jiān)控中心的通信 通信的主要任務(wù)是通過使用 SIM100 模塊向監(jiān) 控中心發(fā)送本地 信息,在故障的緊急情況下發(fā)送緊急信息,同時接受管理中心的信息。通過使用 SIM100 模塊的AT 指令集 ,來傳送數(shù)據(jù)。 。 30 第四章:系統(tǒng) 軟件設(shè)計 軟件設(shè)計分析 車載系統(tǒng)的初始化主要包括 GPS 模塊的初始化, GPRS 模塊的初始化。 GPS的初始化主要是設(shè)置接收數(shù)據(jù)的模式,系統(tǒng)初始化完畢后,程序進(jìn)入到循環(huán)等待中斷階段,當(dāng)有外部中斷和串口中斷時進(jìn)行相應(yīng)的中斷處理。 8251 引起外部中斷時,進(jìn)入相應(yīng)的中斷處理程序,由于 NMEA- 0183 協(xié)議的每一條語句均已字符‘ $’開始,因此只要斷收到的第一個字符是否是‘ $’,將收到的數(shù)據(jù)進(jìn)行校驗,讀出需要的定位信息。中心處理單元單片機(jī)芯片 W77E58 將接收到的有用信息進(jìn)行處理后通過超級終端的 AT 命令經(jīng)由 GPRS 網(wǎng)絡(luò)傳送給遠(yuǎn)端的監(jiān)控中心,當(dāng) GPRS 觸發(fā)串口中斷時,進(jìn)入串口中斷服務(wù)程序,判斷是讀取信息還是發(fā)送信息,如果是發(fā)送,則將要發(fā)送的信息打包成 E5112 所規(guī)定的幀格式發(fā)送出去,如果是讀取,則對收到的信息進(jìn)行解釋,執(zhí)行相應(yīng)的操作 。軟件設(shè)計是基于 keilc51的軟件編程,下面簡單的介紹一下該開發(fā)環(huán)境。 Keil C51 是美國 Keil Software公司出品的 51 系列兼容單片機(jī) C 語言軟件開發(fā)系統(tǒng),與匯編相比, C 語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。 Keil C51 軟件提供豐富的庫函數(shù)和 功能強(qiáng)大的集成開發(fā)調(diào)試工具,全 Windows 界面。 另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到 Keil C51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。 C51工具包 中 uVision與 Ishell分別是 C51 for Windows 和 for Dos 的集成開發(fā)環(huán)境 (IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用 IDE 本身或其它編輯器編輯 C 或匯編源文件。然后分別由 C51 及 A51 編譯器編譯生成目標(biāo)文件 (.OBJ)。目標(biāo)文件可由 LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng) L51 連接定位生成絕對目標(biāo)文件(.ABS)。 ABS 文件由 OH51 轉(zhuǎn)換成標(biāo)準(zhǔn)的 Hex 文件,以供調(diào)試器 dScope51 或tScope51 使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也 31 可以直接寫入程序存貯器如 EPROM 中。 程序流程圖 開始P0、PPP3置位開始延時定時器0、1初始化串行口初始化開定時器0和串行口1中斷開串行口1接受數(shù)據(jù)開定時器2和串行口2中斷開串口2發(fā)送數(shù)據(jù)Y接收完畢Y發(fā)送完畢NYN 32 整個串行通信的程 序如下: include //特殊寄存器的頭文件,專供 8051 擴(kuò)展系列的單片機(jī)使用 include //I/O 庫文件原型聲明 void initial(void)。 //初始化子程序的聲明 void send(char *,int)。 //發(fā)送子程序的聲明 int rev(int)。 //接收子程序的聲明 Bit send_flag=0。 //發(fā)送標(biāo)志 Unsigned char bdata serial_byte=0。 //串行口標(biāo)志 位定義字節(jié) Sbit Sflag=serial_byte^0。 //串行接收頭部標(biāo)志, 8 個都定義在 serial_byte 內(nèi) Sbit Sflag=serial_byte^1。 Sbit Sflag=serial_byte^2。 Sbit Sflag=serial_byte^3。 Sbit Sflag=serial_byte^4。 Sbit Sflag=serial_byte^5。 Sbit Sflag=serial_byte^6。 Sbit Sflag=serial_byte^7。 Unsigned char idata serial_buff[77]。 //串行接收緩沖 Unsigned char serial_counter。 / /串行計數(shù)器 //串行接收 gps 數(shù)據(jù)程序如下 ,程序的流程圖如下 : 開 始串 口 1 初始 化串 口 1 中 斷 接 收“ $ G P G G A ” 語 句正 確 接 收到 ?通 知 串 口 2 發(fā)送 數(shù) 據(jù)YN 33 程序解釋如下 : 由于 NMAE 0183 數(shù)據(jù)格式以 ”$”符號開頭 ,此程序接收的是 GPGGA數(shù)據(jù) ,所以接收程序主要是判斷頭六個字節(jié)依次是 GPGGA,如果是則正確接收數(shù)據(jù)到緩沖寄存器 ,如果不正確 ,則 丟棄數(shù)據(jù) ,重新接收 ..程序首先對串口 1 進(jìn)行初始化 ,然后對數(shù)據(jù)進(jìn)行判斷 ,依次判斷數(shù)據(jù)的前六位 ,分別是 GPGGA,如果正確 ,就接收數(shù)據(jù) ,等待接收完畢 ,如果接收到 *,則接收完畢 ,通知串口 2 等待發(fā)送數(shù)據(jù) ,如果不正確則接著接收 ,知道接收到 *為止 . Void serial() interrupt 4 using 2 {uchar pp。 RI=0。 pp=SBUF。 if(ENflag==1) //串口接收完畢,可以進(jìn)行顯示,請標(biāo)志位重新開始 { disp_flag=1。 Serial_byte=0。 } Else if(DEflag==1) //“ $GPGGA”頭判斷完畢,開始接收 ”$GPGGA”語句的數(shù)據(jù) { if(pp==42) ENflag=1。 //等待受收到 *結(jié)束接收 Else { serial_buff[serial_counter]=pp。//沒收到 *,繼續(xù)接收數(shù)據(jù)放入串口緩沖 Serial_counter++。 } } Else if(ANflag==1) //第 6 個為 A,判斷的 7 個是不是“,” { if(pp==44) DEflag=1。// 第 7 個為“,”,開始接收“ $GPGGA,”語句的數(shù)據(jù) Else Serial_byte=0。//不是“,”清除標(biāo)志位 } 34 Else if(G3flag==1) //第 5 個為 G,判斷的 6 個是不是 A { if(pp==65) Aflag=1。 //第 6 個為 A,判斷的下一個是不是 ”,” Else Serial_byte=0。 //不是 A,清除標(biāo)志位 } Else if(G2flag==1) //第 4 個為 G,判斷的 5 個是不是 G { if(pp==71) G3flag=1。 /第 5 個為 G,判斷的下一個是不是 A Else Serial_byte=0。 //不是 G,清除標(biāo)志位 } Else if(Pflag==1) //第 3 個為 P,判斷第 4 個是不是 G { if(pp==71) G2flag=1。 /第 4 個為 G,判斷的下一個是不是 G Else Serial_byte=0。 //不是 G,清除標(biāo)志位 } Else if(G1flag==1) //第 2 個為 G,判斷第 4 個是不是 P { if(pp==80) Pflag=1。 /第 3 個為 P,判斷的下一個是不是 G Else Serial_byte=0。 //不是 P,清除標(biāo)志位 } Else if(Sflag==1) //第 1 個為 $,判斷第 4 個是不是 G { if(pp==71) G2flag=1。 /第 2 個為 G,判斷的下一個是不是 P Else 35 Serial_byte=0。 //不是 G,清除標(biāo)志位 } Else if(pp===ox24) //判斷第一個是不是 $ {Sflag=1。 // 第 1 個為 $,判斷下一個是不是 G Serial_counter=0。 //串行計數(shù)器清 0 情 } } 下面是單片機(jī)通過串口由 GPRS 模塊將接收的數(shù)據(jù)出傳送給監(jiān)控中心 首先定義一些外部數(shù)據(jù)存儲單元 ,即定義一些關(guān)于 AT 命令的數(shù)組 ,然后定義了一些子程序 ,包括 初始化子程序 ,延時子程序 ,發(fā)送和接收子程序 ,以及接收的返回句柄子程序 char xdata doc1[19]=AT+IISP1=*99***1\r\n。 // 以下為基本設(shè)置 char xdata doc2[25]=AT+IDNS1=\r\n。 char xdata doc3[14]=AT+IUSRN=WAP\r\n。 char xdata doc4[13]=AT+IPWD=WAP\r\n。 char xdata doc5[33]=AT+IMIS=\AT+CGDCONT=1,IP,CMNET\\r\n。 char xdata doc6[11]=AT+IXRC=0\r\n。 char xdata doc7[12]=AT+IMTYP=2\r\n。 char xdata doc8[30]=AT+ISTCP:,2024\r\n。 // 以下為SOCKET 設(shè)置 char xdata doc9[22]=AT+ISSND%:xxx,6:socket 。 char xdata doc10[13]=AT+ISST:xxx\r\n。 char xdata doc11[14]=AT+ISRCV:xxx\r\n。 char xdata doc12[12]=AT+ISCLS:xxx 。 char mes[44]=AT+ISTCP:,2024\r\nI/000\r\n,temp。 int i。 36 void delay(int s) //延時子程序 {int i。 for (i=s。i0。i) {}。 } void sok() //接收返回的句柄子程序 { int i。 for (i=0。i3。i++) {doc9[10+i]=mes[32+i]。 doc10[8+i]=mes[32+i]。 doc11[9+i]=mes[32+i]。 doc12[9+i]=mes[32+i]。 } } 以下為主程序 ,首先執(zhí)行初始化程序 ,初始化程序在 下面已介紹 ,然后發(fā)送必要的AT命令 ,與遠(yuǎn)端的監(jiān)控中心建立連接 ,建立連接后發(fā)送數(shù)據(jù) ,直到發(fā)送完畢 . void main(void) //主程序 { initial()。 while (1) { if( send_flag) { send(doc1,19)。 //發(fā)送 ISP 碼 }while(!rev(28))。 P1=0x00。 do { 37 send(doc2,25)。 //發(fā)送 DNS 服務(wù)器地址碼 }while(!rev(35))。 do { send(doc3,14)。 //發(fā)送用戶名 }while(!rev(24))。 do { send(doc4,13)。 //發(fā)送用戶密碼幀 }while(!rev(20))。 do { send(doc5,33)。 //發(fā)送初始化命令 }while(!rev(42))。 do { send(doc6,11)。 //發(fā)送擴(kuò)展碼 }while(!rev(20))。 do { send(doc7,12)。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1