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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? LPC1114_例程和教程
?? C
字號:
/****************************************************
*名  稱:	LCD							*
*功  能:   								*
*備  注:	2011.1.9	
貞明電子:http://shop58972409.taobao.com									*
*****************************************************/
/**************** 頭文件調用&&宏定義 ****************/
#include "LPC11xx.h"
#include <string.h>
#include "GPIO.H"
#include "UART.h"
#define uchar unsigned char
#define uint  unsigned int
#include "hx16.h"
#include "LCD.h"
/******************* 全局變量定義 *******************/
uint8_t array_status[8];
#define BUFSIZE	  0x40
extern volatile uint32_t UARTCount;			   //定義串口發送緩沖大小
extern volatile uint8_t UARTBuffer[BUFSIZE];   //定義串口發送緩沖
//extern volatile uint8_t  UARTRsv[UART_BUFSIZE];
volatile uint8_t ch;

uint8_t Header[5];
uint8_t Pass[5];
uint8_t dataflag;			//數據有效標志
static struct DISPLAY
{
	uint8_t Date[8];		//11-01-02
	uint8_t a;
	uint8_t Time[8];		//18:24:04
	uint8_t b;
	uint8_t Longitude[10]; 	//經度
	uint8_t c;
	uint8_t Latitude[10];  	//緯度
	uint8_t d;
   	uint8_t Speed[9];
	uint8_t e;
}myGPS;
static struct GPS
{
	uint8_t UTCtime[12];	//忽略小數點后的
	uint8_t Status;			//A or V
	uint8_t Longitude[10];	//Longitude	  緯度
   	uint8_t Latitude[10];	//Latitude	  經度
	uint8_t Jing;
	uint8_t Speed[5];		//速度
	uint8_t Dir[5];			//航向
	uint8_t UTCdate[6];	   	//UTCdata
}GPRMC;
uint8_t cnt;		//定義串口接收緩沖計數
/********************** 函數聲明 ********************/
void Delay1ms(uint32_t a);
void Inttochar(unsigned   int   num); 
uint8_t UARTReceiveByte(void);
void UARTReceive(uint8_t *BufferPtr, uint32_t Length);
void GPSReceive(uint8_t *BufferPtr);
void itoa(int n, uint8_t *s);
void Timetr(void);
void Longitudetr(void);
void Latitudetr(void);
void Speedtr(void);
/********************** 主函數 **********************/
int main(void)
{
	uint32_t i;
 	SystemInit();	  			//系統初始化,包括使能時鐘
	UARTInit(9600);				//初始化波特率為115200
	LPC_UART->IER = IER_THRE | IER_RLS; // 設置中斷使能寄存器
//	LPC_UART->IER = IER_THRE | IER_RLS | IER_RBR;	// Re-enable RBR
	GPIOInit();					//GPIO初始化,使能GPIO模塊時鐘
	LPC_GPIO2->DIR=(1<<csx)|(1<<sclk)|(1<<sdata)|(1<<dc)|(1<<res);	//LCD PIN OUT
	GPIOSetDir(2,8,1);			//設置P2.8為輸出,LED1
	GPIOSetDir(2,9,1);			//設置P2.9為輸出,LED2
	GPIOSetDir(3,4,1);			//設置P3.4為輸出,LED3
	//調用頭文件中函數輸出方法
	GPIOSetValue(PORT2,8,0);	//設置P2.8輸出0,點亮LED1
	GPIOSetValue(PORT2,9,0);	//設置P2.9輸出0,點亮LED2
	GPIOSetValue(PORT3,4,0);	//設置P3.4輸出0,點亮LED3
	Delay1ms(500);
	//直接使用寄存器
	LPC_GPIO2->DATA|=(((1<<8)|(1<<9)));	//P2.8,P2.9輸出1,LED1,LED2滅
	LPC_GPIO3->DATA|=(1<<4);   	//LED3滅
   	Delay1ms(500);

	Reset1();
	Delay1ms(1);
	Reset0();
	Delay1ms(1);
	Reset1();
	Delay1ms(1);
	LDS183SleepIn();
	LDS183SleepOut();
	Delay1ms(10);
	send_command(ALL_PIXELS_OFF);
	Delay1ms(500);
	send_command(ALL_PIXELS_ON);
	Delay1ms(500);
	Initial(); 
	Delay1ms(500);
	White();
	Delay1ms(500);
	//畫豎線
	Yline(7,9,110,BLACK);
	Yline(48,9,110,BLACK);
	Yline(121,9,110,BLACK);
	//畫橫線和漢字
	Xline(7,9,114,BLACK);
	writeString("日期",10,12,BLUE);
	Xline(7,31,114,BLACK);
	writeString("時間",10,34,BLUE);
	Xline(7,53,114,BLACK);
	writeString("緯度",10,56,BLUE);
	Xline(7,75,114,BLACK);
	writeString("經度",10,78,BLUE);
	Xline(7,97,114,BLACK);
	writeString("速度",10,100,BLUE);
	Xline(7,119,114,BLACK);

	while(1)
	{	
		ch=UARTReceiveByte();
		if(ch=='$')
		{
			for(i=0;i<5;i++)
			{
				ch=UARTReceiveByte();
				Header[i]=ch;
			} 
			ch=UARTReceiveByte();	//得到字符','
			if(!strcmp(&Header[0],"GPRMC"))	   	//判斷是否等于字符串GPRMC
			{
				GPSReceive(GPRMC.UTCtime);
				UARTReceiveByte();
				UARTReceiveByte();
				GPSReceive(GPRMC.Longitude);
				UARTReceiveByte();
				UARTReceiveByte();
				GPSReceive(GPRMC.Latitude);
				UARTReceiveByte();
				UARTReceiveByte();
				GPSReceive(GPRMC.Speed);
				GPSReceive(GPRMC.Dir);
				GPSReceive(GPRMC.UTCdate);
			/*		UARTReceive(GPRMC.UTCtime,10);
				UARTReceiveByte();
				GPRMC.Status=UARTReceiveByte();
				UARTReceiveByte();
			UARTReceive(GPRMC.Longitude,9);
				UARTReceiveByte();
				UARTReceiveByte();
				UARTReceiveByte();
				UARTReceive(GPRMC.Latitude,10);
				UARTReceiveByte();
				UARTReceiveByte();
				UARTReceiveByte();
				UARTReceive(GPRMC.Speed,3);
				UARTReceiveByte();
				UARTReceiveByte();
				UARTReceive(GPRMC.UTCdate,6); */
		/*		cnt=0;						   	//設置緩沖計數為0
				while((ch=UARTReceiveByte())!=',') 	//獲取時間,如果不等于','循環
				{
					GPRMC.UTCtime[cnt]=ch;	   	//將接收字符放入時間緩沖	
					cnt++;						//緩沖計數累加
					if((cnt==2)|(cnt==5))
					{
						GPRMC.UTCtime[cnt]=':';
						cnt++;
					}
				}	
					
				cnt=0;
				while((ch=UARTReceiveByte())!=',') 	//獲取有效狀態
				{
				//	GPRMC.Status=ch;
					if(ch=='A')				   	//數據有效
					{
						dataflag=1;				//標志置1
						GPIOSetValue(PORT2,8,0);	//設置P2.8輸出0,點亮LED1
					}
					else						//否則
					{
						dataflag=0;				//標志清0
						GPIOSetValue(PORT2,8,1);	//設置P2.8輸出1,滅LED1
					}
				}	


			
				cnt=0;
				while((ch=UARTReceiveByte())!=',')	//獲取緯度
				{
					GPRMC.Longitude[cnt]=ch;	//將接收字符放入緯度緩沖	
					cnt++;						//緩沖計數累加		
				}
	

				cnt=0;
				while(UARTReceiveByte()!=',');	//放棄數據		

				cnt=0;
				while((ch=UARTReceiveByte())!=',')	//獲取經度
				{
					GPRMC.Latitude[cnt]=ch;	//將接收字符放入經度緩沖	
					cnt++;						//緩沖計數累加		
				}


				cnt=0;
				while(UARTReceiveByte()!=',');	//放棄數據

				cnt=0;
				while((ch=UARTReceiveByte())!=',')	//獲取速度
				{
					GPRMC.Speed[cnt]=ch;	//將接收字符放入速度緩沖	
					cnt++;						//緩沖計數累加		
				}
	

				cnt=0;
				while((ch=UARTReceiveByte())!=',')	//獲取日期
				{
					GPRMC.UTCdate[cnt]=ch;	//將接收字符放入日期緩沖	
					cnt++;						//緩沖計數累加		
				}

				cnt=0;
	
				while(UARTReceiveByte()!=',');	//放棄數據
				while(UARTReceiveByte()!=',');	//放棄數據	 	*/

				Timetr();
				Longitudetr();
				Latitudetr();
				Speedtr();	
				writeString(myGPS.Date,52,12,RED);
				writeString(myGPS.Time,52,34,RED);	
				writeString(myGPS.Longitude,52,56,RED);
				writeString(myGPS.Latitude,52,78,RED);
				writeString(GPRMC.Speed,52,100,RED);
			}			
		}
		
	//   */
	}
}
/********************** 函數定義 ********************/
/****************************************************
*名  稱:	延時函數    							*
*參  數:   延時時間								*
*備  注:	內聯函數    							*
*****************************************************/
void Delay1ms(uint32_t a)    //1ms延時函數
{                           
uint32_t i;
while( --a != 0){
   for(i = 0; i<5500; i++);
}             
}

 void   Inttochar(unsigned   int   num)   
  {   
  if   (num<10)   
  {   
  array_status[0]=num+0x30;   
  array_status[1]=0x00;   
  return;   
  }   
  if   (num<100)     
  {   
  array_status[0]=num/10+0x30;   
  array_status[1]=num%10+0x30;   
  array_status[2]=0x00;   
  return;   
  }   
  if   (num<1000)     
  {   
  array_status[0]=num/100+0x30;   
  array_status[1]=num%100/10+0x30;   
  array_status[2]=num%10+0x30;   
  array_status[3]=0x00;   
  return;   
  }   
  if   (num<10000)     
  {   
  array_status[0]=num/1000+0x30;   
  array_status[1]=num%1000/100+0x30;   
  array_status[2]=num%100/10+0x30;   
  array_status[3]=num%10+0x30;   
  array_status[4]=0x00;   
  return;   
  }   
  else   
  {   
  array_status[0]=num/10000+0x30;   
  array_status[1]=num%10000/1000+0x30;   
  array_status[2]=num%1000/100+0x30;   
  array_status[3]=num%100/10+0x30;   
  array_status[4]=num%10+0x30;   
  array_status[5]=0x00;   
  return;   
  }     
  } 
