- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GSM短模块的实现程序
单片机串口不够用,怎么样模拟数据格式由一个起始位,八个数据位,一个或两个结束位组成。在数据发送是结束位是不能省。但在数据接收时,程序中就没有必要等待结束位了,因为在等待结束位的过程中,把下一个数据的起始中断也等待过去了。程序发送口采用任一IO口,接收口采用外部中断0口,实现了9600bit/s的串口通信信号产生与接收采用定时器定时溢出标志来进行控制1、中断的中断标志要保证状态正确
2、定时器定时要精确
AT指令功能
AT+CMGC Send an SMS commend(发出一条短信息命令)
AT+CMGD Delete SMS message (删除SIM卡内存的信息)
AT+CMGF Select SMS message format(选择短消息信息格式:0-PDU;1-文本)
AT+CMGL List SMS message from preferred store(列出SIM卡中的短消息格式PDU/TEXT:0“REC
UNREAD”为未读,1“REC READ”为已读,2“STOU NSENT”为待发,3“STOSENT”为已发,
4“ALL”为全部
AT+CMGR Read SMS message (读短消息)
AT+CMGS Send SMS message (发短消息)
AT+CMGW Write SMS message to memory (向SIM内存中写入待发的短消息)
AT+CNMI New SMS message storage(显示新收到的短消息)
AT+CPMS Preferred SMS message storage (选择短消息内存)
AT+CSCA SMS service center address(短消息中心地址)
AT+CSCB Select cell broadcast message messages (选择蜂窝广播信息)
AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数)
模块的供电电压如果低于3.3V会自动关机。同时模块在在发射时,电流峰值可高达2A。同时在此电流峰值时,电源电压(送入模块的电压)下降值不能超过0.4V。所以该模块对电源的要求较高,电源的内阻+FFC联接线的电阻必需小于200mΩ。
单片机通过两根I/O口控制TC35的开关机、复位等,通过串口与TC35进行数据通信,通信速率为9600Kbps,采用8位异步通讯方式,1位起始位,8位数据位,1位停止位。
TC35模块输入输出的TTL正电平逻辑不是+5V,而是+2.9V,因此必要时加端口保护。#ifndef sentmessage
#define sentmessage
#define uint unsigned int
#define uchar unsigned char
void delay_1000us(uchar n) //延迟0.01s
{
unsigned char a,b,c;
for(c=0;cn;c++)
{
for(b=249;b0;b--)
for(a=17;a0;a--);
}
}
void delay_100us(uchar c) //误差 -0.173611111111us
{
unsigned char a,b,i;
for(i=0;ic;i++)
{
for(b=1;b0;b--)
for(a=43;a0;a--);
}
}
void delay_5s(void) //误差 -0.000000002274us
{
unsigned char a,b,c;
for(c=203;c0;c--)
for(b=156;b0;b--)
for(a=144;a0;a--);
}
void Sendchar(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void Sentstring(unsigned char *p)
{
while(*p !=\0)
{
Sendchar(*p++);
}
}
/*
void Sent_message()
{
Sentstring(AT+CMGS=\1252015215029882\);
Sendchar(0X0D);
Sendchar(0X0A);
delay_1000us(20);
S
文档评论(0)