• 大小: 21.02 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-10-09
  • 语言: 其他
  • 标签:

资源简介

单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序(实际调试通过,有详细注释的)。
前段时间,我找资料很辛苦,现在我挂出来,大家分享,请指教。前辈们,别笑话哈。

资源截图

代码片段和文件信息

//单片机89s52控制GSM(TC35i)发短信和打电话程序
#include 
#include 
#include 

#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 ij;
   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 * struint len)//发送字符串调用Send_Char() len字符串长度
{
while(len--)
{
Print_Char(*str++);
    }

}
/********************************************************/

start_TC35i()  //启动TC35i的函数
{
beeper=0;
delay_Xms(500);
delay_Xms(500);
beeper=1; //蜂鸣器响一次
D10LED=0;
J1=0;
delay_Xms(2000);
D10LED=1;   //继电器1,灯1工作一次
J1=1;
D11LED=0;
J2=0;
delay_Xms(2000);
D11LED=1;   //继电器2,灯2工作一次
J2=1;
START_TC=0;//启动TC35i
delay_Xms(1500);// 时间必须大于100ms
START_TC=1;//完成启动 //此后一直保持高电平
}
void GSM_AT() //发“AT”的函数
{   
     Print_Str(AT2);
     Print_Char(‘\r‘); //以回车作为结束符号,手机才能识别
     ES=1;
     delay_Xms(1000); //延时
}

/***************************短信**********************************/
void GSM_TXT() //发送AT+cmgf=0  设置短信模式PDU
{   
     Print_Str(TxtMode9);
     Print_Char(‘\r‘);
     ES=1;
     delay_Xms(1000); 
}
void GSM_CMGS()  //发送AT+cmgs= (发短信的命令)
{   
     Print_Str(mess_qian8);
       
}
void GSM_length() //设置短信的长度,length(本例为27,实际不同而不同)
{   
     Print_Str(length2);
     Print_Char(‘\r‘);
     ES=1;
     delay_Xms(1000); 
}
/**********************以下是发PDU码的程序*********************************/
void centernum()  //发中心号码
{
Print_Str(cnum18);
}
void PDU_1()      //发PDU1(短信格式设置可以为固定+86的手机)
{
Print_Str(pdu110);
}
void pdu_phonenum()      //发PDU_phonenum(短信接收手机号码设置)
{
Print_Str(pnum12);

}
void PDU_2()      //发PDU2  (短信有效期,可以固定不变)
{
Print_Str(pdu26);

}
void Len_msg()      //{“0C“}; //短信内容的长度 2个数(16进制)
{
Print_Str(lenmsg2);

}
void pdu_message()      ////短信内容24/2=12个数()
{
Print_Str(pdumessage2

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5247  2010-01-17 11:24  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35.c

     文件       1984  2010-01-17 11:26  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35.hex

     文件         44  2010-01-17 11:26  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35.lnp

     文件      10740  2010-01-17 11:24  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35.LST

     文件      15555  2010-01-17 11:26  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35.M51

     文件      13387  2010-01-17 11:24  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35.OBJ

     文件      11427  2010-01-17 11:26  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35

     文件       7702  2010-01-17 11:29  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\mytc35.plg

     文件       5247  2010-01-17 11:28  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序\单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序.txt

     目录          0  2010-01-17 11:38  单片机AT89s52控制GSM模块TC35i发短信,打电话的C程序

----------- ---------  ---------- -----  ----

                71333                    10


评论

共有 条评论

相关资源