⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 汽车防盗报警与定位追踪系统源程序
💻 C
字号:
#include <REG52.h>
#include <stdlib.h>
//#include <intrins.h>

#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
#define show ;

uchar  Finish_Flag=0;
#include "TC35.c"
sbit Key1=P3^2;
sbit Key2=P3^3;
uchar  INT0_Flag=0;
uchar  INT1_Flag=0;
uchar  num=0,j=0;

/*****************模式设置初始化串口 **************************/
void UART_init(void)
{
                        	//初始化串行口和波特率发生器
	SCON =0x50;         //选择串口工作方式,打开接收允许
	TMOD =0x20;         //定时器1工作在方式2,
	//PCON =0x80;			 //波特率加倍
	TH1  =0xfa;          //实现波特率9600*2=19200(系统时钟11.0592MHZ)
	TL1  =0xfa;
	TR1  =1;             //启动定时器T1

	ES=1;               //允许串行口中断
	PS=1;               //设计串行口中断优先级
	EX0=1;
	IT0=1;
	EX1=1;
	IT1=1;
	EA =1;              //单片机中断允许             
	
}  
/**************1ms延时*****************/
void delayms(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=115;y>0;y--);
}

void main(void)
{ 
	char i=0;
	GPS_EN=1;	
	delayms(100);					
	for(i=0;i<5;i++)delayms(200);	
	ClrBuf(RsBuf,RsBuf_N);
	ClrBuf(databuf,50);
    //串口初始化 定时器初始化
	UART_init();          //中断初使化
	delayms(100); 
	start_tc35();		   //开机
	//串口发送"联机"指令
	Send_AT();		 
	SendString("ATE0\r");				
	delayms(1000);
	//串口发送"新信息报告"指令
	SendString("AT+CNMI=1,1,0,2,1\r");		
	delayms(1000);						   
	//清除串口接收缓冲区前50字节
	ClrBuf(RsBuf,150);
	RsPoint=0;
	ES=1;	
	//tc35i向服务台发送请求信息
	while(1)
	{
		if(RsPoint)	
		{
			//有新信息	"+CMTI: "SM",xx"
			ReturnCommand_OffSet=mystrstr(RsBuf,"+CMTI: \"SM\"");
			if(ReturnCommand_OffSet!=NULL)
			{  
				RsPoint=0;	
//				for(i=0;i<16;i++)  dis2[i]=*(ReturnCommand_OffSet+i);   	
				delayms(1000);
								
				ReadMsg();
				
				ClrBuf(RsBuf,8);
				RsPoint=0;
			} 
		}	
		////////////////////////////////////////////////
		 if(INT0_Flag==1 )    
			{
				INT0_Flag=0;

				Send_Chinese();

				ClrBuf(RsBuf,8);
				RsPoint=0;

			}
		//////////////////////////////////////////////////////////
		if(INT1_Flag==1)  
	 	{
			INT1_Flag=0;
			while(1)
			{
//				if(num%2) Show_GPS_Time ();
//			      else  Show_GPS_NE ();			
		
		 	}
	 	}

	}  
}

void EX_Int0() interrupt 0 
{
 
  INT0_Flag=1; 

}
void EX_Int1() interrupt 2
{
	INT1_Flag=1;
	num++;
	if(num>=10)num=0;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -