999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于音頻信道無線傳輸定位數據的軟件設計

2016-02-14 07:17:54李園喜楊家成
信息記錄材料 2016年3期
關鍵詞:單片機程序

李園喜 劉 志 楊家成

(91550部隊3分隊 遼寧 大連 116023)

基于音頻信道無線傳輸定位數據的軟件設計

李園喜 劉 志 楊家成

(91550部隊3分隊 遼寧 大連 116023)

采用單片機為主控核心,以圖像傳輸微波機的音頻傳輸通道為通信手段,對海上圖像傳輸微波機進行實時定位。本文介紹了實現該方案各功能電路的單片機驅動軟件設計思想。

功能電路; 驅動軟件; 實時定位

海上圖像傳輸微波機沒有實時定位功能,在試驗中給天線調整和圖像接收帶來諸多不便,在歷次海上圖像傳輸保障中問題暴露最為明顯。為了解決此問題,二三O所三室提出了通過雙音多頻(DTMF)信號調制GPS定位數據的方法,通過圖像微波機傳輸設備的冗余伴音信道,實現圖像微波機所在點位進行實時傳輸的思想,并且設計了一整套的實現硬件方案。本文根據該硬件方案設計了對各功能硬件進行控制的單片機驅動軟件。

1.驅動軟件的總體組成及設計

1.1總體組成

本軟件的硬件平臺由海上GPS定位數據發送端和陸上GPS定位數據顯示端組成。

海上GPS定位數據發送端需要編寫大容量FLASH存儲器的驅動軟件、DTMF編解碼電路的驅動軟件、GPS OEM板驅動軟件。

陸上GPS定位數據顯示端需要編寫LCD顯示器的驅動軟件、觸摸屏控制器的驅動軟件和DTMF編解碼電路的驅動軟件。

驅動軟件的內容如圖1所示。

1.2海上端硬件驅動軟件設計

1.2.1 GPS OEM板驅動軟件設計

GPS OEM板上電工作后,按照一定的波特率輸出NMEA0183語句。方案采用GARMINGPS25LP GPS OEM板,該板出廠時默認波特率為4800bps,輸出語句為$GPGGA 、$ GPGSA 、 $GPGSV 、$GPRMC 和 $PGRMT語句,因此GPS OEM板上電工作后就會以4800bps每秒分別輸出一幀$GPGGA 、$ GPGSA 、 $GPGSV 、$GPRMC和 $PGRMT語句。可以通過 $PGRMO 語句屏蔽它們。$PGRMO語句格式為:$PGRMO,<1>,<2>,*hh<CR><LF>

根據單片機測量需要,只保留輸出$GPRMC語句,通過單片機串口向GPS OEM板輸入:

$PGRMO,,2 (屏蔽所有輸出語句)

$PGRMO, GPRMC,1 (激活GPRMC語句)

通過以上設置后,GARMINGPS25LP將連續輸出$GPRMC數據,波特率為4800bps。

單片機讀取$GPRMC語句的程序設計方法如下:

對于圖像傳輸微波機定位來說,只關心GPS OEM板輸出的的經緯度和時間。因此在設計讀取$GPRMC語句的單片機軟件時,只關心四組數據,即:UTC當地時間的時分秒(hhmmss),UTC當地時間,日月年(ddmmyy);緯度ddmm.mmmm,經度dddmm.mmmm。對GARMIN GPS25LP進行設置后,每隔一秒GARMIN GPS25LP將發送一幀$GPRMC數據。$GPRMC語句格式為:

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<1 0>,<11>,<12>,*hh<CR><LF>

·<1> : UTC 當地時間,hhmmss格式。

·<2> :工作狀態, A =可用; V =接收器警報,不可用。

·<3> :緯度, ddmm.mmmm格式(前面的 0 也會傳送)。

·<4> :緯度半球, N 或者 S。

·<5> :經度,dddmm.mmmm格式(前面的 0 也會傳送)。

