晶振为什么选择11.0592MHz?那为什么有的人会选择12MHz,比如为什么要再除以12?为什么单片机的晶振居然是11.0592 MHz,12m的晶振是什么意思?11.0592m和12m有什么区别?为什么会有12M和11.0592M?这就是为什么我们喜欢在串行通信中使用11.0592MHz晶体振荡器。
1、单片机中时钟、晶振分别是起什么作用的
晶振的作用是给单片机提供一个时钟信号(一个非常稳定的频率信号),使单片机内部各部件同步工作,与外部设备通讯时也能达到同步。晶振是用来产生时钟信号的,相当于人的心脏和泵,在时序图中经常看到,因为数字电路需要时钟来一步一步地读取或写入指令,实现各种功能。晶体振荡器的分频会得到时钟信号,为程序的执行提供“动力”,也可以为各个部件提供同步信号。
没有晶体振荡器,就没有时钟周期。没有时钟周期,程序代码就无法执行,单片机就无法工作。单片机工作时,从rom中逐个取出指令,然后逐步执行。单片机访问一个内存的时间称为一个机器周期,是一个时间基准。一个机器周期包括12个时钟周期。如果单片机选择12MHz晶振,其时钟周期为1/12us,机器周期为12X(1/12)us,也就是1us。
2、…处理速度就越快,那为什么有的选12MHz,有的选24MHz的呢?
1,根据cpu最高工作频率确定,根据系统需要确定;3、因为工作频率越高,功耗越大。如果可能的话,降低频率更好。适可而止,被控对象的速度不是唯一因素,单片机不以计算为主要任务,以控制为主要目的。所以稳定、可靠、抗干扰能力强是重中之重。晶体振荡频率越高,这些方面会越来越降低。
当3、用单片机做流水灯时晶振有什么作用?为什么有12M和11.0592M等?
51除以12时,12M晶振分频后的时钟周期很容易计算。使用串口时,波特率设置一般不是一个特殊的整数。比如9600和12M分不清这个频率,但是11.0592M可以。有关详细信息,请参见51中的波特率设置部分。如果不使用串口,或者串口的时钟要求不是很严格,连续数据量不大,用12 M是没问题的,单片机当流水灯的时候不用晶振,但是单片机做任何实验的时候,晶振的作用就是给单片机提供一个时钟。简单来说,单片机运行你的程序时,是一个12MHZ的晶振,根据晶振提供的时钟运行。可以算出下一个周期是什么,为什么会有11.0592。这个你多了解一下单片机就明白了,因为11.0592的晶振对于计算一些常见的单片机晶体的波特率是有好处的。
4、单片机中,12M的晶振是什么意思?
我的答案对应你的问号:1。这个晶体振荡器可以提供12Mhz的振荡频率。2.是的。3.看来你是用C语言编程的,我来解释一下。编译C语言的时候,首先要把你的C语言代码转换成汇编语言的指令。具体的换算方法我就不说了,很麻烦。如果你想知道一个特定的C语句的指令需要多长时间来执行,那么你必须看看汇编中的代码有多长。汇编语言中一条语句执行需要多长时间,可以通过技术手册查出来。
(* _ _ *) 5.还有一点,老51单片机,比如Atmel的89S51,有一个机器周期,把你的晶振的频率除以12。也就是说,如果你的晶振频率是12Mhz,那么实际上芯片的执行速度只有1Mhz,因为芯片内部的硬件将其除以12。目的是确保芯片时钟的准确性。
5、51单片机用多大频率的晶振好呢,11.0592m和12m有什么区别?立创商城的晶…
晶振的振荡频率取决于单片机的具体应用,并不是越高越好。11.0592MHz和12MHz的振荡频率差别不大,但如果你的微控制器需要异步串行通信,我建议你选择11.0592MHz的振荡频率,因为你在编程波特率发生器时使用这个振荡频率,波特率计数器的初始计数值可以是整数;但如果振荡频率为12MHz,初始计数值只能是近似值(接近小数的整数),长时间通信会造成误差积累,导致通信失败。
6、单片机为什么要分频??比如说12MHz的晶振为什么要再进行12分频?
51单片机采用12M晶体振荡器。如果是单指令周期语句,正好是1us,其他语句都像是1us的整数倍,方便计算指令时间。对于AT公司的AT89系列51单片机,技术上有缺点,分频后频率降低,程序执行更稳定,不容易跑偏。AT的新款单片机和一些公司的新款单片机都不一定要用12M晶振,11.05925M或者18M,也就是一般来说35M以内的无源晶振(两脚)就可以了。
7、为什么单片机晶振实际是11.0592MHz,而不是12MHz
晶振有很多种,在不同的场合有不同的应用。11.0592和12MHZ晶体振荡器都是常用的。这并不意味着12MHZ的晶振实际上是11.0592MHZ,11.0952MHZ的晶振在串行通信的时钟和波特率的计算中可以得到一个整数,所以计算结构更加准确方便。还有12MHZ,你想想,周期更准吧?正好是1us。11.0592呢?
8、晶振为什么选择11.0592MHz?
因为11.0592MHz可以精确划分时钟频率,所以和通用UART(通用异步接收/发送)的波特率有关。特别是,在更高的波特率(196,19200)下,这些晶振是精确的,经常被使用,不管这些值有多奇怪。使用11.0592晶振的原因是51单片机的定时器引起的。用51单片机定时器制作波特率发生器时,如果用11.0592Mhz晶振,定时器设置的值根据公式是整数。
例如,如果使用定时器将0XFD设置为9600,则实际波特率为10000。通常,波特率偏差在4%左右,所以STC90C516晶振的12M波特率是9600。这就是为什么我们喜欢在串行通信中使用11.0592MHz晶体振荡器,波特率乘以速度,最大可达57600,误差率为0.00%。12MHz时,最大值为4800,误差率为%,但在允许范围内,不重要。