规范的51单片机晶振是1.2M-12M,一般咱们一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好核算,并且速度相对是最高的(当然现在也有更高频率的单片机)。
11.0592M是因为在进行通讯时,12M频率进行串行通讯不容易完成规范的波特率,比方9600,4800,而11.0592M核算时正好能够得到,因而在有通讯接口的单片机中,一般选11.0592M
核算一下就知道了。如咱们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为形式2,SMOD 设为1,别离看看那所要求的TH1 为何值。代入公式:
11.0592M 9600=(2÷32)×((11.0592M/12)/(256-TH1)) TH1=250
12M 9600=(2÷32)×((12M/12)/(256-TH1)) TH1≈249.49
上面的核算能够看出运用12M 晶体的时分核算出来的TH1 不为整数,而TH1 的值只能取整数,这样它就会有必定的夺冠存在不能发生准确的9600 波特率。当然必定的夺冠是能够在运用中被承受的,就算运用11.0592M 的晶体振荡器也会因晶体自身所存在的夺冠使波特率发生夺冠,但晶体自身的夺冠对波特率的影响是十分之小的,能够忽略不计。