微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机通讯问题,(如发送:1,回复:完成)

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

时间:10-02 整理:3721RD 点击:
下面程序,可以实现收发。现在我想给单片机发送一个代码,然后要求单片机回复一个我自己定义的字符或者文字。(比如发送: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;
}
}


这有什么难的,你既然能接收数据,那么在接收数据时单片机显示一下就OK啦,没有显示屏闪一下灯什么的也行嘛

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top