#include
#include
#define uchar unsigned char
#define uint unsigned int
#define RxIn 90 //定义接收的数组长度为90
uchar code AT[]="AT"; //握手信号
uchar code ATE[]="ATE"; //关回显
uchar code AT_CNMI[]="AT+CNMI=2,1";//设置这组参数来了新信息直接显示到串口,不作存储
uchar code AT_CSCA[]="AT+CSCA=\"+8613800571500\"";//设置服务中心号码 AT+CSCA=\"+8613010360500\"
uchar code AT_CMGF[]="AT+CMGF=1";//设置短信的格式为text格式
uchar code AT_CMGR[]="AT+CMGR=";//读取短信指令
uchar code AT_CMGS[]="AT+CMGS=";//发送短信指令
uchar code AT_CMGD[]="AT+CMGD=";//发送短信指令
uchar AT_delete[12];
uchar AT_Read[12]; //用来存储发送读取短信指令
uchar AT_SendNumber[22]; //用来存储发送短信号码指令
uchar numberbuf[3]; //用来保存短信条数
uchar idata SystemBuf[RxIn]; //储存出口接收数据
uchar CommandBuf[4]; //用来储存指令
uchar Rx=0;
bit receiveready=0; //接收短信标志位
bit sendready=0; //发送短信准备标志位
bit send=0; //发送短信标志位
sbit IGT=P2^7;//启动GSM的启动线连IGT
sbit sw1=P3^3; //打电话
sbit sw2=P3^4; //发测试短信
sbit sw3=P3^5; //发温度
sbit beep=P3^2; //蜂鸣器
void Delay_ms(uint i);
void Start_GSM(void);
void UART_init (void);
void sendchar(uchar ch);
void sendstring(uchar *p);
void GSM_INIT(void);
void receive_ready(void);
void message_read(void);
void read_message(void);
void sendmessage(void);
uchar code AT7[]={0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D};//AT+CMGS= AT+CMGS=“+8613xxxxxxxxx”回车>输入短消息。Crtl+Z结束并发送。
uchar code AT12[]={0x41,0x54,0x44,0x3E};//ATD> ATD*****; (拨号,"*"为需要拨的号码,如呼叫13973292929,则为ATD13973292929;
uchar code neirong[11]="15158107675"; //13185018567
sbit DQ=P3^7; //DS18B20数据传输线接单片机的相应的引脚
unsigned char tempL=0; //临时变量低位
unsigned char tempH=0; //临时变量高位
float temperature; //温度值
unsigned char k,ge,shi,bai;
uchar code atshanchu[]={ "AT+CMGD=9"};
sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P1^2;
void delaymm(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay(unsigned int k)
{
unsigned int n;
n=0;
while(n < k)
{n++;}
return;
}
void write_cmd(uchar cmd)
{
lcden=0;
lcdrs=0;
lcdrw=0;
P0=cmd;
_nop_();
lcden=1;
delaymm(1);
lcden=0;
_nop_();
}
void write_dat(uchar dat)
{
lcden=0;
lcdrs=1;
P0&#