C8051F020串口传递汉字

2019-07-15 22:29发布

如何实现计算机传汉字给单片机 单片机机作出回答!   我做了一个C代码,[img]file:///C:UsersldyAppDataRoamingTencentUsers694313495QQWinTempRichOle[@WYM(A_6}$8JPYB5(F[7)O.jpg[/img]计算机发出一句   单片机自动回一句
我用电脑发送“首长好。。。。”单片机没反应   “同志们好。。。。没有出来

这是我的c


#include "main.h"
uchar shuchu;


//uint i;
//temp;
//-- 主函数
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);

}       

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=0;
                shuchu=SBUF0;//接收数据
                SBUF0=fanhui;//发送数据
        }       
        else
        {       
                ti0=0; //发送完一个数据
                flag=0; //清标志位
        }
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。