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

📄 tc35i.c

📁 TC35调试说明
💻 C
字号:

#include "reg51.h"
#include "string.h"

#define uchar unsigned char
#define uint unsigned int

uchar RsBuf[24];
uchar FlagRs = 0;
char code Init_Tc35i[] = "^SYSSTART";
char code AT_Tc35i[] = "AT+";               //连机
char code Send_Tc35i[] = "CMGS=";        //发送信息
char code AT_Code[]="OK";
char code SK[]=">";
char code PhonNum[] = "15880022125";
char code Test[] = "test123";

void Delay(uchar t)						//延时t毫秒
{
uint i;
while(t--)
{
  for(i=0;i<125;i++)
  {}
}
}

void InitCom(void)						//串口初始化
{
SCON = 0x50;						//串口方式1,8位UART
TMOD = 0x20;						//定时器T1,工作方式2,8位重载
PCON = 0x80;						//波特率加倍
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;     //T1开始
ES = 1;
}

void SendASC(uchar ASC)				//发送一个ASCII
{
bit es;
es = ES;
ES = 0;
TI = 0;
SBUF = ASC;
while(!TI);
TI = 0;
ES = es;
}

void SendComTc35i(uchar *p,uchar Long)			//发送命令到Tc35i
{
while(Long--)
{
  SendASC(*p++);
}
}

void Rs232_Rxd(void) interrupt 4 using 1			//  通讯中断接收程序
{
if(RI==1)
{
  RI=0;
  RsBuf[FlagRs++]=SBUF;
  if(FlagRs>=sizeof(RsBuf))
  {
   FlagRs=0;
  }
}
}

void Search_Tc35i(void)							//搜索Tc35i
{
uchar *p;
while(1)
{
  ES = 1;
  p = strstr(RsBuf,Init_Tc35i);
  if(p != NULL) break;
}
}

void ClrRsBuf()								//清缓冲区
{
uchar len;
len = strlen(RsBuf);
while(len--)
{
  RsBuf[FlagRs++] = 0;
}
}

void Send_AT(void)						// 发送AT连机命令
{
uchar *p;
while(1)
{
     ClrRsBuf();
     SendComTc35i(AT_Tc35i,2);    			//"AT"
     SendASC(0x0d);

     ES=1;                       					 //等待应答"OK"
     Delay(1000);
  Delay(1000);
     p=strstr(RsBuf,AT_Code);
     if(p!=NULL) break;
}
}

void SendMsgStart(void)					//发送短信息
{
uchar *p,i=250;
SendComTc35i(AT_Tc35i,3);    				//"AT+"
SendComTc35i(Send_Tc35i,sizeof(Send_Tc35i)-1);//"AT+CMGS="
SendASC(0x22);
SendComTc35i(PhonNum,sizeof(PhonNum)-1);
SendASC(0x22);                              		  //"AT+CMGS="PhonNum""
SendASC(0x0d);
ES=1;
while(i--)
{
    Delay(1500);        //Get">"
    p=strstr(RsBuf,SK);//">"
    if(p!=NULL)
    {
      ClrRsBuf();
      Delay(1000);    //Get">"
      break;
  }
}
}


void main(void)
{
EA = 1;
InitCom();
Delay(1000);
Search_Tc35i();
Delay(1000);
Send_AT();
Delay(1000);
SendMsgStart();
Delay(1000);
SendComTc35i(Test,sizeof(Test)-1);
SendASC(0x1a);
}

⌨️ 快捷键说明

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