这个问题与单片机的串口波特率有关。
51单片机的串口工作方式有4种,方式0、方式2的波特率是固定的,只与单片机的系统晶振频率有关。方式1、方式3波特率是可变的,不止与系统晶振频率有关,还与定时器T1有关。
因为51单片机的波特率发生器只能由定时器T1或定时器T2产生,由于我们使用的是STC98C52单片机,是标准51架构的单片机没有T2模块。)
对于串口通信来讲最常用的是方式1,以下以串口的模式1来分析。由串口发送原理知,串口发送一次,实际上要发,1位起始位,8位数据位,1位结束位。
由于使用模式1没有第9位数据位,所以,串口发送一次,一共要发10位数据,有一点要注意,在串口发送数据时,两次发送之间是没有累计误差的。
串口工作在方式1下的波特率计算公式为:
Baud = ((2^SMOD)/32)*(T1定时器溢出率)
其中SMOD为寄存器PCON的最高位,当SMOD = 0时,串口通信方式1、2、3波特率正常;当SMOD = 1时,串口通信方式1、2、3波特率加倍。即SMOD = 0为例。
之所以单片机能成为控制核心,设计出包罗万象的应用系统来,是因为开发者利用了单片机提供的种种功能及各种外设。
所以,要掌握单片机的各种功能,再加上诸如传感器、模数转换、扫描显示、串行、中断的应用思维,结合更多的元器件、电子电路知识,逐个学习、体会实际的单片机系统的秘密。
51单片机脉冲为什么是11.0592而不是12
这个问题与单片机的串口波特率有关。51单片机的串口工作方式有4种,方式0、方式2的波特率是固定的,只与单片机的系统晶振频率有关。方式1、方式3波特率是可变的,不止与系统晶振频率有关,还与定时器T1有关。因为51单片机的波特率发生器只能由定时器T1或定时器T2产生,由于我们使用的是STC98C52单片机,是...
为什么单片机晶振实际是11.0592MHz,而不是12MHz
因为11.0592MHz能够准确地划分成时钟频率,与UART(通用异步接收器\/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。用11.0592晶振的原因是51单片机的定时器导致的,用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据...
51单片机为什么晶振都用11.0592M
因为11.0592MHz能够准确地划分成时钟频率,与UART(通用异步接收器\/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。用11.0592晶振的原因是51单片机的定时器导致的,用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据...
51单片机中用的竞争为什么是像11.0592,22.1184这样的倍数关系的呢?_百 ...
51单片机中用的晶振因为在做串口通信的时候,11.0592这种晶振的数值能在计算波特率的时候,波特率不会出现余数,把误差降到最低。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8...
单片机上的晶振为什么有时是12MHZ,有时是11.0592MHZ?有什么区别么?_百 ...
标准的51单片机晶振是1.2M-12M,一般由于一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好计算,而且速度相对是最高的(当然现在也有更高频率的单片机)。11.0592M是因为在进行通信时,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M计算时正好可以得到,因此...
晶振为什么选择11.0592MHz?
使用11.0592晶体振动的原因是51单片机定时器引起的。使用51单片机定时器制作波特率发生器时,若使用11.0592Mhz的晶体振动,则定时器设置的值按公式为整数。如果使用12Mhz晶体振荡器,波特率会偏离。例如,如果使用计时器将0XFD取为9600,那么实际的波特率是10000。通常,波特率偏差在4%左右。因此,STC90C...
51 单片机的晶振12 MHZ,用于通讯的通常是11.0592 HZ?
在C51单片机中,选择11.0592MHz晶振的主要原因是这个频率可以被12整除,可以直接用于串口通信,而串口通信通常使用的波特率为9600bps,相应的计算公式为:fosc\/12\/32 = 9600bps 其中,fosc表示单片机晶振频率,32是指每个数据包包含了1个起始位、8个数据位和1个停止位,一共10位。因此,通过求解上述公式...
52单片机的晶振频率是11.0592MHZ,但为什么在内部要进行12分频?分频以 ...
原因有很多,但是很重要的一个原因是,11.0592MHZ的晶振在计算最大波特率及其误差的时候,其最大波特率达到了57600,几乎能满足绝大多数应用,其他晶振都达不到这个波特率或者误差太大;同时在波特率误差方面,11.0592MHZ晶振的误差为0。至于为什么单片机要预分频,这是因为你选择的单片机的原因。在单片机发展...
51单片机常用的晶振是什么频率???
11.0592MHz也有12MHz,速度要求高的可以用24MHz,使用11.0592MHz的频率主要是因为这个频率下串口以9600bps传输数据的误码率是最低的,12MHz主要是因为用这个频率段计算出的时间延时是比较准确的(执行速度为12\/12MHz);
51单片机一般选用多少的晶振
这个与用途有关,比如说如果你要用到串口,那么就常用11.0592MHz晶振,因为这个频率的晶振分频后可以得到精确的波特率。如果要用到计时,就常用12MHz晶振,这样分频后是个整数,计时更精确。当需要单片机比较快速的处理数据时,通常使用频率更高的晶振,因为单片机的处理速度与晶振频率成正比,晶振频率越高...