单片机为什么要晶振_51单片机晶振频率
波特率与晶振

为什么51系列单片机常用11.0592MHz的晶振设计?现在有许多极好的编译程序能显示代码,在速度和尺寸两方面都是非凡有效的。
现代的编绎器非常适应寄存器和变量的使用方面,比手动编译有较好的优越性,甚至在其它常规方面,所以C应是看代码方面最合适的。
答1:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。
特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。
答2:当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD 的值(PCON.7------双倍速波特率)决定:方式1、3波特率= (定时器1的溢出率)特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:方式1、 3波特率=11.0592MHZ晶振的一些典型波特率如下:更换一种计算方式,它将以修改公式达到我们需求的波特率来计算出晶振。
最小晶振频率=波特率x 384 x 2 SMOD这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。
例如:波特率为19.2KH2的最小晶振频率:3.6864=19200x384x2(波特率为19.2K的SMOD为1 )11.0592=3.6864x3其中TH1是由倍乘数(3)确定TH1=256-3=253=0FDH用来确定定时器的重装值,公式也可改为倍乘数的因子:晶振频率=波特率x(256-TH1)x384x2 SMOD这是波特率为19.24K的晶振频率。
以上的例子可知,被乘数(3)是用来确定TH1:TH1=256-3=253=0FDH19.2K波特率的晶振为11.0592=19200x(256-0FDH)x384x2(19.2 k的SMOD为1)其它值也会得出好的结果,但是11.0592MHZ是较高的晶振频率,也允许高波特率。
设定80C51串行异步通讯的波特率本文的目的在于补充及阐明一些有关的内容。
为什么单片机的晶振会有 11.0592mhz 这个数字

为什么单片机的晶振会有11.0592MHz 这个数字?71郭昊可以被准确分频成各种通信常用的波特率11.0592MHz = 192*57600 = 384*28800 = 576*19200 = 1152*9600update: @肖孝云: 很好的思路,但是这是什么因果关系?那为什么不能先是有个12M的频率,然后分频成其他的波特率呢?答: 因为美国工业电子联盟(Electronic Industries Alliance,EIA) RS-232-C标准中规定了数据传输速率为: 50、75、100、150、300、600、1200、2400、4800、9600、19200、38400如果继续问为什么它要这么制定, 这个我就不确定了, 据Google是因为由电信线路特性决定的电话线路的带通是300--3KHz,当时HAYES先搞的modem,所以用的2400HZ信号,对应波特率是2400。
由于基本频率确定了,以后采用的提高通讯速率的方法都是在2400基础上倍频的,所以形成了9600,19200。
当然, 实际原因就是大家通用标准都一样了, 慢慢淘汰下来非主流的, 就是这样了, 其实很多行业都是这样, 为什么要这么做, 或许有一定的理由, 但追根究底还是历史惯性, 大家都这么做了, 更改起来没有必要而且成本太大, 所以就一直延续了, 比如键盘的qwerty布局, 220v等等另外12m不如11.0592M好分频2013-12-038 条评论感谢分享收藏·没有帮助·举报4王俊楠上面说的有些复杂,本人没有不敬的意思,说一下我在书上看的吧。
标准的51单片机晶振是1.2M-12M,一般由于一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好计算,而且速度相对是最高的(当然现在也有更高频率的单片机)。
11.0592M是因为在进行通信时,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M 计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592M2013-09-23添加评论感谢分享收藏·没有帮助·举报2马千里,我是学电信的,我不是走这条路的楼上说的大体上都是对的:这么奇葩的频率目的是————分频,产生通信用的同步信号(同步信号的频率,就是那个波特率)但是为什么是11.0592而不是12?原因是——12分不出整数的波特率,或者说常用的整数波特率。
单片机原理复习题

