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

正文內(nèi)容

畢業(yè)設(shè)計---單片機控制的gps定位系統(tǒng)設(shè)計(編輯修改稿)

2025-01-07 23:40 本頁面
 

【文章內(nèi)容簡介】 struction(unsigned char)。 //寫指令 void LCD_set_position(unsigned char)。 //設(shè)置光標位置 void LCD_initial(void)。 //LCD1602 初始化 void LCD_printc(unsigned char)。 //輸出單個字符 void LCD_prints(unsigned char *)。//輸出字符串 void LCD_log(void)。//開機信息顯示 void LCD_show(void)。//信息顯示 void delay(unsigned char)。//延時 N Y 進入中 斷 清除接收中斷標志 位 退出中斷 數(shù)據(jù)格式判斷 不符合 置標志位 符合 數(shù)據(jù)接收 標志位 0 1 數(shù)據(jù)接收完畢 清除標志 單片機控制的 GPS 定位系統(tǒng)設(shè)計 10 3. 3 硬件連接設(shè)置 define LCD_DATA P2 //LCD 的數(shù)據(jù)口 define LCD_BUSY LCD_DATA^7。 //LCD 忙信號位 sbit LCD_RS=P2^0。 //LCD 寄存器選擇 sbit LCD_RW=P2^1。 //LCD 讀寫控制 sbit LCD_EN=P2^2。 //LCD 使能信號 ○1寄存器選擇位 RS,當 RS=1 時選擇數(shù)據(jù)寄存器 DDRAM。 當 RS=0 時選擇指令寄存器 CDRAM。 ○2讀寫選擇位 RW,當 RS=1 時讀數(shù)據(jù)寄存器。 當 RS=0 時寫數(shù)據(jù)或指令到寄存器。 ○3讀寫使能信號 EN,當 EN=1 時讀取數(shù)據(jù)。 當 EN為下降沿是為寫數(shù)據(jù)或指令。 檢測 LCD 是否在處理其它數(shù)據(jù)而處于忙狀態(tài)時,則讀取忙狀態(tài)信號位,當 RS=0,RW=1, E=1 時, LCD 會輸出八位數(shù)據(jù),其中最高位 DB7 為忙狀態(tài)位( LCD_busy_flag),若為 1,表示 LCD 處于忙狀態(tài),為 0 表示 LCD 空閑。 3. 4 LCD 顯示工作方式 /******* 初始化 LCD ********/ void LCD_initial(void) { LCD_write_instruction(LCD_DISPLAY_DOUBLE_LINE)。 //單行顯示, 4 數(shù)據(jù)線 LCD_write_instruction(LCD_AC_AUTO_INCREMENT | LCD_MOVE_DISENABLE)。 //光標自動 +1,關(guān)閉自動移動顯示 LCD_write_instruction(LCD_DISPLAY_ON | LCD_CURSOR_OFF | LCD_CURSOR_BLINK_OFF)。//顯示開、光標顯示關(guān)、光標閃爍關(guān) LCD_cls( )。//清屏 } 3. 5 系統(tǒng)主程序 /************************************/ void main() { TMOD=0x20。//初始化串口 TL1 =0xfa。 TH1 =0xfa。//4800 波特率 單片機控制的 GPS 定位系統(tǒng)設(shè)計 11 SCON=0x50。//工作方式 1:八位異步通信,允許接收 PCON=0x00。//波特率加倍關(guān) IE=0x90。//打開總中斷 EA,和串行口中斷 ES TR1=1。//開啟啟動 定時器 1 LCD_initial( )。//LCD1602 初始化 LCD_log( )。//顯示開機信息 while(1) { LCD_show( )。 }//除了數(shù)據(jù)接收狀態(tài),一直處理顯示 } ○1在串口通信中需要設(shè)置串口通信的數(shù)據(jù)傳輸速度,及波特率,設(shè)置定時器的溢出率即可,晶振為 11。 0592MHz,當 TL1 =0xfa。, TH1 =0xfa時為 4800kbps 波特率。計算公式為: T0 初值 X=2N - 機周時間定時時間 Xf ???? 256 12/X256T1 os c計數(shù)速率的溢出率定時器 )256(12322S M O DXf os c ????波特率 ○2TMOD 特殊功能寄存器為定時器計數(shù)器工作方式寄存器,前四位控制定時器 1,后四位控制定時器 0;本設(shè)計采用定時器 1,工作方式 2(八位自動重裝載, N=8), ○3SCON 為串行口數(shù)據(jù)通信控制特殊寄存器,高三位為工作方式控制位,本設(shè)計采用工作方式 1, 8位數(shù)據(jù)異步通信。 D4 位為接收允許控制位,本設(shè)計要采用串行口中斷接收 GPGGA 數(shù)據(jù),所以該為置 1。 ○4IE 為中斷允許控制特殊寄存器,本設(shè)計要打開串行口中斷和總中斷。 3. 6 數(shù)據(jù)接收程序 /*****************串行口中斷子程序 **************************/ ○1 RI=0。//軟件清除中斷標志位,串行口中斷需要軟件清零,去除中斷標志 ○2 進入中斷過后要先判斷接收數(shù)據(jù)的格式,否則會出現(xiàn)亂接收數(shù)據(jù),出現(xiàn)接收到的數(shù)據(jù)不對的問題,先判斷是否接收到 GPGGA 格式語句的第 一個字符“ $” ,其ASCII 碼為 0x24,收到后,繼續(xù)判斷格式是不是為 GPGGA,分五次中斷判斷,如果是,單片機控制的 GPS 定位系統(tǒng)設(shè)計 12 開始記錄數(shù)據(jù)并設(shè)置記錄標志( read_start),否則退出數(shù)據(jù)接收中斷,程序設(shè)計如下: if(SBUF==39。$39。)//判斷是不是 39。$39。符號 { flag1=1。//接收到 ’ $’ ,起始字符 igps=0。//記錄緯度數(shù)據(jù)字符數(shù)量的變量 Num_ma=0。//記錄逗號數(shù)量的變量 } else flag1=0。 if((SBUF==39。G39。)amp。(flag1==1))flag2=1。 else flag2=0。 if((SBUF==39。P39。)amp。(flag2==1))flag3=1。 else flag3=0。 if((SBUF==39。G39。)amp。(flag3==1))flag4=1。 else flag4=0。 if((SBUF==39。G39。)amp。(flag4==1))flag5=1。 else flag5=0。 if((SBUF==39。A39。)amp。(flag5==1))read_start=1。//開始接收數(shù)據(jù) else read_start=0 ○3 通過上述格式判斷后,說明接下來的數(shù)據(jù)就是所需要的 GPGGA 格式數(shù)據(jù),然后選擇所需要的數(shù)據(jù)接收并存到緩存區(qū),每個數(shù)據(jù)都是以逗號隔開的,我們只需要判斷該逗號是第幾個逗號就可以知道后面來的數(shù)據(jù)是表示說明含義。程序設(shè)計如下 if(read_start==1)//開始接收 GPGGA 中的數(shù)據(jù)信息 , { (SBUF==39。,39。) //利用 GPRMC 數(shù)據(jù)中的逗號間隔,區(qū)分接收到 //的數(shù)據(jù)表示的信息 { Num_ma++。 }//記錄逗號個數(shù),標志數(shù)據(jù)的意義 if(Num_ma==1) //接收時間,時分秒格式 { data_temp[igps]=SBUF。 igps++。 }//接收到的數(shù)據(jù)個數(shù)加 1 單片機控制的 GPS 定位系統(tǒng)設(shè)計 13 if(Num_ma==2)//接收接收緯度, { data_temp[igps]=SBUF。 igps++。 } if(Num_ma==4)//接收經(jīng)度, 格式 { data_temp[igps]=SBUF。 igps++。 } if(Num_ma==10)//海拔高度: 0— { if(SBUF!=39。M39。) //為節(jié)約 RAM 空間,不接收 ’ M’ 字符 data_temp[igps]=SBUF。 igps++。 } ○4 判斷這一幀數(shù)據(jù)是否接收完畢,每一個數(shù)據(jù)格式都是以 * 符號結(jié)束的,當接收到 * 號時表示這一幀數(shù)據(jù)已經(jīng)發(fā)送完畢。程序設(shè)計如下: if(SBUF==’ *’ )//判斷是否收到 GPRMC 格式語句的字符“ *”, //如果是,則表示接收完畢,開始處理 { for(i=0。iigps。i++) { data_temp[igps]=dis_temp[igps]。 }//數(shù)據(jù)放到顯示緩沖區(qū) //返回初值 。標識結(jié)束一次接收完畢 read_start=0。 Num_ma=0。 igps=0。 } 4 調(diào)試及性能分析 一個單片機系統(tǒng)經(jīng)過總體設(shè)計,在允許的條件下,根據(jù)本設(shè)計系統(tǒng)的需求性首單片機控制的 GPS 定位系統(tǒng)設(shè)計 14 先采用在 PC機上用模擬 開發(fā)軟件進行檢測和調(diào)試,再進行硬件的組裝與調(diào)試。 4. 1 軟件調(diào)試 軟件調(diào)試采用 Proteus 、操作系統(tǒng) Windows xp,在 PC 機上對目標電路原理圖和程序進行檢測和調(diào)試 。 4。 1。 1 目標程序糾錯 圖 41 目標程序調(diào)試 4. 1. 2 子程序功能調(diào)試 程序設(shè)計通常采用模塊程序設(shè)計,調(diào)試時可對一個個子程序分別進行調(diào)試,設(shè)置好入口條件,然后采用單步運行或斷點運行方式,檢查系統(tǒng) CPU現(xiàn)場、 RAM 和 I/O口狀態(tài),看程序執(zhí)行結(jié)果符合設(shè)計要求。 單片機控制的 GPS 定位系統(tǒng)設(shè)計 15 圖 42 子程序 功能 調(diào)試 分步編譯 C51 程序,通過一系列 的調(diào)試,驗證各個子程序的正確性。并從項目工程的角度綜合調(diào)試,調(diào)試整個項目 ,如圖 43 所示: 圖 43 生成 HEX文件 單片機控制的 GPS 定位系統(tǒng)設(shè)計 16 在調(diào)試成功順利編譯之后,通過一系列設(shè)置,生成 HEX 目標文件, 44所示: 圖 44 生成 HEX文件 4. 1. 3 整體程序綜合調(diào)試 即把各子程序整體連起來進入到綜合電路調(diào)試,能實現(xiàn)預計的功能顯示 。 單片機控制的 GPS 定位系統(tǒng)設(shè)計 17 圖 45整體測試 用軟件仿真調(diào)試和修改完畢,下一步焊接硬件進行硬調(diào)試。 圖 46 運行仿真電路 單片機控制的 GPS 定位系統(tǒng)設(shè)計 18 4. 2 硬件調(diào)試 焊接硬件,檢查線路連接正確無誤。 硬件調(diào)試環(huán)境,電源輸入 220V 交流 電,輸出 4。 98V直流電,給電路板接通 4。98V 直流電源。 調(diào)試過程如以下幾圖所示。 在 7號樓 6 樓的計算機硬件實驗室里,借助實
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1