📄 main.c
字号:
#include <REG51.h>
#include<intrins.h>
#include "serial.h"
#include "gsm.h"
#include "bianliang.h"
#include <string.h>
#define uchar_code unsigned char code
#define uchar unsigned char
#define SELInt_on() ES=1 //串行口中断允许
#define SELInt_off() ES=0 //串行口中断禁止
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
void delay(int n)
{
uchar i;
while(n--)
for(i=0;i<100;i++);
}
main(void)
{
Ser_Init(); //初始化串口
if(Test_Mc39i())
P0_0=0;
else
P0_0=1;
delay(100);
if(Set_Speed())
P0_1=0;
else
P0_1=1;
delay(100);
if(Store_Location())
P0_2=0;
else
P0_2=1;
delay(100);
if(Auto_Prompt())
P0_3=0;
else
P0_3=1;
delay(50);
if(MES_Mode(1))
P0_4=0;
else
P0_4=1;
delay(50);
Cls_Rebuf();
// P0_5=1;
// else
//if(Sent_Mes(alarm_mes))
//P0=Rev_count;
//P0=Rev_Buf[35];
//delay(10000);
//P0=Rev_Buf[36];
//delay(10000);
//P0=Rev_Buf[37];
//delay(10000);
//P0=Rev_Buf[38];
/* Rev_Buf[34]=0x31;
Rev_Buf[35]=0x33;
Rev_Buf[36]=0x35;
Rev_Buf[37]=0x36;
Rev_Buf[38]=0x30;
Rev_Buf[39]=0x34;
Rev_Buf[40]=0x30;
Rev_Buf[41]=0x35;
Rev_Buf[42]=0x38;
Rev_Buf[43]=0x34;
Rev_Buf[44]=0x34;
Rev_Buf[45]=0x31;
MES_COUNT=0x33;
Read_Mes(MES_COUNT);
if(!strcmp(TEL_Buf,TelNumber))
P0_7=0;
else
//P0_7=1;
P0=TEL_Buf[11];
*/
while(1);
/* while(1)
{
New_Mes();
if(NewSMS_flag)
P0=MES_COUNT;
NewSMS_flag=0;
MES_COUNT=0;
//else
//P0=Rev_Buf[15];
// P0_1=1;
}*/
//P0=Rev_Buf[12];
//delay(50);
//P0=Rev_Buf[24];
//P0=0xfE;
//INIT_GSM(); //MC39i初始化
/* while(1)
{
New_Mes();//检测是否有新信息
if(NewSMS_flag==1)
{
NewSMS_flag=0;//复位新短信标志
Read_Mes(MES_COUNT);//读取控制指令
CMD_SHIBIE();//指令识别
Del_Mes(MES_COUNT);//删除短信
}
if(TELNUM_OK)//如果电话号码正确
{
switch(CMD)
{
case 1:
P1_7=0;
break;
}
}*/
//TEL_Bef
/***************查询接收方式***********************/
/*if(RI) // 是否有数据到来
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
P0 = tmp; // 数据传送到P0口
//send_char(tmp); // 回传接收到的数据
}*/
/***************************************************************************/
/*if(Rev_Buf[0]==0x01)
P00=0;
if(Rev_Buf[1]==0x01)
P01=0;
if(Rev_Buf[2]==0x01)
P02=0;
if(Rev_Buf[3]==0x01)
P03=0;
if(Rev_Buf[4]==0x01)
P04=0;
if(Rev_Buf[5]==0x01)
P05=0;
if(Rev_Buf[6]==0x01)
P06=0;
if(Rev_Buf[7]==0x01)
P07=0;*/
// }
}
void Ser_Rev() interrupt 4 using 1//中断接收
{
SELInt_off();
if(RI==1)
RI=0;
Rev_Buf[Rev_count++]=SBUF;
if(Rev_count==Rev_BufSIZE)
{
Rev_count=0;
}
SELInt_on();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -