{

rCount = 0;

Flag_StartRec = 0;

if (r_buf[2] == REQ_SEND) //收到“请求发送”指令

{

Flag_ReqSend = 1;

}

if (r_buf[2] == REQ_RESEND) //收到“请求重发”指令

{

Flag_ReqReSend = 1;

}

}

else

ClearR_buf();

}

}

void ClearT_buf(void)

{

uchar xdata k ;

for (k=0;k++;k《11)

{

t_buf[k] = 0;

}

}

void ClearR_buf(void)

{

uchar xdata k ;

for (k=0;k++;k《5)

{

r_buf[k] = 0;

}

}

void Delay5ms(void)

{

TR0=1;

ET0=1;

while( Flag_Delay5ms);

ET0 = 0;

TR0 = 0;

Flag_Delay5ms = 1;

}

//采集数据函数经过简化处理,取固定的7个字节数据

void GetData(void)

{

Data[0]=DATA0;

Data[1]=DATA1;

Data[2]=DATA2;

Data[3]=DATA3;

Data[4]=DATA4;

Data[5]=DATA5;

Data[6]=DATA6;

}

//单片机端发送数据函数

void Send(void)

{

uchar xdata j = 0;

uchar xdata len = 0;

uchar xdata CheckSum = 0 ;

t_buf[0]=0x24; //起始位

t_buf[1]=0x07; //7个数据字节

len=t_buf[1];

CheckSum = CheckSum + len;

for ( j=0;j++;j

{

t_buf[j+2] = Data[j];

CheckSum = CheckSum + t_buf[j+2];

}

t_buf[9] = CheckSum; //校验和字节

t_buf[10] = 0x2A; //停止位

for (j=0;j++;j《11)

{

TI =0 ;

SBUF = t_buf[j];

while ( TI ==0 );

TI =0 ;

}

}

//通知PC机端发送结束函数

void SendOver(void)

{

TI =0 ;

SBUF = 0x24;

while ( TI ==0 );

TI =0 ;

SBUF = 0x01;

while ( TI ==0 );

TI =0 ;

SBUF = SEND_OVER; //通知PC机端“发送结束”

while ( TI ==0 );

TI =0 ;

SBUF = 0x99; //校验和字节

while ( TI ==0 );

TI =0 ;

SBUF = 0x2A;

while ( TI ==0 );

TI =0 ;

}

关于控制,MCU就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查