哪位有sim300用51单片机发短信的程序代码
- /************************************************************
- 程序说明:
- 本程序实现发送一条英文短信,向10086 这个号码发送103这个指令
- 1.我们的程序全部都是通过单片机串口2与SIM300通讯,串口1用于下载程序和观察SIM300返回的数据
- (串口2收到的SIM300返回的数据会通过串口1发送到电脑中,用于观察数据),使用过程中,如果没
- 有特殊要求跳线帽不用变动。
- 2.在开发板上放入您的手机卡,接好天线,打开电源,接入耳机。
- 3.把程序编译后下载到单片机中,使用STC—ISP下载,具体请参照教程。
- 4.按下按键4发送指令查询当前服务状态,当服务状态显示CHINA MOBILE 则证明找到网络,可以正常通
- 讯了,如果显示0,0,再按下按键4,等到出现CHINA MOBILE为止
- 5.按下按键5发送指令设置10086电话是短信发送的号码
- 6.此时串口会回复 '>'
- 6.按下按键6设置发送内容,发送短信,成功后串口返回+CMGS ..
- *************************************************************/
- #include "stc12c5a.h"
- #include "systerm.h"
- #include "gprs.h"
- #include "timer.h"
- void main()
- {
- // 调整输入函数的加载值可以改变串口波特率
- // Uart1Init(0,1,184);//初始化串口,设置波特率4800
- // Uart2Init(0,1,220);//初始化串口,设置波特率9600
- // Uart2Init(0,1,232);//初始化串口,设置波特率14400
- // Uart1Init(0,1,253);//初始化串口,设置波特率115200
- Timer0Init();
- Uart1Init(0,1,220);//初始化串口,设置波特率9600
- Uart2Init(0,1,220);//初始化串口,设置波特率9600
- //启动Sim300要按下复位键大概3秒钟
- GPRS_RST = 0;//Sim300 复位键拉低
- DelaySec(3);//延时3秒
- GPRS_RST = 1;//Sim300 复位键拉高
- //Sim300启动完成
- LED5_OFF;
- LED6_OFF;
- LED7_OFF;
- LED8_OFF;
-
- while(1)
- {
- if(KEY4_PRESS)//按键4发送指令查询当前服务状态
- {
- while(KEY4_PRESS)
- {
- LED8_ON;
- }
- LED8_OFF;
- Uart2Sends("at+cops?\r");//发送指令查询当前服务状态
- }
- if(KEY5_PRESS)//按键5发送指令发送10086电话号码
- {
- while(KEY5_PRESS)
- {
- LED7_ON;
- }
- LED7_OFF;
- Uart2Sends("AT+CMGF=1\r");//设置英文方式发送,当然也可以用中文的AT+CMGF=0,不过发送方式不太一样,具体请看相关程序
- DelaySec(1);
- Uart2Sends("AT+CMGS=\"10086\"\r");//发送指令设置10086电话是短信发送的号码
-
- }
- if(KEY6_PRESS)//按键6发送内容
- {
- while(KEY6_PRESS)
- {
- LED6_ON;
- }
- LED6_OFF;
- Uart2Sends("103");//103 为发送的内容
- Uart2Send(0x1a);//以0x1a来结束,表示内容结束,发送短信
- }
- }
-
- }
复制代码
|