51单片机学习中的问题

串口通信波特率问题:

学习使用普中科技51开发板,在串口通信实验教程中,应特别注意波特率适用问题

                            TMOD工作方式寄存器

TMODT1定时/计数器T0定时/计数器
(89H)D7D6D5D4D3D2D1D0
位定义GATEC/
T
M1M0GATEC/
T
M1M0

T1/T2定时器有4种工作模式:                                                

模式0:13位定时计数模式                                                      
模式1: 16位定时计数模式
模式2:8位自动重装载模式
模式3:两个独立8位定时计数模式(只T0) 

定时器定时时间计算方法:

Td=(2^n-Count)×fosc/12    ,.......................................................................(公式1)                                

其中Td为计时时间,n为位数,fosc为晶振频率,

除以12因为:单指令周期  = 一个机器周期 = 6状态周期 = 12个时钟周期  (参见时钟电路与时序内容)

计数:2^n-Count

其中,

模式0不常用的;
模式1常用于定时;
模式2常用,例如串口波特率发生器
模式3不常用;                                       

                                                                                  串行口控制寄存器

位地址9FH9EH9DH9CH9BH9AH99H98H
位定义SM0SM1SM2RENTB8RB8TIRI
功能方式选择多机控制串行接收允许/禁止发送的第9位接收的第9位发送中断有/无接收中断有/无

 串行口分四种工作方式,由SM0、SM1二位决定,其定义如下:
SM0   SM1   工作方式     功能描述                                                     波特率

 0   0   方式0   8位移位寄存器                                             Fosc/12
 0   1   方式1   10位UART(包括一个起始位和停止位)                可变
 1   0   方式2   11位UART (包括一个起始位和停止位)        Fosc/64或fosc/32
 1   1   方式3   11位UART (包括一个起始位和停止位)                可变


 由公式1得

各种方式的波特率:

方式0的波特率BR =  fosc/12

方式2的波特率BR =(2^SMOD/64)· fosc 

方式1的波特率 BR=(2^SMOD/64)·(Td溢出率) .......................................................................(公式2)      

方式3的波特率 BR=(2^SMOD/64)·(Td溢出率) .......................................................................(公式3)    

 

经公式1与公式2化简得:

 Count=2^n - (12×64×BR)/(2^SMOD×fosc)

注意 2^n 是否足够减

 

转载于:https://www.cnblogs.com/mryu119/p/11031354.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值