11.0592M晶振(11.0592m晶振延时1ms程序)

海潮机械 2023-01-04 13:51 编辑:admin 161阅读

1. 11.0592M晶振

定时中断初值计算方法是:

1、确定定时时间化为微妙t。

2、晶振频率以m为单位f。

3、计算初值:s=65536-t*f/12 比如11.0592m晶振,定时10毫秒t=10*1000=10000us f=11.0592 s=65536-10000*11.0592/12=65536-92164、给定时寄存器赋值。thn=s/256 tln=s%256

2. 11.0592m晶振延时1ms程序

步骤如下所示:

1、在编译器下建立一个新项目,也可以利用已有项目。此过程中需要注意,单片机晶振的选择,因为for循环里指令的执行时间和晶振有直接关系,本例中晶振使用11.0592M。

2、编写一段关于延时的函数,主要利用for循环,代码如下:

void delay_ms(unsigned int ms)

{

unsigned int i;

unsigned char j;

for(i=0;i<ms;i++)

{

for(j=0;j<200;j++);

for(j=0;j<102;j++);

}

}

其中ms是输入参数,如果输入1,就是要求程序延时1ms。j变量是调整程序运行的时间参数。调整j的数值,使1次循环的时间在1ms。

3、将此程序编译通过,然后利用软件仿真,调整时间。

4、两次时间差就是延时函数使用的时间,如果与1ms相差比较多,用户可以调整j参数的值,使延时时间尽量接近1ms。如增大j的值for(j=0;j<105;j++);此方法得出延时函数,在晶振不同的情况下,延时时间会不准。另外这种方法不是完全精确的延时,所以不要太深研究误差的问题。软件调试结果,这个程序的延时时间为:1.01779ms,一般的单片机系统中都可以应用。

3. 11.0592m晶振封装

振荡频率越高,功耗必然越大。所以在满足系统需求的前提下,应该尽量减小晶振的频率。

(在ARM等高级一些的内核中,有一个专门的锁相环来控制内部频率,在CPU不活动的时候可以减小晶振频率,以降低功耗)维持系统正常运作所需的最小晶振不取决于单片机内部电路(单片机本身可以工作在极低的频率下,只是速度极慢),而取决于你的系统需求,比如你的AD需要每ms采样10次,这就需要单片机运行速度较快,肯定就不能用32.768kHz的晶振了。。。

而维持系统正常运作所需的最大晶振是取决于单片机内部电路的,要让其稳定工作,一般要保证晶振频率不超过24MHz,否则内部工作状态就有可能紊乱。总之,如果系统对速度要求不高的话,一般用6MHz或12MHz就可以了。

如果需要使用串口与PC连接,可以选用一个11.0592MHz的晶振,便于定时器设置

4. 11.0592m晶振作用

不是11.059,而是11.0592,这个用在单片机串行通信系统中,用这个频率的晶振,算出来的波特率刚好是整数,比如1200bps,2400bps等等,而用12M算出来的有很多小数,对于需要精确测量时序的通信很不利。你可以参考单片机书,串行通信一章节,里面非常清楚

5. 11.0592m晶振定时50ms是多少

1机器周期=12(51系列为12时钟周期,有的改进型单片机是1时钟周期)×时钟周期=12(1)×(1/晶振频率M)=1us(1/12us,如采用12M晶体)。

以定时50ms为例 如果定时器在方式1工作,是16位计数器,最大值为65536(216),也就是能进行最大65536次计数。而50ms定时操作需要50000个机器周期,1个机器周期=1us,所以需要50000次计数操作。 为了计数器定时器工作,需要预先填充定时器初值(初值=定时器计数最大计数次数-所需定时计数次数)。

所以需设置定时器初值15536=65536-50000,即3CB0H(10进制15536转换成16进制数3CB0),所以TH0=0x3c,TL0=0xb0,高位就是TH0的值,低位为TL0的值。

如果使用11.0592MHZ的晶振,其他条件不变,11.0592M的晶振每秒可产生0.9216M个机器周期,50ms就需要46080个机器周期。定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值19456=65536-46080,即4C00H,所以TH0=0x4c,TL0=0x00。 由上面的分析,我们可以得出推导16位定时器/计数器初值设定高8位TH0,低TL0的公式为: TH0=(65536-所需计数次数)/256=初值/256; TL0=(65536-所需技术次数)%256=初值%256;

6. 11.0592m晶振好坏

如果是不涉及到时钟或者整个系统只有一个频率的话,一般这两种不同的晶振在一定场合能替换着用,感觉不出来

7. 11.0592m晶振波特率9600

标准的51单片机晶振是1.2M-12M,一般由于一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好计算,而且速度相对是最高的(当然现在也有更高频率的单片机)。11.0592M是因为在进行通信时,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592M。