//单片机89s52控制GSM(TC35i)发短信和打电话程序
#include <reg52.h>
#include <absacc.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit D10LED=P0^0;//指示灯0
sbit D11LED=P0^1;//指示灯1
sbit SW4=P0^2; //按钮4(没有用)
sbit SW5=P0^3; //开始按钮,按下后开始发短信,打电话
sbit beeper=P0^4; //蜂鸣器提示器件
sbit J1=P0^6; ////继电器1 ,2提示器件
sbit J2=P0^7;
sbit START_TC=P3^2; //启动TC35i的控制端
uchar code PhoneCall[]={"ATD13795568363;"};//打电话数据
uchar code TxtMode[9]={"AT+CMGF=0"}; //短信模式设置PDU模式
uchar code mess_qian[8]={"AT+CMGS="};// 短信 长度设置
uchar code length[2]={"27"}; //短信的长度 2个数(根据短信内容不同要改变)
uchar code cnum[18]={"0891683108803105F0"};//18个数(中心号码设置)
uchar code pdu1[10]={"11000D9168"};//10个(短信格式设置可以为固定+86的手机)
uchar code pnum[12]={"3197558663F3"};//12个数(短信接收手机号码设置)
uchar code pdu2[6]={"0008A7"};//6个 (短信有效期,可以固定不变)
uchar code lenmsg[2]={"0C"}; //短信内容的长度 2个数(16进制)//(因短信具体内容不同要改变的)
uchar code pdumessage[24] = {"606D559CFF0C6210529FFF01"};//12个数。内容为:“恭喜,成功!”的PDU码。
uchar code AT[]={"AT"}; //联机命令
init_chuankou()
{
EA=0; //关总中断
ET1=0;//禁止中断1
SCON=0X50;
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;//波特率为9600
TR1=1;
}
delay_Xms(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=113;j>0;j--);
}
/*******************************************************/
Print_Char(uchar ch)//发送单个字符
{
SBUF = ch; //送入缓冲区
while(TI == 0); //等待发送完毕
TI = 0; //软件清零
}
Print_Str(uchar * str,uint len)//发送字符串,调用Send_Char() len字符串长度
{
while(len--)
{
Print_Char(*str++);
}
}
/********************************************************/