/****************************************************
*名  稱:	itoa	    							*
*參  數:   整形數									*
*備  注:	將數值轉換為字符串			    		*
*****************************************************/
void itoa(int n, uint8_t *s) 
{ 
	char i;
	int n1;
	if (n<0) 
	{
  		n=-n;
  		*s++='-';
	}
	do
	{
  		n1=n;
  		i=0;
		while (1) 
		{
  			if (n1<=9)   
			{
    			*s++=n1+'0';
    		break;
  		}
  		n1=n1/10;
  		i++;
	}
	while (i) 
	{
  		i--;
 		n1=n1*10;
	}
	n-=n1;
	}
while (n);
*s++=0;
}
void Timetr(void)
{
	uint32_t vtemp;
	vtemp=(GPRMC.UTCtime[0]-'0')*10+(GPRMC.UTCtime[1]-'0')+8;
	if((vtemp>24)||(vtemp==24))
	{
		vtemp=vtemp-24;
		GPRMC.UTCdate[1]+=1;
	}
	myGPS.Time[0]=vtemp/10+'0';
	myGPS.Time[1]=vtemp%10+'0';
	myGPS.Time[2]=':';
	myGPS.Time[3]=GPRMC.UTCtime[2];
	myGPS.Time[4]=GPRMC.UTCtime[3];
	myGPS.Time[5]=':';
	myGPS.Time[6]=GPRMC.UTCtime[4];
	myGPS.Time[7]=GPRMC.UTCtime[5];

	myGPS.Date[0]=GPRMC.UTCdate[0];
	myGPS.Date[1]=GPRMC.UTCdate[1];
	myGPS.Date[2]='-';
	myGPS.Date[3]=GPRMC.UTCdate[2];
	myGPS.Date[4]=GPRMC.UTCdate[3];
	myGPS.Date[5]='-';
	myGPS.Date[6]=GPRMC.UTCdate[4];
	myGPS.Date[7]=GPRMC.UTCdate[5];
}
void Longitudetr(void)
{
	uint32_t vtemp;
	myGPS.Longitude[0]=GPRMC.Longitude[0];	
	myGPS.Longitude[1]=GPRMC.Longitude[1];
	if(GPRMC.Longitude[4]=='.')
	{
		myGPS.Longitude[2]='.';
		vtemp=((GPRMC.Longitude[2]-'0')*10+(GPRMC.Longitude[3]-'0'))*5/3;//	*100/60
		//轉換成60進制后取小數點后兩位
		myGPS.Longitude[3]=vtemp/10+'0';
		myGPS.Longitude[4]=vtemp%10+'0';
	}
	else
	{
		myGPS.Longitude[2]=GPRMC.Longitude[2];
		myGPS.Longitude[3]='.';
		vtemp=((GPRMC.Longitude[3]-'0')*10+(GPRMC.Longitude[4]-'0'))*5/3;//	*100/60
		//轉換成60進制后取小數點后兩位
		myGPS.Longitude[4]=vtemp/10+'0';
		myGPS.Longitude[5]=vtemp%10+'0';
	}
}
void Latitudetr(void)
{
	uint32_t vtemp;
	myGPS.Latitude[0]=GPRMC.Latitude[0];	
	myGPS.Latitude[1]=GPRMC.Latitude[1];
	if(GPRMC.Latitude[4]=='.')
	{
		myGPS.Latitude[2]='.';
		vtemp=((GPRMC.Latitude[2]-'0')*10+(GPRMC.Latitude[3]-'0'))*5/3;//	*100/60
		//轉換成60進制后取小數點后兩位
		myGPS.Latitude[3]=vtemp/10+'0';
		myGPS.Latitude[4]=vtemp%10+'0';		
	}
	else
	{
		myGPS.Latitude[2]=GPRMC.Latitude[2];
		myGPS.Latitude[3]='.';
		vtemp=((GPRMC.Latitude[3]-'0')*10+(GPRMC.Latitude[4]-'0'))*5/3;//	*100/60
		//轉換成60進制后取小數點后兩位
		myGPS.Latitude[4]=vtemp/10+'0';
		myGPS.Latitude[5]=vtemp%10+'0';
	}
}

