微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 使用stc90c516rd+单片机产生115200的串口波特率。

使用stc90c516rd+单片机产生115200的串口波特率。

时间:10-02 整理:3721RD 点击:
本人最近一直在调试stc90c516rd+单片机的串口,想要115200的串口波特率,但是晶振是11.0592M。苦于一直没法实现,后来发现了一个方法可以实现,单片机运行在6T情况下,使用11.0592M晶振下面程序就可实现115200的波特率。或者是单片机运行在12T情况下,使用22.1184M晶振也可以实现115200的波特率。
#include "STC90.h"
void UartInit(void)
{
        SCON=0X50;        //串口工作在方式1 ,8位uart,波特率可变
        TMOD=0X20;        //设置计数器工作方式2
        PCON=0X80;   //波特率加倍
        TH1=0XFF;      //计数器初始值设置
        TL1=0XFF;
        ES=1;            //打开串口中断
        TR1=1;          //打开计数器
        EA=1;           //开启总中断
}
unsigned char temp;
void main(void)
{
        UartInit();
        
        while(1){
        }         
}
void Uart() interrupt 4
{
        temp=SBUF;                //出去接收到的数据
        while(!RI);
        RI=0;
        SBUF=temp;
        while(!TI);
        TI=0;
               
}


查找datasheet发现stc90c516rd+竟然可以运行在6T情况下,根据datasheet找到了可以实现的方法。


不错的资料分享    简单了解一下   感谢分享

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

网站地图

Top