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

📄 tc35+

📁 TC35控制继电器
💻
字号:
// Header:    	tc35操作函数
// File Name: 	TC35.C
// Author:	  	兴创科技


#include "hardware.h"
#include "SMS.h"

extern uchar numbuff[];

void delay(uint m)								//延时m*0.2ms
{
	uchar n;
	for(;m>0;m--)
		for(n=100;n>0;n--);
}
void Sendcmd(uchar *p)				//发送AT命令
{	
 	while(*p)
 	{
	 	SBUF=*(p++);
		while(TI==0);
		TI=0;
	}   
}

void Sendchar(uchar c)				//发送一个字符
{ 
    TI=0;   
    SBUF=c;   
    while(TI==0);   
    TI=0;   
}


void Init_tc35(void)				//判断是否连接TC35
{
	uint i=0xffff;
	rcount=0;
	receive_ok=0;
	Sendcmd("AT\r\n");   
	while(receive_ok==0)
	{
		i--;
		if(i==0)		 			//超时还未响应则返回
		{
			rcount=0;
			receive_ok=0;
			return;
		} 
	}	
	receive_ok=0;
 	rcount=0;
    delay(4000);
 	i=0xffff;
	Sendcmd("AT&F\r\n");   
	while(receive_ok==0)
	{
		i--;
		if(i==0)		 			//超时还未响应则返回
		{
			rcount=0;
			receive_ok=0;
			return;
		} 
	}	
	receive_ok=0;
 	rcount=0;
    delay(4000);
 	i=0xffff;

 	Sendcmd("AT+IPR=4800\r\n");	   		//设置短消息格式	   
 	while(receive_ok==0)
    {
		i--;
	 	if(i==0)		 			//超时还未响应则返回
	   	{
			rcount=0;
        	receive_ok=0;
	    	return;
		} 
	}
	receive_ok=0;
	rcount=0;
    delay(4000);
 	i=0xffff;

 	Sendcmd("AT+CMGF=1\r\n");	   		//设置短消息格式	   
 	while(receive_ok==0)
    {
		i--;
	 	if(i==0)		 			//超时还未响应则返回
	   	{
			rcount=0;
        	receive_ok=0;
	    	return;
		} 
	}
	receive_ok=0;
	rcount=0;
    delay(4000);
 	i=0xffff;

 	Sendcmd("AT+CSCS=");	   		//设置字符集为“GSM”
	Sendchar('"');
	Sendcmd("GSM");
	Sendchar('"');
	Sendchar(0x0D);
	Sendchar(0x0A);		   
 	while(receive_ok==0)
    {
		i--;
	 	if(i==0)		 			//超时还未响应则返回
	   	{
			rcount=0;
        	receive_ok=0;
	    	return;
		} 
	}
	receive_ok=0;
	rcount=0;
 	tc35_init_ok=1;    				//全部初始化完毕置标志
}



//void Readsms(uchar index)						//读取指定索引号的短信内容
void Readsms1()						//读取指定索引号的短信内容
{
	ulong i=0x1ffff;					//这个值不能再小
	bit es;
	uchar j,k;
	receive_ok=0;
	rcount=0;
	Sendcmd("AT+CMGR=1");
	//Sendchar(index+0x30);
	Sendchar(0x0D);
//	receive_ok=0;
	while(receive_ok==0)
	{
		i--;
		if(i==0)		 			//超时还未响应则返回
		{
			rcount=0;
			receive_ok=0;
			return;
		} 
	}
	receive_ok=0;
	
	
//	rcount=0; 

    es=ES;   
    ES=0;							//关闭中断  
	k=rcount-9;
	for(j=6;j>0;j--)
	{
		databuff[j-1]=rbuff[k--];	//读短信内容到databuff
	}
	rcount=0;
	receive_ok=0;
	ES=es;							//恢复中断

}
	void Readsms2()						//读取指定索引号的短信内容
{
	ulong i=0x1ffff;					//这个值不能再小
	bit es;
	uchar j,k;
	receive_ok=0;
	rcount=0;
	Sendcmd("AT+CMGR=2");
	//Sendchar(index+0x30);
	Sendchar(0x0D);
//	receive_ok=0;
	while(receive_ok==0)
	{
		i--;
		if(i==0)		 			//超时还未响应则返回
		{
			rcount=0;
			receive_ok=0;
			return;
		} 
	}
	receive_ok=0;
	
	
//	rcount=0; 

    es=ES;   
    ES=0;							//关闭中断  
	k=rcount-9;
	for(j=6;j>0;j--)
	{
		databuff[j-1]=rbuff[k--];	//读短信内容到databuff
	}
	rcount=0;
	receive_ok=0;
	ES=es;							//恢复中断

}
void Delsms()			//删除指定索引号的短信
{
	ulong i=0x5fffff;	  			//删除等待5秒,有的时候删除短信很慢
	receive_ok=0;  
	rcount=0;
	Sendcmd("AT+CMGD=1");
	//Sendchar(index+0x30);
	Sendchar(0x0D);

	while(receive_ok==0)
	{
		i--;
		if(i==0)		 			//超时还未响应则返回
		{
			rcount=0;
			receive_ok=0;
			return;
		} 
	}
	receive_ok=0;
	rcount=0; 
}

⌨️ 快捷键说明

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