·<6> :經度半球, E 或者 W 。

·<7> :對地速度,000.0 ~9999.9 節(前面的 0也會傳送)。

·<8> :對地航向,000.0o~ 359.9o(前面的 O也會傳送)。

·<9> :UTC當地時間, ddmmyy 格式。

·<10>:磁變,磁偏角地球磁場在不同時間、不同地點的偏差,000.0 ~180.0度。

·<11>:磁變方向,E & W 。

·<12>:工作模式,A=自主,D=差分,E=評估,N=數據無效。

從$GPRMC數據格式,可以知道第一個逗號之后的字符屬于時間的時、分、秒數據;第三個逗號之后的字符屬于緯度數據;第五個逗號之后的字符屬于經度數據;第九個逗號之后的字符屬于時間的日、月、年數據。因此,從收到第一個字符"$"后,通過判斷逗號就可以尋找到設計所關心的數據,具體程序如下:

serial () interrupt 4 using 1 //輔單片機串行口中斷程序

{RI=0; //軟件清除中斷標志位

if (SBUF==0x24) //判斷是否收到GPRMC格式語句的第一個字符"$",

{record=1; //其數值為0x24,收到后開始記錄數據,并設置記錄標志

igps=0; // 記錄緯度數據字符數量的變量

numbercoma=0; // 記錄逗號數量的變量

}

if (record==1) // 開始處理GPRMC中的數據信息

{ if(SBUF==0x2c) //利用GPRMC數據中的逗號間隔, {numbercoma++; igps=0; //區分接收到的字符處于何種數據中。

}

if (numbercoma==1) // 第一個逗號之后的字符屬于時間的

{stringtime1[igps]=SBUF; //時、分、秒數據

igps++;

}

if (numbercoma==3) // 第三個逗號之后的字符屬于緯度數據

{stringlat[igps]=SBUF;

igps++;

}

if (numbercoma==5) // 第五個逗號之后的字符屬于經度數據

{stringlon[igps]=SBUF;

igps++;

}

if (numbercoma==9) // 第九個逗號之后的字符屬于時間的日、月、年數據

{stringtime2[igps]=SBUF;

igps++;

}

if (SBUF=='*') //判斷是否收到GPRMC格式語句的字符"*",如果收到, {numbercoma=0; //則結束記錄,

record=0;

igps=0;

}

}

}

以上程序將GPS時間的時、分、秒數據存放在stringtime1[] 數組中,共占6個字節;將日、月、年數據存放在stringtime2[]數組中,共占6個字節;將緯度數據存放在stringlat[]數組中,共占10個字節;將經度數據存放在stringlon []數組中,共占10個字節。

1.2.2 FLASH存儲器驅動軟件設計

FLASH存儲器選用三星K9F2808UC0C。該芯片容量為132Mbits,由1024塊組成,每塊又由32頁組成,一頁有528字節(512+16)×8bit。對K9F2808UC0C進行讀寫操作時,必須以頁為單位進行操作。對K9F2808UC0C進行擦除操作,必須以塊為單位進行操作。從設計方案可知,單片機的P25、P26用于控制74LS245的數據方向。K9F2808UC0C的驅動程序由讀數據程序、寫數據程序、擦除程序和寫命令程序三部分組成。具體程序如下:

//************讀FLASH MEMORY 程序*************

void FlashRead(unsigned int pg)

{

unsigned int l; //每個扇區有528個字節

P24=0; //CS=0;選中k9f2808;

WriteCommand(0); //寫讀命令

P25=0; //74LS245處于輸入狀態

while(!RB);

P25=1; //74LS245處于輸出狀態

WriteAddress(0,pg); //確定讀地址

P26=0;

for(l=0;l<512;l++) //連續讀取一頁的數據

{ P0=0xff;

RD=0;

Readdata[l]=P0; //不再讀入

RD=1;

}

P26=1;

P24=1; //cs=1;不再選中k9f2808;

}

