/********************
程序说明:首先发送短信,然后拨打电话号码,在发送短信和拨打电话号码的时候,
LED灯 会不断地闪烁
*********************/
#include <reg52.h>
#include <absacc.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit led0=P1^7;
sbit igt0=P3^5;
uchar flag=0;
//uchar REC[30];
//uchar code PhoneCall[]={"ATD13795568363;"};//打电话数据
uchar code TxtMode[9]={"AT+CMGF=0"}; //短信模式设置PDU模式
uchar code TxtMode1[9]={"AT+CMGF=1"}; //短信模式设置text模式
uchar code mess_qian[8]={"AT+CMGS="};// 短信 长度设置
uchar code length[2]={"27"}; //短信的长度 2个数(根据短信内容不同要改变)
uchar code cnum[18]={"0891683108706305F0"};//18个数(中心号码设置)
uchar code pdu1[10]={"11000D9168"};//10个(短信格式设置可以为固定+86的手机)
uchar code pnum[12]={"3105373625f3"};//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"}; //联机命令
uchar code PhoneCall[]={"ATD15080666412;"};//打电话数据
uchar code changecunchuqu[]="AT+CPMS=SM"; //选择存储区
//uchar code cscs[]="AT+CSCS=GSM";
/*uchar code AC[]={"S"};
uchar code BC[]={"M"};
uchar code CC[]={"""};
*/
uchar code readxx[]="AT+CMGR=2\r"; //读信息
uchar code newmessagests[]={"AT+CNMI=2,1,0,0,1\r"}; // 新短信提示
uchar code shanchumessagets[]={"AT+CMGD="}; // 删除短信
uchar code Phoneoff[]={"ATH"};
unsigned char rec[25];
unsigned char message[20];
void init_chuankou()
{
EA=0; //关总中断
ET1=0;//禁止中断1
SCON=0X50;
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;//波特率为9600
TR1=1;
}
void delay_Xms(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=113;j>0;j--);
}
void Print_Char(uchar ch)//发送单个字符
{
SBUF = ch; //送入缓冲区
while(TI == 0); //等待发送完毕
TI = 0; //软件清零
}
void Print_Str(uchar * str,uint len)//发送字符串,调用Send_Char() len字符串长度
{
while(len--)
{
Print_Char(*str++);
}
}
void start_TC35i() //启动TC35i的函数
{
led0=0;
igt0=0; //Led指示
delay_Xms(1000); //延时
igt0=1; //接7406反向 IGT=0;启动GSM模块即使GSM的IGT保持100ms以上的低电平
delay_Xms(1000); //延时
igt0=0; //7406反向,IGT=1;
led0=1; //led息灭启动完毕
}
void GSM_AT() //发“AT”的函数
{
Print_Str(AT,2);
Print_Char('\r'); //以回车作为结束符号,手机才能识别
// ES=1;
// delay_Xms(3000); //*******延时至少3S钟 否则可能发送不成功*******
}
void GSM_TXT() //发送AT+cmgf=0 设置短信模式PDU
{
Print_Str(TxtMode,9);
Print_Char('\r');
ES=1;
delay_Xms(1000);
}
void GSM_TXT1()
{
Print_Str(TxtMode1,9);
Print_Char('\r');
// ES=1;
delay_Xms(1000);
}
void GSM_CMGS() //发送AT+cmgs= (发短信的命令)
{
Print_Str(mess_qian,8);
}
void GSM_length() //设置短信的长度,length(本例为27,实际不同而不同)
{
Print_Str(length,2);
Print_Char('\r');
ES=1;
delay_Xms(1000);
}
void centernum() //发中心号码
{
Print_Str(cnum,18);
}
void PDU_1() //发PDU1(短信格式设置可以为固定+86的手机)
{
Print_Str(pdu1,10);
}
void pdu_phonenum() //发PDU_phonenum(短信接收手机号码设置)
{
Print_Str(pnum,12);
}
void PDU_2() //发PDU2 (短信有效期,可以固定不变)
{
Print_Str(pdu2,6);
}
void Len_msg() //{"0C"}; //短信内容的长度 2个数(16进制)
{
Print_Str(lenmsg,2);
}
void pdu_message() ////短信内容24/2=12个数()
{
Print_Str(pdumessage,24);
Print_Char(0x1a); //发送结束标志位(CTRL+Z )
delay_Xms(1000);
}
/*******选择存储区********************/
void xzccq()
{
Print_Str(changecunchuqu,10);
// Print_Char('?');
// Print_Char('"');
// Print_Char('S');
// Print_Char('M');
// Print_Char('"');
Print_Char('\r');
delay_Xms(1000);
}
/********读短信************************/
void read_message(uchar *ch)
{
Print_Str(readxx,8);
Print_Str(ch,2);
Print_Char('\r');
}
/***********新短信提示******************/
void newmessagets()
{
Print_Str(newmessagests,18);
// delay_Xms(1000);
}
/*************删除短信*******************/
void scdx(uchar *h)
{
Print_Str(shanchumessagets,8);
Print_Str(h,2);
Print_Char('\r');
delay_Xms(1000);
}
/**********************拨号的程序*********************************/
void phone()
{
Print_Str(PhoneCall,15);//{"ATD13507363523;"};//打电话数据
Print_Char('\r');
// ES=1;
}
/*************************************************************/
/******zhuhanshu**********/
void main()
{
int j=0;
int i=0,k=0;
init_chuankou();
start_TC35i();
delay_Xms(1000);
GSM_AT();
delay_Xms(5000);
GSM_TXT1(); //信息采用TXT格式
delay_Xms(3000);
Print_Str(readxx,10); //读取信息
RI=0;
for(j=0;j<77;j++)
{
i++;
while(!RI);
if(i>=73) //用户信息在 第73 74字节处
{
message[k++]=SBUF;
}
RI=0;
}
if(message[0]==0X37&message[1]==0x37) //验证信息
{
phone();
phone();
delay_Xms(7000);
// Print_Str(Phoneoff,3); //挂断电话
// Print_Char('\r');
}
// led0=0;
led0=0;
while(1);
}
没有合适的资源?快使用搜索试试~ 我知道了~
gsm-test.zip_GSM tester mail_Global Mobile
共36个文件
bak:6个
uvproj:3个
obj:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 33 浏览量
2022-09-24
18:55:56
上传
评论
收藏 88KB ZIP 举报
温馨提示
gsm(Global System for Mobile Communications)包括读取短信 接收短信 收到电话等代码
资源推荐
资源详情
资源评论
收起资源包目录
gsm-test.zip (36个子文件)
gsm test
GSM_phone call
111.uvopt 62KB
111.hex 2KB
111.LST 8KB
111 10KB
111.plg 214B
111.uvproj 13KB
111_uvproj.bak 0B
111_uvopt.bak 62KB
111.c 4KB
111.OBJ 11KB
111.M51 13KB
111.lnp 38B
GSM_text
111.uvopt 61KB
111.hex 2KB
111.LST 10KB
111 10KB
111.plg 208B
111.uvproj 13KB
111_uvproj.bak 0B
111_uvopt.bak 61KB
111.c 5KB
111.OBJ 12KB
111.M51 15KB
111.lnp 38B
GSM_read text
111.uvopt 58KB
111.hex 3KB
111.LST 11KB
111 12KB
111.plg 11KB
111.uvproj 13KB
111_uvproj.bak 0B
111_uvopt.bak 58KB
111.c 5KB
111.OBJ 15KB
111.M51 17KB
111.lnp 38B
共 36 条
- 1
资源评论
weixin_42651887
- 粉丝: 79
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功