在实现单片机功能的时候,经常会用到延时函数,那么延时函数的原理也是非常有必要了解的。一般我们写延时函数的时候,默认的晶振频率fosc=12MHZ,而机器周期T=12/fosc=1us。
这里我们来写一个10ms的延时函数:

void delay_10ms()
{unsigned char i,j,k;for(i=5;i>0;i--){for(j=0;j<4;j++){for(k=0;k<248;k++)}}
}

这大概就是一个十毫秒的延时函数,主要原理就是通过三层for循环的时间间隔来实现延时的目的。
循环次数=45248=4960,又因为每次循环都有两次循环判断条件,所以每次循环耗费两个机器周期,总耗费机器周期=4960*2=9920,12M晶振频率,一个机器周期为1us, 总共耗费9920个机器周期,9920us = 9.92ms,加上赋值等操作耗费的时间,大约为10ms,但是在有些资料上看到的延时函数的实际时间是偏大的,具体是为什么,目前还没想明白。。。
如果怕自己写的延时函数有问题的话,还可以使用烧录软件上提供的延时函数来进行计算,上面会自动提供代码,

这上面提供的应该比较准确。

单片机:延时函数的理解相关推荐

  1. 用C51编写单片机延时函数

    参考了51单片机 Keil C 延时程序的简单研究,自己也亲身测试和计算了一些已有的延时函数. 这里假定单片机是时钟频率为12MHz,则一个机器周期为:1us. 参考了51单片机 Keil C 延时程 ...

  2. 51单片机延时函数、如何计算

    程序执行步骤 程序执行的速度是由晶振频率产生震荡产生的. 时钟频率 时钟频率是由晶振频率决定的,产生对应晶振频率的时钟频率. 当晶振频率是11.0592MHz的时候,时钟等于 ((1/11.0592) ...

  3. 利用逻辑分析仪测定单片机延时函数时间

    STC15W408AS较精准的延时函数 ✨说明:参考使用STC-ISP工具计算得来. 注意选择STC-Y5指令集的.

  4. 【代码收藏夹 · C51】51单片机延时函数

    代码 11.0592MHz晶振 // 延时10*n微秒 void delay_10us(unsigned int n) {unsigned char i;i = 2*n;while (--i); }/ ...

  5. 2毫秒c51汇编语言延时函数,单片机精确毫秒延时函数

    实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行. 今天主要介绍软件延时以及单片机精确毫秒 ...

  6. c语言不用死等的延时函数,matlab延时函数怎么写

    1. c语言延时函数delay,怎么算延时 下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为 ...

  7. STC12C5A60S2自主适应时钟延时函数

    快速导航 STC12已封装好的函数库 单片机延时函数的原理: 延时函数里执行的是空语句,单片机程序指针经过执行的空语句来达到延时的目的. 单片机使用延时函数的优点就是很容易就能写出软件延时程序. 但是 ...

  8. 延时函数、数码管显示头文件(单片机)

    延时函数.数码管显示头文件(单片机) 在单片机程序的编写过程中,我们常常要写一段相同的代码,此时我们可以给它做成头文件封装起来,在使用的时候直接调用,在此文章中以常用的延时函数和数码管显示函数为例 数 ...

  9. 51单片机的nop延时延时函数

    nop()–延时函数 1.C语言中没有_nop_()函数,在51C中一般包含在头文件中 #include "intrins.h" 2.该函数是在51单片机中用的延时函数,nop() ...

最新文章

  1. SLAM综述之Lidar SLAM
  2. android常见错误-Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
  3. 带彩色字体的man pages(debian centos)
  4. SQLSERVER字符串截取------STUFF
  5. 使用Listener准备application作用域数据
  6. 优秀程序员的两大要素:懒 + 笨
  7. C++基础学习8:类的定义(class)
  8. Java程序员月薪三万,需要技术达到什么水平?
  9. 开VM虚拟机导致内存和磁盘利用率高
  10. 23种设计模式--桥接模式(Bridge)
  11. mysql中没有sock文件_mysql.sock文件不见了问题的解决方法
  12. 女性社交电商系统:聚焦女用户 收割电商半壁江山
  13. Excel如何批量添加超链接
  14. Linux Windows 的Tensorflow 配置: Nvidia 老显卡运算能力低于3.0
  15. MySQL数据库绿色安装 mysql-5.7.31
  16. Zeromq 学习笔记1
  17. 【转】伽马校正(Gamma Correction)
  18. NOIP 2012 Senior 2 - 国王游戏
  19. Livy 安装使用说明
  20. java如何使用虹软sdk_Java使用虹软SDK做人脸识别之十分简单的入门

热门文章

  1. 【大数据开发】SparkCore——进阶算子、Action算子、查看分区数的三种方式
  2. 向数组输入不确定个数的数组
  3. python列表操作计算列表长度并输出,python列表 (list)
  4. 毕业设计 - 题目:基于机器视觉的图像矫正 (以车牌识别为例) - 图像畸变校正
  5. linux找出已经删除但磁盘空间未释放的大文件并清空
  6. 逆序对 矩阵 好事成双 金牌银牌铜牌 发工资
  7. 卸载VS时彻底删除C盘文件方法
  8. win10计算机打开一直读进度条,win10开机读条后黑屏怎么办_win10开机读条之后黑屏修复方法-win7之家...
  9. 《大明王朝》雪崩前,精英们的狂欢
  10. Python「PIL」:调整图片大小