//***********寫FLASH MEMORY 程序*****************************

void FlashPagWrite(void)//頁寫操作

{

WDI=0;

P24=0; //CS=0;選中k9f2808;

WriteCommand(16); //將數據寫入flash 0x10

P25=0; //74LS245處于輸入狀態

while(!RB);//等待數據寫入結束

P25=1; //74LS245處于輸出狀態

WriteCommand(112); //讀狀態量

P25=0;while(!RB);

P25=1; //等待數據寫入結束

P26=0;

P0=0xff;

RD=0; //準備好讀入

ACC=P0;

ACC=ACC&0x01;

RD=1;

P26=1;

if(ACC!=0) //若最后一位不為零FLASH損壞

{Invbadr[j]=FlashPagCount; //記錄損壞的FLASH頁碼

j++;

}

FlashPagCount+=1;//頁碼加1

FlashAdrCount=0;

WriteCommand(128); //頁寫命令0x80;

P25=0;while(!RB);P25=1; //等待數據寫入結束

WriteAddress(FlashAdrCount,FlashPagCount); //寫地址

P25=0;while(!RB);P25=1; //等待數據寫入結束

}

//*************FLASH MEMORY擦除程序***************************

void FlashErase(unsigned int a)

{

unsigned int blockcount;

P24=0; //CS=0;選中k9f2808;

for(blockcount=0;blockcount!=a;blockcount++)

{WDI=0;

WriteCommand(96);//塊擦除預命令0x60

WriteAdrpage(32*blockcount);

WriteCommand(208);//塊擦除確認命令0xD0

P25=0;

while(!RB);P25=1;

WriteCommand(112);//讀擦除狀態命令0x70

P25=0;while(!RB);P25=1;

P26=0;

RD=0;

dl_us(1);

ACC=P0;

RD=1;

P26=1;

ACC=ACC&0x01;

if(ACC!=0)//擦除失敗

{Invbadr[0]=blockcount;

j++;

}

}

P24=1; //Cs=1;不再選中k9f2808;

}

//*********寫命令程序*************************

void WriteCommand(unsigned char comd)

{

P26=P25=1;

P20=1;dl_us(1);

P0=comd;

WR=0; dl_us(1);

WR=1; dl_us(1);

P20=0;

}

1.2.3 DTMF編解碼電路驅動軟件設計

GPS定位數據經過DTMF MT8880編碼后,通過圖像微波機傳輸設備的伴音信道傳送到陸上的圖像微波機端。陸上的圖像微波機端接收到DTMF信號的GPS定位數據后,經過DTMF MT8880解碼轉換成數字信號,由CPU 的INT0中斷接收。對MT8880的操作由初始化程序,數據發送程序,數據接收程序組成。具體實現程序如下:

void initialize8880(void) // MT8880初始化

{CS=0;CK=0;

RS=1;RW=1;/*讀狀態寄存器*/

CK=1; _nop_();//重復賦值起延時作用

CK=0;

//****************

RS=1;RW=0;/*寫控制寄存器*/

P10=P11=P12=P13=0;/*控制寄存器清零*/

CK=1; _nop_();

CK=0;

//****************

RS=1;RW=0;/*寫控制寄存器*/

P10=0;P11=0;P12=1;P13=1;/*控制寄存器A值為0XD0*/

CK=1; _nop_();

CK=0;

//****************

RS=1;RW=0;/*寫控制寄存器*/

P10=1;P11=0;P12=0;P13=0;/*控制寄存器B值為0X01*/

CK=1; _nop_();

CK=0;

//****************

RS=1;RW=1;/*讀狀態寄存器*/

CK=1; _nop_();

CK=0;

}

//****************************************

void int1(void) interrupt 3 // 89C51中斷方式接收MT8880數據

