电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机波特率自适应

单片机波特率自适应_第1页
1/6
单片机波特率自适应_第2页
2/6
单片机波特率自适应_第3页
3/6
单片机从机的波特率自适应设置 一、硬件原理图 说明:DB9接到 PC机的串口上。晶体震荡器可以用诸如 11.0592MHz,14.7456MHz,对本文的介绍没有影响等等。这里,单片机为机为,PC机为主机。 二、自动设置理论原理 AT89C52 的串行口有 4 种工作方式,方式 1、3 最常用。T2 的波特率发生方式类似于常数自动重装入方式。用 X16 代替(RCAP2H,RCAP2L),则串行口方式 1、3 的波特率公式为: 波特率=fosc/[32 x (65536-X16 )]..… … … … … … … … ..… … ..… (A) 由(A)可得,单片机每接收 1bit 需要的时间为 接受 1bit 的时间=[32 x (65536- X16 )]/ fosc… … … … … … … … (B) 单片机AT89C52 为 12 分频指令系统,所以其机器周期为: 机器周期= 12/fosc… … … … … … … … … … … … … … … .… .… .… … (C ) 我们可以很容易得到单片机接收 1bit 所需要的机器周期,假定为 NUM,则由(B),(C)得 NUM x 12/ fosc=[32 x (65536- X16 )]/ fosc… … … … … … … … … … ...(D) 由(D)可得,波特率定时时间常数为: X16=NUM x 3/8… … … … … … … … … … … … .… … … … … … … … .… .(E) 由此,关键需要得到单片机接受1 bit 的机器周期数 NUM。 三、自动检测主机信息的方法 不失一般性,假定串行通讯的字符协议为 1起始位,8数据位,无奇偶校验位,1停止位,如下(图 2)所示, 由定时器2工作原理(图3)知道,C/T2=0,TR2=0,则其加1计数,其计数速率为fosc/12,每加1需要的时间等于12/fosc,刚好就是一个机器周期。所以,只要我们在传输数据的某位开始处启动定时器,在传输该位结束时停止计数器,然后获取该范围的计数值,就是我们上面公式(E)中的NUM。 (定时器2工作原理,图3) 由图2知,如果主机(PC机)发给单片机01H(十六进制),则单片机P3.0接收数据如下波形(图4)。起始位开始时,启动定时器T2,当高电平来到时,关闭定时器T2,则计数值就等于NUM。 四、软件实现 1 .流程图 这里给出获取定时常数的流程图,按主机发0 x 0 1 来设计的 获取8bit数据的定时计数值(图5) 计算定时时间常数(图6) 2. 实现该方法的软件源代码 说明:本软件包括C51和汇编两部分 字符协议:1起始位,8数据位,无奇偶校验位,1停止位 ;//-----汇...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机波特率自适应

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部