打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
51单片机延时函数、如何计算_Strange

程序执行步骤


程序执行的速度是由晶振频率产生震荡产生的。

时钟频率

时钟频率是由晶振频率决定的,产生对应晶振频率的时钟频率。
当晶振频率是11.0592MHz的时候,时钟等于
((1/11.0592)=0.090422) 微秒 ,也就是时钟每震荡一次的的时间是0.090422微妙

机器周期

单片机内部每执行一条语句需要花费12个时钟频率。也就机器周期=12*时钟频率
这是因为,执行一条语句单片机需要内部很多步骤,正好消耗12个时钟频率,所以规整成一,叫做机器周期,但操作某些变量也有自己的机器周期。如下图。

11.0592MHZ的延时程序

计算过程
需要知道对应晶振的时钟周期11.0952MZH的时钟周期为:

  • 时钟周期:1÷11.0592 = 0.0904224537037037037037037037037
  • 机器周期:12× 0.0904224537037037037037037037037≈1.085(微秒)

也就是执行一条语句得用1.085微秒
利用for循环执行一定次数可以实现自己的延时程序,如果需要一个延时1ms功能的函数可以这样做。

  • 1ms = 1000us
  • 1000us/1.085us = 921.65898617511520737327188940092(次)
  • 参考上面的 变量的机器周期,unsigned int 的机械周期为8
  • 921.65898617511520737327188940092 / 8 =115.20737327188940092165898617512

所以使用unsigned int变量实现for循环,大约执行115次即为1ms;

void delay(unsigned int n){
unsigned int i,j;
for (i=0;i<n;i++)
for(j=115;j>=0;j--);
//以上是带形式参数的延时函数n=1时为1ms

结束

如果对你有帮助,点赞支持一下吧。
转载联系本人。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
编写延时函数的简单方法
51单片机中晶振与周期
C51单片机晶振频率、时钟周期、状态周期、机器周期、指令周期和总线周期的关系
石英晶振是单片机能否正常工作的关键
51单片机利用for语句嵌套实现简单的延时1s功能解说和视频教程
时钟周期、机器周期、指令周期的概念及三者之间的关系
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服