题型汇总:判断题1.在单片机89C51中,串行通信方式1和方式3的波特率是固定不变的。
2.单片机89C51一般使用非整数的晶振是为了获得精确的波特率。
3.单片机89C51和PC机的通信中,使用芯片MAX232是为了进行电平转换。
4.所有MCS-51系列单片机都是带有片内ROM和片外RAM的。
( )5.MCS-51单片机的程序存储器只是用来存放程序的。
()6.当MCS-51单片机上电复位后,栈指针(SP)=00H ()7.在89C51的串行通信中,串行口的发送和接收都是对特殊功能寄存器SBUF进行读/写而实现的T8.并行通信的优点是传送速度高,缺点是所需传送线较多,远距离通信不方便。
T9.当MCS-51单片机系统只使用片内ROM时,其引脚EA应接高电平。
()10.在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外RAM区时用MOVX指令,访问片内RAM区时用MOV指令。
T11.工作寄存器区不允许做普通的RAM单元来使用。
F12.8051单片机的字长为8位,但其片内寄存器不都是8位寄存器。
()13.所谓机器周期是指CPU执行一条指令所需要的时间。
()14.MCS-51内部的位寻址区,只能进行位寻址,而不能进行字节寻址。
()15.当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片内是否有程序存储器。
T16.当89C51的EA引脚接高电平时,CPU只能访问片内的4KB空间。
17.在89C51的片内RAM区中,位地址和部分字节地址是冲突的。
18.中断的矢量地址位于RAM区中。
19.工作寄存器组是通过置位PSW中的RS0和RS1来切换的。
20.访问128个位地址用位寻址方式,访问低128字节单元用直接或间接寻址方式。
21.堆栈指针SP的内容可指向片内00H~7FH的任何RAM单元,系统复位后,SP初始化为00H。
22.程序计数器PC是一个可以寻址的特殊功能寄存器。
23.8051单片机共有128个位地址。
51单片机波特率计算

51单片机波特率计算在单片机的世界里,波特率是一个非常重要的概念。
它关乎着数据通信的准确性和效率。
那么,什么是波特率呢?简单来说,波特率就是指单位时间内传输的二进制位数。
对于 51 单片机而言,正确计算波特率是实现可靠通信的关键。
要理解51 单片机的波特率计算,首先得了解一些相关的基础知识。
51 单片机通常使用串行通信方式来进行数据传输,常见的有同步通信和异步通信两种。
在异步通信中,波特率的设置尤为重要。
51 单片机的波特率是由定时器来产生的。
通常会用到定时器 1 作为波特率发生器。
那为什么要用定时器来产生波特率呢?这是因为单片机的晶振频率是固定的,而我们需要不同的波特率来适应不同的通信需求。
通过设置定时器的初值和工作方式,就可以得到我们想要的波特率。
在计算波特率之前,我们需要知道几个关键的参数。
首先是晶振频率,这是单片机工作的基础时钟。
其次是定时器的工作方式,51 单片机的定时器1 有四种工作方式,不同的工作方式会影响波特率的计算。
还有就是我们期望得到的波特率值。
以常见的方式为例,如果我们使用的晶振频率是 110592MHz,想要得到 9600 的波特率,并且选择定时器 1 工作在方式 2(8 位自动重装模式),那么计算过程是这样的:首先,我们知道波特率=(2^SMOD/32)×(定时器溢出率)其中,SMOD 是电源控制寄存器 PCON 中的一位,当 SMOD = 1 时,波特率会加倍。
定时器溢出率=晶振频率/(12×(256 TH1))将晶振频率 110592MHz 转换为 Hz,即 11059200Hz。
要得到 9600 的波特率,我们可以列出方程:9600 =(2^SMOD/32)×(11059200 /(12×(256 TH1)))假设 SMOD = 0,解方程可得 TH1 = 253。
也就是说,我们需要将定时器 1 的 TH1 和 TL1 都设置为 253,就可以得到 9600 的波特率。
单片机内部晶振种类

