📄 main备份.c
字号:
#include <REG51.h>
#include<intrins.h>
#include "serial.h"
#include "gsm.h"
#include "bianliang.h"
#include <string.h>
#include "1602.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;
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;
sbit P1_7=P1^7;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_5=P2^5;
sbit P2_4=P2^4;
uchar alarm=0;
uchar count=0;
bit idata read_mes=0;
uchar temp2;
void delay(int n)
{
uchar i;
while(n--)
for(i=0;i<100;i++);
}
void main(void)
{
Ser_Init(); //初始化串口
INIT_GSM(); //GSM初始化
MES_COUNT=0x31;
Del_Mes(MES_COUNT);//删除短信
MES_COUNT=0x32;
Del_Mes(MES_COUNT);//删除短信
MES_COUNT=0x33;
Del_Mes(MES_COUNT);//删除短信
Cls_Rebuf();
while(1)
{
if(NewSMS_flag==1)
{
NewSMS_flag=0;
if(Rev_Buf[count+7]==0x53&&Rev_Buf[count+8]==0x4D)//判断该新短信存储的位置是否在SIM卡
{
MES_COUNT=Rev_Buf[count+11];//返回该新短信息的序号
}
Read_Mes(MES_COUNT);//读取控制指令
Del_Mes(MES_COUNT);//删除短信
Cls_Rebuf();
delay(10);
Cls_Rebuf();
CMD_SHIBIE();//指令识别
P1_1=1;
if(TELNUM_OK)//如果电话号码正确
{
TELNUM_OK=0;
P1_2=1;
if(CMD==1)
{
CMD=0;
Sent_Mes(CMD_1);
//delay(2000);
Cls_Rebuf();
}
if(CMD==2)
{CMD=0;
Sent_Mes(CMD_2);
Cls_Rebuf();
}
}
}
if(alarm==1)
{
alarm=0;
Sent_Mes(alarm_mes);
delay(10);
Cls_Rebuf();
}
}
}
void Ser_Rev() interrupt 4 using 1//中断接收
{
SELInt_off();
if(RI==1)
RI=0;
Rev_Buf[Rev_count++]=SBUF;
if(Rev_count==16)
{
for(i=0;i<16;i++)
{
if(Rev_Buf[i]==0x43&Rev_Buf[i+1]==0x4D&Rev_Buf[i+2]==0x54&Rev_Buf[i+3]==0x49)
{ P1_1=0;
NewSMS_flag=1;//置位新短信标志位
count=i; //返回新短信索引号
}
}
}
if(Rev_count==Rev_BufSIZE+1)
Rev_count=0;
SELInt_on();
}
void EINT_SEND() interrupt 0 using 1
{
alarm=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -