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

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

?? tc35.c

?? 汽車防盜報警與定位追蹤系統(tǒng)源程序
?? C
字號:

extern void delayms(uint z);

/***********************************TC35定義****************************************/
sbit Start_TC35_IGT=P3^6;		 //	啟動TC35-
sbit Close_TC35_PD=P3^7;		 
#define ATwaits					10
#define Textwaits				10
#define Readwaits				10
#define Sendwaits				10

#define UD_OffSet		74		 //在PDU模式下,UD在RsBuf的首地址
#define NewIdex_OffSet	12	 
#define RsBuf_N			150
#define databuf_N		77
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;

xdata	char RsBuf[RsBuf_N];	//定義串口接收數(shù)據(jù)緩沖區(qū)
xdata	char CheckBuf[8];	//定義檢測數(shù)據(jù)緩沖區(qū)
uint 	RsPoint		=0;			//RsBuf[]坐標(biāo)

char 	*ReturnCommand_OffSet;

char 	Index_Tc35[2]={0,0};
//\n0891..換行符'\10''\0'	
char code Ask_Tc35[]={0x0a,0x30,0x38,0x00};			 

/**********************發(fā)送中文的幀格式(PDU格式)*************************************

08:短信息信元SMSC(短信息中心號碼)的字節(jié)長度
91:短信息中心號碼類型,91表明中心號碼是國際通用電話號碼。
683108700505F0:短信息中心號碼:8613800750500。
11:PDU SMS發(fā)送的文件頭字節(jié)。這里11指正常發(fā)送短信息。
00:信息類型。這里00指讓手機(jī)自動加上主叫號碼。
0B:被叫號碼長度。
81:被叫號碼類型。

3124525366F5:被叫號碼13422535665。

00:PID  Protocol Identifier.協(xié)議識別符,1位數(shù)字
08:DCS  Data Coding Scheme	短信息編碼類型.00:發(fā)送數(shù)字或者字符  08:內(nèi)容是漢字,采用UNICODE編碼
A9:VP  Validity Period  短消息發(fā)送的合法期限,0、1或7位數(shù)字,其計算方法依照下表。

				VP值 短消息有效時間長度 
				0~143 (VP+1)×5分鐘 
				144~167 12時+(VP-143)×30分 
				168~196 1天×(VP-166) 
				197~255 1周×(VP-192)
**************************************************************************************/
//char code SMS_SETUP[]="0891683108700505F01100OB81";		
char code SMS_DA[]="3136810314F0";	   //接收的手機(jī)號碼(中文)  萬勝
char code SMS_PDV[]="0008A9";	//PID  DCS  VP	 
char code SMS_UD[]="1067094EBA51654FB54F6076848F66FF01";		   //有人入侵你的車!//用戶數(shù)據(jù)長度 +用戶數(shù)據(jù)	注:一個漢字占兩個字節(jié)  
char code SMS_OVER[]="\x1A\r";			//
char code SendSmg_UDL[]="30";	  ////發(fā)送信息,數(shù)據(jù)長度為 PDU(1)+MR(3)+DA(6)+PID(1)+DCS(1)+VP(1)+UDL(1)+UD(?)=14+UD(?)=???
char code User_DA[]="13422535665";


/***********************************GPS定義****************************/
sbit GPS_EN=P1^7;
//xdata char databuf[70]={"$GPGGA,1114641,3002.3232,N,12206.1157,E,1,03,12.9,53.2,11.6,M,,*4A"};	 //調(diào)試用的
xdata	char databuf[databuf_N];
unsigned char tmp;
unsigned char Rt=1;	
unsigned int  databyte;
unsigned char seg_count; //逗號計數(shù)器
xdata char seg[20];
unsigned char byte_count; //位數(shù)計數(shù)器
unsigned char cmd_number; //命令類型
unsigned char mode; //0:結(jié)束模式,1:命令模式,2:數(shù)據(jù)模式
unsigned char buf_full; //1:整句接收完成,相應(yīng)數(shù)據(jù)有效。0:緩存數(shù)據(jù)無效。
unsigned char cmd[8]; //命令類型存儲數(shù)組
unsigned char MaySendGPS=0;

//聲明函數(shù)原型
void ClrBuf(unsigned char *p,uint size);
//void UART_init(void);
void SendASC(unsigned char ASC);
void SendToTc35(unsigned char* p,uint Long);
void SendString(unsigned char* p);

void Send_AT(void);
void NumToChar(unsigned char i);
void GetNewIndex(void);
char *mystrstr(char *s, char *t);
void Send_Chinese();

void ReadMsg();
void Send_GPS();

