分析单片机晶振大多为11.0592的原因

单片机晶振大多为11.0592的原因:

1.这里有郭天祥老师的解释:

分析单片机晶振大多为11.0592的原因_第1张图片

2.分析:

但是,在这里博主还是存在一些疑问,为什么不是其他数呢?或者说11.0592M这个数则么产生的?

我们假定0-12_000_000之间有一个数满足以下条件的时候,这个数比较适合晶振的频率:

1.当初值在0-255的情况下,这个数能够整除较多的数(整除的数越多,便可获得能够整除的波特率的种 类越 多);

2.而且这个数应该较大,晶振频率越快,波特率越大,传输的速度越快;

3.在SOMD加倍和不加倍的情况下,这个数都能够整除较多的数。

因此,我们选出在SOMD加倍和不加倍的两种情况下,都可以整除较多数的频率(将两种情况的加在一起)。

注:

1.这里我们分析填充初值的范围为0-255,(因为大多数的串口波特率设定使用定时器由硬件自动重装初值的方式二)。

2.这里我们示范分析定时器方式一的。

3.这里晶振的频率测试范围为0-12000000。

4.当SMOD为0时,除数 32*1200,当SMOD为1时,除数 16*1200。(这里考虑到波特率一般是100的倍数,除数由计算公式得出)


涉及的波特率计算公式有:

分析单片机晶振大多为11.0592的原因_第2张图片

实例:

分析单片机晶振大多为11.0592的原因_第3张图片

3.测试代码

#include
void main()
{
	int x=0,i=0,num=0,num1=0,num2=0,pp=0,p=0,p1=0,p2=0;
	const int n1=32*1200;
	const int n2=16*1200;
	int jg1=0,jg2=0;
	printf("结果一:\n个数	频率	个数	频率\n");
	while(x<=12000000)
	{
		x++;
		if((x%n1)==0)
		{
			p=x/n1;
			while(i<=256)
			{
				i++;
				if((p%i)==0)
					num1++;
			}
			i=0;
		}
		if((x%n2)==0)
		{
			p=x/n2;
			while(i<=256)
			{
				i++;
				if((p%i)==0)
					num2++;
			}
			i=0;
		}
		if((num1>15)&&(num2>15)) printf("%d,%d	%d,%d\n",num1,x,num2,x);	//在SMOD为0时,输出大于15个的;在SMOD为1时,输出大于15个的
		if(num>(num1+num2)) num=num;
		else {num=(num1+num2);pp=x;}
		num1=0;
		num2=0;
	}
	printf("输出整除最多的那个频率:%d,%d\n",num,pp);	//输出整除最多的那个数


	printf("结果二:\n当晶振为11520000:\n");
	x=0;
	printf("初值	SMOD=0    SMOD=1\n");
	while(x<=254)
	{
		x++;
		p1=(1*115200)/(32*12);
		p2=(2*115200)/(32*12);
		pp=(256-x);
		if(((p1%pp)==0)&&((p2%pp)==0))
		{
			printf("%d	",x);
			jg1=(11520000*1/32/12)/(256-x);
			jg2=(11520000*2/32/12)/(256-x);
			printf("%d	%d\n",jg1,jg2);
		}
	}
}

4.测试结果

注:
1.结果一:左边的是SMOD为0,右边的是SMOD为1;
2.个数的含义是:在初值为0-255之间时,可以整除的个数;
3.当整除的个数大于15时,才会输出结果。

分析单片机晶振大多为11.0592的原因_第4张图片

5.结果分析

我们最后一组输出的是,在SMOD等于0或1时,整除的个数最多的一个频率,我们发现居然不是11059200,而是9216000。
进一步分析11059200频率较大,在可获得在计算过程中能够整除的波特率的种类数差别不大的情况下,我们选频率较大的11059200。
另外,我们发现还有一个数相对来说比11059200好,这个数是11520000,如果计算一下这个晶振频率可以获得的波特率有哪些的时候,会发现可获得的波特率也很好(结果二中),为什么没有选用这个晶振对应的波特率为国际上标准波特率,原因可能有其他,但是从这里的分析可以看出选用11.0592M的晶振的好处。
分析单片机晶振大多为11.0592的原因_第5张图片

你可能感兴趣的:(单片机)