新手上路
- 积分
- 20
- 金钱
- 20
- 注册时间
- 2018-9-8
- 在线时间
- 3 小时
|
发表于 2018-9-8 23:45:36
|
显示全部楼层
胡乱写了点,比较烂,仅供参考。
#include"REG52.H"
#define uchar unsigned char
#define uint unsigned int
uchar UART1_Data; //????1?????????
bit UART1_Flag=0;
uchar String_Count=0;
bit May_Have_End=0;
bit Have_End=0;
uchar xdata UART_String[10];
void Send_Char(uchar dat)
{
//?????????????????????????????????2????????
SBUF=dat;
while(!TI); //???????????
TI=0; //????????????
}
/*****????????????*****/
void Send_Str()
{
uchar i = 0;
while(UART_String[i]!='\0')
{
Send_Char(UART_String[i]);
i++; //????????
}
}
void Get_UART1_String()
{
UART_String[String_Count]=UART1_Data;
String_Count++;
if(May_Have_End&&(UART1_Data=='\n'))
{
May_Have_End=0;
Have_End=1;
}
if(UART1_Data=='\r')
{
May_Have_End=1;
}
}
void Make_Up_Data()
{
if(Have_End)
{
Have_End=0;
UART_String[String_Count-2]='1';
UART_String[String_Count-2+1]='2';
UART_String[String_Count-2+2]='3';
Send_Str();
Send_Char('\r');
Send_Char('\n');
}
}
void UARTInterrupt(void) interrupt 4
{
if(RI)
{
RI = 0;
UART1_Flag=1;
UART1_Data=SBUF;
Get_UART1_String();
}
}
void main()
{
while(1)
{
Make_Up_Data():
}
} |
|