下面我自己做了一个不对,帮我改一下,或者给个实例代码 和建议均可 。计算机(pc)发送“首长好!首长辛苦了”
单片机回“同志们好!同志们辛苦了”
//-- 主函数
unsigned char temp[]="首长好!首长辛苦了
";
unsigned char temp1[]="同志们好!同志们辛苦了";
bit flag=0; //标志变量
void fasong(char shuchu);
void fasongshuchu(char *shuchu);
void bixu(char fanhui);
void bixufanhui(char *fanhui);
void main (void)
{
WDTCN=0xDE;
WDTCN=0xAD;
PORT_Init ();
SYSCLK_Init ();
EA=1;
// delay(uint z);
// fasong();
//dingshiqi_init();
UART0_Init();
fasongshuchu(temp);
bixufanhui(temp1);
while(1);
{
if(flag==1)
{
ES0=0;
flag=0;
SBUF0=fanhui;
while(!
ti0);
TI0=0;
ES0=1;
}
}
}
void fasong(char shuchu)
{
SBUF0=shuchu;
flag=1;
while(flag) ;
}
void fasongshuchu(char *shuchu)
{
while((*shuchu)!=' ') // 就是组的结束字符标志
{
fasong(*shuchu);
shuchu++;
}
}
void bixu(char fanhui)
{
SBUF0=fanhui;
flag=1;
while(flag) ;
}
void bixufanhui(char *fanhui)
{
while((*fanhui)!=' ') // 就是组的结束字符标志
{
bixu(*fanhui);
fanhui++;
}
}
void zhongduan() interrupt 4
{
if(RI0) //RI0接收中断标志
{
RI0=0;//中断接收标志清零
shuchu=SBUF0;//接收数据
SBUF0=fanhui;//发送数据
// while(!TI0);
//TI0=0;//发送标志清零
}
else
{
TI0=0;//发送标志清零
flag=0; //清标志位
}
}
一周热门 更多>