📄 tc35模块辅助.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 + -