单片机串口调试

╄→尐↘猪︶ㄣ 提交于 2020-01-24 06:22:23

用 串口调试助手 发送一字节的数据,单片机马上会回发同样的数据在串口调试助手上显示,如果回发给串口调试助手的数据不是原始数据,即很有可能是晶振问题。换个11.0592MHz的就可以了。

 

 

#include <REG52.H>

//sbit LED = P1^0;
bit Flag;
unsigned int ReData,SenData;

void main (void) {

  SCON = 0x50;      //REN=1允许串行接受状态,串口工作模式1               
  TMOD|= 0x20;      //定时器工作方式2                   
  PCON= 0x00;                                                         
  TH1  = 0xFD;     //baud reload value 9600、数据位8、停止位1。效验位无 (11.0592)
  TL1 = 0xFD;        
  TR1  = 1;                                                            
  ES   = 1;        //开串口中断                 
  EA   = 1;        // 开总中断
//  LED=1;
 
 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;
//    LED=0;
    P1 = SBUF;
 }
}

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!