⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tc35模块辅助.c

📁 GSM开发板第三版资料
💻 C
字号:
#include<reg52.h>
#include<absacc.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
#define RST      0X01
#define CMGF     0X02
#define CMGD     0X03
#define CREG     0X04
#define CMGR     0X05
#define CMGS     0X06
#define CSCA     0X07
#define ATDAT    0X08
#define TC35RET  0X00
extern uchar TC35_CON,
             ch;
extern uchar read_flag;
extern uchar i_TC35_RECE;
extern uchar i_receive,
      TC35_RE[80],
	  TC35_MAX,
	  i_TC35;
///////需要改动的地方///////////////////////////////////////////////////////////
uchar code TC_MDSJ[]={"AT+CMGS=13132061066"};   //目的手机地址,
uchar code TC_ZXH[]={"AT+CSCA=+8613010130500"}; //本地中心号。
////////其他地方不要乱动////////////////////////////////////////////////////////
uchar code TC_FSNR[]={"I AM OK"};	            //发送短信内容。
uchar code TC_WLZT[]={"AT+CREG?"};	            //网络状态查询
uchar code TC_MSXZ[]={"AT+CMGF=1"};	            //发送模式选择。
uchar code TC_DQML[]={"AT+CMGR=1"};	            //短信读取命令。
uchar code TC_SCML[]={"AT+CMGD=1"};	            //短信删除命令。
uchar code TC_ATF[]={"AT&F"};	                //格式化命令。
void delay(uint i)
{unsigned int i_delay,j_delay;
for(i_delay=0;i_delay<i;i_delay++)
{for(j_delay=0;j_delay<100;j_delay++)
{;}}
} 


void init_serialcom( void ) 
   { 
       SCON = 0x50 ;  //SCON: serail mode 1, 8-bit UART, enable ucvr   
                         //UART为模式1,8位数据,允许接收
          TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload             
                         //定时器1为模式2,8位自动重装
          PCON |= 0x80 ; //SMOD=1; 
          TH1 = 0xFD ;   //Baud:19200 fosc="11".0592MHz 
          IE |= 0x90 ;     //Enable Serial Interrupt 
          TR1 = 1 ;       // timer 1 run 
          TI=1; 
          
       } 
          
//向串口发送一个字符 
void send_uart( unsigned char ch) 
         { 
          
            while (TI==0); 
               TI= 0 ; 
			     SBUF=ch; 
          } 
 

//串口接收中断函数 
void serial () interrupt 4 using 3 
{ 
    if (RI) 
          {  
        RI = 0 ; 
        i_receive=SBUF;
        TC35_RE[i_TC35_RECE++]=i_receive;
          // i_TC35_RECE++;
             if(i_TC35_RECE>TC35_MAX){TC35_MAX=i_TC35_RECE;}
              }
} 
//AT测试指令
/*
void AT_TEST()
{
send_uart('A'); 
send_uart('T'); 
send_uart(0X0D); 
send_uart(0X0D);
send_uart(0X0A);
}*/
void ATNAME()
{//I AM OK
uchar i;
for(i=0;i<sizeof(TC_FSNR)-1;i++)
{send_uart(TC_FSNR[i]);} 
delay(1000);
send_uart(0X1A); 
TC35_CON=ATDAT;
}
//写目的手机的
void AT_CMGS()
{//AT+CMGS=13132061066
uchar i;
for(i=0;i<sizeof(TC_MDSJ)-1;i++)
{send_uart(TC_MDSJ[i]);} 
send_uart(0X0D); 
send_uart(0X0D);
send_uart(0X0A);
TC35_CON=CMGS;
}
//写信息中心号
void AT_CSCA()
{//AT+CSCA=+8613010130500
uchar i;
for(i=0;i<sizeof(TC_ZXH)-1;i++)
{send_uart(TC_ZXH[i]);} 
send_uart(0X0D); 
send_uart(0X0D);
send_uart(0X0A);
TC35_CON=CSCA;
}
//AT复位指令
void AT_RST()
{
uchar i;
for(i=0;i<sizeof(TC_ATF)-1;i++)
{send_uart(TC_ATF[i]);} 
send_uart(0X0D); 
send_uart(0X0D);
send_uart(0X0A);
TC35_CON=RST;
}
//AT网络状态查询指令
void AT_CREG()
{
uchar i;
for(i=0;i<sizeof(TC_WLZT)-1;i++)
{send_uart(TC_WLZT[i]);} 
send_uart(0X0D); 
send_uart(0X0D);
send_uart(0X0A);
TC35_CON=CREG;
}
//AT接收格式指令
void AT_CMGF()
{//AT+CMGF=1
uchar i;
for(i=0;i<sizeof(TC_MSXZ)-1;i++)
{send_uart(TC_MSXZ[i]);}
send_uart(0X0D); 
send_uart(0X0D); 
send_uart(0X0A);
TC35_CON=CMGF;
}
//AT短消息读取指令
void AT_CMGR()
{//AT+CMGR=1
uchar i;
for(i=0;i<sizeof(TC_DQML)-1;i++)
{send_uart(TC_DQML[i]);}
send_uart(0X0D); 
send_uart(0X0D);
send_uart(0X0A);
TC35_CON=CMGR;
}
//AT短消息删除指令
void AT_CMGD()
{//AT+CMGD=1
uchar i;
for(i=0;i<sizeof(TC_SCML)-1;i++)
{send_uart(TC_SCML[i]);} 
send_uart(0X0D); 
send_uart(0X0D);
send_uart(0X0A);
TC35_CON=CMGD;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -