📄 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 + -