📄 main.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 + -