快速导航
STC12已封装好的函数库

单片机延时函数的原理:
延时函数里执行的是空语句,单片机程序指针经过执行的空语句来达到延时的目的。

单片机使用延时函数的优点就是很容易就能写出软件延时程序。
但是,缺点也很非常明显。单片机在执行延时函数时,在做没有用的空运算,不能执行其他程序,而且延时时间不容易计算。因此,精密的延时最后是用定时器。

以下是STC12系统常用延时函数,已封装。
时钟宏定义

#define MAIN_Fosc        11059200L   //宏定义主时钟HZ
//#define MAIN_Fosc     12000000L

delay.c

#include "config.h"
#include "delay.h"//基于STC12单片机1ms延时函数
//函数说明:内部调用
static void Delay1ms()
{# if MAIN_Fosc == 11059200L//晶振11.0592MHzunsigned char i, j;_nop_();i = 11;j = 190;do{while (--j);} while (--i);#elif MAIN_Fosc == 12000000L//晶振12.000000MHZunsigned char i, j;_nop_();_nop_();i = 12;j = 168;do{while (--j);} while (--i);#endif}//基于STC12单片机1us延时函数
//函数说明:内部调用
static void Delaym1us()
{# if MAIN_Fosc == 11059200L//晶振11.0592MHz_nop_();#elif MAIN_Fosc == 12000000L//晶振12.000000MHZ_nop_();_nop_();#endif
}//基于STC12单片机ms延时函数
//函数说明:外部调用
void Delay_ms(uint16 time)
{int i;for(i=0; i<time; i++){Delay1ms();}
}//基于STC12单片机us延时函数
//函数说明:外部调用
void Delay_us(uint16 time)
{int i;for(i=0; i<time; i++){Delaym1us();}
}

delay.h

#ifndef _DELAY_H
#define _DELAY_H//基于STC12单片机ms延时函数
//函数说明:外部调用
void Delay_ms(uint16 time);//基于STC12单片机us延时函数
//函数说明:外部调用
void Delay_us(uint16 time);#endif

延时函数程序来源STC-ISP

STC12C5A60S2自主适应时钟延时函数相关推荐

  1. 延时函数介绍和呼吸灯的实现

    文章目录 延时函数介绍 呼吸灯原理 杨桃32学习笔记,本文图片文字皆为转述 延时函数介绍 分为delay_s秒,delay_ms毫秒,delay_us微秒延时,最大参数不能超过65535. 呼吸灯原理 ...

  2. 已解决:大家使用原子哥的延时函数delay_ms,delay_us会出现进入延时函数出不来的情况

    首说明先原子哥的延时函数没有问题.原子哥的延时函数有的是用在STM32F103中的,要看自己的开发板是那个类型.这里给出STM32F103和STM32F030的延时函数. (1)用在STM32F030 ...

  3. STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)

    STM32延时函数的三种方法:普通延时.SysTick 定时器延时(1.中断方式:2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ ...

  4. STM32中3个延时函数

    第一个延时函数: void delay(u16 num) {u16 i,j;for(i=0;i<num;i++)for(j=0;j<0x800;j++); } eg:delay(50); ...

  5. stm32延时us寄存器_STM32延时函数的四种方法

    关注.星标公众号,不错过精彩内容 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms().本文基于STM32F207介绍4种不同方式实现的延时函数. ...

  6. iar stm32_STM32延时函数的四种方法

    关注.星标公众号,不错过精彩内容 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms().本文基于STM32F207介绍4种不同方式实现的延时函数. ...

  7. c语言延时函数delay延时一秒_IMX6UL裸机实现C语言LED实验

    C 语言部分有两个文件 main.c 和 main.h,main.h 里面主要是定义的寄存器地址,在 main.h里面输入代码: #ifndef MAIN_H #define MAIN_H1 /*2 ...

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

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

  9. c语言延时函数delay_STM32中精确延时函数的实现

    在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数,下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫 ...

最新文章

  1. python映射类型-什么是python中唯一的映射类型
  2. [MSDN]每个开发人员现在应该下载的十种必备工具
  3. LeetCode Algorithm 70. 爬楼梯
  4. HTML音乐标签和滚动
  5. 剑指offer(刷题61-65)--c++,Python版本
  6. SetupFactory 许可协议设置
  7. 阿里巴巴:万亿级数据洪峰下的分布式消息引擎
  8. 学习webpack系列之四 ---- (学习开发环境)
  9. windows 文件后缀名
  10. 计算机新建里没有word,电脑鼠标右键没有新建Word选项怎么办?
  11. 前后端分离和不分离图解
  12. excle自动查找,自动匹配数据;查找对比两个相同的但顺序错乱的表格内容。
  13. Mac 连接不上Mysql数据库的解决方案
  14. 工程项目进度控制的重点内容是什么?
  15. 三年老Android经验面经,写给正在求职的安卓开发
  16. 簇是操作系统读写文件的基本单位
  17. UBuntu18.04 Qt之双HDMI接2个4K屏并分别设置分辨率、主屏、副屏
  18. javascript复习资料第一部分
  19. 互联网基础结构发展的三个阶段
  20. PageRank网页排名算法

热门文章

  1. 本版1年以内的所有 面经题目
  2. Bluetooth Class of Device/Service (CoD) And Access codes
  3. Montgomery reduction——多精度模乘法运算算法
  4. java计算器课程报告_java计算器课程设计报告
  5. basic4android计算器,vb三角函数计算器代码
  6. 火车头如何html发布,火车头采集器教程:WEB在线发布模块的修改
  7. 神策杯 2018高校算法大师赛(个人、top2、top6)方案总结
  8. centos7挂载移动硬盘
  9. 关于SAP 启用新公司时 选用的会计准则
  10. 企业微信可以取消实名认证吗?如何操作