为什么单片机晶振实际是11.0592MHz而不是12MHz网!

为什么单片机晶振实际是11.0592MHz而不是12MHz网

趋势迷

为什么单片机晶振实际是11.0592MHz而不是12MHz

2024-08-05 16:31:48 来源:网络

为什么单片机晶振实际是11.0592MHz而不是12MHz

为什么单片机晶振实际是11.0592MHz,而不是12MHz??
用11.0592晶振的原因是51单片机的定时器导致的🌵_🦋👿,用51单片机的定时器做波特率发生器时🐲🌻_——*,如果用11.0592Mhz的晶振😼-🐉,根据公式算下来需要定时器设置的值都是整数🦠——_😜;如果用12Mhz晶振🦧-|😏🌹,则波特率都是有偏差的⛸-😜。比如9600😌——*🦜,用定时器取0XFD🌼🦌——*,实际波特率10000🪱😁|🦇,一般波特率偏差在4%左右都是可以的**-🪁🤢,所以也还能用STC90C51等会说🦈🍀-——🎾🤮。
标准的51单片机晶振是1.2M-12M🦙🐆-🌳😔,一般由于一个机器周期是12个时钟周期🐕🌞|-🎎🌕,所以先12M时😄-——😽🐖,一个机器周期是1US🤒🍀-🐫🦦,好计算😸__😩,而且速度相对是最高的(当然现在也有更高频率的单片机)🦙🐱|🌿🌈。11.0592M是因为在进行通信时🌈🌼_💥,12M频率进行串行通信不容易实现标准的波特率🌺——_🐟🤤,比如9600🦥🐪-☺️🪰,4800🦎-💥🏒,而11.0592M计算时正好可以得到🐰|_🐞🥀,因此等会说🤒|🎣😤。

为什么单片机晶振实际是11.0592MHz而不是12MHz

51单片机为什么晶振都用11.0592M??
用11.0592晶振的原因是51单片机的定时器导致的🦧_|😛,用51单片机的定时器做波特率发生器时🪲😠|-🌍☀️,如果用11.0592Mhz的晶振*🕊|🦖,根据公式算下来需要定时器设置的值都是整数🎲——|😯🎲;如果用12Mhz晶振🍄————😍,则波特率都是有偏差的🦔-_🦋😈。单片机组成🐓——😐:运算器由运算部件算术逻辑单元😩🐍|🪀🐌、累加器和寄存器等几部分组成🌝-😙🪀。ALU的作用是把传来的数据进行算说完了🪅||🕹🐬。
这个问题与单片机的串口波特率有关🦙-🌈🥏。51单片机的串口工作方式有4种♥🏸——😢🔮,方式0🐤_|💮🦡、方式2的波特率是固定的🐦🎋|🦘🦐,只与单片机的系统晶振频率有关🦘_|🌘🤣。方式1🐰🧨-_🌤、方式3波特率是可变的*——♟😋,不止与系统晶振频率有关🏆-——⛸😉,还与定时器T1有关🦊-🦑。因为51单片机的波特率发生器只能由定时器T1或定时器T2产生🍁🦀-——🦟🦢,由于我们使用的是STC98C52单片机🐋🐜——|🤢⛈,是是什么🥌😷_🐹。
51 单片机的晶振12 MHZ,用于通讯的通常是11.0592 HZ???
在C51单片机中🀄🌺_——🐼🦎,选择11.0592MHz晶振的主要原因是这个频率可以被12整除🐡-🌙🐾,可以直接用于串口通信🐟🐭_🎭,而串口通信通常使用的波特率为9600bps🌱🦅|🐓🐲,相应的计算公式为*🌔_|🐞🐓:fosc/12/32 = 9600bps 其中✨-*,fosc表示单片机晶振频率🌱😵-🕷,32是指每个数据包包含了1个起始位👻🦣|♥、8个数据位和1个停止位😺__😨,一共10位🌻——🍀😰。因此🏵|_🏓,通过求解上述公式到此结束了?😤🌧_|🦎🦟。
编程时🌑*|🕸,用11说完了🏉-🛷😾。MHz🎈🥅--🐒*,而在板子上使用12MHz🖼🦢-_👺🥏,这时🌩🤣|-🌈🐹,速度就会稍快一些😍|-🦎。提速了🦆😻-🐜!串口通信🐬|——🦢,会产生波特率偏差🐖🦘_🎟。如果当做时钟🪄😻_🎁🐙,显示时分秒🙂🐈——_🦚☘️,那么🎯_|🌥🦋,刚刚经过11.0592小时🪱🌹-🐳🐫,就显示过去了12小时😴-|🦍💐。如果用于测试按键的时间😬🦕|🦠,需要精确🐩_🎨,那就应该把你的“示值”🐌🎽——🌗*,除以12🐭🦊|——😙🐄,再乘以11.0592🌳🦒|🐫,这就是准确的时间🥍——🪁。
为什么单片机晶振是11.0592MHz,能不能换成12MHz的??
如果没有需要非常精确的定时器🪳🐵|-🏈,就可以换🐽🦉——🐭,因为需要用晶振除以12得到机器周期*__🐕。
52单片机并不是固定的晶振频率为11.0592MHZ🏸_——🦈,这个晶振频率是你外部给的🐪🤡_🏉🦖,并不是单片机自带的🌝🎉-😲。实际上🐹_*⛳,单片机的晶振可以选择很多频率🤥🦅__🦅🎿,从1MHZ到32MHZ的各种频率晶振都有🐒_🎲🎑,你到电子市场一看就知道了✨🐐_|🐑,呵呵🐞——-🦢。为什么很多单片机要选用11.0592MHZ呢?原因有很多🐋|——🤭🐡,但是很重要的一个原因是🐤|-🧐,11.0592MHZ的晶振在到此结束了?🐹-_🐾🦙。
关于串口通信波特率的几点思考??草稿??
      用11.0592晶振的原因是51单片机的定时器导致的🎽🦊-😿🐥。用51单片机的定时器做波特率发生器时🌎🤬-|🤥🐽,如果用11.0592Mhz的晶振🦘⭐️|⛈🦩,根据公式算下来需要定时器设置的值都是整数🤭🐝——🕸;如果用12Mhz晶振😥——_🌱🐔,则波特率都是有偏差的🍄|🐟,比如9600🌏🦐-☺️,用定时器取0XFD🧧🤩__🐓,实际波特率10000😴👿——🐳🐍,一般波特率偏差在4%左右都是希望你能满意⚡️--🐊🀄。
没有区别🦙-_🐭,11.0592MHz晶振在进行串行通信时是非常有用的🐂🌤|🐼,因为能准确产生各种波特率🤨🐊|——🍀🐅。12MHz晶振只是在精确定时使用时好一些💥♠——😂。