51单片机波特率的计算方法.pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51 单片机波特率计算的公式和方法 51单片机芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就 是使用SCON 寄存器。它的各个位的具体定义如下: SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。 串行口工作模式设置。 波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位 机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的 波特位数。 这里所指的波特率,如标准9600 不是每秒种可以传送 9600个字 节,而是指每秒可以传送 9600 个二进位,而一个字节要8 个二进位,如用串 口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进 位,9600 波特率用模式1 传输时,每秒传输的字节数是9600÷10=960 字节。 51芯片的串口工作模式0 的波特率是固定的,为fosc/12,以一个12M 的 晶振来计算,那么它的波特率可以达到1M。模式2 的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD 位,如SMOD 为 0,波特率为focs/64,SMOD 为1,波特率为focs/32。 模式1和模式3 的波特率是可变的,取决于定时器1 或2 (52 芯片)的溢 出速率,就是说定时器1每溢出一次,串口发送一次数据。那么我们怎么去计算 这两个模式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。 上式中如设置了PCON 寄存器中的SMOD 位为1 时就可以把波特率提升2 倍。通常会使用定时器1工作在定时器工作模式2 下,这时定时值中的TL1做 为计 数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1 的值会 自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。 在这 个定时模式2 下定时器1溢出速率的计算公式如下: 溢出速率= (计数速率) - /(256 TH1 初值) 溢出速率=fosc/[12*(256-TH1初 值)] 上式中的“计数速率”与所使用的晶体振荡器频率有关,在51 芯片中定时 器启动后会在每一个机器周期使定时寄存器TH 的值增加一,一个机器周期等于 十二个振荡周期,所以可以得知51 芯片的计数速率为晶体振荡器频率的1/12, 一个12M 的晶振用在51芯片上,那么51的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我 们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。代入公式: 11.0592M 9600=(2÷32)×((11.0592M/12)/(256-TH1)) TH1=250 12M 9600=(2÷32)×((12M/12)/(256-TH1)) TH1≈249.49 上面的计算可以看出使用12M 晶体的时候计算出来的TH1 不为整数,而 TH1 的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600 波 特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体 振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波 特率的影响是十分之小的,可以忽略不计。 吴鉴鹰单片机开发板,学习单片机必备

文档评论(0)

annylsq + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档