程序写了一点不知道该怎么处理了,不清楚对于接收到的程序怎么处理可以发送新协议内容,求教大神指教
#include<reg52.h>
#include<intrins.h>
#define buffer
typedef unsigned char u8;
typedef unsigned int u16;
u8 code str1[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08}; //测试帧,定义点歌系统协议
u16 code str2[]={0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18}; //测试帧,定义灯光系统协议
u8 count; //定义指针寻找地址数
********************************************************
void Uart_init() //初始化串行口和波特率发生器
{
SCON=0X50; //设置为工作方式1,打开接收允许
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍 ( PCON &= 0xef;波特率不倍增)
TH1=0XF3; //计数器初始值设置,波特率4800
TL1=0XF3;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器1
}
******************************************************
void delay(u16 xms) //延时函数
{
}
*******************************************************
void Com_send() //串口发送函数
{
unsigned char point=0;
for(point=0;str2[point]!='\0';point++) //缓存的数据发送到串口
{
SBUF=str2[point];
while(!T1) //T1==0
{
str2[point]='\0';
}
}
}
*********************************************************
void Com_interrupt() interrupt 4 //串口接收中断
{
u16 j;
unsigned char Receive_buffer;
bit flag=1;
if(RI)
{
RI=0; //软件清除中断标志位
RECEIVE_buffer=SBUF; //接收串口数据
if(RECEIVE_buffer=='$')
{
ES=0;
str[j]='\0';
SCON=0x40; //接收不允许
Com_send(); //发送数据
ES=1;
j=0;
flag=0;
SCON=0x50; //接收允许
}
if(flag)
j++;
}
}
|