51单片机能不能用27M的晶振
7个回答
展开全部
应该是不能用的
标准的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 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。
标准的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 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能,可用12MHZ和11.xx MHZ的晶振,你使用51芯片可使用11M的那个晶振便于串口通信,12MHZ的有时候串口通信不行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是串口通信的话, 还是需要注意点的,因为有的晶振计算不出你需要的那个波特率, 误差比较大的。。。比如12M晶振的话 就不能使用9600 的波特率去通信, 其他的倒没什么。。但是在设计的时候还是需要考虑成本的, 满足要求就可以,,不需要太大
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以 晶振只是决定单片机的震荡频率
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能用,51单片机最大只能24MHz
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询