{ uchar abc,A;

Delay(3000);

CS=0; CK=0;

RW=1;RS=1;/*讀狀態寄存器*/

CK=1; _nop_();

CK=0; _nop_();

CK=1;

P10=1;P11=1;P12=1;P13=1;/*讀數據前單片機總線賦F*/

RW=1;RS=0;/*讀接收數據寄存器*/

Delay(30);

abc=P1&0x0f; //讀入數據

CK=1; _nop_();

CK=0; _nop_();

}

//******************************************* ***************

void mt8880_WriteData(uchar SendData) // mt8880發送數據

{ CS=0; CK=0;

RS=0; RW=0;

CK=1;_nop_();

P1|=SendData;

_nop_();

CK=0;_nop_();

RW=1;RS=1;

CS=1;

CK=0;

}

1.3陸上端硬件驅動軟件設計

1.3.1 觸摸屏控制器驅動軟件設計

本設計中采用觸摸屏專用控制芯片ADS7843實現對觸摸屏的控制。它是一款具有同步串行接口的12位取樣模數轉換器。由于89C51沒有專門的同步串行接口,因此采用I/O口模擬同步串行接口(SPI)的方式進行設計,觸摸屏被按下時產生INT1中斷,單片機通過INT1中斷服務程序實現觸摸點位置的讀取。具體驅動程序如下:

//************I/O定義***************************

// DCLK-------P24

// CS7843-----P234

// DIN ---------P22

// BUSY ------P21

// DOUT-------P20

//*********寫ads7843**********************

void ads7843_wr(unsigned char num) //SPI寫數據

{unsigned char i=0;

DCLK=0;

for(i=0;i<8;i++)

{ num<<=1;

DIN=CY;

DCLK=0;delay(0); //上升沿有效

DCLK=1; delay(0);}

}

//********讀ads7843************************

unsigned int ads7843_rd() //SPI 讀數據

{unsigned char i=0;

unsigned int Num=0;

for(i=0;i<12;i++)

{ Num<<=1;

DCLK=1; delay(0); //下降沿有效

DCLK=0; delay(0);

if(DOUT) Num++;

}

return(Num);

}

//**********INT0中斷服務程序****************************

ext_1() interrupt 2

{delay(10000); //中斷后延時以消除抖動,使得采樣數據更準確

DCLK=0;

DIN=1;

DCLK=1;

CS7843=0;

while(BUSY); //如果BUSY信號不好使可以刪除不用

delay(2);

ads7843_wr(0x90); //送控制字 10010000 即用差分方式讀X坐標 詳細請見有關資料

while(BUSY); //如果BUSY信號不好使可以刪除不用

delay(2);

DCLK=1; delay(0);

DCLK=0; delay(0);

X=ads7843_rd();

ads7843_wr(0xD0); //送控制字 11010000 即用差分方式讀Y坐標 詳細請見有關資料

DCLK=1;delay(0);

DCLK=0;delay(0);

Y=ads7843_rd();

CS7843=0;

}

1.3.2 LCD顯示電路驅動軟件設計設計

本設計采用臺灣晶采光電科技股份有限公司生產的AG320240A4STCW-T51液晶顯示屏,該液晶顯示屏內置SED1335 LCD控制器,具有320列240行的顯示能力。LCD顯示屏與單片機之間通過一片74ls245進行連接。LCD顯示屏主要有兩個程序,一個是寫命令程序,一個是寫數據程序,程序如下:

//******************************************* ****

void WLCDCOM(uchar com ) //寫LCD控制命令

{

P26=0; //選中LCD顯示屏

P34=0;

P35=0;

P0=com;

A0=1;

WD=0;

delay(1);

WD=1;

P26=1;//不選中LCD顯示屏

}

//******************************************* *************

void WLCDDATA(uchar ref ) //寫LCD參數和顯示字符數據

{

P26=0; //選中LCD顯示屏

P34=0;

P35=0;

P0=ref;

A0=0;

delay(5);

WD=0;

WD=1;

A0=1;

}

