1. 谁有89C51单片机(特别是AT89S52)控制GSM模块TC35收发短信的程序(c语言的)急用,非常感谢!
这个程序是已经调完的,并且成功的,功能是定义了一个BUTTON1按键,,按下后就自动发短息,短信内容为nihao,GSM_ATCMGS()函数中有个数组。存入了指令加手机号加0d。把手机好的asc换成你的就能用了。不能用就hi我:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void gsm_uart();
unsigned int uart_delay(unsigned int z);
void GSM_init();
void GSM_CMGF();
void GSM_ATCMGS();
void TELNUM();
void GSM_TEXT();
void GSM_test();
void BUTTON();
unsigned int d;
unsigned char code ATEnter[]={0x41,0x54,0x0d};
unsigned char code ATCMGFEnter[]={0x41,0x54,0x2b,0x43,0x4d,0x47,0x46,0x3d,0x31,0x0d};
unsigned char code ATCMGS[]={0x41,0x54,0x2b,0x43,0x4d,0x47,0x53,0x3d};
unsigned char code TEL_NUM[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
unsigned char code TEXT[]={0x4b,0x4f};
unsigned char code Enter[]={0x0d};
unsigned char code oneA[]={0x31,0x41};
unsigned char idata buf[20];
int flag;
int bufnum=0;
uchar str1[]={"AT"};
uchar str2[]={"ATD"};
uchar str3[]= {"ATH"};
uchar str5[]={"AT+CMGS="};
sbit bell=P1^6;
sbit betton1_1=P3^3;
sbit betton1=P3^4;
void gsm_uart()
{ EA=1;
ES=1;
SCON=0x50; //UART方式1:8位UART; REN=1:允许接收
PCON=0x00; //SMOD=0:波特率不加倍
TMOD=0x20; //T1方式2,用于UART波特率
TH1=0xFD;
TL1=0xFD; //UART波特率设置:9600
TI = 0;
RI = 0;
EA = 1;
TR1=1;
}
unsigned int uart_delay(unsigned int z)
{ unsigned int a,b;
for(a=z;a>0;a--)
{for(b=1000;b>0;b--);}
return z;
}
void ddd() interrupt 4 using 3
{
if(RI) //处理接收中断
{ buf[bufnum]=SBUF; //接收串口数据
RI=0;
bufnum++; //清除中断标志位
}
}
void GSM_init()
{
uint i;
uchar code test[]= {0x41,0x54,0X0D};
ES = 0;
for (i=0;i<3;i++)
{
SBUF = test[i];
while (TI == 0);
TI = 0;
}
ES = 1;
}
void GSM_CMGF()
{
uchar code sel[10]= {0x41,0x54,0x2B,0x43,0x4D,0x47,0x46,0x3D,0x31,0x0D}; //AT+CMGF=1回车
uint i;
for(i=0;i<10;i++)
{
SBUF=sel[i];
while(TI==0);
TI=0;
}
}
void GSM_ATCMGS()
{ uint i;
uchar code tel[20]= {0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D,0x31,0x33,0x38,0x33,
0x36,0x30,0x32,0x33,0x33,0x37,0x39,0x0D};
for(i=0;i<20;i++)
{
SBUF=tel[i];
while(TI==0);
TI=0;
}
}
void GSM_TEXT()
{
uchar code neirong[10]={0x48,0x69,0x21,0x6E,0x69,0x68,0x61,0x6F,0x2E,0x1a}; //hi!nihao.
uint i;
ES =0;
for(i=0;i<10;i++)
{
SBUF=neirong[i];
while(TI==0);
TI=0;
}
ES = 1;
}
void send()
{
SBUF=oneA[0];while(TI==0);TI=0;
SBUF=oneA[1];while(TI==0);TI=0;
}
void GSM_test()
{
gsm_uart();
uart_delay(400);
GSM_init();
uart_delay(1000);
ES =0;
bufnum = 0;
if(buf[5]=='O' && buf[6] =='K')
{
P0=0xfe;uart_delay(1000);P0=0xff;
}
else
{
P0=0x00;uart_delay(4000);P0=0xff;
}
}
void BUTTON()
{ betton1=1;
betton1_1=0;
if(betton1==0)
{
GSM_test();
uart_delay(1200);
GSM_CMGF();
uart_delay(1200);
GSM_ATCMGS();
uart_delay(1200);
GSM_TEXT();
uart_delay(800);
uart_delay(500);
betton1=1;
}
}
main()
{
BUTTON();
uart_delay(10);
}
2. 用c语言或者c++做
手机短信的发明人是芬兰人,因为北欧人的感情比较含蓄,不喜欢通过电话来表达,于是就突发奇想发明了短信。网上有人说短信的发明者是美国人马丁·库珀,他是摩托罗拉的员工,但他发明的是手机,不是短信。
手机短信
世人把1973年第一部手机的问世归功于当年的摩托罗拉总设计师马丁·库珀,而直到将近20年之后手机最具价值的一项附加服务短信才宣告诞生。1992年,Acision公司将首套Short Message Service Centre(SMSC)短消息服务中心系统投向市场,而当初其设计目的则主要是为了调查和改善发展中手机市场的可靠性,随后挪威的本土电信Telenor公司成为了SMSC的第一家签约公司。
一开始的"SMSC box"到如今的AcisionIPSMSC系统,Acision公司将短信息文字服务的单路理速度提升到了16,000条每秒,而其上限永无止境。基于对技术发展水平的预期,Acision公司未来的IMS-enabled平台将能为用户提供更高品质服务的同时降低费用支出,对市场来说这项技术的价值不可估量,SMSC的创新永远不会停止。
1992年,SMSC 1.0版本只具备每秒钟处理10条短信的能力,直到1999年业内才算见到了第一套高速SMSC系统,Acision公司将其处理能力提升到了500条每秒,而目前最新的Acision IP SMSC系统又将这一数字提升了32倍。
尽管移动市场发展飞速,不过短信仍然是其最重要的一项附加价值服务。据此前IDC公司统计,文字短信仍是亚太地区手机用户普及率最高的一项移动服务,即使在短信的发展中市场,例如西欧短信服务的使用率也达到了90%。
Acision公司的市场部经理Steven van Zanen表示:"短信对于这个星球上的几乎所有移动网络服务商的收入都起到了至关重要的作用,在短消息服务中心系统的15年发展历程中,短信取得了全面的成功。不过,我们的任务仍然没有完成,Acision将坚持对自己系统进一步提升,提供更新更尖端的技术以保持我们在这一行业15年来的领先地位。"
1992年,世界上第一条短信在英国沃达丰的网络上通过电脑向手机发送成功,从而宣布手机短信诞生。至于中国的第一条短信诞生于何时何地已无从知晓,但据考证,中国的移动通信网络早在1994年就具备了短信功能,只是那时有手机的人根本不需要它罢了。随着手机的日益普及,从1998年开始,移动、联通先后大范围拓展短信业务:2000年,中国手机短信息量突破10亿条;2001年,达到189亿条;2004年,数字飞涨到900亿条。
据工信部公布统计数据显示,2012年,全国移动短信发送量达到8973.1亿条,同比增长仅2.1%,增幅为四年最低。两项数据对比可以发现,我国手机用户增速远大于短信业务,我国2012年短信均发送量实际下滑了9%左右。
工信部数据显示,2012年我国移动电话用户达到11亿户,其中短信业务用户达到7.6亿户,渗透率为68.8%,手机网民用户约为4.2亿,渗透率为38.2%。另一方面,在我国11亿手机用户中,腾讯微信用户超过3亿户,渗透率为27.3%。而在中国每10个手机网民中,就有超过7个为微信用户。
3. 用单片机控制手机模块发送PDU短信的C语言程序
我想楼主的意思是不是想在单片机的某个输入口上安装的按钮,按钮按下后短信就发出去了。其实这很简单,你要用单片机的串行口跟TC35通讯。首先你先将单片机的波特率定义的和TC35一致,然后根据PDU格式将你要发送的短信内容编码后存放在单片机里,程序检测到控制端电平变化后就调用发送子程序按照AT指令的格式发送就完了。不过这样你只能发送固定内容的短信。
4. 求,急求,跪求,含泪求C语言编程实现 手机短信接受,发送,删除操作
你是想用c语言写手机软件??没必要吧,android自带有那功能,如果真要写也应该用java,而不是c,如果是想手机控制电脑有点麻烦,但我可以实现,方法不定
-物联网校企联盟技术部
5. 求linux下C语言编程的通信模块实现拨号与收发短信功能的源代码!
你的是 TC35么,直接初始化串口,然后发送At指令AT+CMGC 发送短信AT+CMGR接收短信,然后通过串口查询,看有没有受到Ok,收到了说明发送成功,我这有8051单片机控制Tc35的源码
6. 怎样用51单片机控制GSM模块发短信,求相关程序(C语言汇编都行)
首先要看哪家GSM模块,我以前做过一个电脑串口链接GSM模块收发短信,打接电话,上网程序,通过串口发送AT指令,你就把单片机的串口和GSM脸上,波特率什么的都调对,能通信就行,一般应该就是at指令,如果发送AT能回来ok就没问题,像什么atd打电话,还有发短信的指令都有,不过就是短信编码麻烦一些,你可以上网去搜短信编解码的程序,大把大把的。一般模块的厂家都会有datasheet,可以联系一下,有datasheet就什么都好办了。其实GSM模块里面估计也是单片机或arm,加上一个射频电路,只要把它当成一个一般的元器件就可以使用了,不是很复杂的。
7. 如何编写短信,例如回复短信AA+BB+C+内容。要怎么写,请高手指导
是想用JAVA发短信是吗?
首先你得有个短信服务器。一般都是和电信,移动合作的。
然后JAVA代码如下
PostRequest pr = new PostRequest();
public static String smsUrl = “短信认证服务器地址”:
private static DCSMSender instance = new DCSMSender();
public static DCSMSender getInstance() {
return instance;
}
private DCSMSender() {
}
/**
* 向指定手机号码(可多个)发送指定信息
*
* @param cellPhones 手机号
* @param msg 短信内容
* @return 成功、失败
*/
public boolean send(String[] cellPhones, String msg) {
Map param = new HashMap();
String result = "";
param.put("cellPhones", java.util.Arrays.toString(cellPhones));
param.put("msg", DcipherTrans.cipher("system", msg, true));
pr.setParameters(param);
pr.setUrl(smsUrl);
try {
result = pr.getPost();
if ("1".equals(result)) return true;
else return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public static void main(String[] args) {
String[] cellPhones = {"12345678900"};
String content = "这是发送的内容";
DCSMSender.getInstance().send(cellPhones, "AA+BB+CC“+content);
System.out.println("发送成功");
}
8. 求一个用单片机控制gsm模块发送短信的c语言程序,谢谢了
如果只发送ASCII短信的话程序比较简单,发送中文的就比较复杂了。另外,对于不同型号的GSM模块,发送中文短信的程序略有差别,不知你是哪一种需求。