单片机通讯问题,(如发送:1,回复:完成)

2019-07-15 22:34发布

下面程序,可以实现收发。现在我想给单片机发送一个代码,然后要求单片机回复一个我自己定义的字符或者文字。(比如发送:1,单片机回复:完成)
小弟初学单片机,不知道能不能实现?希望各位大侠指教!感激不尽!
/******************************
十六进制发送和接收数据                              


******************************/
#include <REG52.H>
bit Flag;
unsigned int ReData,SenData;
void main (void) {
        SCON = 0x50;             //REN=1允许串行接受状态,串口工作模式1                              
            TMOD|= 0x20;        //定时器工作方式2                    
                PCON|= 0x00;                                                           
                TH1 = 0xFD;        //baud*2  /*  波特9600、数据位8、停止位1。效验位无 (12M)
            TL1 = 0xFD;         
                TR1  = 1;                                                            
                ES   = 1;        //开串口中断                  
                EA   = 1;        // 开总中断
                                    // IE = 0x0;
        while(1)
    {
          if (Flag==1)
          {  
             SBUF=SenData;             //SUBF接受/发送缓冲器
            while(ti==0);
         TI=0;
                 Flag=0;
          }
}
}
/****************************************************
               串口中断程序
******************************************************/
void ser_int (void) interrupt 4 using 1
{
if(RI == 1)                //RI接受中断标志
{
        RI = 0;                    //清除RI接受中断标志
        ReData = SBUF;      //SUBF接受/发送缓冲器
        SenData=ReData;
        Flag=1;
}
}




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