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

正文內容

基于gps的四旋翼飛行器的設計(編輯修改稿)

2025-07-19 00:25 本頁面
 

【文章內容簡介】 義:字段0:$GPRMC,語句ID,表明該語句為Remended Minimum SpecificGPS/TRANSIT Data(RMC)推薦最小定位信息字段1:UTC格林威治時間,格式是 hh mm 字段2:狀態(tài),A代表定位,V代表未定位字段3:緯度,度分格式位數(shù)不足就補上0字段4:緯度S即南緯,緯度N即北緯字段5:經(jīng)度,度分格式位數(shù)不足是就補上0字段6:經(jīng)度E即東經(jīng),經(jīng)度W即西經(jīng)字段7:速度,節(jié),Knots字段8:方位角,單位為度字段9:UTC格林威治日期,格式為DDMMYY字段10:磁偏角,(000180)度,位數(shù)不足就補上0字段11:磁偏角方向,W代表西E,代表東字段12:數(shù)據(jù)校驗值GPS接收機只要上電并處于工作狀態(tài),就會循環(huán)不停地把接收并計算GPS導航定位信息,并由串行接口傳送給單片機。GPS模塊處理后并發(fā)送的數(shù)據(jù)主要由幀頭,幀尾以及幀內數(shù)據(jù)組成。根據(jù)幀頭不同,采集需要的幀數(shù)據(jù),幀頭主要有$GPGGA、$GPGSA、$GPGSV以及$GPRMC,這些幀頭表示后續(xù)幀內數(shù)據(jù)的內容,每一幀數(shù)據(jù)都用回車符和換行符作為幀尾來表示一幀數(shù)據(jù)內容的結束。這些發(fā)送出到的數(shù)據(jù)要在分類提取后才能加以利用??梢酝ㄟ^SWITCH(CASE)語句按次序將各個幀數(shù)據(jù)信息從提取出來存入建立的數(shù)組中,將其轉換成有需要的、并可使用的定位信息數(shù)據(jù)。一般來說,我們常用的定位數(shù)據(jù)如經(jīng)緯度、速度以及時間等都可以從$GPGGA幀中獲得。而對于時間信息,因為從GPS接收機中獲得的時間信息為格林威治時間,還要在獲取時間上加上8小時才能得到準確的北京時間。數(shù)據(jù)和數(shù)據(jù)處理流程圖如下圖所示:圖31 GPS數(shù)據(jù)讀取流程圖 LCD模塊11264點陣液晶LCD顯示原理:在數(shù)字電路中所有的數(shù)據(jù)都是通過二進制的0和1保存。對于顯示ACSII碼字符顯示的操作,由于ACSII碼字符種類很少,只需要8位就可以表示。而對于中文來說,常用就有6000個字以上,于是就有DOS程序員將ASCII表里很少用到的的高128位以兩個為一組來表示漢字,這就是所說的漢字內碼。而剩下的低128位用來顯示英文字符,即英文內碼。當然,只得到漢字和英文字符的內碼還不能將這些字符顯示在液晶屏幕上,這涉及到字符字模的建立,字模雖然也是一組數(shù)字,但是它的意義卻與數(shù)字的意義有根本的不同,它是用數(shù)字的各個位的信息來表示英文字符或中文字符的形狀,如英文的39。A39。在字模的記載方式如圖1所示:圖32英文字符顯示而中文“你”在字模中的記載如下圖所示:圖33漢字顯示11264的內部器件和相關功能如下:(1) DFF,即顯示控制觸發(fā)器:此觸發(fā)器是用于控制模塊屏幕顯示的開關。DFF置高時為顯示打開,命令為DISPLAY ON,DDRAM的內容可以在屏幕上顯示;DFF置低時為顯示關閉,命令為DISPLAY OFF。DDF的狀態(tài)由指令DISPLAY ON和DISPLAYOFF以及RST復位信號控制的。(2) 忙標志BF:BF標志表示內部的工作情況。BF為高電平時表示模塊正在進行內部數(shù)據(jù)操作,此時模塊在忙狀態(tài),不會被接受外部指令和數(shù)據(jù)所影響。BF為低電平時,模塊為待機狀態(tài),隨時可接受外部指令和數(shù)據(jù)控制。(3) 顯示數(shù)據(jù)存儲器,即DDRAM:DDRAM置高電平時是代表顯示是選擇的,DDRAM置低電平時代表顯示是非選擇的。同時,DDRAM也可以用來存儲一些圖片的點陣模。(4) Z地址計數(shù)器:這是一個用指令DISPLAY START LINE預置的6位地址計數(shù)器。此計數(shù)器可以循環(huán)記數(shù),用于顯示行掃描同步。當完成一行掃描時,這個地址計數(shù)器將加上一,這是指針將指向加一后的地址,也就是下一行地址。RST復位時Z地址計數(shù)器將會被清0。所以,DISPLAY START LINERST指令將控制顯示屏幕的起始行顯示,也就是DDRAM里的顯示數(shù)據(jù)從哪一行開始在屏幕的第一列進行顯示輸出。這個11264LCD液晶模塊的DDRAM一共有64行,也就是說屏幕有64行可以顯示液晶點。(5) XY地址計數(shù)器:X地址計數(shù)器是一個9位計數(shù)器,不能計數(shù),只有Y地址計數(shù)器可以循環(huán)記數(shù)。只能用指令設置X地址計數(shù)器是高3位,Y地址計數(shù)器是低6位。XY地址計數(shù)器其實也就是DDRAM的地址指針,X地址計數(shù)器是DDRAM的指針X,Y地址計數(shù)器是DDRAM的地址指針Y。各顯示數(shù)據(jù)輸入LCD后,Y地址自加1,Y地址指針從0加到63。因為我們現(xiàn)在需要的漢字量很少,所以可以使用一些字模提取軟件自己制作所需的字模。如下圖:圖34漢字字模建立在選項中選擇C51格式,陰碼以及逆向列行式:圖35字模設置并將建立的漢字字模以數(shù)組的形式存放字庫頭文件中:code unsigned char Char_data_1[]={0x10,0x60,0x02,0x0C,0xC0,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x7C,0x03,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x00,/*江,0*/0x04,0x04,0xE4,0x24,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x24,0xE4,0x04,0x04,0x00,0x80,0x80,0x43,0x22,0x12,0x0E,0x02,0x02,0x02,0x7E,0x82,0x82,0x83,0x80,0xE0,0x00,/*克,1*/0x10,0x10,0xD0,0xFF,0x90,0x10,0xE4,0x24,0x64,0xA4,0x3F,0xA4,0x64,0x24,0xE4,0x00,0x04,0x03,0x00,0xFF,0x00,0x01,0xFF,0x00,0x09,0x09,0x7F,0x09,0x49,0x80,0x7F,0x00}/*楠,2*/在主函數(shù)中定義一個指針p,指向頭文件中的數(shù)組,即p=Char_data_1。再調用如下子程序輸出漢字:void disp_char_Chinese(unsigned char Y,unsigned char X,unsigned char*ptr,unsigned char char_count){unsigned char Cl_addr,i,n。Cl_addr=X*8。for(n=0。nchar_count。n++){Write_LCD_cmd(0x11+(Cl_addr4))。//輸入列地址Write_LCD_cmd(0x04+(Cl_addramp。0x0f))。Write_LCD_cmd(0xb0+Y*2)。//寫入低8位部分數(shù)據(jù)for(i=0。i16。i++)Write_LCD_dat(*ptr++)。Write_LCD_cmd(0x11+(Cl_addr4))。//輸入列地址Write_LCD_cmd(0x04+(Cl_addramp。0x0f))。Write_LCD_cmd(0xb0+Y*2+1)。//寫入高8位部分數(shù)據(jù)for(i=0。i16。i++) Write_LCD_dat(*ptr++)。Cl_addr+=16。//將列地址增量}}圖36自動生成ASCII碼生成的字模選取需要的部分存入字庫頭文件中:圖37字模存入數(shù)組字模從“空格”建立到小寫“z”,由以下子程序輸出對應的ASCII碼:void disp_char_ASCII(unsigned char Y,unsigned char X,unsigned char a[],unsigned char char_count){unsigned char Cl_addr,i,n。unsigned char*p=0。char x=0。Cl_addr=X*8。for(n=0。nchar_count。n++){x=a[n]0x20。p=ASC_4+x*16。Write_LCD_cmd(0x11+(Cl_addr4))。//輸入列地址Write_LCD_cmd(0x04+(Cl_addramp。0x0f))。Write_LCD_cmd(0xb0+Y*2)。//寫入低8位部分數(shù)據(jù)for(i=0。i8。i++) Write_LCD_dat(*p++)。Write_LCD_cmd(0x11+(Cl_addr4))。//輸入列地址Write_LCD_cmd(0x04+(Cl_addramp。0x0f))。Write_LCD_cmd(0xb0+Y*2+1)。//寫入高8位部分數(shù)據(jù)for(i=0。i8。i++) Write_LCD_dat(*p++)。Cl_addr+=8。//將列地址增量}}因為字庫的第一個數(shù)組是空格,即0x20,所以進入該子程序的數(shù)組減去0x20,即可指向ASCII碼字庫對應的英文字符。2個按鍵實現(xiàn)翻頁,記錄坐標等功能,按鍵分為k1和k2具體定義如下:短按k1:進入時間顯示界面(Flag=1)。短按k1→短按k1:進入測量距離界面(Flag=2)。短按3次k1:回到主界面(Flag=0)。短按k2→短按k1:記錄當前坐標作為導航目的地(Flag=4)。短按k2→短按k1→短按k2:開始以記錄的目的地導航(Flag=5)。短按k2→短按k1→短按k2→長按k2:退出導航,回到主界面(Flag=0)。短按2次k2后回到主界面(Flag=0)。(當Flag=3時,在顯示函數(shù)中將flag清零)。圖38按鍵程序流程圖將目標點的經(jīng)緯度存入數(shù)組,并實時將接收到的當前經(jīng)緯度與數(shù)組中的值進行比較,控制飛行器前進后退、或左飛右飛和45176。斜飛。圖39導航流程圖由于沒有裝載電子羅盤,只能人工將飛行器起飛時的方向朝北。若目標點在起飛點的右上方,則先45176。斜向飛至目標點正下方或正左方,再前飛或右飛至目標點。圖410單個目標點的行走方向當設置多個目標點是,可近似直線飛至目標點,目標點設置越多則直線越平滑。圖311多個目標點的行走方向4數(shù)據(jù)傳輸在實物電路板上,LCD采用I2C方式。GPS模塊的RXD與TXD接單片機的RXD和TXD。 I2C總線在LCD上的應用本文采用的11264點陣液晶顯示屏即采用I2C通信方式,只需要兩根線就能傳輸數(shù)據(jù),極大減少了LCD對單片機端口的占用。 I2C總線簡介I2C總線是一種簡單且雙向二線制同步的串行總線,由Philips公司開發(fā)。它是同步通信的一種特殊形式,具有接口線少,方式控制簡單,器件封裝小,通信速率較高等優(yōu)點。它只需要串行時鐘線(SCL)和串行數(shù)據(jù)線(SDA)這兩條線即可在連接于總線上的器件之間傳送信息,也是微電子通信控制領域采用極廣泛的一種總線標準。 I2C總線特征(1) 沖突檢測和仲裁可以防止數(shù)據(jù)不完整;(2) 只需要兩條總線:一條為串行時鐘信號線SCL,一條為串行數(shù)據(jù)信號SDA;(3) 連接到總線的每個器件都能夠由的設定的主從機關系和唯一的硬件地址來設置它的軟件地址,主機也能作主機接收裝置和主機發(fā)送裝置;(4) 它是一個可以實現(xiàn)多主機通信的總線,即使超過2臺主機在同一時刻進行初始化,也可以通過仲裁的方式進行數(shù)據(jù)傳遞;(5) 在標準模式下,8位串行的雙向數(shù)據(jù)傳輸位可達到大約100kbit/s的速率,在快速模式下可以達到400kbit/s,;(6) 最大電容400pF限制了連接到相同總線的IC數(shù)量。 I2C總線相關術語發(fā)送器:向總線的器件發(fā)送元件;接收器:接收從總線發(fā)來的數(shù)據(jù)的元件;主機:可以發(fā)送和產(chǎn)生時鐘信號以及終止發(fā)送的初始化元件;多主機:同時有多于一個主機嘗試控制總線但不破壞傳輸;仲裁:當多個主機嘗試同時控制總線時使控制總線只被允許一個并使數(shù)據(jù)在傳輸過程中保持完整的過程;同步:連接的元件對時鐘信號進行同步的過程; I2C總線位傳輸I2C總線上連接的元件有著不同類型的制造工藝,如NMOS、CMOS以及雙極性等,邏輯0(低電平)和邏輯1(高電平)并不固定的,它由電源VCC的以及相關的電平?jīng)Q定,每次總線上傳輸一位數(shù)據(jù)位就會有產(chǎn)生一個時鐘脈沖。數(shù)據(jù)有效性SDA線上的數(shù)據(jù)必須在時鐘信號的高電平周期保持穩(wěn)定。數(shù)據(jù)線的高或低電平狀態(tài)只有在SCL線跳變到低電平時才能變化。圖41數(shù)據(jù)有效性起始和停止的條件SCL線電平為高時,SDA線從高電平向低電平跳變,這個情況表示數(shù)據(jù)起始條件;SCL線電平為低時,SDA線由低電平向高電平跳變,這個情況表示數(shù)據(jù)停止條件。圖42起始和停止條件一般由主機產(chǎn)生起始和停止條件,總線在起始條件后就被定義為處在忙狀態(tài),在達到停止條件的一段時間后就可以將總線定義為處于空閑狀態(tài)??偩€會一直處于忙狀態(tài)如果重復地產(chǎn)生起始條件卻不去產(chǎn)生停止條件,此時在功能上,重復起始條件(Sr)和起始條件(S)可以被認定為是一樣的。 I2C總線數(shù)據(jù)傳輸數(shù)據(jù)發(fā)送的格式SDA線上必須發(fā)送8位的字節(jié)數(shù)據(jù),每個字節(jié)后跟上一個響應位,每次傳輸發(fā)送的字節(jié)數(shù)量的多少卻沒有被限定。首先是數(shù)據(jù)的最高位(MSB)送往主機,也就是單片機,如果從機,即LCD11264要完成一些其他功能后,然后才能接收或發(fā)送下一個完整的數(shù)據(jù)字節(jié),也可以將時鐘線SCL置為低電平,強行將主機進入等待狀態(tài),當從機可以接收數(shù)據(jù)的時候軟件置高SCL時鐘線,然后接收下個字節(jié)數(shù)據(jù)。應答響應響應是傳輸數(shù)據(jù)的必要條件,由主機來產(chǎn)生相關的響應時鐘脈沖。在響應的時鐘脈沖期間,主機的發(fā)送器將SDA數(shù)據(jù)傳輸線置低電平,并使之在SCL的高電平期間保持平穩(wěn)。通常在接收器接收各個字節(jié)數(shù)據(jù)之后,除了用CBUS地址開頭的數(shù)據(jù),必須產(chǎn)生一個響應。當從機不能響應從機地址時(例如它正在執(zhí)行一些實時函數(shù)從而不能接收或發(fā)送數(shù)據(jù)),這時從機必須將數(shù)據(jù)線保持在高電平,然后由主機產(chǎn)生一個重復起始條件開始新的傳輸或產(chǎn)生一個停止條件來
點擊復制文檔內容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1