#include<reg52.h>
#include<intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
u8 code str11[]={0x7E,0x41,0x06,0x0D}; //測試幀,定義點歌系統(tǒng)協(xié)議
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}; //測試幀,定義燈光系統(tǒng)協(xié)議
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; //設(shè)置為工作方式1,打開接收允許位
TMOD=0X20; //設(shè)置定時器為工作方式2
PCON=0X80; //波特率加倍( PCON &= 0xef;波特率不倍增)
TH1=0XF4; //定時器初始值設(shè)置,波特率4800
TL1=0XF4;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開定時器1
}
******************************************************
void com_send() //串口發(fā)送函數(shù)
{
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();
}
|