/*********開啟TC35模塊*********************/  
void start_tc35(void)
{
	Start_TC35_IGT=0;	//sbit Start_TC35_IGT=P3^7;
	delayms(400);
	Start_TC35_IGT=1;   //sbit Start_TC35_IGT=P3^7;
}
/*********關(guān)閉TC35模塊*********************/ 
void close_tc35(void)
{
	Close_TC35_PD=0;   //sbit Close_TC35_PD=P3^6;
	
	delayms(4000);
	
	Close_TC35_PD=1;	//sbit Close_TC35_PD=P3^6;
}


/*********************發(fā)送-個ASCII********************************
*功    能: 串口發(fā)送ASCII碼
*形    參: ASC
*返 回 值:
*備    注: 
*****************************************************************/
void SendASC(uchar ASC)
{
	bit es;
	es=ES;
	ES=0;//關(guān)閉中斷
	TI=0;
	SBUF=ASC;
	while(!TI);
	TI=0;
	ES=es;
}

/**********************發(fā)送-個數(shù)組********************************
*功    能: 串口發(fā)送數(shù)組命令到TC35,為指定長度
*形    參: uchar* p,數(shù)組首地址;		uchar Long為數(shù)組長度
*返 回 值:
*備    注: 
*****************************************************************/
void SendToTc35(uchar* p,uint Long)
{
	while(Long--)
	{
    	SendASC(*p++);

  	}
}

/**********************發(fā)送-個字符串******************************
*功    能: 串口發(fā)送數(shù)組命令到TC35,未指定長度
*形    參: uchar* p,字符串首地址;
*返 回 值:
*備    注: 
*****************************************************************/
void SendString(uchar* p)
{
	while(*p)
	{
    	SendASC(*p++);

  	}
}


/***********************擦察除緩沖區(qū)*****************************/
void ClrBuf(uchar *p,uint size)
{
	uint i;
	for(i=0;i<size;i++)*p++=0;
}


/***********************字符串查找********************************
*功    能: 查找字符串
*形    參: char *s, char *t  ;在s中查找t
*返 回 值: s_temp(t在s中的位置)成功  0 失敗
*備    注: 
*****************************************************************/
char *mystrstr(char *s, char *t)
{
  char    *s_temp;        /*the s_temp point to the s*/
  char    *m_temp;        /*the mv_tmp used to move in the loop*/
  char    *t_temp;        /*point to the pattern string*/

	if (NULL == s || NULL == t) return NULL;

	/*s_temp point to the s string*/
	for (s_temp = s; *s_temp != '\0'; s_temp++){ 
   		/*the move_tmp used for pattern loop*/
		m_temp = s_temp;
    	/*the pattern string loop from head every time*/
		for (t_temp = t; *t_temp == *m_temp; t_temp++, m_temp++);
        /*if at the tail of the pattern string return s_tmp*/
		if (*t_temp == '\0') return s_temp;
     	}
	return NULL;
 }

 /*********************轉(zhuǎn)換北京時間*******************
 *功    能: 將GPS收到的格林尼治時間轉(zhuǎn)化北京時間
*形    參: 
*返 回 值:
*備    注: 北京時間=格林尼治時間+8
**************************************************************** */
void Time_Change (void)
{
	unsigned char hour_shi,hour_ge,hour;
	hour_shi=databuf[seg[3]+1]-48;	
	hour_ge=databuf[seg[3]+2]-48;
	hour_shi=hour_shi*10; 
	hour=hour_shi+hour_ge+8;
	if(hour>23)	{hour=hour-24;}					 //當(dāng)大于24時,減去24
	databuf[seg[3]+1]=hour/10+48;				  //回存到緩沖區(qū)
	databuf[seg[3]+2]=hour%10+48; 
}

/***************************將數(shù)字轉(zhuǎn)換成字符輸出(ascll碼)**************************/
void NumToChar(unsigned char i)
{
	
	if(i>=0&&i<=9)	 //數(shù)字小于10
	{
		SendASC(i+48);
	}
	
	else if(i<=99)//數(shù)字小于100
	{
		SendASC(i/10+48);
		SendASC(i%10+48);
	}
	
	else 			//數(shù)字大于100
	{
		SendASC(i/100+48);
		SendASC(i%100/10+48);
		SendASC(i%10+48);
	}
}
/******************獲取索引號并將信息索引轉(zhuǎn)換成數(shù)字存入Index_Tc35***************************/
			 
