我的单片机是STC90C516 晶振12M 波特率9600 配置如下:

TMOD = 0x20; // 定时器T1使用工作方式2
TH1 = 249;
TL1 = 249;
PCON = 0x80; // SMOD = 1
SCON = 0x50; // 工作方式1,波特率9600kbit/s,允许接收
IP=0x10;
// IPH=0X10;
ES=1;
TR1 = 1;

发出的数据是错误的
请问是怎么回事

第1个回答  推荐于2017-12-15
STC官网不是提供了一个“STC波特率计算器”吗,
输入要求自动生成C或者汇编代码,用它多方便。

帮你计算了下,STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据不出错才怪。

这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。

用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。本回答被提问者采纳
第2个回答  2011-07-25
设置好像没有问题,具体是什么情况?
第3个回答  2011-07-25
EA = 1; /*打开总中断*/没写这个

我的单片机是STC90C516 晶振12M 波特率9600 配置如下:
帮你计算了下,STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据不出错才怪。这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。

stc90c516rd+的晶振是多少?
其中【xx】:分25,40,50 三个等级。这个数字xx表示最大工作频率。【2】在选型一览表中单独提到 STC90C516RD+最高时钟频率可达80MHz。根据你的问题,我认为,你根据实际需要选择恰当的晶振如12MHz,以此为基准来设计或分析即可。这个晶振不是单片机固有的,而是用户自己选择添加在外部的。如有疑问,...

stc90c516rd+用STC—ISP下载不了程序,怎么办
首先检查下单片机最小系统电路,晶振,电容,电源是否都正确连接,推荐你用数据手册里的连接方法,如果都没有问题的话看一下在软件里芯片型号选没选对,端口选没选对,至于晶振的话和下载一般是没有关系的,除非你把晶振那快的电路接错了

关于串口通信波特率的几点思考 - 草稿
用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,...

晶振为什么选择11.0592MHz?
通常,波特率偏差在4%左右。因此,STC90C516晶体振荡器12M波特率为9600。这就是为什么我们喜欢在串口通信中使用11.0592MHz晶体振荡器的原因。当波特率乘以速度时,最大可达57600,错误率为0.00%。在12MHz时,最大值是4800,有一个%的错误率,但是在允许的范围内,所以这并不重要。

我买的单片机开发板上面单片机是STC90C516RD+,我想用Proteus仿真,但发现...
我不知道你的想法啊,你51单片机学习板都买了。你还要用Proteus仿真干嘛,你说的STC90C516RD这款芯片Proteus仿真里面没有,我建议还是用你的学习板多谢谢程序,做做实验吧,你可以用STC89C52RD芯片,不能用ATMEL公司的芯片,ATMEL公司的芯片不支持在线下载,需要仿真器烧写程序,建议别用ATMEL公司的芯片,...

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

STCISP烧录软件V687最新免费版STCISP烧录软件V687最新免费版功能简介...
第一步,选择MCU的类型为STC90C516RD+。第二步,选择COM的端口号为COM3。第三步,设置串口的波特率最高为115200最低为2400。第四步,打开事先编译好的程序文件,本教程的程序只是上电点亮了LED灯。第五步,先点击“Download\/下载”按钮,然后再给开发板上电。紧接着你就可以看到程序的...

51单片机定时器2的最短定时时间怎么有限制?
51单片机定时器,晶振是12MHZ、12分频,理论上最短定时时间1微秒,但是,CPU 运行指令 需要时间,只要中断服务程序 的运行时间 不超过定时器 定时时间,并且 有些余量,则就不成问题,如果没有余量,则中断结束 又进入 中断,如果 超过定时器 定时时间,则来不及 处理 定时也就不准确了。用 C 语言...

STC单片机串口接收数据时,只有第一个字节正确,其它错误,且总漏一个...
我记得STC好像有的单片机一个时钟周期是两个机器周期。或者是6个机器周期,而一般的单片机都是12个机器周期。这个有一个寄存器可以进行设置,你查一下看是不是这个问题。T2L=(65536-(FOSC\/4\/BAUD));T2H=(65536-(FOSC\/4\/BAUD))>>8;去看一下,数据手册,可能是这里出了问题。

相似回答