波特率与定时器初值关系

    首先,说一下啊波特率与定时器初值关系。

     波特率:即单片机或者计算机在串口通信时的速率用波特率,它定义为每秒传输二进制代码的位数。

    1波特率=1位/秒

    串行口有4种工作方式,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定的。串行口的4种工作方式对应3种波特率。由于输入的时钟来源不同,所以各种工作方式也不同。

    4种方式波特率的计算公式:

    方式0的波特率=fosc/12

   方式1的波特率=(2SMOD/32)*(T1溢出率)

   方式0的波特率=(2SMOD/64)*fosc

   方式0的波特率=(2SMOD/32)*(T1溢出率)

fosc为系统晶振频率,通常为12MHz或者11.0592MHz。SMOD是PCON寄存器最高位;T1溢出率就是定时器T1溢出频率。

电源管理寄存器PCON:

    电源管理寄存器在特殊功能寄存器中,字节地址为87H,不能位寻址。它用来管理单片机的电源部分,包括上电复位检测,掉电模式,空闲模式。单片机复位时PCON全部被清0.

    T1溢出率就是定时器T1溢出的频率,如果计算出T1定时器每溢出一次所需要的时间T,那么1/T就是它的溢出率。

在这里,如果我们用定时器1的工作方式1在中断中装初值的方法来求T1溢出率的话,在进入中断,装值,出中断这个过程中很容易产生微小误差,当多次 操作时,误差曾度,就会产生错误。所以 我们就用了T1定时器的工作方式2,8位初值自动重装8位定时器/计数器。当定时器记满溢出后单片机会自动为其装初值,并且不需要进入中断服务程序进行任何处理,这样定时器的溢出的速率就会绝对稳定。

方式2的工作过程是:先设定M1M0悬着定时器方式2,在TLX和THX装入计算好的初值,启动定时器,然后TLX寄存器便在时钟的作用下开始加一计数,当TLX计满溢出后,CPU会自动将THX中的数装入TLX中继续计数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值