void GetNewIndex(void)
{
	if(*(ReturnCommand_OffSet+NewIdex_OffSet)>=0x30&&*(ReturnCommand_OffSet+NewIdex_OffSet)<=0x39)	  //其中index表示短消息存放的位置
		Index_Tc35[0]=*(ReturnCommand_OffSet+NewIdex_OffSet);
	   else Index_Tc35[0]=0;
		
	if(*(ReturnCommand_OffSet+NewIdex_OffSet+1)>=0x30&&*(ReturnCommand_OffSet+NewIdex_OffSet+1)<=0x39)
		Index_Tc35[1]=*(ReturnCommand_OffSet+NewIdex_OffSet+1);
	  else Index_Tc35[1]=0;  	
}

/***********************發(fā)送聯(lián)機(jī)指令******************************
*功    能: 串口發(fā)送數(shù)組命令到TC35,"AT",
*形    參: 
*返 回 值:
*備    注: 測試GSM模塊是否連接正確
**************************************************************** */
void Send_AT(void){
  uchar *p,i=ATwaits;
	while(i--){
    	SendString("AT\r");	   	//"AT"
		//****************************等待應(yīng)答"OK"
    	ES=1;    //必須中斷
    	delayms(150);
    	p=mystrstr(RsBuf,"OK");
    	if(p!=NULL) {
			SendString(p); 
			delayms(1000);
			delayms(1000);
			break;										  
			}
		delayms(1000);
		}
}  
/***********************發(fā)送中文**********************************
*功    能: 
*形    參: 
*返 回 值: 信息數(shù)據(jù)內(nèi)容首地址,從UDL開始
*備    注: 1 發(fā)送成功  0 發(fā)送失敗
****************************************************************/
void Send_Chinese()//發(fā)送定位命令
{ 
	uchar i=Textwaits;
	uchar j=Sendwaits;
	uchar *p;

	RsPoint=0;
	ClrBuf(RsBuf,8);	   //清除串口接收緩沖區(qū)前8字節(jié)
	ES=1;	
	
	//串口發(fā)送"PDU模式"指令
	SendString("AT+CMGF=0\r");
	delayms(1000);		
	//發(fā)送信息,數(shù)據(jù)長度為 PDU(1)+MR(3)+DA(6)+PID(1)+DCS(1)+VP(1)+UDL(1)+UD(?)=14+UD(?)=???  48		  注:一個漢字占兩個字節(jié)
	SendString("AT+CMGS=");
	SendString(SendSmg_UDL);	
	SendASC('\r');		
	RsPoint=0;
	ES=1;		
	
	while(i--)				   
	{
		delayms(1000);
		p=mystrstr(RsBuf,">");  //////Get">"
		if(p!=NULL)
		{
			SendString("0891683108700505F011000B81");
			SendString(SMS_DA);	 //   5113632843F5 恒	   3136810314F0 勝
			SendString(SMS_PDV);  //  0008A9
			SendString(SMS_UD);	  //  1067094EBA51654FB54F6076848F66FF01
			SendString(SMS_OVER);
						/*		
                       char code SMS_DA[]="3124525366F5";	   //接收的手機(jī)號碼(中文)
                        char code SMS_PDV[]="0008A9";	//PID  DCS  VP	 
                       char code SMS_UD[]="1067094EBA51654FB54F6076848F66FF01";	//有人入侵你的車!//用戶數(shù)據(jù)長度 +用戶數(shù)據(jù)	注:一個漢字占兩個字節(jié)  
                       char code SMS_OVER[]="\x1A\r";		// \x 表示后面的是十六進(jìn)制數(shù),及表示發(fā)十六進(jìn)制的1A加回車
                       char code SendSmg_UDL[]="30";////發(fā)送信息,數(shù)據(jù)長度為 PDU(1)+MR(3)+DA(6)+PID(1)+DCS(1)+VP(1)+UDL(1)+UD(?)=14+UD(?)=???
                       char code User_DA[]="13422535665";	*/


		
			delayms(10);
			//RsPoint=0;
			while(j--)
			{
		    	p=mystrstr(RsBuf,"OK");
				if(NULL!=p)
				{
					//成功發(fā)送
					show delayms(1000);
					i=0;
					j=0;
				}
			show delayms(1000);
			}
		}
		show delayms(1000);
	}
	
}	
																					  
