51单片机串行通信T1、T2常用波特率设置
- 格式:xlsx
- 大小:13.30 KB
- 文档页数:1
51 单片机常用波特率初值表(12M 晶振)
为什幺51 单片机的晶振一般使用11.0592?
用11.0592 晶振的原因是51 单片机的定时器导致的。
用51 单片机的定时器做波特率发生器时,如果用11.0592Mhz 的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz 晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C516 晶振12M 波特率9600 ,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。
这也就是串口通信时大家喜欢用11.0592MHz 晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。
用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。
扩展阅读:关于51 单片机IO 引脚的驱动能力与上拉电阻。
简述单片机串行通信的波特率摘要:一、单片机串行通信的基本概念二、波特率的定义及意义三、波特率的计算方法四、波特率与通信距离、数据速率的关系五、如何选择合适的波特率六、结论正文:一、单片机串行通信的基本概念单片机串行通信是指单片机通过串行接口与其他设备进行数据传输的过程。
在这个过程中,数据是一位一位地按照一定的时间间隔依次传输,从而实现数据的远程传输和控制。
串行通信在电子设备、计算机网络等领域有着广泛的应用。
二、波特率的定义及意义波特率(Baud Rate)是衡量串行通信数据传输速率的重要指标,它表示每秒钟传输的比特数。
波特率越高,数据传输速率越快。
在实际应用中,波特率决定了通信的稳定性和可靠性,因此选择合适的波特率至关重要。
三、波特率的计算方法波特率的计算公式为:波特率= 数据速率/ 传输位数。
其中,数据速率指的是单位时间内传输的比特数,传输位数指的是每个数据帧中数据的位数。
四、波特率与通信距离、数据速率的关系波特率与通信距离和数据速率之间存在一定的关系。
通信距离较远时,信号衰减较大,可能导致数据传输错误,此时应降低波特率以提高通信的可靠性。
而数据速率较高时,传输时间较短,可以适当提高波特率以提高传输效率。
五、如何选择合适的波特率选择波特率时,应综合考虑通信距离、数据速率、传输可靠性等因素。
在保证通信可靠性的前提下,尽量选择较高的波特率以提高传输效率。
此外,还需注意波特率与通信协议的兼容性,确保不同设备之间的顺畅通信。
六、结论单片机串行通信的波特率是衡量数据传输速率的重要指标,选择合适的波特率对保证通信的稳定性和可靠性具有重要意义。
c 51单片机串口初值计算单片机是一种集成电路,可以用来实现各种功能。
而串口是一种用于数据传输的通信接口,常用于单片机与外部设备之间的通信。
在单片机中使用串口通信时,需要对串口进行初始化,设置其波特率和各种参数。
本文将通过详细介绍C51单片机串口的初值计算方法,帮助读者更好地理解单片机串口的使用。
在C51单片机中,串口的初始化可以通过设置相应的寄存器来实现。
下面以51系列单片机为例,介绍串口初始化的过程。
首先,需要设置串口的波特率。
波特率是指在一个时间单位内,通过通信线路传输的波形的变化次数。
常用的波特率有9600bps、115200bps等。
要设置波特率,需要先确定所使用的晶振频率和串口的时钟分频系数。
C51单片机的串口通信是通过定时器T1实现的,波特率的计算公式为:波特率 = 晶振频率 / (12 * 2^n * (65536 - T1初值))其中,n为波特率位数,可以取3、4、5等。
按照常用的8位数据位和1位停止位,可以将n取为4。
以晶振频率为11.0592MHz,波特率为9600bps为例,计算T1初值:9600 = 11059200 / (12 * 2^4 * (65536 - T1初值))通过计算得到T1初值为77。
将77转换成16进制,得到的值为4D。
接下来,需要设置串口的工作模式和相关参数。
C51单片机的串口通信有两种模式:帧模式和位模式。
帧模式是指在每个数据字节的前后都添加起始位、停止位和校验位,可以提高数据的可靠性。
位模式是指仅传输数据位,不添加起始位、停止位和校验位,可以提高传输速率。
C51单片机的串口默认为位模式,但可以通过设置相应的寄存器来选择工作模式。
串口相关的寄存器包括SCON、PCON和T2CON。
设置串口工作模式以及数据位数、停止位数和校验方式的方法如下所示:SCON = (模式选择位7) (模式选择位6) 0 (8位数据位选择) (校验方式选择) (停止位数选择) (模式选择位1) (模式选择位0)其中,模式选择位7和模式选择位6可以根据实际需求进行设置。
串行通信中波特率的设置问题
波特率设置:
1.什么是波特率
波特率是指串行数据通信过程中,数据比特传输速率,是指每秒钟传输比特(bit/s)的数量。
2.波特率的设置
要设置波特率,首先要确定所选择的硬件设备类型,例如RS232通信接口的写入器,然后依据设备的硬件说明书。
选择合适的波特率,比如110,300,600,1200,2400,4800,9600,14400,19200,38400,57600,115200等等。
3.波特率的选择
要尽可能选择一个稳定的波特率,因为此参数改变后,会影响到数据传输的速率和数据传输的稳定性。
如果采用太高的波特率,可能会影响到电路工作,破坏器件寿命和通信质量;而如果太低,也可能出现数据传输速度降低、画面卡死或断流等隐患。
4.波特率的变换
波特率变换是指计算机内部对传输速率的改变,相当于计算机内部“调速”,这是实现高速数据传输的一种技术。
可以在一定程度上提高传输速度,并改变可能存在的故障。
5.设置波特率的注意事项
(1)调试设置时应检查设备、缆纤是否连接稳定,有无拔插等不正常情况;
(2)对单端口设备,应检查设备的波特率是否一致,有无偏差;
(3)对于多端口设备,应注意各个端口之间是否可以彼此通信,没有三方口,即通信机设置是否正确;
(4)应注意检查设备是否工作正常,有无额外的信号输入,且设备及接口是否
正常工作;
(5)对于需要调节的波特率,设置时应采用相关的软件或数据库生成指令,而不是手工设置。
波特率的设置一般不会涉及太复杂的问题,但应根据实际使用的设备的特点综合考虑,调节合适的值来设置,以保证设备的正常使用。
c51单片机串口初值计算
单片机串口的初值计算是为了设置串口通信的波特率(Baud Rate),波特率是指串口每秒传输的位数。
在51单片机中,串口模块由SBUF(串口数据寄存器)、SCON(串口
控制寄存器)和PCON(功耗控制寄存器)组成。
串口通信的波特率设置
是通过控制SCON和PCON寄存器的相关位实现的。
以下是一种计算波特率初值的方法:
1.确定所需的波特率,例如1200。
2.计算定时器T1的初值:
其中,CPU时钟频率是指单片机的工作频率,如12MHz。
3.将T1的高8位和低8位分别存储到TH1寄存器和TL1寄存器中:
TH1=T1高8位
TL1=T1低8位
4.设置串口模式和波特率控制位:
SCON=SCON,0x50;//设置串口工作在模式1(8位数据,可变波特率)PCON=PCON,0x80;//设置波特率控制位,使能T1控制波特率
5.启动定时器T1:
TR1=1;//启动定时器T1
通过以上步骤,就可以计算并设置51单片机串口的波特率初值。
需要注意的是,由于计算初值时取整会导致一定的误差,因此实际波特率可能会略有偏差。
51系列的串口波特率的计算
1、方式0的波特率,固定为晶振频率的十二分之一。
2、方式2的波特率,取决于PCON寄存器的SMOD位。
PCON是一个特殊的寄存器,除了最高位SMOD 外,其他位都是虚设的。
计算方法如下:
SMOD=0时,波特率为晶振频率的1/64;
SMOD=1时,为晶振频率的1/32.
3、方式1与方式3的波特率,都由定时器的溢出率决定。
公式为:
波特率= (2SMOD/ 32)×(定时器T1的溢出率)
通常情况下,我们使用定时器的工作方式2,即比率发生器,自动重载计数常数。
溢出的周期为:
T=(256-X)×12/fosc
溢出率为溢出周期的倒数,所以:
如此,也可由波特率反推出计数器的初始值。
下面是常用的波特率及初始值:
51单片机模拟串口波特率计算方法
1.计算波特率位间隔时间(即定时时间,其实就是波特率的倒数)
位间隔时间(us) = 106 (us) / 波特率(bps)
2.计算单片机指令周期:
指令周期(us) = 12 / 晶振频率(Mhz)
3.计算定时器初值:
需要指令周期个数 = 位间隔时间(us) / 指令周期(us)
定时器初值 = 2n—需要指令周期个数
n为定时器位数。
51单片机串口波特率计算
在51单片机中,串口通信可以通过设置波特率来控制数据传输速度。
波特率是指每秒钟传输的数据位数。
要计算51单片机串口的波特率,需要了解以下几个参数:
1.时钟频率:51单片机的时钟频率通常为12MHz或者11.0592MHz。
这是由外部晶振或者内部时钟发生器提供的。
2.波特率发生器(UART)的参数:波特率发生器的输入时钟频率为时
钟频率的12分频。
串口通信的常用波特率有1200、2400、4800、9600等。
接下来我们
以计算1200波特率为例进行说明。
首先,计算波特率发生器的输入时钟频率:
输入时钟频率=时钟频率/12
假设时钟频率为11.0592MHz,则输入时钟频率为:
输入时钟频率=11.0592MHz/12≈921.6kHz
然后,根据波特率公式计算波特率发生器的计数器初值:
计数器初值=输入时钟频率/(16*波特率)
对于1200波特率,计数器初值为:
计数器初值=921.6kHz/(16*1200)≈48
最后,将计数器初值设置到波特率发生器,即可达到1200波特率的
串口通信。
需要注意的是,以上计算是基于8位数据位、无校验位和1位停止位
的情况。
如果需要使用其他参数,则需要根据具体情况进行计算。
综上,通过以上计算可以得到51单片机串口的波特率。
根据不同的
时钟频率和波特率要求,可以使用相应的计数器初值来设置波特率发生器,实现串口通信。
51单片机串口通信相关寄存器及设置指引关键字SBUF:串口数据缓存寄存器SCON:串口通信状态控制寄存器Fosc:晶振的震荡频率PSW:程序状态字寄存器1、SBUF数据缓存寄存器SBUF可直接寻址专用寄存器,是个8位寄存器,不可进行位操作。
字节地址99H。
物理上它是两个寄存器,一个发送寄存器,一个接收寄存器。
写数据到SBUF中时(SBUF = 0x52;),单片机自己会判断是写到发送寄存器。
读取SBUF中数据时(rReg = SBUF;),单片机自己会判断是读取接收寄存器。
接收寄存器是双缓冲的,以避免在接收下一帧数据之前,单片机还来不及响应接收中断,没有把上一帧的数据读取走,而产生两次帧数据重叠问题。
发送寄存器,没有缓冲,发送时单片机直接主动发出数据,不会产生重叠问题。
(扩展知识:为了保持最大的传输速率,一般不需要发送寄存器建立双缓冲功能。
双缓冲功能有别于发送数据队列缓存区。
)2、SCON串口通讯状态控制寄存器SCON可直接寻址专用寄存器,是个8位寄存器,可以进行位操作。
SCON用于控制串行通信的模式选择、接收和发送,标识串口的状态。
SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。
系统复位时,SCON的所有位都被清除。
SCON串口通讯状态控制寄存器的格式及各位的功能定义如下:●SM0、SM1SM0和SM1是串口模式选择位。
SM0和SM1编码对应串口4种模式,如下表:●SM2SM2在模式2和模式3中是多机通信的使能位。
在模式0中,SM2必须为0。
在模式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。
在模式2和模式3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志RB8不会被激活,若接收到的第9位数据(RB8)为1,则RI置位。
此功能可用于多处理机通信。
●RENREN为允许串行接收位,由软件置位或清除。
置位时允许串行接收,清除时禁止串行接收。