#include <reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
u16 i,j;
u8 rec_buf[4]={0,0,0,0};
u8 code str1[]={0x23,0x01,0x04,0x00,0x00,0x00,0x01,0x23}; //¶¨òåËÄ×éμÆ1aD-òé
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};
u8 code table1[4]={0x7E,0x41,0x06,0x0D}; //¶¨òåËÄ×éμã¸èÏμí3D-òé
u8 code table2[4]={0x7E,0x41,0x19,0x0D};
u8 code table3[4]={0x7E,0x41,0x09,0x0D};
u8 code table4[4]={0x7E,0x41,0x03,0x0D};
void InitUART(void)
{
TMOD = 0x20; //¶¨ê±Æ÷1¤×÷·½ê½2
SCON = 0x50; // ′®¿ú1¤×÷·½ê½1£¬ÔêDí½óêÕ
TH1 = 0xFA;
TL1 = TH1;
PCON = 0x80; //2¨ìØÂê±¶Ôö
EA = 1;
ES = 1;
TR1 = 1;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
InitUART();
if(rec_buf[3]==0x06)
{
for(i=0;str1[i]!='\0';i++)
{
SendOneByte(str1[i]);
}
}
else if(rec_buf[3]==0x19)
{
for(i=0;str2[i]!='\0';i++)
{
SendOneByte(str2[i]);
}
}
else if(rec_buf[3]==0x09)
{
for(i=0;str3[i]!='\0';i++)
{
SendOneByte(str3[i]);
}
}
else
{
for(i=0;str4[i]!='\0';i++)
{
SendOneByte(str4[i]);
}
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
for(j=0;j<4;j++ )
rec_buf[j]=SBUF;
RI = 0;
}
else
TI = 0;
}
|