/***********************讀取短信,并判斷******************************
*功    能: 	讀取短信,并判斷是否"位置"兩個字,
			是:	向用戶發(fā)送GPS信息
			否:跳出循環(huán)
*形    參: 
*返 回 值: 
*備    注: 	
************************************************************************/
void ReadMsg()
{
			uchar *p,i=0;
			uchar j=Sendwaits;
						
			ClrBuf(RsBuf,8);
			RsPoint=0;
			ES=1;

			//獲取索引號Index_Tc35[]={0,0};
			GetNewIndex();
			delayms(1000);
			SendString("AT\r");
			delayms(1000);
			//串口發(fā)送"PDU模式"指令
			SendString("AT+CMGF=0\r");
			delayms(1000);
			SendString("AT+CMGR=");			//向tc35i發(fā)送讀信息指令"AT+CMGR="//
			SendString(Index_Tc35);	        //輸入Index_Tc35//
			SendASC('\r');					//向tc35i發(fā)送回車指令// 

			RsPoint=0;
			ES=1;

			while(j--){
			delayms(1000);
			p=mystrstr(RsBuf,Ask_Tc35);
			if(p!=NULL)
			{
				P1_5=0;
				for(i=0;i<8;i++)
				CheckBuf[i]=RsBuf[74+i]; ;
				p=mystrstr(CheckBuf,"4F4D7F6E");		
				if(p!=NULL){
			 	P1_6=0; 			
				Send_GPS();}

			}

			} 	 
		
			 
			
}

