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

📄 tc35+

📁 TC35控制继电器
💻
字号:
// Header:    	XC-TC35控制继电器测试程序
   /********************************************************************/
/*手机发送 01 02 03 04 05 06 07 08 对应P1.7----P1.0输出低电平控制外部继电器*/
/*手机发送 11 12 13 14 15 16 17 18 对应P1.7----P1.0输出高电平控制外部继电器*/
 /*************************************************************************/
// File Name: 	发送英文短信.C
// Author:	  	兴创科技
#include <reg52.h>
#include <string.h>
#include "hardware.h"
#include "sms.h"
#include "sms.c"


uchar 	idata rbuff[110];						//串口接收数据缓存区
uchar  	databuff[]="000000"; 					//数据缓存区,注意要定义为字符串(\0)
uchar	rcount;									//串口接收数据指针]
uchar   flag;

bit		tc35_init_ok;							//TC35注册成功初始化完成标志
bit		receive_ok;								//收到模块“ok”标志
bit     send_error;
bit     send_ok;

void initUart(void)					  			   
{
 	TMOD=0x20;									//T1工作方式2,8位自动重装
 	SCON=0x40;									//串行口工作方式1,8位UTRA
 	TH1=0xfa;
 	TL1=0xfa;									//波特率发生器,波特率为4800
 	REN=1;	  									//允许串行接收
 	TR1=1;										//开波特率发生器T1
 	ES=1;										//开串行口中断
 	EA=1;										//开总中断
}


void RECEIVE_DATA(void) interrupt 4	  			//接收tC35发送的数据并缓存
{ 
	ES=0;
	if(RI)
   	{
		rbuff[rcount++]=SBUF;
    	RI=0;
	}
  	//判断是否接收完毕
  	if((rbuff[rcount-1]==0x0a)&&(rbuff[rcount-2]==0x0d)&&(rbuff[rcount-3]==0x4b)&&(rbuff[rcount-4]==0x4f))
	{					//换行					 //回车						
		receive_ok=1;
	}
	//判断是否为新短消息指示	  
  	if((rbuff[rcount-14]=='C')&&(rbuff[rcount-13]=='M')&&(rbuff[rcount-12]=='T')&&(rbuff[rcount-11]=='I'))
    {							                                                           							 	     //换行
		new_sms=1;
	}
	else  new_sms=0;

  	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x31)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //01
     flag=1;
	}
  	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x32)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //02
     flag=2;
	}
	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x33)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //03
     flag=3;
	}
  	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x34)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //04
     flag=4;
	}
  	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x35)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //05
     flag=5;
	}
  	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x36)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //06
     flag=6;
	}
  	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x37)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //07
     flag=7;
	}
  	if((rbuff[rcount-9]==0x30)&&(rbuff[rcount-8]==0x38)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //08
     flag=8;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x31)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //11
     flag=9;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x32)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //12
     flag=10;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x33)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //13
     flag=11;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x34)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //14
     flag=12;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x35)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //15
     flag=13;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x36)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //16
     flag=14;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x37)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //17
     flag=15;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x38)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //18
     flag=16;
	}
	
	 /* 	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x31)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //换行
     flag=3;
	}
  	if((rbuff[rcount-9]==0x31)&&(rbuff[rcount-8]==0x32)&&(rbuff[rcount-3]==0x4f)&&(rbuff[rcount-2]==0x4b))
    {							                                                           							 	     //换行
     flag=4;
	}
   */
	if(rcount>109)rcount=0;
	ES=1; 
}


void main(void)		
{
	uchar  times=0;				 
	uchar m=0;
	tc35_init_ok=0;
	initUart();	  								//初始化串口
	delay(2000);
	Init_tc35();								//开启TC35
	delay(5000);
	delay(5000);
	delay(5000);
	delay(5000);
 	while(tc35_init_ok==0)  					//初始化TC35
 	{		
		Init_tc35();
		delay(4000);
		times++;
		if(times>15)
		{	
			times=0;
			delay(1000);					
			delay(500);
			delay(1000);
		}
	}
	if(tc35_init_ok)
	{		  
		BEEP=0;									   //初始化成功鸣叫一声
		delay(2000);
		BEEP=1;
	}			   						
 	while(1)	   					
 	{
//	keyboard();
	 //if(new_sms)
	 //{
	 Readsms1();
     switch(flag)

     { 
	  /* case 1:P1=(0xfe&P1);break;
	   case 2:P1=(0xfd&P1);break;
	   case 3:P1=(0x01|P1);break;
	   case 4:P1=(0x02|P1);break;
	   */ 
	   case 1:P1=(0x7f&P1);break;
	   case 2:P1=(0xbf&P1);break;
	   case 3:P1=(0xdf&P1);break;
	   case 4:P1=(0xef&P1);break;
	   case 5:P1=(0xf7&P1);break;
	   case 6:P1=(0xfb&P1);break;
	   case 7:P1=(0xfd&P1);break;
	   case 8:P1=(0xfe&P1);break;
	   case 9:P1=(0x80|P1);break;
	   case 10:P1=(0x40|P1);break;
	   case 11:P1=(0x20|P1);break;
	   case 12:P1=(0x10|P1);break;
	   case 13:P1=(0x08|P1);break;
	   case 14:P1=(0x04|P1);break;
	   case 15:P1=(0x02|P1);break;
	   case 16:P1=(0x01|P1);break; 
	   flag=0;
       Delsms();
	delay(5000);  	 
	 }
	Delsms();



  	}		    			
 
}

⌨️ 快捷键说明

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