标题:
sim300用51单片机发短信的程序代码
[打印本页]
作者:
q879255365
时间:
2015-12-9 14:22
标题:
sim300用51单片机发短信的程序代码
哪位有sim300用51单片机发短信的程序代码
0.png
(35.63 KB, 下载次数: 95)
下载附件
2015-12-9 17:02 上传
/************************************************************
程序说明:
本程序实现发送一条英文短信,向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来结束,表示内容结束,发送短信
}
}
}
复制代码
作者:
admin
时间:
2015-12-9 16:49
0.png
(38.76 KB, 下载次数: 103)
下载附件
2015-12-9 16:51 上传
SIM300 GPRS单片机源程序.rar
(131.81 KB, 下载次数: 55)
2015-12-9 16:50 上传
点击文件名下载附件
/**************************************************************************
* *
* SIM300实现电话呼叫和GPRS *
* *
* 功能:实现任意的电话呼叫(号码从键盘输入) *
* 实现呼入电话的接听 *
* 实现GPRS连接和发送固定的GPRS信息 *
* 版本: V1.0 (2010/07/23) *
* 网站: *
* 邮箱: hificat@163.com *
* 来源: 杭州晶控电子有限公司 HANGZHOU KinCony ELECTRONICS CO.,LTD *
*【版权】Copyright(C) 杭州晶控电子 www.hificat.com All Rights Reserved *
*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! *
* *
*************************************************************************/
#include <SIM300.h>
//#include <reg51.h>
#include <string.h>
unsigned char q=0;
unsigned char count=0;
unsigned char number[15];//"13185077790";
unsigned char num=0;
void main(void)
{
sys_init();
BELL_UP();
LCD_init();
LCD_clear();
start();
Start_GSM();
GSM_init();
clear_SystemBuf();
while(strsearch("Call Ready",SystemBuf)==0);
BELL_UP();
do
{
LCD_clear();
clear_SystemBuf();
sendstring(AT_COPS);
LCD_write_english_string( 4,2,"searching>");
Delay_ms(3000);
LCD_write_english_string( 4,2,"searching->");
Delay_ms(3000);
LCD_write_english_string( 4,2,"searching-->");
Delay_ms(3000);
LCD_write_english_string( 4,2,"searching--->");
Delay_ms(3000);
}while((strsearch("MOBILE",SystemBuf)==0)&&(strsearch("UNICOM",SystemBuf)==0));//检测服务商信息
BELL_UP();
LCD_clear();
if(strsearch("MOBILE",SystemBuf)!=0)LCD_write_chinese_string(16,2,12,4,6,0);//显示服务商??
if(strsearch("UNICOM",SystemBuf)!=0)LCD_write_chinese_string(16,2,12,4,10,0);//显示服务商??
LCD_write_english_string(0,0,"KinCony");
ET0=1; //T0 中断
for(num=0;num<15;num++)
{
number[num]=0;
}num=0;
while(1)
{
do
{
scan();
if(strsearch("RING",SystemBuf)!=0)
{
clear_SystemBuf();
LCD_write_english_string(0,5,"CALL<---------");
do
{
ET0=0;
BELL_UP();
if(scan()==12)
{
sendstring(ATA);
LCD_write_english_string(0,5," ");
LCD_write_english_string(0,5,"connet call...");
break;
}
}while((scan()!=14)&&(strsearch("NO CARRIER",SystemBuf)==0));
clear_SystemBuf();
LCD_write_english_string(0,5," ");
ET0=1;
}
}
while(jump==0);
LCD_set_XY(count,5);
if ((scan()>=0)&&(scan()<=9)||scan()==-6||scan()==-13) //数字键
{
if(count<84)
count+=6;
LCD_write_char(scan()+48);
number[num]=scan()+0x30;
num++;
}
else if(scan()==12)//退格键
{
if(count>0)
{
count-=6;
num--;
number[num]=0;
LCD_set_XY(count,5);
LCD_write_char(32);
LCD_set_XY(count,5);
}
}
else if(scan()==15)//拨号键
{
unsigned char call[20]="ATD";
strcat(call,number);//13185077790
strcat(call,";");
sendstring(call);
clear_SystemBuf();
ET0=0;
while(1)
{
LCD_write_english_string(0,5,"CALL--------->");
if(scan()==14) //挂机键
{
sendstring(ATH);
for(num=0;num<15;num++)
{
number[num]=0;
}
num=0;
LCD_write_english_string(0,5," ");
count=0;
ET0=1;
break;
}
}
}
else if(scan()==14) //挂机键
{
sendstring(ATH);
for(num=0;num<15;num++)
{
number[num]=0;
}
num=0;
LCD_write_english_string(0,5," ");
count=0;
}
else if(scan()==13)//GPRS演示程序(gprs连接一次发送消息然后断开)
{
ET0=0;
sendstring(AT_CIPCLOSE);Delay_ms(5000);
sendstring(AT_CIPSHUT); Delay_ms(5000);
sendstring(AT_CDSNORIP);Delay_ms(5000);
sendstring(AT_CIPHEAD); Delay_ms(5000);
sendstring(AT_CIPSTART);
Delay_ms(5000);
Delay_ms(5000);
LCD_write_english_string(0,5," ");
LCD_write_english_string(0,5,"connet gprs...");
Delay_ms(5000);
Delay_ms(5000);
LCD_write_english_string(0,5," ");
LCD_write_english_string(0,5,"gprs ok! ");
sendstring(AT_CIPSEND);
Delay_ms(5000);
Delay_ms(5000);
sendstring("Welcome to HANGZHOU KinCony ELECTRONICS!");
Delay_ms(5000);
Delay_ms(5000);
LCD_write_english_string(0,5," ");
LCD_write_english_string(0,5,"gprs sending..");
sendchar(0x1a);
Delay_ms(5000);
Delay_ms(5000);
LCD_write_english_string(0,5," ");
LCD_write_english_string(0,5,"gprs send ok ");
Delay_ms(5000);
Delay_ms(5000);
LCD_write_english_string(0,5," ");
sendstring(AT_CIPCLOSE);Delay_ms(5000);
sendstring(AT_CIPSHUT); Delay_ms(5000);
ET0=1;
}
delayms(800);delayms(800);delayms(800);
jump=0;
}
}
/********************************************************************************************************
** 函数名称 Int_Timer0()
** 函数功能 定时器中断位,是整个程序的心跳,如果停止,程序会死机
*********************************************************************************************************/
void Int_Timer0(void) interrupt 1 using 3
{
TH0 = 0xB8;
TL0 = 0x00; //20ms的时钟基准
timer_1S_cnt++;
timercount++;
if(timer_1S_cnt==50) //20×50=1000M
{
timer_10S_cnt++;
timer_1S_cnt=0;
timer_S_cnt++;
LED_S0=~LED_S0;
Signal();
} //1秒=1000毫秒
if(timer_10S_cnt==60) //60S
{
timer_10S_cnt=0;
}
}
复制代码
作者:
admin
时间:
2015-12-9 17:00
基于sim300和51单片机实现远程短信内容识别控制和数据采集,可用于报警等事件触发场合.rar
(22.03 KB, 下载次数: 57)
2015-12-9 17:00 上传
点击文件名下载附件
SIM300模块51单片机控制发送一条英文短信.rar
(61.64 KB, 下载次数: 51)
2015-12-9 17:00 上传
点击文件名下载附件
作者:
texwhy
时间:
2016-3-16 15:30
单片机+GPRS
作者:
2233221
时间:
2017-5-10 19:29
能不能摸以提定的手机号码发短信高价也行?
作者:
曼殊姓苏
时间:
2017-12-20 16:02
此程序可以用于800A吗?
作者:
backup2k
时间:
2018-4-12 10:44
感谢分享!
作者:
zqy1818
时间:
2018-8-4 11:30
感谢分享,支持下
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1