void Speedtr(void)
{
	uint32_t vtemp;
	if(GPRMC.Speed[1]=='.')
	{
		vtemp=((GPRMC.Speed[0]-'0')*10+(GPRMC.Speed[2]-'0'))*1852;		 //海里單位轉換為km
		itoa(vtemp,(uint8_t *)array_status);
		myGPS.Speed[0]=	array_status[0];
		myGPS.Speed[1]=	array_status[1];
		myGPS.Speed[2]=	'.';
		myGPS.Speed[3]=	array_status[2];
		myGPS.Speed[4]=	array_status[3];
		myGPS.Speed[5]=	array_status[4];
		myGPS.Speed[6]=	array_status[5];
	}
	if(GPRMC.Speed[2]=='.')
	{
		vtemp=((GPRMC.Speed[0]-'0')*100+(GPRMC.Speed[1]-'0')*10+(GPRMC.Speed[3]-'0'))*1852;
		itoa(vtemp,(uint8_t *)array_status);
		myGPS.Speed[0]=	array_status[0];
		myGPS.Speed[1]=	array_status[1];
		myGPS.Speed[2]=	array_status[2];
		myGPS.Speed[3]=	'.';
		myGPS.Speed[4]=	array_status[3];
		myGPS.Speed[5]=	array_status[4];
		myGPS.Speed[6]=	array_status[5];
		myGPS.Speed[7]=	array_status[6];	
	}
}

