亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c8051f040basedgpsnavigatorsimplesourcecode.txt

?? 基于C8051F040簡易GPS導(dǎo)航儀源代碼
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
/*-----------“基于C8051F040簡易GPS導(dǎo)航儀的實(shí)現(xiàn)”源程序-----------*/

/***************************************************************************
** Project name:			GPS_LCD Nvigation System Experiment
**
** Descriptions:			Undergraduate Group Project of Navigation & Control
**        
** Created by:				GPS_LCD Nvigation System Design Group
**
** Major:                Navigation & Control, Beihang University
**
** Supervisor:            Professor Zhanghai, Zhang Liyong
**
** Created Date:			11 Jan 2007
**
****************************************************************************/

#include <C8051F040.h>
#include <stdio.h>
#include <stdlib.h>
#include<absacc.h>
#define baud rate 4800
#define N 100
#define HANG 20
#define LIE 12 
#define dlcd XBYTE[0x8000]/*定義送數(shù)據(jù)的地址*/
#define clcd1 XBYTE[0xa000]/*定義送指令的地址,行地址*/
#define clcd2 XBYTE[0xc000]/*定義送指令的地址,列地址*/
#define clcd3 XBYTE[0xe000]/*定義送指令的地址,設(shè)置顯示頁和操作頁*/

typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned long ulong;
typedef struct {uint x;	uint y;}point;
sfr16 RCAP2=0xca;
sfr16 RCAP3=0xca;
sfr16 RCAP4=0xca;
sfr16 TMR2=0xcc;
xdata uchar	GPS_infor[N];//處理緩沖區(qū)
xdata uchar GPS_buff[N];//接收區(qū)
xdata uchar GPS_sec[HANG][LIE];//2維數(shù)組
xdata uchar GPS_sec_temp1[11];//中間變量1
xdata uchar GPS_sec_temp2[5];//中間變量2
xdata uchar mode[LIE];
xdata ulong longitude=0;//緯度
xdata ulong latitude=0;//經(jīng)度
xdata ulong lol=0;//經(jīng)度低位
xdata ulong loh=0;//經(jīng)度高位
xdata ulong lal=0;//緯度低位
xdata ulong lah=0;//緯度高位
xdata uint  xx,yy;
uint  i,j;
uchar i1;
uchar  k,p,q;
uchar is_front,is_end,length;//判別參數(shù)
uchar color;
int xdata  data_col[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//區(qū)域填充交點(diǎn)存儲數(shù)組

void Clearlcd(uchar color,uchar ppage);/*清屏*/
void Draw_point(uint x,uint y,uchar point_color);//畫點(diǎn)子程序
void Draw_line(point point_a,point point_b,uchar line_color);//畫線子程序
void Fill_in(point *peak,int mun,uchar fill_color);//區(qū)域填充子程序
void Draw_rectangle(int x1,int y1,int x2,int y2,uchar color);
void Draw_position(uint color);
void delay1ms(uint time);
void Get_color(uint x,uint y);

int node(point *peak,int row,int num,uchar color);//交點(diǎn)求取子程序
void sort_data(int *node_in,int num);//排序子程序
int drop_data(int *node_in,int num);//重點(diǎn)去除子程序
void Draw_line2(uint row,uint col_s,uint col_f,uchar color);//畫水平線子程序
uint max(uint x,uint y){return (x>y?x:y);}
uint min(uint x,uint y){return (x<y?x:y);}
void EMI_ini();
void uart0_ini();
void t2_ini();
void t2_baud(uint rate);
void config (void);
void para_clear();
void SendChar(uchar tt);


void EMI_ini()
{
    SFRPAGE   = EMI0_PAGE;
	EMI0CF = 0x37;
	EMI0TC = 0xFF;
}

/************************串口初始化配制*****************************/
void uart0_ini()
{
    SFRPAGE = UART0_PAGE;
    SADEN0 = 0x00;// SADEN0為UART0從機(jī)地址控制寄存器,0表示相應(yīng)位地址不參加過濾,即該位地址值為0或1均為有效地址
    SADDR0 = 0x00;// SADDR0為UART0從機(jī)地址設(shè)置寄存器
    SSTA0 = 0x15;// SMOD0=1,UART0波特率2分頻允許,此時(shí)在使用T1至T4為波特率發(fā)生定時(shí)器時(shí),計(jì)算公式為BandRate=ft/16,ft為T1至T4的溢出率
	//TX0時(shí)鐘源為T2,RX0時(shí)鐘源為T2
    SCON0 = 0x50;//工作在模式1,為8bit可變波特率通訊
    SCON0 &= 0xFC; 	//將TI0和RI0清零
	t2_ini();//初始化UART0的波特率產(chǎn)生定時(shí)器T2
}

/*************************定時(shí)器2初始化配制****************************/
void t2_ini()
{
	SFRPAGE=TMR2_PAGE;
	TMR2CF = 0x10;  // T2為外部時(shí)鐘的8分頻,計(jì)數(shù)方向?yàn)樵鲋涤?jì)數(shù)
  	TMR2CN = 0x04;  // TR2置1,啟動定時(shí)器
}

/*************************定時(shí)器2產(chǎn)生波特率為4800bps*************************/
void t2_baud(uint rate)
{
	uint count;
	SFRPAGE = TMR2_PAGE;
	count=22118400/8/16/rate;
	RCAP2=~count+1;//RCAP2用于存放定時(shí)器重載值,TMR2是計(jì)數(shù)寄存器
	TMR2=RCAP2;
}

void config()
{
	uchar n;

	WDTCN = 0xDE;          //禁止看門狗
   	WDTCN = 0xAD;
	
	SFRPAGE = CONFIG_PAGE;
	XBR0 = 0x34;          //將PCA0至PCA5和UART0配置到端口
	XBR1 = 0x00;	
	XBR2 = 0x44;         //全局弱上拉開啟,將XBAR打開;TX1,RX1配置到端口
 	XBR3 = 0x00;  
 	P0MDOUT = 0xFF; 
 	P1MDOUT = 0xFF; 
 	P1MDIN = 0xFF;  
	P4MDOUT = 0xff;
	P5MDOUT = 0xff;
	P7MDOUT = 0xff;
	SFRPAGE = CONFIG_PAGE; //晶振配置,系統(tǒng)時(shí)鐘采用采用內(nèi)部晶振微調(diào)后8分頻
 	CLKSEL  = 0x00;       //系統(tǒng)時(shí)鐘采用內(nèi)部晶振
	OSCXCN  = 0x67;	     //外部晶振配置:外部石英晶振模式,不分頻,并配置合適的驅(qū)動電流
	for(;n<255;n++)
	while((OSCXCN&0x80)==0);//查詢XTLVLD是否為1,等待外部晶振穩(wěn)定振蕩
	CLKSEL  = 0x00;         //選擇內(nèi)部晶振
	OSCICN  = 0x83;
	SFRPAGE=0x0F;
	SFRPGCN=0x01;
	IE=0x90;//若UART0使用中斷方式則應(yīng)該開全局中斷
}//端口與時(shí)鐘配置函數(shù)

/*********************采用查詢方式串口輸出**************************/
void SendChar(uchar tt)
{
	SBUF0=tt;
	while(TI0==0);
	TI0=0;
}

/*****************************參數(shù)清零*****************************/
void para_clear()
{
	i=0;
	j=0;
	p=0;
	q=0;
	k=0;
}

/*****************************GPS碼分割函數(shù)*****************************/
void GPS_div()
{
	para_clear();
	for(k=0;k<=length;k++)           //利用',',將數(shù)組進(jìn)行分割,存到二維數(shù)組div中
     {
		if(GPS_infor[k]!=','){GPS_sec[p][q]=GPS_infor[k];q++;}
		else {p++;q=0;}
	 }
}

/**********************通過串口輸出接收進(jìn)來的GPS數(shù)據(jù)*******************/
void GPS_out()
{
	p=2;//緯度部分
	for(q=0;GPS_sec[p][q]!='\0';q++)
	  {
     		SFRPAGE=0;
			SendChar(GPS_sec[p][q]);
		}
	SendChar('*');
	p=4;//經(jīng)度部分
	for(q=0;GPS_sec[p][q]!='\0';q++)
	  {
     		SFRPAGE=0;
			SendChar(GPS_sec[p][q]);
      }
	SendChar('*');
}

/*************GGA碼解碼函數(shù),得到latitude和longitude用整數(shù)類型存儲***********/
void GGA_deal()
{
	para_clear();//整數(shù)小數(shù)同存,按單位統(tǒng)一到角度
	for (i=0;GPS_sec[2][i]!='.';i++) GPS_sec_temp1[i]=GPS_sec[2][i];//按.分割 移位
	for (j=i;j<=i+3;j++) GPS_sec_temp1[j]=GPS_sec[2][j+1];
	for (j=j;j<11;j++)	GPS_sec_temp1[j]='\0';
	latitude=atol(GPS_sec_temp1);
	for (i=0;GPS_sec[4][i]!='.';i++) GPS_sec_temp1[i]=GPS_sec[4][i];		
	for (j=i;j<=i+3;j++) GPS_sec_temp1[j]=GPS_sec[4][j+1];
	for (j=j;j<11;j++)	GPS_sec_temp1[j]='\0';
	longitude=atol(GPS_sec_temp1);
	lal=latitude%1000000;//取出角分
	lol=longitude%1000000;
	lah=latitude-lal;//取出角度
	loh=longitude-lol;
	lal=lal*100/60;//化角分為度
	lol=lol*100/60;
	latitude=lah+lal;//整合
	longitude=loh+lol;
	para_clear();
}

/************GPS信息解算,并在LCD屏幕上標(biāo)出用戶所在位置************/
void GPS_cau()
{
	point xdata aera_point[6]={{22,195},{40,195},{48,175},{48,127},{40,107},{22,107}};
	point xdata aera_pool[6]={{84,275},{94,245},{94,226},{60,232},{54,240},{70,250}};
	xx=(longitude-116334919)/53;//按經(jīng)緯度邊界計(jì)算LCD上畫點(diǎn)位置
	yy=(latitude-39975169)/31;
    Get_color(xx,yy);

    //Draw_position(0xe3);
    //delay1ms(2000);

	//Draw_position(color);

    /*xx=xx+5;
	yy=yy+5;

    Get_color(xx,yy);
    Draw_position(0xfc);
	delay1ms(2000);
	
    Draw_position(color);*/

	for(i1=0;i1<10;i1++)
	{
	xx=xx+1;
    Get_color(xx,yy);
    Draw_position(0xfc);
	delay1ms(1000);
	
    Draw_position(color);
	}

	for(i1=0;i1<10;i1++)
	{
	yy=yy+1;
    Get_color(xx,yy);
    Draw_position(0xfc);
	delay1ms(1000);
	Draw_position(color);
	}

	for(i1=9;i1>0;i1--)
	{
	xx=xx-1;
    Get_color(xx,yy);
    Draw_position(0xfc);
	delay1ms(1000);
	Draw_position(color);
	}

	for(i1=9;i1>0;i1--)
	{
	yy=yy-1;
    Get_color(xx,yy);
    Draw_position(0xfc);
	delay1ms(1000);
	Draw_position(color);
	}

}

/************得到原來點(diǎn)的顏色值,以便進(jìn)行覆蓋************/
void Get_color(uint x,uint y)
{
    
	uchar high,low;

    high = (y&0xff00)>>8;
	low = y&0xff;

  	clcd3=0x00;	      //設(shè)定操作頁和顯示頁	
	clcd1=x;	     //設(shè)定行地址
	clcd2=high;		//設(shè)定列地址
	clcd2=low;
	color=dlcd;
}


/************畫出用戶位置,在LCD屏幕上用十字顯示************/
void Draw_position(uint color)//畫出所在點(diǎn)的位置
{
	Draw_point(xx,yy,color);
	Draw_point(xx-1,yy,color);
	Draw_point(xx+1,yy,color);
	Draw_point(xx,yy,color);
	Draw_point(xx,yy-1,color);
	Draw_point(xx,yy+1,color);
}

/*****************初始化LCD上的電子地圖***********************/
void Draw_LCD()
{
    point xdata aera_point[6]={{22,195},{40,195},{48,175},{48,127},{40,107},{22,107}};
	point xdata aera_pool[6]={{84,275},{94,245},{94,226},{60,232},{54,240},{70,250}};
	
	Clearlcd(0x03,0x11);  //清屏
	Clearlcd(219,0x01);

	Fill_in(aera_point,6,107);//新食堂
	Draw_line2(40,107,195,107);
	Draw_rectangle(3,0,104,10,0xe3);//西南邊
	Draw_rectangle(110,0,231,10,0xe3);//東南邊
	Draw_rectangle(161,16,231,86,109);//新主樓
	Draw_rectangle(110,16,155,86,109);//體育館
	Draw_rectangle(176,71,216,31,0xfe);//新主樓天井
	Draw_rectangle(68,86,104,16,111);//籃球場
	Draw_rectangle(65,86,20,16,111);//操場
	Draw_rectangle(15,317,3,16,0xe3);// 西邊
	Draw_rectangle(55,76,30,26,12);//操場草坪
	Draw_rectangle(145,162,231,92,109);//東南門區(qū)域
	Draw_rectangle(110,162,141,92,109);//辦公區(qū)
	Draw_rectangle(110,290,231,164,30);//教學(xué)區(qū)
	Draw_rectangle(50,210,104,92,244);//生活區(qū)
	Draw_rectangle(20,216,104,290,16);//綠園
	Draw_rectangle(20,296,104,317,0xe3);//西北邊
	Draw_rectangle(110,296,231,317,0xe3);//東北邊
	Fill_in(aera_pool,6,0x03);//荷花池
}

/********************單片機(jī)主程序********************/
void main(void)
{
	int xdata flag=0;
	
	point a,b;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜国产精品影院在线观看| 欧美日韩中字一区| 国产在线国偷精品免费看| 日韩av中文字幕一区二区| 午夜电影网一区| 亚洲午夜久久久久久久久电影网| 一区二区三区免费观看| 亚洲女子a中天字幕| 亚洲视频资源在线| 夜夜夜精品看看| 亚洲精品成人精品456| 一区二区三区日韩欧美精品| 一卡二卡欧美日韩| 亚洲电影你懂得| 日韩精品一卡二卡三卡四卡无卡| 日韩av一级电影| 精品一区二区精品| 国产成人精品免费网站| 成人av资源站| 欧洲精品一区二区| 欧美精三区欧美精三区| 欧美一区三区二区| 久久久久久久电影| 中文字幕一区免费在线观看| 亚洲已满18点击进入久久| 亚洲午夜久久久久久久久电影网| 日韩精品五月天| 国产呦精品一区二区三区网站| 成人综合在线观看| 日本韩国欧美一区二区三区| 在线不卡中文字幕播放| 欧美精品一区二区三区高清aⅴ| 国产欧美日产一区| 亚洲精品老司机| 另类综合日韩欧美亚洲| 成人国产精品视频| 精品视频1区2区| 精品久久久久香蕉网| 国产精品久久久久影院老司 | 国产日韩欧美不卡| 亚洲欧美国产三级| 奇米色777欧美一区二区| 国产精品香蕉一区二区三区| 91麻豆精品视频| 91精品欧美久久久久久动漫| 国产三级欧美三级日产三级99| 亚洲免费在线看| 紧缚奴在线一区二区三区| 93久久精品日日躁夜夜躁欧美| 欧美日本在线观看| 国产日韩欧美制服另类| 亚洲国产aⅴ成人精品无吗| 久久99国产精品免费网站| 99久久久免费精品国产一区二区| 欧美日韩成人综合天天影院| 久久久美女毛片| 午夜欧美视频在线观看| 丁香六月综合激情| 日韩一区二区三区在线| 亚洲精品国产精品乱码不99| 久草精品在线观看| 欧美性感一区二区三区| 国产欧美一区二区精品仙草咪| 亚洲电影欧美电影有声小说| bt欧美亚洲午夜电影天堂| 日韩午夜在线影院| 一区二区三区中文字幕电影| 国产美女精品一区二区三区| 欧美日本一道本在线视频| 一区在线中文字幕| 国产综合久久久久久鬼色| 欧美高清性hdvideosex| 一区二区三区四区高清精品免费观看| 国产麻豆日韩欧美久久| 日韩亚洲欧美一区| 亚洲一区二区三区美女| 成人精品视频一区| 精品国产免费一区二区三区四区| 亚洲第一久久影院| 91久久精品一区二区三区| 中文字幕第一区综合| 狠狠色丁香九九婷婷综合五月| 欧美一区二区视频免费观看| 亚洲国产一区二区三区 | 中文字幕av一区二区三区高| 日本美女一区二区三区| 欧美精品一二三区| 亚洲一区二区在线免费观看视频| www.亚洲色图.com| 国产三级欧美三级| 国产成人鲁色资源国产91色综 | 欧美日韩免费观看一区二区三区| 亚洲欧洲av一区二区三区久久| 国产精品一区免费视频| 欧美大白屁股肥臀xxxxxx| 日日夜夜免费精品| 欧美日韩精品电影| 午夜精品久久久久久久99水蜜桃| 欧美午夜一区二区| 一区二区在线看| 日本韩国一区二区三区视频| 亚洲欧美日韩中文播放| 97久久超碰国产精品| 国产精品久久网站| 成人av免费网站| 亚洲欧洲成人av每日更新| 97久久精品人人做人人爽| 亚洲乱码国产乱码精品精可以看| 99精品久久只有精品| 最新久久zyz资源站| 色综合中文字幕国产| 最新热久久免费视频| 91高清在线观看| 亚洲国产视频直播| 欧美一区二区三区公司| 久久er精品视频| 久久久久国产精品麻豆ai换脸 | 国产美女娇喘av呻吟久久| 久久久.com| va亚洲va日韩不卡在线观看| 亚洲欧洲精品成人久久奇米网| 91麻豆国产自产在线观看| 亚洲一区二区三区免费视频| 欧美一区二区三区四区视频| 国产综合久久久久久久久久久久 | 日本视频中文字幕一区二区三区| 欧美日韩国产一区二区三区地区| 奇米亚洲午夜久久精品| 欧美精品一区二区三区一线天视频 | 欧美午夜精品免费| 日本欧美大码aⅴ在线播放| 久久免费美女视频| fc2成人免费人成在线观看播放| 一区二区视频在线看| 91麻豆精品国产91久久久| 韩国成人在线视频| 中文字幕亚洲区| 欧美乱妇15p| 久久99精品久久久久久动态图| 中文字幕欧美日本乱码一线二线| 色一情一乱一乱一91av| 奇米精品一区二区三区在线观看 | 成人国产精品免费观看| 亚洲二区在线视频| 久久先锋资源网| 一本一道久久a久久精品 | 91久久线看在观草草青青| 日韩高清一区二区| 国产精品视频一二三区| 在线观看国产日韩| 国产呦萝稀缺另类资源| 一区二区成人在线| 久久精品人人爽人人爽| 欧美无砖专区一中文字| 国产成人av一区二区三区在线观看| 亚洲久草在线视频| 欧美精品一区二区高清在线观看| 97精品视频在线观看自产线路二| 美女一区二区三区| 1024国产精品| 欧美精品一区二区三区很污很色的 | av一区二区不卡| 秋霞午夜鲁丝一区二区老狼| 国产精品毛片无遮挡高清| 欧美一区二区三区日韩| 色香蕉久久蜜桃| 国产一区二区毛片| 天天综合色天天综合色h| 国产精品免费人成网站| 精品日韩欧美在线| 91成人在线精品| 高清视频一区二区| 蜜臀a∨国产成人精品| 亚洲精品成人在线| 中文字幕+乱码+中文字幕一区| 欧美精品在线观看播放| 93久久精品日日躁夜夜躁欧美| 狠狠色丁香婷婷综合| 爽爽淫人综合网网站| 亚洲视频一区二区在线观看| 久久久蜜臀国产一区二区| 在线成人小视频| 91极品美女在线| 波多野结衣在线一区| 久久99九九99精品| 日韩影视精彩在线| 亚洲成在线观看| 一区二区三区成人| 日韩理论在线观看| 欧美国产成人精品| 久久久久久久国产精品影院| 日韩欧美在线123| 欧美美女喷水视频| 欧美无人高清视频在线观看| 99视频超级精品| 成人a级免费电影| 成人丝袜视频网| 成人伦理片在线| 国产不卡在线一区| 国产91丝袜在线播放0|