本設計中的USB接口電路不需要特意編寫驅動程序,PC機端的驅動程序Silicon公司免費提供,單片機端的驅動程序其實就是UART的收發程序。

2.結束語

本文根據海上圖像傳輸微波機實時定位所設計的的硬件實現方案,設計了相應的驅動軟件。論文中所涉及的軟件作者工作中都曾經配合相應電路使用過。年初在驗證DTMF信號進行數字通信的PCB板上,使用本文所設計的軟件成功實現了數字信號的發送和接收。因此可以說,本文所設計的軟件是可行的。

[1] 馬忠梅等,《單片機的C語言應用程序設計》,北京航空航天大學出版社,2003.

[2] 徐愛鈞 彭秀華.單片機高級語言C51 Windows環境編程與應用.電子工業出版社.

The software design of wireless transmission based on audio channel positioning data


LI Yuan-xi, LIU Zhi, YANG Jia-cheng. The People's Liberation Army 91550 Troops 3 division, Liaoning Province, Dalian 116023, China

By single chip microcomputer as the master control core to microwave image transmission machine audio transmission channel for communications, microwave machine image transmission in real time positioning of sea. This paper introduces the realization of the plan each function circuit of single chip microcomputer driver software design thought.

Function circuit; Driver software; Real time positioning

TP311

A

1009-5624-(2016)03-0057-06

猜你喜歡
單片機程序
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 99热国产在线精品99| 国产午夜一级淫片| 尤物视频一区| 国产亚洲欧美日韩在线一区二区三区| 国产流白浆视频| 天天操精品| 日韩a级毛片| 久久99热这里只有精品免费看| 欧美日韩资源| 日韩精品亚洲精品第一页| 亚洲成AV人手机在线观看网站| 国产欧美日韩在线一区| 亚洲一区二区成人| 亚洲美女高潮久久久久久久| 国产极品美女在线观看| 四虎综合网| 国产精品一区二区国产主播| 国产综合网站| 99久久婷婷国产综合精| 国产精品私拍99pans大尺度| 欧美怡红院视频一区二区三区| 亚洲人成人无码www| 精品国产网站| 日韩高清中文字幕| lhav亚洲精品| 国产麻豆精品手机在线观看| 色色中文字幕| 免费AV在线播放观看18禁强制| 国产精品香蕉在线观看不卡| 一级成人欧美一区在线观看| 天天操精品| 国产精品999在线| 99久久精品国产自免费| 特级做a爰片毛片免费69| 日韩欧美91| 欧美一级专区免费大片| 欧美伦理一区| 国内精品免费| 精品人妻一区无码视频| 国产精品刺激对白在线| 狠狠色狠狠色综合久久第一次| 毛片在线播放a| 国产精品私拍在线爆乳| 亚洲成网站| 国产欧美精品一区二区| 伊人丁香五月天久久综合 | 午夜一级做a爰片久久毛片| 手机永久AV在线播放| 99青青青精品视频在线| 亚洲欧美国产五月天综合| 综合网久久| 国产精品成人一区二区| 国产又大又粗又猛又爽的视频| 国产区在线观看视频| 国产成人精品高清在线| 不卡色老大久久综合网| 青青操视频在线| 久久久91人妻无码精品蜜桃HD| 久草网视频在线| 欧美一区二区精品久久久| 毛片免费在线视频| 欧美在线视频a| 视频二区国产精品职场同事| 无码精品国产VA在线观看DVD| 免费人成在线观看成人片| 不卡视频国产| 国产男女XX00免费观看| www亚洲精品| 国产剧情国内精品原创| 999福利激情视频| 亚洲性日韩精品一区二区| 9966国产精品视频| 日韩A级毛片一区二区三区| 亚洲人成影院午夜网站| 亚洲成人网在线观看| 伊人五月丁香综合AⅤ| 久久香蕉国产线| 嫩草在线视频| 国产区成人精品视频| 欧美区日韩区| 国产激情无码一区二区APP| 一区二区欧美日韩高清免费|