单片机内部晶振种类
单片机内部晶振种类指的是单片机内部使用的晶振类型。
晶振是单片机的核心元件之一,用于为单片机提供时钟信号,控制单片机的运行频率。
根据不同的分类标准,可以将单片机内部的晶振分为多种类型。
按照频率,晶振可以分为低频晶振和高频晶振。
低频晶振的频率一般在1MHz以下,常见的是32.768kHz晶振,主要用于计时器、实时时钟等场合;高频晶振的频率一般在1MHz以上,常见的有4MHz、8MHz、12MHz等,主要用于单片机的主频控制。
按照封装形式,晶振可以分为插件式和贴片式。
插件式晶振常见的是圆柱形和扁平形,而贴片式晶振则一般为方形或长方形,适用于表面贴装生产线。
此外,根据晶振的用途,还可以分为普通晶振和温补晶振。
普通晶振主要用于为单片机提供基本的时钟信号;温补晶振则可以在一定范围内自动补偿温度变化对晶振频率的影响,提高单片机的稳定性。
综上所述,单片机内部晶振种类指的是单片机内部使用的晶振类型,包括频率、封装形式和用途等。
不同类型的晶振适用于不同的场合,选择合适的晶振可以提高单片机的性能和稳定性。
单片机晶振频率计算公式

单片机晶振频率计算公式单片机晶振频率计算公式是指根据晶振的参数来计算出其工作频率的数学公式。
晶振是单片机中常见的外部时钟源,可以提供稳定的时钟信号,用于控制和同步单片机的工作。
晶振的频率决定了单片机的运行速度和精度,因此准确计算晶振频率非常重要。
单片机晶振频率计算公式的一般形式为:频率= 1 / (2 * π * C * R)其中,C表示晶振的电容值,R表示晶振的电阻值,π是一个数学常数,约等于3.14159。
在实际应用中,需要根据晶振的具体参数来计算频率。
晶振通常有两个参数:电容值和额定频率。
电容值是指晶振两端的电容器的电容量,通常使用皮法(pF)作为单位。
额定频率是指晶振的设计工作频率,通常以赫兹(Hz)作为单位。
以一个常见的8MHz晶振为例,假设其电容值为20pF。
根据单片机晶振频率计算公式,可以计算得到:频率= 1 / (2 * π * 20pF * R)如果我们想要计算出电阻值R,可以进行变形得到:R = 1 / (2 * π * 20pF * 频率)假设我们希望晶振频率为8MHz,代入公式计算,可以得到:R = 1 / (2 * π * 20pF * 8MHz)计算结果为R ≈ 994.73Ω。
根据计算结果,我们可以选择一个接近于994.73Ω的电阻值来匹配晶振。
在实际应用中,可以选择最接近的标准电阻值,如1KΩ或1.2KΩ。
需要注意的是,单片机晶振频率计算公式只是一个理论计算公式,实际应用中可能会受到一些因素的影响,如电容器的误差、电阻器的精度等。
因此,在选取晶振和电阻时,还需要考虑这些因素,并进行适当的调整和修正。
除了上述的简单计算公式,还有一些复杂的晶振频率计算公式,如串联谐振频率计算公式、并联谐振频率计算公式等。
这些公式针对不同的晶振电路结构和工作方式,提供了更精确的计算方法。
总结来说,单片机晶振频率计算公式是根据晶振的参数来计算其工作频率的数学公式。
通过准确计算晶振的频率,可以选择合适的晶振和电阻器,以确保单片机的正常工作。
51单片机内部时钟误差

51单片机内部时钟误差摘要:I.引言- 介绍51 单片机内部时钟误差的概念II.51 单片机内部时钟误差的原因- 晶振频率不准确- 机器周期占用III.51 单片机内部时钟误差的影响- 计时准确性下降- 系统性能受到影响IV.解决51 单片机内部时钟误差的方法- 采用高精度晶振方案- 动态同步修正方案V.结论- 总结解决51 单片机内部时钟误差的方法及其重要性正文:I.引言51 单片机内部时钟误差是指在51 单片机内部,由于各种原因导致时钟信号的不准确,从而影响整个系统的性能。
对于需要高精度时间的应用,如计时、通信等,这种误差尤为关键。
本文将探讨51 单片机内部时钟误差的原因、影响及其解决方法。
II.51 单片机内部时钟误差的原因51 单片机内部时钟误差的主要原因是晶振频率的不准确和机器周期占用。
1.晶振频率不准确:51 单片机的内部时钟信号是由外部晶振提供的。
如果晶振的频率不稳定,那么时钟信号也会随之波动,从而影响计时准确性。
2.机器周期占用:在51 单片机内部,从定时器/计数器产生中断请求到响应中断,需要占用一定的机器周期。
此外,定时器/计数器溢出中断请求到执行中断也需要一定的机器周期。
这些机器周期占用会导致计时器/计数器初值的准确度下降,从而影响时钟误差。
III.51 单片机内部时钟误差的影响51 单片机内部时钟误差会对系统性能产生影响,主要表现在计时准确性的下降。
在需要高精度时间的应用中,如实时操作系统、通信设备等,这种误差可能导致系统运行不稳定,甚至功能失效。
IV.解决51 单片机内部时钟误差的方法针对51 单片机内部时钟误差,有以下两种解决方法:1.采用高精度晶振方案:通过使用高精度晶振,可以提高时钟信号的准确度,从而降低时钟误差。
但需要注意的是,高精度晶振的价格较高,需要在成本和性能之间进行权衡。
2.动态同步修正方案:在程序中,通过动态同步修正方法给定时器/计数器赋初值。
具体方法是将定时器/计数器低位(TLO)中的值和初始值相加,然后送入定时器/计数器中。
51单片机中几个时间周期的概念区分

