搜索
bottom↓
回复: 4

请教大家NXP P89V51RD2 串口波特率问题

[复制链接]

出0入0汤圆

发表于 2013-3-4 09:27:05 | 显示全部楼层 |阅读模式

51的串口时钟来自于Timer1,根据书上的说明计算公式应该如下:
如果PCON.SMOD=0,则:
TH1 = 256 - ((Crystal / 384) / Baud)
如果PCON.SMOD=1,则:
TH1 = 256 - ((Crystal / 192) / Baud)

而P89v51rd2数据手册中关于串口模式2波特率的说明如下:
The baud rate is programmable to either 1/16 or 1/32 of the CPU clock frequency, as determined by the SMOD1 bit in PCON.
手册中再也没有其他关于波特率的说明。

而实际编程时发现,晶振使用18.432MHz,设置PCON.SMOD1=0,TH1=251时,串口波特率为19200;而设置PCON.SMOD1=1,TH1=251时,串口波特率既不是19200也不是9600。

疑惑,按照上面的计算公式,应该是SMOD=1时波特率为19200,SMOD=0时波特率为9600才对啊?即便是P89v51rd2单片机本身特殊,在SMOD=0时波特率为19200,那大概猜测应该在SMOD=1时波特率为9600啊?

望用过P89V51RD2的朋友指点,谢谢!

出0入0汤圆

发表于 2013-3-4 09:31:51 | 显示全部楼层
SCON = 0x50 ; /* work mode 8-bit variable bp ''MODE1 */
        /* T2CON */
        TCLK = 1 ; /* timer2 为uart波特率发生器 */
        RCLK = 1 ;
        TR2 = 1 ;
        EXEN2 = 0 ;
        T2MOD = 0x00 ; /* timer2 work mode BPS generator */

        /* reload value */
        RCAP2H = 0XFF ;
        RCAP2L = 0XB2 ; /* 24MHZ   9600BPS */

        ES0 = 1 ;/* enbale interrupt */

出0入0汤圆

发表于 2013-3-4 09:32:28 | 显示全部楼层
自己用的24M 9600bps 其他的没有太详细考究

出0入0汤圆

 楼主| 发表于 2013-3-4 11:56:43 | 显示全部楼层
WXF_mabg 发表于 2013-3-4 09:32
自己用的24M 9600bps 其他的没有太详细考究

谢谢

是什么单片机?P89V51RD2?

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-4 03:15

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

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