• 大小: 27.21 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-11-21
  • 语言: 其他
  • 标签:

资源简介

利用51单片机控制MC35实现发送短信。在这个过程中,单片机判定MC35对AT命令的响应,判定命令是否成功。不成功再发送,直到成功。最终确保短信的发送成功。

资源截图

代码片段和文件信息

#include “Includes.h“

uchar Size = MC35; //请根据您的模块型号设置型号 MC35i/MC35/TC35i/TC35四种可选
uchar code  TEL_temp[20]={‘1‘‘8‘‘9‘‘5‘‘8‘‘1‘‘7‘‘3‘‘9‘‘2‘‘8‘0x0d‘2‘‘5‘};   
//存对方号码0x0d后面的是代码长度,25为5个汉字长度,每加一个汉字+2

uchar F=0;
uint m;
uint  n;
uchar       chinit;
uchar       chping;
uchar data  int_case; //中断标志
uchar  uart_buff[MAX_TM]; //通信程序中的缓冲   /////
uchar idata send_countreceive_count;
data uchar  AT_Command_Type; //当前发送的命令类型
data uchar  AT_Command_Status; //命令发出以后的返回参数
uchar idata para_temp[MAX_T];     //多用临时用
uchar data  read_tmp;             ///读电话本号参数
uchar data  num_tmp1; ///读短信号码参数
uchar data  TMP_BUF;         // 万用 值
uchar data  sms_tmp; ///参数代码
uchar data  system_server ;    //系统状态
//定时用****************
uint  data  timercount; //50MS定时器
uchar data  timer_1S_cnt;
uchar data  timer_10S_cnt;
uchar data  timer_S_cnt;
uchar data  timer_tmp;
//位变量****************
bit  TC35_bit  ;
bit  txd_rxd_bit;    //接收正确的指令中断
bit  at_send_bit;    //发送允许

/*********************************************************************
 *                        延时1MS的函数                              *
 *********************************************************************/
void delay1ms(uint x){    
for(m=0;m    for(n=0;n<120;n++); 
}

/*********************************************************************
 *                  C51中字符串函数的扩充                            *
 *********************************************************************/
uchar strsearch(uchar *ptr2){//查字符串*ptr2在*ptr1中的位置
//本函数是用来检查字符串*ptr2是否完全包含在*ptr1中
//返回:  0  没有找到
//       1-255 从第N个字符开始相同
uchar abc;
   if(ptr2[0]==0) return(0);
for(a=0b=0;a if(uart_buff[a]==ptr2[b]){//第一个字符相同
for(c=a;c if(ptr2[b]==0)//比较正确
return(a+1);               //返回值是整数,不含0
if(uart_buff[c]!=ptr2[b]) break;
}
b=0;
}
}
return(0);
}

/*********************************************************************
 *                        AT指令发送程序                             *
 *********************************************************************/
uchar  Send_AT_Command( uchar type){      //发送AT指令
//拨号时号码放在phone.number
//其他用para_temp
AT_Command_Type=type;
send_count=0;
switch(type){
case RESET_TC35: //复位TC35
strcpy(uart_buff“AT+CFUN=11“);
break;
case CHECK_PIN: //检查当前是否要输入PIN码
strcpy(uart_buff“AT+CPIN?“);
break;
    case TC35_INIT: //TC35初始化命令
strcpy(uart_buff“ATE0V0“);
break;
case SIM_ID:
strcpy(uart_buff“ATE0V0+CMGF=1+CNMI=21“);
break;
case AT_IPR:
strcpy(uart_buff“AT+IPR=9600“); 
break;
case SMSS_ID:
strcpy(uart_buff“ATE0V0^SSMSS=1+CNMI=21“);
break;
case SMS_CMGF: //SMS 接收方式
strcpy(uart_buff“ATE0V0+CMGF=0“);
break;
case PHONE_WRITE:   //存电话号码
strcpy(uart_buff“AT+CPBW=“);
strcat(uart_buffpara_temp);
break;
case PHONE_READ:   //读电话本
strcpy(uart_buff“AT+CPBR=“);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1577  2010-03-14 22:58  GSM发送程序\main.LST

     文件       7891  2010-03-14 22:58  GSM发送程序\GSMdemo.hex

     文件       5136  2010-03-14 22:58  GSM发送程序\GSMdemo.M51

     文件        689  2010-03-14 22:51  GSM发送程序\GSMdemo.plg

     文件        590  2010-03-14 22:57  GSM发送程序\main.c

     文件        400  2010-03-14 16:26  GSM发送程序\GSMcs.LST

     文件      13375  2010-03-14 22:58  GSM发送程序\GSM.c

     文件       2064  2010-03-14 22:26  GSM发送程序\GSMdemo.Uv2

     文件        510  2010-03-14 22:58  GSM发送程序\main.OBJ

     文件      26429  2010-03-14 22:58  GSM发送程序\GSM.LST

     文件       7567  2010-03-14 22:58  GSM发送程序\GSM.OBJ

     文件       1741  2010-03-14 22:51  GSM发送程序\GSMdemo.Opt

     文件       2068  2008-08-22 19:09  GSM发送程序\GSMdemo_Uv2.Bak

     文件       1749  2010-03-14 22:51  GSM发送程序\GSMdemo_Opt.Bak

     文件       3673  2010-03-14 22:58  GSM发送程序\GSMdemo

     文件       4102  2010-03-14 22:59  GSM发送程序\Includes.h

     目录          0  2010-03-14 22:59  GSM发送程序

----------- ---------  ---------- -----  ----

                79561                    17


评论

共有 条评论

相关资源