51单片机中几个时间周期的概念区分时钟周期:时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。
通常也叫做系统时钟周期。
是计算机中最基本的、最小的时间单位。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,也就是机器周期=12*时钟周期,(上面讲到的原因)如果是12MHZ,那么机器周期=1微秒。
单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。
单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。
机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。
例如一个单片机选择了12MHZ晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。
但是在8051F310中,CIP-51 微控制器内核采用流水线结构,与标准的 8051 结构相比指令执行速度有很大的提高。
在一个标准的 8051 中,除 MUL和 DIV 以外所有指令都需要12 或24 个系统时钟周期,最大系统时钟频率为12-24MHz。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机为什么要晶振_51单片机晶振频率首先解释一下单片机为什么需要晶振。
晶振是什么?全称是石英晶体振荡器,是一种高精
度和高稳定度的振荡器。
通过一定的外接电路来,可以
生成频率和峰值稳定的正弦波。
而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可
以简单的想象为:单片机收到一个脉冲,就执行一次或
多次指令。
第二个问题,是不是外接晶体的值可以随意选择呢?
当然不是,这就像不同的发动机有不同的最大功率
一样,每种型号的的单片机都有最大能接受的晶体频率。
先说51,它能够外接的最大晶体是24M,AVR单片机能够外接的最大晶振是16M。
更高级的可编程芯片,例如FPGA,ARM,可以达到几百M,不过暂时不在我们的考虑范围之内。
第三个问题,为什么51最大可外接24M(不同厂家的值略有不同),而AVR等高级单片机只有16M?这设计到单片机的指令结构。
51单片机用的是复杂指令集,最直接的体现就是,它需要12个时钟周期来运行一条指令,当它外接12M晶体时,时钟周期为1/12M秒,运行一条简单的指令需要
1/1M秒;而430和AVR单片机使用的是精简指令集,只需要一个时钟周期就能运行一条指令。
这样看来,51最快的指令执行速度也就是2M每秒,而430或者AVR单片机的指令执行速度是16M每秒。
第四个问题,是不是所有的单片机都需要晶体?这就要回到我们最初的目的,我们给单片机接上晶体的目的是什么?
获取稳定的脉冲!那只要有合适的方法生成稳定的
脉冲,那就可以去掉外接的晶体。
举例,AVR单片机,
它在单片机内部集成了一个RC振荡电路,通过对熔丝位进行编程,可以内部生产1M,2M,4M,8M的震荡频率,进
而替代相应的晶体。
缺点是振荡电路在环境比较恶劣的情况下,不是很
稳定,对一些计时要求比较严格的仪器和设备,不建议
使用。
如果对时间要求不高,多一个毫秒少一个毫秒无
所谓的话,那就可以放心用了。
第五个问题,12M晶体和11.0592M晶体有什么区别?
呵呵,其实单从指令的执行速度来看,区别不大。
采用11.0592M的唯一目的是为了获得精准的串口通信频率,简称就是波特率,它能够精准的生成9600的波特率,在串口通信中较常用。
先写到这,如果还有疑问可加扣扣2246080671,我看到后会回复。