/*******************  串口通訊中斷接收程序*************************/
void Seril() interrupt 4 using 1
{
  if(RI==1)
  {
    RI=0;
	tmp=SBUF;
    RsBuf[RsPoint++]=tmp;
	RsBuf[RsPoint]=0x00;

	/////////////////////////////////////////////
	if(Rt==1&&GPS_EN==0)				 
	{
		
		if(tmp=='$')
		{  	
			P1_0=0;
			cmd_number=0; //命令類型清空
			mode=1; //接收命令模式
			byte_count=0; //接收位數(shù)清空
			seg_count=1;
		}
		if(mode==1)
		{
			P1_1=0;
			cmd[byte_count]=tmp; 
			byte_count++;
			if(tmp==',')
			{  	
				P1_2=0;
				mode=2;
				seg_count=2;
			
			}
		}
		if(mode==2)
		{	 P1_3=0;
			if(cmd[1]=='G'&&cmd[2]=='P'&&cmd[3]=='G'&&cmd[4]=='G'&&cmd[5]=='A')
			{	
				databyte=0;
 				mode=3;
			 }
 		}
		if(mode==3)
		{	if(tmp==',')
			{  	
				seg_count++;
				seg[seg_count]=databyte;
			}
			databuf[databyte]=tmp;
			databyte++;
			if(tmp=='*')
			{  	 P1_4=0;
				databuf[databyte+1]=0x0A;
				databuf[databyte+2]=0x0d;
				Rt=0;
			 }
		}

	}  
 }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美精品一区二区色综合| 国产成人精品亚洲日本在线桃色 | 国产精品成人在线观看| 久久不见久久见中文字幕免费| 日韩一区二区三区电影在线观看| 日本不卡视频在线| 久久久蜜桃精品| 99久久夜色精品国产网站| 亚洲欧美国产高清| 欧美猛男男办公室激情| 日韩成人免费电影| 久久久99免费| 99精品国产99久久久久久白柏| 亚洲免费色视频| 在线不卡免费av| 激情综合五月婷婷| 国产精品灌醉下药二区| 在线观看亚洲一区| 久久97超碰色| 中文字幕字幕中文在线中不卡视频| 色8久久精品久久久久久蜜 | 日本午夜精品一区二区三区电影| 日韩午夜三级在线| 懂色av一区二区三区免费观看| 亚洲视频免费看| 欧美人与性动xxxx| 国v精品久久久网| 水野朝阳av一区二区三区| 久久青草欧美一区二区三区| 99re这里只有精品视频首页| 日韩av中文字幕一区二区三区| 精品盗摄一区二区三区| 91小视频免费看| 激情综合色综合久久综合| **网站欧美大片在线观看| 欧美一级搡bbbb搡bbbb| 成人精品电影在线观看| 五月综合激情网| 欧美国产日韩亚洲一区| 666欧美在线视频| av在线播放成人| 麻豆免费精品视频| 一区二区视频在线| 国产女同互慰高潮91漫画| 欧美三级在线看| 成人h动漫精品一区二区| 日韩二区在线观看| 亚洲卡通欧美制服中文| 国产午夜亚洲精品理论片色戒| 欧美日韩国产美女| 色呦呦国产精品| 国产精品18久久久久| 免费人成精品欧美精品| 一区av在线播放| 国产精品成人网| 久久精品夜夜夜夜久久| 日韩一级片网址| 欧美色区777第一页| 成人v精品蜜桃久久一区| 国产麻豆视频一区| 九色综合狠狠综合久久| 日本色综合中文字幕| 亚洲国产一区二区在线播放| 国产精品久久久久天堂| 2022国产精品视频| 欧美成人性福生活免费看| 欧美日韩精品免费观看视频| 91猫先生在线| 91无套直看片红桃| 99精品黄色片免费大全| 成人一级片网址| 成人午夜电影网站| 国产精品 欧美精品| 国产一区二区导航在线播放| 久久成人麻豆午夜电影| 久久99精品国产麻豆婷婷| 日韩国产精品久久久久久亚洲| 亚洲国产美女搞黄色| 一区二区三区成人| 亚洲午夜激情网站| 亚洲成a人v欧美综合天堂| 亚洲国产欧美另类丝袜| 香蕉影视欧美成人| 日韩高清电影一区| 免费看黄色91| 久久91精品久久久久久秒播| 久久成人免费日本黄色| 国产精品综合在线视频| 懂色av噜噜一区二区三区av| 波多野结衣精品在线| 91免费小视频| 欧美日韩一区二区三区视频| 欧美日韩精品专区| 日韩视频免费观看高清完整版在线观看 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 久久成人免费网| 国产精品夜夜嗨| 99精品视频中文字幕| 日本二三区不卡| 欧美顶级少妇做爰| 久久免费精品国产久精品久久久久 | 一区2区3区在线看| 日本最新不卡在线| 国产一区日韩二区欧美三区| 国产91露脸合集magnet| 97精品久久久久中文字幕| 在线精品观看国产| 日韩色视频在线观看| 欧美国产精品专区| 亚洲视频一区在线| 日韩精品福利网| 国产在线看一区| 99精品视频中文字幕| 欧美美女bb生活片| 国产欧美日本一区二区三区| 亚洲天堂网中文字| 日本成人在线看| 成人久久18免费网站麻豆| 91久久久免费一区二区| 日韩一级黄色大片| 国产精品激情偷乱一区二区∴| 亚洲一区二区综合| 国产精品资源站在线| 在线视频亚洲一区| 久久综合九色综合久久久精品综合| 国产精品高清亚洲| 毛片av中文字幕一区二区| 91在线看国产| 久久久不卡网国产精品二区| 亚洲一区二区三区精品在线| 国产综合一区二区| 欧美色成人综合| 国产精品久久久久桃色tv| 蜜臀av一区二区在线免费观看| 97精品超碰一区二区三区| 日韩欧美一区在线观看| 亚洲精品第一国产综合野| 国产乱码精品一品二品| 欧美日韩国产三级| 椎名由奈av一区二区三区| 国模大尺度一区二区三区| 欧美精品丝袜中出| 亚洲婷婷综合色高清在线| 国产成人在线免费| 日韩亚洲电影在线| 天天色综合成人网| 日本高清不卡一区| 中文字幕在线不卡| 国产精品夜夜爽| 精品国产伦一区二区三区免费| 亚洲国产精品久久久久秋霞影院 | 91蜜桃在线观看| 中文字幕av一区二区三区| 久久疯狂做爰流白浆xx| 欧美三级欧美一级| 亚洲最色的网站| 色婷婷狠狠综合| 中文字幕一区二区三区在线观看 | 蜜桃视频一区二区三区在线观看| 色综合久久综合| 国产精品久久久99| 成人动漫一区二区三区| 国产精品视频第一区| 国产成人综合在线播放| 欧美精品一区二区三区在线| 石原莉奈在线亚洲二区| 欧美午夜精品一区二区三区| 亚洲天堂精品在线观看| 99久久综合99久久综合网站| 国产日韩欧美麻豆| 不卡视频在线观看| 成人欧美一区二区三区| 91麻豆国产福利在线观看| 国产精品成人网| 91久久久免费一区二区| 亚洲不卡在线观看| 日韩一级片在线观看| 九九九久久久精品| 久久综合精品国产一区二区三区| 国产制服丝袜一区| 国产精品天美传媒沈樵| aaa国产一区| 亚洲国产日韩综合久久精品| 在线免费一区三区| 天堂精品中文字幕在线| 精品久久久久一区| 国产99久久久精品| 国产精品欧美一级免费| 色噜噜狠狠成人中文综合| 亚洲国产一区二区在线播放| 正在播放一区二区| 另类专区欧美蜜桃臀第一页| 国产亚洲精品aa午夜观看| 成人爽a毛片一区二区免费| 国产精品国产精品国产专区不蜜 | 一本大道综合伊人精品热热| 国产精品久久久久久久久免费丝袜| 成年人国产精品| 亚洲18色成人| 久久免费电影网|