微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 那位大哥帮我看看,为啥我的串口一直不ok?

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

时间:10-02 整理:3721RD 点击:
晶振是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;
}
}

SBUF这个寄存器应该是8位的吧。unsigned int 在C51里肯定不是8位的。

上一篇:74hc165无法使用
下一篇:求找那错了!~

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

网站地图

Top