51单片机波特率和晶振的计算

当定时器重载值是8bit时(传统的51单片机型号,如AT89C51的T1):
Y=256-((256-X)*4)
当定时器重载值是16bit时(较新的51单片机型号,如C8051F系列的Timer3):
Y=65536-((65536-X)*4)

下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。则TH1=256-62500/波特率

baud(波特率)=2^smod*12M/(12*32*(256-TH1)

当SMOD=1时,k为倍数,是2的幂,公式为:

波特率=K×12000000/32×12×(256-TH1)

所以,TH1=0xf3=256-(12000000/384×波特率) 其中波特率为2400

TL1=0xF3;     //9600波特率的初值,板子使用12M晶振,初值=256-12000000/32/12/2400

12000000是晶振的值,32是指使用的是32位,即计数器模式2

设计的时候就是这样的。12个晶振周期才能完成一条指令的执行

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值