1. 11.0592M晶振
12M晶振或11.0592M晶振的情况下,当SMOD=0时,9600波特率的参数是0xfd,当SMOD=1时,9600波特率的参数是0xfa。计算公式是: SMOD=0时 参数=256-fsoc/12/32/波特率 SMOD=1时 参数=256-fsoc/12/16/波特率
2. 11.0592m晶振波特率9600
标准的51单片机晶振是1.2M-12M,一般由于一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好计算,而且速度相对是最高的(当然现在也有更高频率的单片机)。11.0592M是因为在进行通信时,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592M。
3. 11.0592m晶振定时1ms是多少
1000Hz 的周期T=1ms,定时为 半周期 0.5ms=500us,12MHz晶振,机械周期为 1us,定时器初值=65536
4. 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,一般的单片机系统中都可以应用。
5. 11.0592m晶振封装
5-33pf都可以
一般用的是15P和30P,晶振大小影响不大,常用的4M和12M以及11.0592M和20M 24M都用的30P,单片机内部有相应的整形电路。
6. 11.0592m晶振定时50ms是多少
振荡频率越高,功耗必然越大。所以在满足系统需求的前提下,应该尽量减小晶振的频率。
(在ARM等高级一些的内核中,有一个专门的锁相环来控制内部频率,在CPU不活动的时候可以减小晶振频率,以降低功耗)维持系统正常运作所需的最小晶振不取决于单片机内部电路(单片机本身可以工作在极低的频率下,只是速度极慢),而取决于你的系统需求,比如你的AD需要每ms采样10次,这就需要单片机运行速度较快,肯定就不能用32.768kHz的晶振了。。。
而维持系统正常运作所需的最大晶振是取决于单片机内部电路的,要让其稳定工作,一般要保证晶振频率不超过24MHz,否则内部工作状态就有可能紊乱。总之,如果系统对速度要求不高的话,一般用6MHz或12MHz就可以了。
如果需要使用串口与PC连接,可以选用一个11.0592MHz的晶振,便于定时器设置