1841|0

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

AT89S51单片机控制GSM模块(M22)发送短信程序~~~~~~~~~~~~~~~~~~~~~ [复制链接]

自己改的AT89S51单片机控制GSM模块(M22)发送短信程序,在Keil上已编译没错,但还没试过烧入片内运行。。  
大家看看,这个程序可行否? 还有什么错误的地方?   
希望搞过GSM的朋友多提点意见,让程序完善起来!  

/***********************************************************
文件名称:main.c
作    者:xiaoyi46   QQ:30651279

说    明:控制发送SMS信息的C51程序[GSM模块(M22)通过串口与单片机相连]
***********************************************************/

#include
#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即 回车

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


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

  while( phone != '\0');
    {
      SBUF = phone;
      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 != '\0');
    {
      SBUF = sms;
      while(TI == 0);
      TI = 0;
      i++;
    }
}
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表