当前位置: 首页 > news >正文

实验1.3通过for循环精确定时呼吸灯

(1)时钟周期。定义为时钟频率的倒数,本例使用12MHz的时钟频率,它的时钟周期大约就是1/12μs。

(2)机器周期。单片机的基本操作周期,STC89C51系列的单片机来说,一个机器周期由12个时钟周期组成,也就是1μs。

(3)指令周期。指的是单片机执行一条指令需要的时间,一个指令周期需要1~4个机器周期。一。一条for循环需要8个机器周期。

参考:希望之晨blog

以上为摘录资料原文档

我们实验用51开发板晶振为11.0592MHZ

晶振一会文档结尾代码讲解视频的实验结果部分会给大家指出,晶振元器件上的数字就是该开发板使用的晶振HZ数,一般以M为单位,就是10^6次方

为了详细讲解代码延时,我还是用文字讲解的更为清楚:

查了CSDN智能AI

for循环计算周期如下:

3. 总周期计算公式

总机器周期=1初始化+3×n循环迭代+1退出

  • N: 循环次数(i的初始值)


4. 实例计算(12MHz晶振)

for(i = 100; i > 0; i--) {} // 空循环

  • 总周期 = 1+8×100+1=808个机器周期

  • 时间消耗:808×1μs=808μs(因机器周期=1μs)

对于11.0592MHZ的晶振来说

一个机器周期是12个时钟周期

也就是12*(1/11059200)s

大概是:1.085us

1ms

1000/1.085

1ms需要921.66个机器周期

而对于单片机来说机器周期是整数

那我们就四舍五入

1ms需要922个机器周期

那初始化1个

退出1个

920/一个for循环需要的机器周期数

那就是中间循环8*115=920个机器周期

1ms的for循环次数就是115

void delay_ms(int k)
{int i,j;for(i=0;i<k;i++)for(j=0;j<115;j++);
}

第二层for循环循环结束就是1ms,前面已经计算过了

第一层for循环就是多少个1ms的累加

比如1000次第一层循环,就是1ms的1000倍,就是大概1s

同时第一层for循环,初始化1个机器周期,结束1个机器周期

循环一次2个机器周期,循环1000次就是要额外多加8008个机器周期,大概是8ms左右

也就是每增加1s的误差在8ms左右。

第一层循环越多误差越大

void delay_s(int q)
{delay_ms(1000*q);
}

这个子函数就是延时1s的函数

放在一起解释

void delay_ms(int k)
{int i,j;for(i=0;i<k;i++)for(j=0;j<115;j++);
}void delay_s(int q)
{delay_ms(1000*q);
}

1000*q就是delay_ms里面的第一层循环

那q就是多少秒了

总代码如下:

#include "reg51.h"sbit led1=P2^0;int main()
{void delay_s(int q);while(1){led1=1;delay_s(10);led1=0;delay_s(10);}return 0;
}void delay_ms(int k)
{int i,j;for(i=0;i<k;i++)for(j=0;j<115;j++);
}void delay_s(int q)
{delay_ms(1000*q);
}

这里是定时10s

大家可以多延时一会用手表计时

比如分别5s,10s,20s的实验结果是否和手表计时大概一致

代码讲解以及实验结果如下:

for循环精确定时呼吸灯

http://www.dtcms.com/a/393288.html

相关文章:

  • 【c++】多态(一)
  • 01、Python从入门到癫狂:基础
  • uniapp 弹窗
  • 17.2 《16小时→2.3小时!多模态AI颠覆PPT制作:跨国企业实战验证》
  • MyBatis 从入门到实战:环境搭建与核心原理详解
  • 深入剖析陌讯AIGC检测算法:Transformer架构在AIGC识别中的技术创新
  • 【Ai智能客服上篇】
  • 《C++程序设计》笔记p3
  • 华为数字化转型战略框架:从“1套方法+4类场景+3个平台”的全景设计
  • Redis:主从复制与哨兵模式解析
  • 【中压选型篇】中压电源进线与变压器选型全指南:从拓扑设计到并联运行
  • 【精品资料鉴赏】数据治理咨询项目实施方案
  • 基于陌讯AIGC检测算法的局限性探讨:最大512Token输入下的长文本处理方案
  • 应用随机过程(三)
  • A/B测试:随机化与观察单位不一致,如何处理更科学
  • 树拍易购商业模式解析:创新与合规并行的数实融合样本
  • 使用递归求阶乘的和
  • HTML 结构与常用标签
  • AI 智能体开发工作流从哪些方面入手?
  • USBL与DVL数据融合的实时定位系统,MATLAB仿真
  • 端到端与世界模型(1):自动驾驶的基础模型从 VLM 到 VLA
  • Let’s Encrypt 免费SSL证书一键获取 - 网页版极简教程
  • IDEA指定配置文件启动
  • Python实现基于教学的优化器 (Teaching-Learning-Based Optimization, TLBO) (附完整代码)
  • 视频图像数据档案管理
  • 灰狼优化算法GWO
  • 2025csp入门组真题和解析
  • Keil-MDK程序运行和下载过程
  • 【Linux驱动】Linux字符设备框架
  • python、数据结构