大学学士学位论文
}
return;
//未加入网络则返回
receive_ok=0; rcount=0;
delay(4000);delay(4000); i=0xffff;
Sendcmd(\ //设置新短消息提示方式
while(receive_ok==0) { i--;
if(i==0)
{
rcount=0; receive_ok=0; return;
}
}
receive_ok=0; rcount=0;
tc35_init_ok=1;
}
void Readsms(uchar index) { ulong i=0x1ffff;
bit es;
receive_ok=0; rcount=0;
Sendcmd(\ Sendchar(index+0x30); Sendchar(0x0D); // receive_ok=0; while(receive_ok==0) {
i--;
//超时还未响应则返回
//全部初始化完毕置标志
//读取指定索引号的短信内容 //这个值不能再小
- 31 -
附录
//
}
receive_ok=0; rcount=0;
if(i==0) { }
rcount=0; receive_ok=0; return;
//超时还未响应则返回
es=ES; ES=0; //
rcount=0; receive_ok=0; ES=es;
//恢复中断
//关闭中断
flag_biaozhi[3]=rbuff[rcount-9]; //读取SC 标志 flag_biaozhi[2]=rbuff[rcount-10]; //
flag_biaozhi[3]=rbuff[rcount-9]; //读取SC 标志
flag_biaozhi[2]=rbuff[rcount-12];
void Delsms(uchar index) {
//删除指定索引号的短信
ulong i=0x5fffff; receive_ok=0; rcount=0;
Sendcmd(\Sendchar(index+0x30); Sendchar(0x0D); while(receive_ok==0) {
i--; if(i==0) { }
rcount=0; receive_ok=0; return;
//删除等待5秒,有的时候删除短信很慢
//超时还未响应则返回
- 32 -
大学学士学位论文
}
}
receive_ok=0; rcount=0;
void Sendsms(uchar *q) {
ulong i=0x1ffff; rcount=0;
//向指定的号码发送短消息(英文消息)
//数据缓冲区指针回0 //
AT+CMGS=\回车(目的地址)
Sendcmd(\ Sendchar('\Sendcmd(numbuff); Sendchar('\Sendchar(0x0D);
while(rbuff[rcount-2]!='>')//等待TC35回应
{
i--; if(i==0) { }
rcount=0; receive_ok=0; return;
//超时返回
}
Sendcmd(q); Sendchar(0x0D); Sendchar(0x1A); receive_ok=0; i=0x5fffff;
//发送短消息超时处理发送等待5s比较安全
//Ctrl+z发送短信
while(receive_ok==0) {
i--; if(i==0) {
rcount=0; receive_ok=0; return;
- 33 -
//超时还未响应则返回
附录
}
}
receive_ok=0; rcount=0;
}
附2、SMS短息配置程序
#ifndef __SMS_H__ #define __SMS_H__
#include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long extern uchar extern uchar
idata rbuff[]; data databuff[];
extern uchar rcount; extern bit extern bit
tc35_init_ok; receive_ok;
extern bit new_sms; bit kai=0;
void Init_tc35(void);
//判断是否连接TC35
//发送AT命令 //发送一个字符
//向指定的号码发送短消息
//读取指定索引号的短信内容
void Sendcmd(uchar *cmd); void Sendchar(uchar c);
void Sendsms(uchar *q); void Readsms(uchar index); void Delsms(uchar index); #endif
//删除指定索引号的短信内容
附3、GMS水塔控制程序
#include \#include \#include \#include \
- 34 -
大学学士学位论文
#include
#define uint unsigned int #define uchar unsigned char
sbit JQ = P2^0 ; //继电器脚 sbit k1=P3^7;
bit biaozhi; //标志
uint getdate; uchar shuiwei;
sbit led1=P1^5; //工作指示 sbit led2=P1^4; //短信指示
sbit shuiwei_1=P1^2; //低水位输入 sbit shuiwei_2=P1^3; //高水位输入
sbit led3=P1^0; //水位指示LED sbit led4=P1^1; //水位指示LED
sbit IGT=P2^1; bit biaozhi2; uint kk;
uchar code zifu1[]=%uchar code zifu2[]=\
uchar flag_biaozhi[]=\ uchar idata rbuff[128];
uchar numbuff[]=\ 注意要定义为字符串(\\0)
//uchar numbuff[]=\ uchar rcount;
bit
tc35_init_ok;
//接收标志位。01 接收BD 23 接收SC //串口接收数据缓存区
//此处修改为需要接收短信的手机号码,
//串口接收数据指针
//TC35注册成功初始化完成标志
- 35 -