搜索
bottom↓
回复: 10

51单片机串口通信,定时器1只能选定时方式2吗?

[复制链接]

出0入0汤圆

发表于 2020-4-29 20:42:24 | 显示全部楼层 |阅读模式
咨询大家个问题  51单片机做串口通信时,串口选方式1,定时器1的溢出率就是波特率,看了很多例子都是使用定时器1的定时方式2,即8位自动重装初值的方式,我的问题是,可不可以使用定时器的定时方式1,即16位计数,如果可以,程序中怎么为其重装初值?

很多年没写过了单片机程序了,最近和同事一起做个小东西,需要用到433M无线模块,买了两个是串口通信的,需要用到9600波特率的串口通信,但是买的51板晶振是个12M的,STC-ISP检测MCU出来是11.952M,用STC-ISP上的计算波特率小程序,算了下,9600波特率在定时方式2时8.07%,使用方式定时方式1误差0.24%,但是发现好像行不通

但手册只说了定时器1的溢出率就是波特率,没说不能用定时方式1呀,熟悉51的大神,能给我解释下吗,谢谢了

出0入0汤圆

发表于 2020-4-29 23:32:14 | 显示全部楼层
本帖最后由 loggerjy 于 2020-4-29 23:33 编辑

波特率发生器,重点:
1、uart单元支持哪些内部时钟来源;
2、上面支持的定时器支持重载(不能重载的定时器,uart也不会给出寄存器进行配置)

出0入442汤圆

发表于 2020-4-30 00:11:07 来自手机 | 显示全部楼层
自己查stc手册,写的还是比较详细的,只是逻辑性不太好,uart相关寄存器跨越好几大章

出0入0汤圆

发表于 2020-4-30 00:47:53 | 显示全部楼层
换个晶振,波特率误差可以到0,最好买最常用的11.0592

出200入2554汤圆

发表于 2020-4-30 01:58:54 来自手机 | 显示全部楼层
stc支持不用tim1产生波特率

出0入93汤圆

发表于 2020-4-30 05:16:26 来自手机 | 显示全部楼层
首先,标准的51单片机12M晶振产生9600波特率误差2‰,不够用?UART倍速,自动重装值243,你算算。其次,不自动重装得自己写定时中断服务函数,而且得补偿,很麻烦。第三,可以选T2的16位自动重装模式。第四,STC有很多波特率产生的专用模式。

出0入0汤圆

 楼主| 发表于 2020-4-30 06:03:08 来自手机 | 显示全部楼层
takashiki 发表于 2020-4-30 05:16
首先,标准的51单片机12M晶振产生9600波特率误差2‰,不够用?UART倍速,自动重装值243,你算算。其次,不 ...

试过了,12M晶振,2400波特率误差0,24,可以用,9600就不正常了,常出错,我用的STC89C52,不支持16位重装

出0入0汤圆

 楼主| 发表于 2020-4-30 06:09:55 来自手机 | 显示全部楼层
这个论坛还是很不错,记得上学时常逛,那会网站还不是这个名,老莫常在里面回答问题,十年没来逛过了,还是这么热闹。谢谢大家的回答,我已经重新买了晶振在路上,我觉得结论就是该型号单片机产生波特率用定时器1的方式1是不可以用的

出0入93汤圆

发表于 2020-4-30 06:42:27 | 显示全部楼层
arvindu 发表于 2020-4-30 06:03
试过了,12M晶振,2400波特率误差0,24,可以用,9600就不正常了,常出错,我用的STC89C52,不支持16位重 ...

好像我算错了,是除以32,我除成16了,好久没用过了忘了。
我特意去下载了这个STC89C52这个老古董手册:
STC89C52,T2支持16位重装的,12M时钟产生9600没有问题。直接用STC软件产生的代码不对,还得按照手册手写


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2020-5-1 13:33:41 | 显示全部楼层
LZ实在搞不懂,其实我建议一个最简单的方法就是讲SMOD=1
TH1和TL1的初值设置为 0F3
STC89C52RC单片机使用6T模式
这个时候产生的波特率是9615.38462b/s
误差率0.16%


用这个方法你也不用去研究什么定时器2的16位自动重装了

不过要记得自己修改延时程序,因为单片机已经加速到6T模式了

出145入215汤圆

发表于 2020-5-3 20:11:37 来自手机 | 显示全部楼层
标准51得串口波特率只能是定时器1工作在 8位自动重装。建议换11.0592把
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 05:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表