那位大哥帮我看看,为啥我的串口一直不ok?

2019-07-15 21:19发布

晶振是11.0592M   但是在下载时显示的是 11.050154M
我想实现9600 8位数据,1位停止的串口


#include<STC90.h>
#include <stdio.h>

bit Flag;

unsigned int ReData,SenData;

void main (void) {


    SCON = 0x50;      //SM0/SM1=0/1----8位可变波特率  REN=1 使能串口接收模块
        TMOD|= 0x20;      //定时器1 操作模式2:  8位定时     
                                                                                    
    PCON|= 0x00;  
        TH1= 0xfd ;                                                
        TL1= 0xfd   ; //定时器1的低8位计数

        TR1  = 1;           //定时器1的启动控制位                                               
        ES   = 1;        //串口中断使能位               
        EA   = 1;        //总中断开关
       
          

        while(1)
    {
       
          if (Flag==1)
          {
            SBUF=SenData;            // SBUF---串口接收/发送数据  
            while(ti==1);            //TI发送完成中断标志,初始值为0,完成置1
        TI=0;
                 Flag=0;
          }

}

}

void ser_int (void) interrupt 4 using 1
{
if(RI == 1)  //接收完成中断标志,初始值为0
{
        RI = 0;                  
        ReData = SBUF;  
        SenData=ReData;
        Flag=1;
}
}


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