微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 22.1184晶振的单片机

22.1184晶振的单片机

时间:11-28 来源:互联网 点击:
首先说说晶振51单片机的机器周期得关系:晶振的倒数是一个时钟周期单位为秒,一个机器周期等于12乘时钟周期。 再说说指令周期与时钟周期得关系:对于8031等早期的51来说,指令周期和机器周期是一样的等于12乘时钟周期,但后来出现了很多改进型的51系列单片机如80320等,指令周期等于4个时钟周期,也就是说同样的晶振速度是原来的3倍。但无论如何变,T0、T1等定时器的计时任然按机器周期来计算的,也就是说12乘时钟周期。 定时器是按溢出产生中断的,所以要用溢出值65536减你所希望的值得到定时器的初值。 那么怎么计算赋值所决定的时间呢: 首先计算出机器周期:12*(1/22.1184/1000000)秒(应该是22.1184兆吧), 因为你需要计时50毫秒那么就换算成毫秒吧,该值乘1000就是毫秒了。这个值就是定时器的机器周期,也就是定时器增加一个计数值的值。 那么对你而言需要定时50毫秒,需要多少个定时值呢?很简单用50除这个值就OK了,你可以算算应该是:92160. 现在问题来了,我们需要92160个计数值,但51定时器最大只能是65536,容不下怎么办?只能在中断服务程序中处理了,比如两次中断做一次计时到时判据那么就可以,于是计数值就可以除以2得46080小于65536可以处理了。 那么初值就是65536-46080=19456了,你可以用电脑计算器换算成16进制填入TH1和TL1。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top