为什么51系列单片机常用11.0592MHz的晶振设计

合集下载

答辩常见问题解答#(精选.)

答辩常见问题解答#(精选.)

答辩常见问题解答P0 口需不需要加上拉电阻问题P0口做数据总线用是不需要加上拉电阻,这个书上面有写的,就是8个IO口同时控制输出,比如P0口接1602液晶、12864液晶、数码管的8段段选等等都不需要加上拉电阻,如果做单个的IO口用就要加上拉电阻,仿真里P0口必需要加上拉电阻,这个是仿真和实际的差别。

本课题的选课背景、意义等等?这个论文中有的,也都是一些套话。

我就不答了,我整理的都是技术性的。

数码管采用的是什么扫描方式?一位数码管的设计就是采用静态扫描的方式,因为一位数码管是8个段选1个位选,如果采用动态,那就是得用9个IO口,而且程序也比较麻烦,如果选用静态那么位选接电源或地(共阳接电源,共阴接地),段选接IO口,就可以控制显示了,这样只用8个IO 口就ok,而且程序比较简单。

多位一体的数码管只能用动态扫描的方式,因为硬件本身就将每个位的段都接到一起了,所以只能动态控制了。

蜂鸣器或继电器的驱动三极管为什么选用pnp型的(9012、8550),而不是npn型的(9013、8050)?因为单片机刚一上电的时候所有的IO口会有一个短暂的高电平。

如果选用npn型的,即使程序上将IO口拉低,蜂鸣器或继电器也会响一小下或吸合一下,为了避免这种情况发生,就选用pnp型的。

因为我们想控制蜂鸣器或继电器工作单片机的IO口要低电平,这样就避免了,因为我们不可能刚一通电就让蜂鸣器响或继电器吸合。

避免了不必要的麻烦。

液晶三脚接的电阻是而不是可调电阻?经过查阅资料得知(买液晶时给的资料),液晶3脚是灰度调节引脚,灰度正常时是0.5~1V左右,用可调电阻其他就是电阻分压的原理得到的电压,而我们直接用的是电阻也是可以得到正常显示的电压的。

为什么继电器吸合或风扇转动时,液晶屏幕会变暗?从问题5中可以了解大概,就是液晶的灰度是电压控制的,当继电器吸合或风扇转动时,需要的电流较大,而我们采用的电源线或电池盒供电会有一定的压降。

这样液晶的3脚采集的电压就高了。

51晶振为什么是11.0592

51晶振为什么是11.0592

51 晶振为什么是11.0592单片机晶振大多为11.0592 的原因常用波特率通常按规范取为1200,2400,4800,9600,若采用晶振12 兆赫兹或6 兆赫兹,计算得出的T1 定时初值将不是一个整数,这样通信时便会产生积累误差,进而产生波特率误差,影响串行通信的同步性能。

解决的方法只有调整单片机的时钟频率,通常采用11.0592 兆赫兹晶振。

因为用它能够非常准确地计算出T1 定时初值,即使对于较高的波特率(19600,19200),不管多幺古怪的值,只要是标准通信速率,使用11.0592 兆赫兹的晶振可以得到非常准确的数值。

11.0592 兆是因为在进行通信时,12 兆频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592 兆计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592 兆。

51 晶振为什幺是11.0592用11.0592 晶振的原因是51 单片机的定时器导致的。

用51 单片机的定时器做波特率发生器时,如果用11.0592 兆赫兹的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12 兆赫兹晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C516 晶振12 兆波特率9600,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。

这也就是串口通信时大家喜欢用11.0592 兆赫兹晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。

用12 兆赫兹,最高也就4800,而且有0.16% 误差率,但在允许范围,所以没多大影响。

为什幺不是其他数我们假定0-12_000_000 之间有一个数满足以下条件的时候,这个数比较适合晶振的频率:1.当初值在0-255 的情况下,这个数能够整除较多的数(整除的数越多,便可获得能够整除的波特率的种类越多);2.而且这个数应该较大,晶振频率越快,波特率越大,传输的速度越快;3.在SOMD 加倍和不加倍的情况下,这个数都能够整除较多的数。

用51单片机+11.0592的晶振,如何产生115200的波特率?

用51单片机+11.0592的晶振,如何产生115200的波特率?

用51单片机+11.0592的晶振,如何产生115200的波特
率?
今天解决了一个小问题(查书后才得到确切结论。

)用51单片机
+11.0592的晶振,如何产生115200的波特率?本来感觉这个小意思,直接初始化定时器1,程序如下:
 void init_com( void ){SCON = 0x50 ; //串口工作方式1,8位UART,波特率可变TMOD |= 0x20 ; //定时器1,工作方式2,自动再装入8位定时器PCON |= 0x80 ; //SMOD=1; 波特率加倍TH1 = 0xfa ; //波特率:9600 晶振=11.0592MHzIE |= 0x90 ; //使能串口中断TR1 = 1 ; // 定时器1开始}
 结果发现这样只能得到9600的波特率。

 当SMOD=1时,K=2,波特率加倍,公式为:
 波特率=K乘以11059200/32乘以12乘以(256-TH1)
 所以,TH1=0xfa=256-(2乘以11059200/384乘以波特率)其中波特率为9600
 这时,及时令TH1=0xff,所得波特率最大只能为57600,也就是说,这样无法得到115200的波特率。

 这样就只有采用其他方法了:
 1、换晶振,用22.1184M晶振,在TH1=0xff时,刚好可以产生115200波特率。

 2、采用6个时钟周期的单片机(换单片机啊。


 3、增强型51单片机有定时器2!(幸好偶用的是增强型。


 就用第三种方法啦!这时的公式如下:
 波特率=11059200/32乘以[65535-(RCAP2H,RCAP2L)]。

单片机中的寄存器多数是八位的

单片机中的寄存器多数是八位的

1、89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。

P0能够用于外部程序数据存储器,它可以被定义为数据/89C51引脚图地址的低八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

2、MCS-51系列单片机内部通常有128B(位)至256B的片内数据存储器,用于一般的控制及运算是足够的,但若用于数据存储,其容量是不足的,在这种情况下,必须扩展数据存储器。

MCS-51系列单片机对外提供32 条I/O 口线,但其P0口作为地址/数据复用口,P2口用于提供高8 位地址,而其P3口具有第二功能,若扩展了程序存储器或数据存储器,单片机的I/O 口往往也不够用,有时必须进行I/O 口的扩展。

51单片机串口波特率计算

51单片机串口波特率计算

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单片机串口的波特率。

根据不同的
时钟频率和波特率要求,可以使用相应的计数器初值来设置波特率发生器,实现串口通信。

22.1184MHZ晶振和11.0592MHZ晶振

22.1184MHZ晶振和11.0592MHZ晶振
0
0FAH
2400
0
0F4H
1200
0
0E8H
300
0
0A0H
更换一种计算方式,它将以修改公式达384 x 2 SMOD
这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。
为什么51系列单片机常用11.0592MHz的晶振设计?
1、因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。
2、当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7------双倍速波特率)决定:
例如:波特率为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的晶振频率。
方式1、3波特率= (定时器1的溢出率)
特殊时,定时器被设在自动重装模式(模式2,TMOD的高四位为0100B),其为:
方式1、 3波特率=
11.0592MHZ晶振的一些典型波特率如下:
波特率
SMOD
TH1
19200
1
0FDH
9600
0
0FDH
4800
以上的例子可知,被乘数(3)是用来确定TH1:

51单片机串行口的工作方式解析

51单片机串行口的工作方式解析

51单片机串行口的工作方式解析方式0是外接串行移位寄存器方式。

工作时,数据从RXD串行地输入/输出,TXD输出移位脉冲,使外部的移位寄存器移位。

波特率固定为fosc/12(即,TXD 每机器周期输出一个同位脉冲时,RXD接收或发送一位数据)。

每当发送或接收完一个字节,硬件置TI=1或RI=1,申请中断,但必须用软件清除中断标志。

实际应用在串行I/O口与并行I/O口之间的转换。

2)方式1方式1是点对点的通信方式。

8位异步串行通信口,TXD为发送端,RXD为接收端。

一帧为10位,1位起始位、8位数据位(先低后高)、1位停止位。

波特率由T1或T2的溢出率确定。

在发送或接收到一帧数据后,硬件置TI=1或RI=1,向CPU申请中断;但必须用软件清除中断标志,否则,下一帧数据无法发送或接收。

(1)发送:CPU执行一条写SBUF指令,启动了串行口发送,同时将1写入输出移位寄存器的第9位。

发送起始位后,在每个移位脉冲的作用下,输出移位寄存器右移一位,左边移入0,在数据最高位移到输出位时,原写入的第9位1的左边全是0,检测电路检测到这一条件后,使控制电路作最后一次移位,/SEND和DATA 无效,发送停止位,一帧结束,置TI=1。

(2)接收:REN=1后,允许接收。

接收器以所选波特率的16倍速率采样RXD端电平,当检测到一个负跳变时,启动接收器,同时把1FFH写入输入移位寄存器(9位)。

由于接、发双方时钟频率有少许误差,为此接收控制器把一位传送时间16等分采样RXD,以其中7、8、9三次采样中至少2次相同的值为接收值。

接收位从移位寄存器右边进入,1左移出,当最左边是起始位0时,说明已接收8位数据,再作最后一次移位,接收停止位。

此后:A、若RI=0、SM2=0,则8位数据装入SBUF,停止位入RB8,置RI=1。

B、若RI=0、SM2=1,则只有停止位为1时,才有上述结果。

C、若RI=0、SM2=1,且停止位为0,则所接数据丢失。

51单片机答辩常见问题解答

51单片机答辩常见问题解答

51单片机辩论常见问题解答1: P0 口需不需要加上拉电阻问题P0 口做数据总线用是不需要加上拉电阻,这个书上面有写的,就是8个10 口同时控制输出,比方P0 口接1602液晶、12864液晶、数码管的8段段选等等都不需要加上拉电阻,如果做单个的10 口用就要加上拉电阻,仿真里P0 口必需要加上拉电阻,这个是仿真和实际的差异。

2:什么是51单片机51单片机其实不是单独指STC89C51或许AT89C51o 51单片机包含了常见的STC89C52 > STC89C51 > AT89C52 AT89C51 AT89S52 AT89S51等等8位的单片机都是51单片机。

引脚都是一模一样的,程序也兼容。

只是名字不一样而已。

通用的。

论文中需要指定的单片机只需要把名字换了就。

k 了。

3:本店有些作品中为什么个别设计中没有按键复位复位有2种复位方式,一种是上电复位。

一种是9脚按键上 拉复位。

这是书本上面有的。

现在很多作品都没有要按键复位了(这 样作品更环保美观)O 如果一定要按键复位,加一个按键上拉置高电平, 并个10uf 电容就行了。

(原理图如下)局部产品由于电路板剩余面积较大。

复位按键就加进去了。

加上 复位按键只是完成单片机的复位最小系统完整。

实际上这个按键基本 用不上。

需要复位的时候直接重启电源就可以了。

没有必要使用复位 按键。

不加按键复位也没有错。

就像上面讲的,P0 □做数据总线不是也没有用上拉电阻吗。

有按键的复位电路如下列图:P1.OP1.1P1.2 P1.3P1.4 P1.5 P1.6P1.7 RST (RXE (1XU (JNTC (TNT1 :4:本课题的选课背景、意义等等?这个论文中有的,也都是一些套话。

我就不答了,我整理的都是 技术性的。

5:数码管采用的是什么扫描方式?一位数码管的设计就是采用静态扫描的方式,因为一位数 码管是8个段选1个位选,如果采用动态,那就是得用9个10 口, 而且程W1T12序也比拟麻烦,如果选用静态那么位选接电源或地(共阳接电源,共阴接地),段选接10 口,就可以控制显示了,这样只用8个10 口就ok,而且程序比拟简单。

AT89C51简介(晶振为11.0592M 和12M)

AT89C51简介(晶振为11.0592M 和12M)

AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图所示主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

51单片机晶振与复位常用典型电路分析说明

51单片机晶振与复位常用典型电路分析说明

51单片机晶振与复位常用典型电路分析说明1.51单片机晶振电路51单片机晶振电路主要由晶振、两个电容和两个电阻组成。

晶振通过电容与单片机相连,电容的值一般在10pF-30pF之间,具体取决于晶振的频率。

电阻的作用是为了提供晶振的电流。

晶振频率的选择一般要根据具体的应用需求来确定,51单片机一般有12MHz、11.0592MHz等常用的频率。

晶振的作用是提供单片机的系统时钟,单片机的工作时序以及外设的正确工作都依赖于时钟信号。

晶振的频率决定了单片机的运行速度,频率越高,单片机执行指令的速度越快。

2.51单片机复位电路51单片机复位电路主要由复位电源、复位电路和上拉电阻组成。

复位电源一般是通过外部的按键或者复位芯片来提供的,它们会为单片机提供一个低电平复位信号。

复位电路由外部的电容和电阻组成,其中电容一端连接到复位电源,另一端连接到单片机的复位引脚,电阻一端连接到单片机的复位引脚,另一端接地。

上拉电阻的目的是为了使复位信号保持高电平,在复位信号没有被按键或复位芯片拉低时,复位信号为高电平,单片机处于复位状态。

复位电路的作用是保证单片机在上电或者复位时能够正常初始化,使其进入初始状态。

单片机在复位状态下,会重置所有寄存器的值为默认值,以便正常开始程序的执行。

总结起来,51单片机晶振与复位是单片机系统中必不可少的两个重要电路。

晶振提供时钟信号,确保单片机工作的正常运行,而复位电路则能够确保在上电或者复位时单片机能够正常初始化。

两者的合理设计和配置对单片机的正常工作和提高系统稳定性具有重要意义。

51单片机最小系统原理

51单片机最小系统原理

51单片机最小系统原理
51单片机最小系统是指由51单片机芯片、时钟电路、复位电路和电
源电路等组成的最基本的硬件系统。

它是进行51单片机软件开发和运行
的基础,对于学习和应用51单片机技术来说非常重要。

下面将详细介绍
51单片机最小系统的原理。

1.51单片机芯片
51单片机是由英特尔公司推出的一种8位微控制器,是指基于哈佛
结构、具有复杂存储器结构和指令集的通用型单片机。

51单片机具有很
强的通用性,广泛应用于各种嵌入式系统和控制系统中。

常用的51单片
机芯片有AT89C51、AT89S52等。

2.时钟电路
时钟电路是指为51单片机提供稳定的时钟信号的电路。

由于51单片
机是以时序为基础进行工作的,因此时钟信号对于单片机的运行至关重要。

一般来说,时钟电路采用晶体振荡器作为时钟源,晶体振荡器的频率一般
为11.0592MHz。

时钟电路还包括电容和电阻等元件,用于保持晶体振荡
器的稳定性。

3.复位电路
复位电路是指对51单片机进行复位操作的电路。

当51单片机上电或
按下复位按钮时,复位电路会向单片机的复位引脚发送一个复位信号,使
单片机回到初始状态。

复位电路一般由电源滤波电路、复位电容和复位电
阻等元件组成。

4.电源电路
电源电路是指为51单片机提供稳定的电源电压的电路。

由于51单片机对电源电压的要求较高,一般在3.3V至5V之间,因此电源电路需要将输入的电源电压进行适当的处理,使其保持在合适的范围内。

电源电路一般由稳压电路、电容和电阻等元件组成。

51单片机时钟电路作用

51单片机时钟电路作用

51单片机时钟电路作用
51单片机是一种广泛应用于嵌入式系统中的微控制器,它的工作需要一个稳定的时钟信号。

因此,51单片机时钟电路是非常重要的,它的作用是提供一个稳定的时钟信号,以确保单片机的正常工作。

时钟信号是指一种周期性的信号,它可以用来同步各种电子设备的工作。

在51单片机中,时钟信号的频率通常为12MHz或者11.0592MHz,这个频率是由晶振产生的。

晶振是一种能够产生稳定频率的元件,它的工作原理是利用晶体的振荡特性来产生一个稳定的频率信号。

51单片机时钟电路通常由晶振、电容和晶振驱动电路组成。

晶振驱动电路的作用是将晶振产生的信号放大,并将其传递给单片机。

电容的作用是为晶振提供稳定的电源,以确保晶振的稳定性。

在51单片机中,时钟信号的作用非常重要。

它可以用来控制单片机的运行速度,以及各种外设的工作。

例如,当单片机需要进行定时器中断时,时钟信号可以用来控制定时器的计数速度。

当单片机需要进行串口通信时,时钟信号可以用来控制串口的波特率。

51单片机时钟电路是单片机工作的基础,它的作用非常重要。

只有在稳定的时钟信号下,单片机才能够正常工作,从而实现各种功能。

因此,在设计嵌入式系统时,时钟电路的设计是非常重要的,需要仔细考虑。

51单片机六个常见问题解析

51单片机六个常见问题解析

51单片机六个常见问题解析一,为何51单片机爱用11.0592MHZ晶振?其一:由于它能够精确地划分红时钟频率,与UART(通用异步接纳器/发送器)量常见的波特率有关。

特别是较高的波特率(19600,19200),不论多么古怪的值,这些晶振都是精确,常被运用的。

其二:用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单片机体系PCB时,晶振为何被需求紧挨着单片机?缘由如下:晶振是经过电鼓励来发生固定频率的机械振荡,而振荡又会发生电流反应给电路,电路接到反应后进行信号扩大,再次用扩大的电信号来鼓励晶振机械振荡,晶振再将振荡发生的电流反应给电路,如此这般。

当电路中的鼓励电信号和晶振的标称频率相一起,电路就能输出信号强壮,频率安稳的正弦波。

整形电路再将正弦波成为方波送到数字电路中供其运用。

疑问在于晶振的输出才能有限,它仅仅输出以毫瓦为单位的电能量。

在IC(集成电路)内部,经过扩大器将这个信号扩大几百倍乃至上千倍才能正常运用。

晶振和IC 间通常是经过铜走线相连的,这根走线能够当作一段导线或数段导线,导线在切割磁力线的时分会发生电流,导线越长,发生的电流越强。

现实中,磁力线不常见,电磁波却处处都是,例如:无线播送发射、电视塔发射、手机通讯等等。

51单片机12M和11.0592M晶振定时器初值TL0和TH0的计算

51单片机12M和11.0592M晶振定时器初值TL0和TH0的计算

51单片机12M和11.0592M晶振定时器初值TL0和TH0的计算#include<stdio.h>#include<reg51.h>void timer0_init(){TMOD=0x01;//方式1TL0=0xb0;TH0=0x3c;TR0=1;ET0=1;}void timer0_ISR(void) interrupt 1{TL0=0xb0;TH0=0x3c;//50ms中断一次single++;if(single==20){ kk++;single=0;}}void main(){int kk=0;//计数器int single=0;timer0_init();}TL0=0xb0;TH0=0x3c;这两个是怎么算出来得,如果晶振不是12Mhz ,是11.0592 MHz 怎么算12M的晶振每秒可产生1M个机器周期,50ms就需要50000个机器周期,定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值15536,即3CB0H(10进制15536转换成16进制数3CB0),所以TH0=0x3c,TL0=0xb0。

(65536-50000周期=初值15536)高位就是TH0的值,低位为TL0的值11.0592M的晶振每秒可产生0.9216M个机器周期,50ms就需要46080个机器周期,定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值19456,即4C00H,所以TH0=0x4c,TL0=0x00。

其实很简单,不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期机器周期=12/n(n指晶振频率),假设你要定时的时间为M那么定时的初值为:M/机器周期=初值;TH0=(65536-初值)%256;TL0=(65536-初值)/256;将(65536-初值)所得的值化成16进制,其高位就是TH0的值,低位为TL0的值例如用12M晶振做1ms定时计算如下:机器周期=12/12*10^6=1us(微秒)定时初值=(1*10^-3)/(1*10^-6)=1000;所以:TH0=(65536-1000)%256;TL0=(65536-1000)/256;将65536-1000=64536化为16进制为:0xFC18 TH0=0xFC;TL0=0X18;。

为什么51系列单片机常用11.0592MHz的晶振设计

为什么51系列单片机常用11.0592MHz的晶振设计

为什么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是较高的晶振频率,也允许高波特率。

51单片机为何独爱11.0592MHz晶振?

51单片机为何独爱11.0592MHz晶振?

51单片机为何独爱11.0592MHz晶振?为什么在设计51单片机硬件时都会选用11.0592MHz作为时钟源?了解这个问题之前首先需要知道什么是晶振。

1晶振,顾名思义晶体振荡器的意思。

它起到的作用是为单片机系统提供基准时钟信号,类似于我们人的心跳。

单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。

之前的文章“第一次认识压电换能器”中简单描述了晶体的压电效应。

那么这里还有一个概念,一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。

但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。

这一特定频率就是石英晶体的固有频率,也称为谐振频率。

STC89C52单片机的18脚和19脚是晶振引脚,一般我们会接一个11.0592MHz的晶振(它每秒钟振荡11,059,200次),外加两个20pF的电容,电容的作用是辅助晶振起振,并维持振荡信号的稳定。

51单片时钟源硬件连接原理图2计算机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。

一个机器周期包括12个时钟周期。

我们算一下一个机器周期是多长时间。

设一个单片机工作于11.0592M晶振,它的时钟周期是1/11.0592MHz(微秒)。

它的一个机器周期是12*(1/11059200)微秒。

计算出来并不是一个整数,这为什么还要选用它呢?351单片机里有非常重要的概念——定时器和计数器。

定时器和计数器是单片机内部的同一个模块,通过配置SFR(特殊功能寄存器)可以实现两种不同的功能,我们大多数情况下是使用定时器功能,来完成比如延时、中断等任务。

TMOD寄存器:定时器模式寄存器(地址0x89、不可位寻址)TMOD定时器模式列表那么这个又跟选用11.0592MHz的晶振有什么关联?4在这里需要借助串口(串行数据通信接口)做说明,串口收发数据有一个非常重要的概念——波特率(比特率Baud)。

波特率就是发送一位二进制数据位的速率,即发送一位二进制数据的持续时间为1/Baud。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

为什么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=0FDH
19.2K波特率的晶振为
11.0592=19200x(256-0FDH)x384x2(19.2 k的SMOD为1)
其它值也会得出好的结果,但是11.0592MHZ是较高的晶振频率,也允许高波特率。

相关文档
最新文档