×

如何进行51单片机的延时计算详细资料和程序免费下载

消耗积分:1 | 格式:pdf | 大小:0.11 MB | 2019-04-23

张丽

分享资料个

  我使用51,STC这一类的单片机做控制好几年,一直是使用现成的程序,在其上修修改改,以达到需求动作目的即可。从来都是不求甚解。想法既是如此,会用即可,了解那么多做什么。此次又在做一项目,里面用到I2C通讯。本来是直接复制粘贴了事,却没想对里面的一个小小的延时函数起了兴趣,由于本人是基础功底只有5战斗力的渣渣,写写画画了一天才搞了个大体明白。以前总是在看其他博主的文章,默默潜水。然而此次,突然就忍不住想写篇文章发表一下费尽心思的微不足道的心得体会。

  首先是时钟周期的算法:时钟周期(T)=1(秒)/晶振频率。

  (比如:上面代码的时钟周期为1/12M(秒))。

  这是单片机的基本时间单位。是由晶振震荡出来的,也叫震荡周期。

  其次是机器周期:机器周期是由时钟周期组成的,机器周期是单片机完成一个基本操作所需要的时间。

  关于机器周期,每种单片机可能都不太一样,我也只用过传统51和STC这两款,就拿此来对比下

  1 传统的8051单片机:

  它的1个机器周期是由12个时钟周期组成的。

  以12M晶振举例,它的一个机器周期就是:12(个时钟周期)*1(秒)/12MHz = 1(us)

  2 STC单片机:

  拿我常用的STC12C5A60S2这款单片机来讲,它可以有两个模式选择,一个是1T模式,在这个模式下STC单片机1个时钟周期就是1个机器周期;另一个是12T模式,这个模式下STC单片就和传统的8051单片机一样,12个时钟周期组成1个机器周期。由此可见1T模式的速度就是12T模式的12倍。以12M晶振为例,1T模式下就可以算得机器周期是: 1(个时钟周期)*1(秒)/12Mhz = 1/12(us)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !