您的位置:首页 > 其它

串口波特率

2014-08-25 09:57 141 查看
在硬件串口模块中,有一个专门的波特率发生器用来控制发送和接收数据的速度。对于STC89C52 单片机来讲,这个波特率发生器只能由定时器 T1 或定时器 T2 产生,默认是使用定时器 1 的,就使用定时器 T1 作为波特率发生器来讲解,方式 1 下的波特率发生器必须使用定时器 T1 的模式 2,也就是自动重装载模式,定时器的重载值计算公式为:

TH1 = TL1 = 256 -  晶振值/12 /2/16 /波特率

和波特率有关的还有一个寄存器,是一个电源管理寄存器 PCON,他的最高位可以把波特率提高一倍,也就是如果写 PCON |= 0x80 以后,计算公式就成了:

TH1 = TL1 = 256 -  晶振值/12 /16 /波特率

256 是 8 位定时器的溢出值,也就是 TL1 的溢出值,晶振值是11.0592Mhz,12 是说 1 个机器周期等于 12 个时钟周期,值得关注的是这个 16,采取的方式是把一位信号采集 16 次,其中第 7、8、9 次取出来,这三次中其中两次如果是高电平,那么就认定这一位数据是 1,如果两次是低电平,那么就认定这一位是 0,这样一旦受到意外干扰读错一次数据,也依然可以保证最终数据的正确性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单片机 硬件 波特率