登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

自己改的AT89S51单片机控制GSM模块(M22)发送短信程序,在Keil上编译没错,但还未试过烧入片内运行。。 - hdbcf的专栏 - CSDN博客  

2010-09-12 13:28:57|  分类: 单片机-太阳能 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
自己改的AT89S51单片机控制GSM模块(M22)发送短信程序,在Keil上编译没错,但还未试过烧入片内运行。。  
大家看看,这个程序可行否?   还有什么错误的地方?  
希望搞过GSM的朋友多提点意见,让程序完善起来!
(偶弄GSM也一段时间啦,希望有兴趣的朋友加我QQ:30651279多多交流)

/***********************************************************
文件名称:main.c
作         者:xiaoyi46       QQ:30651279
说         明:控制发送SMS信息的C51程序[GSM模块(M22)通过串口与单片机相连]
***********************************************************/

#include   <reg51.h>
#define   uint   unsigned   int
#define   uchar   unsigned   char

//**********函数定义**********//
void   main(void);   //主函数
void   Ini_UART(void);   //串口初始化
void   Delay(void);   //延时
void   CMGF(void);   //设置发送数据为TXET格式
void   CMGS(void);   //设置目的手机号码
void   SEND(void);   //发送字符串


/***********************************************************
函数名称:main
函数功能:主函数                                 入口参数:无         出口参数:无
***********************************************************/
void   main(void)
{
        Ini_UART();   //串口初始化

        CMGF();     //设置发送数据为TXET格式
        Delay();

        CMGS();     //设置目的手机号码
        Delay();

        SEND();
        Delay();
}


/***********************************************************
函数名称:Ini_UART
函数功能:串口初始化设置                 入口参数:无         出口参数:无
***********************************************************/
void   Ini_UART(void)
{
        SCON   =   0x50;   //UART方式1:8位UART;   REN=1:允许接收
        PCON   =   0x00;   //SMOD=0:波特率不加倍

        TMOD   =   0x20;   //T1方式2,用于UART波特率

        TH1     =   0xFD;
        TL1     =   0xFD;   //UART波特率设置:9600
        TR1     =   1;
}


/***********************************************************
函数名称:Delay1ms
函数功能:延时                                   入口参数:无           出口参数:无
***********************************************************/
void   Delay(void)
{      
        uint   i,j;

        for   (i=0;   i <10;   i++)
        {
            for(j=0;   j <1000;   j++);
        }
}


/***********************************************************
函数名称:CMGF
函数功能:设置发送数据为TXET格式       入口参数:无     出口参数:无
***********************************************************/
void   CMGF(void)
{
    uchar   i   =   0;
    uchar   code   mode[]= "AT+CMGF=1\r ";     //   \r即   <CR>   回车

    while(   mode[i]   !=   '\0 ');
        {
            SBUF   =   mode[i];
            while(TI   ==   0);
            TI   =   0;
            i++;
        }
}


/***********************************************************
函数名称:CMGS
函数功能:设置目的SIM卡号码                 入口参数:无     出口参数:无
***********************************************************/
void   CMGS(void)
{
    uchar   i   =   0;
    uchar   code   phone[]= "AT+CMGS=\ "13821947411\ "\r ";     //   \ "即“

    while(   phone[i]   !=   '\0 ');  
        {
            SBUF   =   phone[i];  
            while(TI   ==   0);
            TI   =   0;
            i++;
        }        
}


/***********************************************************
函数名称:SEND
函数功能:将GPS数据送入SBUF                 入口参数:无     出口参数:无
***********************************************************/
void   SEND(void)
{
    uchar   i   =   0;
    uchar   code   sms[]   =   "Hello\x01a ";//sms为欲发送的字符串数组,\x01a即Ctrl+Z

    while(   sms[i]   !=   '\0 ');
        {
            SBUF   =   sms[i];
            while(TI   ==   0);
            TI   =   0;
            i++;  
        }
}


引文来源  自己改的AT89S51单片机控制GSM模块(M22)发送短信程序,在Keil上编译没错,但还未试过烧入片内运行。。 - hdbcf的专栏 - CSDN博客
  评论这张
 
阅读(1958)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018