求一个51单片机c语言程序,当串口输入一个数,然后单片机返回指定的数字

比如:输入55,返回11111
输入66,返回22222

给个简单的。
main()
{
//初始化串口
SCON=0x50;
TMOD=0x20;
TH1=TL1=0xff;//视Fosc,给实际波特率发生器初值。
TR1=1;
while(1)
{
while(RI==0);RI=0;
switch(SBUF)
{
case 0x55:
SBUF=0x31;while(TI==0);TI=0;
SBUF=0x31;while(TI==0);TI=0;
SBUF=0x31;while(TI==0);TI=0;
SBUF=0x31;while(TI==0);TI=0;
SBUF=0x31;while(TI==0);TI=0;
break;
case 0x66:
SBUF=0x32;while(TI==0);TI=0;
SBUF=0x32;while(TI==0);TI=0;
SBUF=0x32;while(TI==0);TI=0;
SBUF=0x32;while(TI==0);TI=0;
SBUF=0x32;while(TI==0);TI=0;
break;
}
}
}
实际情况:
【1】串口的初始化,波特率和通信模式设置。
【2】更详尽的协议还包括:输入的数据格式、返回的数据格式。(这里,我只是把55当做了0x55处理,返回的内容是ASCII字符,六个数字1)
【3】当输入数据不止一个字节进行判断时,需要考虑串口接收的缓冲数组。同时对数组进行数据接收和判断。并考虑用中断处理接收过程。
【4】返回数据,考虑发送缓冲数组。用中断考虑发送过程。
如果你愿意的话,大家更喜欢阅读程序,修改或提出建议。以上只是个简单的例子。
温馨提示:答案为网友推荐,仅供参考