// 接受字符函數

/*****************************************************************************
** Function name:  UARTReceiveByte
**
** Descriptions:  Receive a block of data to the UART 0 port based
**    on the data Byte
**
** parameters:  None
** Returned value: Byte
**
*****************************************************************************/
uint8_t UARTReceiveByte(void)
{
 uint8_t rcvData;

 while (!(LPC_UART->LSR & LSR_RDR))
 {
  ;                                // 查詢數據是否接收完畢
 }

 rcvData = LPC_UART->RBR;             // 接收數據
 return (rcvData);
}

 

// 接收字符串函數

/*****************************************************************************
** Function name:  UARTReceive
**
** Descriptions:  Receive a block of data to the UART 0 port based
**    on the data Length
**
** parameters:  buffer pointer, and data length
** Returned value: Note
**
*****************************************************************************/
void UARTReceive(uint8_t *BufferPtr, uint32_t Length)
{
 while (Length--)
 {
     *BufferPtr++ = UARTReceiveByte();    // 把數據放入緩沖
 }
}
void GPSReceive(uint8_t *BufferPtr)
{
	uint8_t chs;
	while((chs=UARTReceiveByte())!=',')
	{
		*BufferPtr++ = chs;    // 把數據放入緩沖	
	}
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区视频| 另类小说一区二区三区| 亚洲福利一区二区三区| 日本伊人午夜精品| 国产成人综合亚洲网站| 91香蕉视频mp4| 69p69国产精品| 国产欧美日韩在线观看| 一区二区三区精品视频| 精品一区二区三区久久久| 成人av免费观看| 欧美精品久久天天躁| 亚洲最新视频在线播放| 久久91精品国产91久久小草| 成人avav影音| 日韩一区二区三免费高清| 国产视频在线观看一区二区三区 | 亚洲亚洲精品在线观看| 婷婷丁香久久五月婷婷| 国产乱码精品一品二品| 日本高清无吗v一区| 日韩免费观看2025年上映的电影| 亚洲国产精品ⅴa在线观看| 偷拍亚洲欧洲综合| 国产成人aaa| 欧美天堂一区二区三区| 国产日韩欧美综合一区| 性做久久久久久| 不卡电影一区二区三区| 日韩欧美aaaaaa| 尤物在线观看一区| 国产精品12区| 91麻豆精品国产91久久久使用方法| 国产日韩影视精品| 日本不卡一二三区黄网| 91丨九色porny丨蝌蚪| 精品久久久久久久久久久久久久久| 亚洲人成网站在线| 国模一区二区三区白浆| 欧美日韩一二三区| 最新久久zyz资源站| 激情综合色综合久久| 欧美私模裸体表演在线观看| 国产精品素人一区二区| 久久99国产精品尤物| 欧美理论在线播放| 亚洲美女屁股眼交| 国产成人精品一区二区三区网站观看| 91精品国产91热久久久做人人| 亚洲色图清纯唯美| 国产一区二区剧情av在线| 欧美一区二区视频免费观看| 一区二区三区视频在线观看| av不卡免费在线观看| 国产丝袜在线精品| 国产精品亚洲视频| 日韩精品一区国产麻豆| 97成人超碰视| 亚洲国产精品激情在线观看 | 欧美一级精品大片| 亚洲国产成人tv| 色婷婷综合中文久久一本| 国产精品免费人成网站| 国产大片一区二区| 久久精品在这里| 精品一区二区精品| 欧美大片顶级少妇| 美女脱光内衣内裤视频久久网站| 欧美三级电影网站| 亚洲国产精品久久人人爱蜜臀| 色综合中文综合网| 国产在线一区观看| 亚洲精品一区二区三区影院| 免费看日韩a级影片| 91精品在线观看入口| 视频一区中文字幕国产| 欧美精品九九99久久| 爽好久久久欧美精品| 欧美一区二区在线看| 七七婷婷婷婷精品国产| 在线播放一区二区三区| 天堂久久一区二区三区| 欧美高清视频一二三区 | 欧美一区二区三区电影| 丝袜亚洲另类欧美| 日韩一区二区在线免费观看| 日本不卡123| 欧美大度的电影原声| 麻豆视频观看网址久久| 久久亚区不卡日本| 成人网在线播放| 亚洲精品视频观看| 欧美吻胸吃奶大尺度电影 | 欧美成人免费网站| 国产在线播放一区| 国产精品网站在线播放| 99精品黄色片免费大全| 亚洲一区在线观看视频| 欧美理论在线播放| 国内外成人在线| 久久久久久久久久久电影| 成人av免费在线| 亚洲成人你懂的| 欧美电影免费观看高清完整版在线| 久久精工是国产品牌吗| 久久免费精品国产久精品久久久久 | av网站免费线看精品| 一区二区三区四区精品在线视频| 欧美日本韩国一区| 国产又粗又猛又爽又黄91精品| 毛片av一区二区| 国产精品丝袜黑色高跟| 欧美亚洲日本国产| 九色|91porny| 日韩一区中文字幕| 欧美精选在线播放| 国产一区二区毛片| 亚洲一区自拍偷拍| 久久久久久久久久美女| 色哟哟在线观看一区二区三区| 五月综合激情网| 久久精品人人做| 欧美综合色免费| 国内外精品视频| 一区二区三区在线播| 日韩久久久精品| 99国产精品久久| 免费观看在线综合色| 中文字幕一区二区三区不卡 | 日韩国产欧美在线视频| 久久精品一区八戒影视| 欧美性生活久久| 国产精品88av| 日韩精品电影一区亚洲| 国产精品久久久久久久久久久免费看 | 欧美男生操女生| 成人精品在线视频观看| 人禽交欧美网站| 日韩毛片在线免费观看| 欧美变态口味重另类| 在线精品亚洲一区二区不卡| 国产黄色精品视频| 婷婷丁香激情综合| 综合在线观看色| 久久先锋资源网| 4438x亚洲最大成人网| 成人av在线网| 激情国产一区二区| 天堂久久久久va久久久久| 自拍偷在线精品自拍偷无码专区| 欧美电影免费观看高清完整版| 91高清视频在线| 成人免费va视频| 精品制服美女丁香| 亚洲一区电影777| 亚洲啪啪综合av一区二区三区| 久久久久久夜精品精品免费| 欧美另类高清zo欧美| 色噜噜狠狠色综合欧洲selulu| 丰满岳乱妇一区二区三区| 久久国产福利国产秒拍| 亚洲h在线观看| 又紧又大又爽精品一区二区| 久久久99久久| 久久综合久久综合久久综合| 欧美美女激情18p| 欧洲激情一区二区| 99精品欧美一区二区蜜桃免费| 国产传媒欧美日韩成人| 国产在线视频不卡二| 男女男精品视频| 日韩高清在线一区| 日韩精品成人一区二区三区| 一级女性全黄久久生活片免费| 中文字幕一区av| 国产精品久久久久久久岛一牛影视| 精品国产91乱码一区二区三区| 亚洲综合色噜噜狠狠| 国产精品系列在线| 久久日韩精品一区二区五区| 欧美成人精精品一区二区频| 91精品国产综合久久精品麻豆| 欧美精品在线观看播放| 欧美三级一区二区| 欧美日本一区二区三区四区| 欧美日韩性生活| 欧美日韩一级二级三级| 欧美高清性hdvideosex| 欧美一区二区三区男人的天堂| 在线电影一区二区三区| 欧美一区二区黄| 日韩精品一区二区三区视频 | 国产成人精品免费一区二区| 国产精品伊人色| 国产99久久精品| 99久久婷婷国产综合精品电影| www.在线成人| 日本韩国一区二区三区| 欧美亚洲高清一区| 欧美男生操女生|