#include<reg52.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 code str11[]={0x7E,0x41,0x06,0x0D}; //测试帧,定义点歌系统协议
u8 code str12[]={0x7E,0x41,0x19,0x0D};
u8 code str13[]={0x7E,0x41,0x09,0x0D};
u8 code str14[]={0x7E,0x41,0x03,0x0D};
u8 code str1[]={0x23,0x01,0x04,0x00,0x00,0x00,0x01,0x23}; //测试帧,定义灯光系统协议
u8 code str2[]={0x23,0x01,0x04,0x00,0x00,0x00,0x02,0x23};
u8 code str3[]={0x23,0x01,0x04,0x00,0x00,0x00,0x03,0x23};
u8 code str4[]={0x23,0x01,0x04,0x00,0x00,0x00,0x04,0x23};
******************************************************
void Uart_init()
{
SCON=0X50; //设置为工作方式1,打开接收允许位
TMOD=0X20; //设置定时器为工作方式2
PCON=0X80; //波特率加倍( PCON &= 0xef;波特率不倍增)
TH1=0XF4; //定时器初始值设置,波特率4800
TL1=0XF4;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开定时器1
}
******************************************************
void com_send() //串口发送函数
{
u8 receive_buffer;
u16 m;
if(receive_buffer[2]=0x06)
{
for(m=0;str1[m]!='\0';m++)
{
SBUF=str1;
}
}
else if(receive_buffer[2]=0x19)
{
for(m=0;str2[m]!='\0';m++)
{
SBUF=str2;
}
}
else if(receive_buffer[2]=0x09)
{
for(m=0;str3[m]!='\0';m++)
{
SBUF=str3;
}
}
else (receive_buffer[2]=0x03)
{
for(m=0;str4[m]!='\0';m++)
{
SBUF=str4;
}
}
while(!TI); //T1==0
TI=0;
}
*******************************************************
void com_receive() //串口接收
{
u8 receive_buffer[];
if(SBUF='\0')
{
receive_buffer[]=SBUF;
while(!RI);
RI=0;
}
}
**************************************************
void main()
{
Uart_init();
com_receive();
com_send();
}
|