}
/*****************************
Function: UART0接收中断
输入参数:无
输出参数:无
/*****************************/
void UART0_ISR() interrupt 4
{
BYTE recvdata;
if (RI0)
{
RI0=0;
recvdata = SBUF0;
ComRecvTime = 0 ;
if (Recv0Len+1> =RECVBUF0LEN)
Recv0Len=0;
else
Recv0Buf[Recv0Len++] = recvdata;
}
}
/*****************************
Function: UART1接收中断
输入参数:无
输出参数:无
/*****************************/
void UART1_ISR() interrupt 20
{
// BYTE recvdata;
if ((SCON1 & 0x01) == 0x01) //接收中断
{
SCON1 &= ~0x01;
ACC = SBUF1;
if(SCON1^2 == P)
{
if (Recv1Len+1> =RECVBUF1LEN)
Recv1Len=0;
else
Recv1Buf[Recv1Len++] = SBUF1;
}
}
}
/*****************************
Function: UART0字节发送函数
输入参数:UART0串口发送数据、数据长度
输出参数:无
/*****************************/
void UART0SendData(BYTE* buf, UINT len)
{
UINT i=0;
for (i=0; i <len; i++)
{
while(TI0 == 0);
TI0 = 0;
SBUF0 = buf[i];
}
LedOpen();
}
/*****************************
Function: UART0字符串发送函数
输入参数:UART0串口需发送字符串
输出参数:无
/*****************************/
void UART0SendStr(char *str)
{
while(*str != '\0')
{
UART0SendData(str,1);
str++;
}
}
/*****************************
Function: UART1发送函数
输入参数:UART1串口发送数据、数据长度
输出参数:无
/*****************************/
void UART1SendData(BYTE* buf, UINT len)
{
UINT i=0;
for(i = 0;i < len;i++)
{
while((SCON1 & 0x02) == 0x00); //等待串口前一次数据发送完成
SCON1 &= ~0x02;
ACC = buf[i];
if(P==1)
SCON1 |= 0x08;
else
SCON1 &= ~0x08;
UART1_SEND = 1;
SBUF1 = buf[i];
}
Delayms(100);
UART1_SEND = 0;
}