单片机:延时函数的理解
在实现单片机功能的时候,经常会用到延时函数,那么延时函数的原理也是非常有必要了解的。一般我们写延时函数的时候,默认的晶振频率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,但是在有些资料上看到的延时函数的实际时间是偏大的,具体是为什么,目前还没想明白。。。
如果怕自己写的延时函数有问题的话,还可以使用烧录软件上提供的延时函数来进行计算,上面会自动提供代码,
这上面提供的应该比较准确。
单片机:延时函数的理解相关推荐
- 用C51编写单片机延时函数
参考了51单片机 Keil C 延时程序的简单研究,自己也亲身测试和计算了一些已有的延时函数. 这里假定单片机是时钟频率为12MHz,则一个机器周期为:1us. 参考了51单片机 Keil C 延时程 ...
- 51单片机延时函数、如何计算
程序执行步骤 程序执行的速度是由晶振频率产生震荡产生的. 时钟频率 时钟频率是由晶振频率决定的,产生对应晶振频率的时钟频率. 当晶振频率是11.0592MHz的时候,时钟等于 ((1/11.0592) ...
- 利用逻辑分析仪测定单片机延时函数时间
STC15W408AS较精准的延时函数 ✨说明:参考使用STC-ISP工具计算得来. 注意选择STC-Y5指令集的.
- 【代码收藏夹 · C51】51单片机延时函数
代码 11.0592MHz晶振 // 延时10*n微秒 void delay_10us(unsigned int n) {unsigned char i;i = 2*n;while (--i); }/ ...
- 2毫秒c51汇编语言延时函数,单片机精确毫秒延时函数
实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行. 今天主要介绍软件延时以及单片机精确毫秒 ...
- c语言不用死等的延时函数,matlab延时函数怎么写
1. c语言延时函数delay,怎么算延时 下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为 ...
- STC12C5A60S2自主适应时钟延时函数
快速导航 STC12已封装好的函数库 单片机延时函数的原理: 延时函数里执行的是空语句,单片机程序指针经过执行的空语句来达到延时的目的. 单片机使用延时函数的优点就是很容易就能写出软件延时程序. 但是 ...
- 延时函数、数码管显示头文件(单片机)
延时函数.数码管显示头文件(单片机) 在单片机程序的编写过程中,我们常常要写一段相同的代码,此时我们可以给它做成头文件封装起来,在使用的时候直接调用,在此文章中以常用的延时函数和数码管显示函数为例 数 ...
- 51单片机的nop延时延时函数
nop()–延时函数 1.C语言中没有_nop_()函数,在51C中一般包含在头文件中 #include "intrins.h" 2.该函数是在51单片机中用的延时函数,nop() ...
最新文章
- SLAM综述之Lidar SLAM
- android常见错误-Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
- 带彩色字体的man pages(debian centos)
- SQLSERVER字符串截取------STUFF
- 使用Listener准备application作用域数据
- 优秀程序员的两大要素:懒 + 笨
- C++基础学习8:类的定义(class)
- Java程序员月薪三万,需要技术达到什么水平?
- 开VM虚拟机导致内存和磁盘利用率高
- 23种设计模式--桥接模式(Bridge)
- mysql中没有sock文件_mysql.sock文件不见了问题的解决方法
- 女性社交电商系统:聚焦女用户 收割电商半壁江山
- Excel如何批量添加超链接
- Linux Windows 的Tensorflow 配置: Nvidia 老显卡运算能力低于3.0
- MySQL数据库绿色安装 mysql-5.7.31
- Zeromq 学习笔记1
- 【转】伽马校正(Gamma Correction)
- NOIP 2012 Senior 2 - 国王游戏
- Livy 安装使用说明
- java如何使用虹软sdk_Java使用虹软SDK做人脸识别之十分简单的入门
热门文章
- 【大数据开发】SparkCore——进阶算子、Action算子、查看分区数的三种方式
- 向数组输入不确定个数的数组
- python列表操作计算列表长度并输出,python列表 (list)
- 毕业设计 - 题目:基于机器视觉的图像矫正 (以车牌识别为例) - 图像畸变校正
- linux找出已经删除但磁盘空间未释放的大文件并清空
- 逆序对 矩阵 好事成双 金牌银牌铜牌 发工资
- 卸载VS时彻底删除C盘文件方法
- win10计算机打开一直读进度条,win10开机读条后黑屏怎么办_win10开机读条之后黑屏修复方法-win7之家...
- 《大明王朝》雪崩前,精英们的狂欢
- Python「PIL」:调整图片大小