诸位谁有C8051F020 C语言代码是pc端发送汉字单片机回答。

2019-07-15 22:29发布

下面我自己做了一个不对,帮我改一下,或者给个实例代码 和建议均可 。计算机(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; //清标志位
        }


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