历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2019年03月18日 | STC89C52RC单片机实现串口打印功能

2019-03-18 来源:eefocus

stc的89c52rc型号开发板,晶振是12m。是因为买的最小系统就是这个频率。使用波特率位9600,将TL、TH都设置成0xfd后不管是英文还是中文的都是乱码。


12M的晶振波特率只能是2400,9600的情况下会有7.8%的误差,所以会产生乱码,而2400波特率的情况下误差是0.16%,这样就不会产生乱码了,TH1和TL1都设为F3


为什么51单片机的晶振一般使用11.0592?

用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用


STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。 这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。 用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。


#include

//stdio.h,string.h用于printf函数原型  

#include

  

  

void delay(unsigned int z);  

void uart_init(void);//串行口初始化  

  

int main(void)  

{  

    int a=99;  

    char *string="abde";  

    uart_init();  

    while(1)  

    {  

    puts("abcd");

        printf("%d  %x  %c  %s  %p\n",a,a,(char)a,string,string);  

        delay(1000);  

    }  

    return 0;  

}  

  

void uart_init(void)  

{  

    TMOD=0x20;//即0010 0000,定时器/计数器1,工作方式2  

    TH1=0xf3;//设置波特率为9600  

    TL1=0xf3;  

    TR1=1;//启动定时器/计数器1  

      

    SCON=0x50; //0101 0000.串口工作方式1,允许串行控制  

    PCON=0x00;//设置SMOD=0  

    IE=0x90; //CPU允许中断,串行允许中断  

      

    TI=1;//直接使用printf必须加入此句才能实现发送  

}  

  

void delay(unsigned int z)  

{  

    unsigned int x,y;  

    for(x=z;x>0;x--)  

        for(y=110;y>0;y--);  

}


推荐阅读

史海拾趣

E-CMOS(飞虹高科)公司的发展小趣事

随着全球化趋势的加剧,飞虹高科公司意识到,要想在国际市场上取得更大的成功,必须与国际同行展开合作。因此,公司积极寻求与国际知名企业的合作机会,通过技术合作、合资建厂等方式,共同开发新产品、拓展新市场。这些合作不仅为公司带来了资金和技术支持,还帮助公司扩大了国际影响力,提高了产品的国际竞争力。

BusBoard公司的发展小趣事

随着公司规模的扩大和产品线的丰富,BusBoard公司开始积极寻求市场扩张的机会。通过与国内外知名电子设备制造商建立合作关系,BusBoard公司的产品逐渐打入国际市场。同时,公司还积极参与行业交流和展会,与同行分享经验、探讨合作,共同推动电子行业的发展。这种合作共赢的理念使得BusBoard公司在市场上获得了更多的机会和资源。

Ampire Co Ltd公司的发展小趣事

品质是企业的生命线。BusBoard公司深知这一点,因此从原材料采购到生产加工再到产品出厂,每一个环节都严格把控品质。公司建立了完善的品质管理体系,对每一道工序都进行严格的检验和测试。同时,公司还注重员工品质意识的培养和提升,确保每一个员工都能以高度的责任心对待自己的工作。这种对品质的执着追求使得BusBoard公司的产品在市场上赢得了良好的口碑。

General Electric Company公司的发展小趣事
在工业自动化控制系统中,用于驱动高压电机、阀门等执行机构。
Forge Europa Ltd公司的发展小趣事

Forge Europa Ltd公司自成立以来,始终将技术创新视为企业发展的核心驱动力。早期,公司便投入大量资源研发高效能LED灯带技术,成功推出了具有行业领先地位的5050型号LED灯带。这款产品在市场上迅速获得认可,不仅因为其出色的光效和节能性能,更在于其独特的散热设计,有效延长了产品的使用寿命。Forge Europa的这一技术创新不仅为公司赢得了市场份额,也奠定了其在LED灯带领域的领先地位。

敦泰(FOCALTECH)公司的发展小趣事
调节冰箱温度时,应根据季节和存放食物的需求进行调整。一般来说,冷藏室的温度应设置在2-8℃之间,冷冻室的温度应设置在-18℃以下。可以通过冰箱上的温度调节按钮或触摸屏进行设置。同时,注意避免将温度设置过低或过高,以免影响食物的保鲜效果和冰箱的能耗。

问答坊 | AI 解惑

ScanWedge 扫描后自动回车

怎么写配置文件才能自动回车? 这个文件放在Application 下, 同目录下有一个ScanWedge.reg 内容是这样的 [HKEY_CURRENT_USER\\Software\\Symbol\\ScanWedge] \"AutoEnter\"=dword:00000001 为什么不行呢,改怎么写,高手请指教…

查看全部问答>

PDA开发任务外包

本公司想开发一个PDA抄表器,PC数据库SQLSERVER 2000 如有意者,可与列联系 QQ:463071950,武汉本地最好,便于直接沟通…

查看全部问答>

如何使自己编写的驱动开机时候就运行?

如题。比如一个使LED灯不断闪烁的GPIO驱动。谢谢。…

查看全部问答>

键入字母a到屏幕显示a计算机做了什么操作?

键入字母a到屏幕显示a计算机做了什么操作? …

查看全部问答>

请问现在哪个厂家生产的音频类控件最好?在什么地方能够买到?

美国Ligos公司是一家专门从事音频,视频控件开发的厂商,所生产的音频,视频类控件功能相当强大,为软件产品的开发提高了效率,也节约了成本,在全球都是享有地位的! 在慧都控件网能买到!重庆慧都科技有限公司---提供专业的控件产品咨询,代理全 ...…

查看全部问答>

小型太阳能供电板的制作方法图解

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 本刊前几期介绍了太阳能电池板及相关的小制作,引发了包括笔者在内的许多读者的兴趣。闲来无事,突发奇想,决定利用手头上的两块太阳能电池板DIY一个微型太阳能供电系统,模拟现代化太阳能电 ...…

查看全部问答>

stm32i2c2上拉电阻电压的问题

                                 最近做了块板子,用STM32F103VB,在用24C256的时候,忘加上拉电阻,好不容易弄上去两个2.2K的上拉电阻,结果发现我 ...…

查看全部问答>

【求助】用TA能产生2MHZ的方波吗?急,在线等!!!

我用的是MSPF1611 MCLK=7.3728MHZ现在想产生一个最高频率为2M的方波,程序我是这样写的 void main(void) { WDTCTL = WDTPW +WDTHOLD; // Stop WDT P3DIR|=0x04; P3OUT|=0x04; CCR0 = 4; // ...…

查看全部问答>

职场人士应如何控制情绪?

  职场中要避免不良情绪发生,控制好自己的情绪对工作前途和同事关系都会带来影响。学会控制情绪会让你变得更成熟,那么职场人士应如何控制情绪呢?一起来看看下面的介绍吧,希望对您有所帮助。   用理智控制你的情绪   如果你怒气冲冲 ...…

查看全部问答>