单片机控制GSM模块发短信,程序

下面是程序,不知道程序错在哪,发短信不成功。确定了硬件方面没有错误,求大神,谢谢!
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key=P3^4;

void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}

void send(uint sdata)
{
SBUF=sdata;
while(TI==0);
TI=0;
}

void main()
{
SCON=0x40; //SM1=1,其他为0
TMOD=0x20;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
REN=1;
key=1;
EA=1;
ES=1;
while(1)
{
if(key==0)
{
delay(10);
if(key==0)
{
send ("AT+CMGF=0\r\n");
delay(1000);
send ("AT+CMGS=25\r\n");
delay(1000);
send ("0891683108401505F011000D91688121163768F20008000A6211723153557247673A");
delay(2000);
send (0x1a);
}
}
}
}
是用的stc89c52rc控制的GSM模块

void send(uint sdata)--这是发送一个字节的函数
{
SBUF=sdata;
while(TI==0);
TI=0;
}

send ("AT+CMGF=0\r\n");
send ("AT+CMGS=25\r\n");

发送一个字节的函数,在这里,你却用它发送字符串?

----
单片机发出的东西,你先不要急着送到手机模块。
先送到 PC 的串口助手,看看,你都发出了什么。追问

那请问怎样把那个函数改为发送字符串呢,谢谢

追答

编程呗。

看看我的百度空间,串口通信的程序,有很多的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-19
- -请你仔细去看下你的AT指令。格式要求很严格追问

AT指令没错误,我在GSM串口调试助手上这样是可以成功的,但是用单片机不能成功,不知道程序错在哪

追答

发:AT
收:OK
发:AT+CMGF=1
收:OK
发:AT+CMGS=135xxxxxxxx号码
收:>
发:data→ //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A)
收:+CMGS: 54 OK

单片机控制GSM模块发送短信
1、成品的程序只要适合你的单片机并且可以完成你的要求,下载到单片机之后就可以了 2、你的目的是单片机控制GSM模块,所以在调试之后不必须将单片机和电脑连接,只需将单片机和模块相连,若是连接了可以用来监视单片机发送的命令和模块返回命令是否正确。3、将你想要发送的命令编成程序中的字符串,单片机通过...

单片机控制手机发短信
1、硬件设计:选用MCS51兼容单片机,我用了WINDOND78E58B,再用了MOTOROLA G20的GSM模块,外接的SIM卡电路和3.3v供电电路都自己设计,GSM模块通过串口接单片机串口,接受指令控制。另用一个433MHZ无线接收模块,其一个触点接单片机I\/O口,当连接到被监控设备(保险柜门内感应开关)受触发时,433MHZ无线...

语音报警系统怎么做呀?需要单片机控制,还要短信发到手机上???_百度知...
控制模块由单片机控制,语音模块可以使用特定的语音芯片,如果需要自己录制语音的话,可以使用ISD400X系列的。GPRS和GSM模块,既可用于拨打电话,也可以用来发送短信,如果仅仅需要打电话的话,就可以通过电话线,使用DTMF模块拨打电话就行了。如果仅仅需要发送短信,那么就不需要语音模块了。

GSM模块与单片机
GSM模块肯定不会只是一个集成块,他是一整块电路板,对于这种手机,这个模块基本就是除去外壳,电池,按键和显示器后剩下的全部了,建议你别拆。找到这个手机的串口,把串口接到你的单片机的串口,通过串口下AT指令就可以了。

GSM模块的概述
开发人员使用ARM或者单片机通过RS232串口与GSM模块通信,使用标准的AT命令来控制GSM模块实现各种无线通信功能,例如:发送短信,拨打电话,GPRS拨号上网等。基于GSM模块产品的开发往往都是基于ARM平台,使用嵌入式系统进行开发。有些GSM模块具有“开放内置平台”功能,可以让客户将自己的程序嵌入到模块内的软件平...

gsm模块,收到外围设备数据后,就能直接将数据篇成短信发送出的GSM模块有...
没把,GSM模块是用AT命令控制的,而发什么样的AT命令由单片机程序控制,GSM模块不能控制吧。GSM模块就像个手机,手机能发短信打电话必须要人操作,没操作手机是不会发短信和打电话,操作就像控制AT命令的的单片机程序。

GSM模块 AT+CMGS怎么发送短信?
再发送去输入1A,然后选择16禁进制或者Hex发送就行

通过GSM系统,单片机能不能给多个手机发送信息?
可以的,这和单片机无关,其实就是单片机控gsm模块去发送多条短信,号码也是可控的

G100短信模块通信原理
G100短信模块的通信原理主要涉及到硬件和软件两大部分。硬件方面,G100短信模块采用三线制串口(TX、RX、GND)进行数据传输,没有额外的握手和数据流控制线,其传输数据格式包括1个起始位、8个数据位、1个停止位,不进行校验,使用固定的串口速率9600bps。在软件方面,上电后,模块内的MCU(单片机)对GSM...

gsm短信发送模块,求用过的大佬解答,请问sim900a和sim800c控制程序一样...
各位大佬们,作为一个单片机小白,我想做一个以51单片机为核心,用DS18B20温度传感器测温度,LCD1602显示,最终通过SIM900A或SIM800C的短信收发功能将温度传输到手机上,手机也可以实时像SIM发短信来查询相关温度的一个小装置。现在我已经能够将温度通过SIM模块发到手机上了,但是手机向SIM发短信查询温度这...

相似回答