STC12C5A60S2自主适应时钟延时函数
快速导航
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自主适应时钟延时函数相关推荐
- 延时函数介绍和呼吸灯的实现
文章目录 延时函数介绍 呼吸灯原理 杨桃32学习笔记,本文图片文字皆为转述 延时函数介绍 分为delay_s秒,delay_ms毫秒,delay_us微秒延时,最大参数不能超过65535. 呼吸灯原理 ...
- 已解决:大家使用原子哥的延时函数delay_ms,delay_us会出现进入延时函数出不来的情况
首说明先原子哥的延时函数没有问题.原子哥的延时函数有的是用在STM32F103中的,要看自己的开发板是那个类型.这里给出STM32F103和STM32F030的延时函数. (1)用在STM32F030 ...
- STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)
STM32延时函数的三种方法:普通延时.SysTick 定时器延时(1.中断方式:2.非中断方式) 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ ...
- STM32中3个延时函数
第一个延时函数: void delay(u16 num) {u16 i,j;for(i=0;i<num;i++)for(j=0;j<0x800;j++); } eg:delay(50); ...
- stm32延时us寄存器_STM32延时函数的四种方法
关注.星标公众号,不错过精彩内容 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms().本文基于STM32F207介绍4种不同方式实现的延时函数. ...
- iar stm32_STM32延时函数的四种方法
关注.星标公众号,不错过精彩内容 单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms().本文基于STM32F207介绍4种不同方式实现的延时函数. ...
- c语言延时函数delay延时一秒_IMX6UL裸机实现C语言LED实验
C 语言部分有两个文件 main.c 和 main.h,main.h 里面主要是定义的寄存器地址,在 main.h里面输入代码: #ifndef MAIN_H #define MAIN_H1 /*2 ...
- 用C51编写单片机延时函数
参考了51单片机 Keil C 延时程序的简单研究,自己也亲身测试和计算了一些已有的延时函数. 这里假定单片机是时钟频率为12MHz,则一个机器周期为:1us. 参考了51单片机 Keil C 延时程 ...
- c语言延时函数delay_STM32中精确延时函数的实现
在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数,下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫 ...
最新文章
- python映射类型-什么是python中唯一的映射类型
- [MSDN]每个开发人员现在应该下载的十种必备工具
- LeetCode Algorithm 70. 爬楼梯
- HTML音乐标签和滚动
- 剑指offer(刷题61-65)--c++,Python版本
- SetupFactory 许可协议设置
- 阿里巴巴:万亿级数据洪峰下的分布式消息引擎
- 学习webpack系列之四 ---- (学习开发环境)
- windows 文件后缀名
- 计算机新建里没有word,电脑鼠标右键没有新建Word选项怎么办?
- 前后端分离和不分离图解
- excle自动查找,自动匹配数据;查找对比两个相同的但顺序错乱的表格内容。
- Mac 连接不上Mysql数据库的解决方案
- 工程项目进度控制的重点内容是什么?
- 三年老Android经验面经,写给正在求职的安卓开发
- 簇是操作系统读写文件的基本单位
- UBuntu18.04 Qt之双HDMI接2个4K屏并分别设置分辨率、主屏、副屏
- javascript复习资料第一部分
- 互联网基础结构发展的三个阶段
- PageRank网页排名算法
热门文章
- 本版1年以内的所有 面经题目
- Bluetooth Class of Device/Service (CoD) And Access codes
- Montgomery reduction——多精度模乘法运算算法
- java计算器课程报告_java计算器课程设计报告
- basic4android计算器,vb三角函数计算器代码
- 火车头如何html发布,火车头采集器教程:WEB在线发布模块的修改
- 神策杯 2018高校算法大师赛(个人、top2、top6)方案总结
- centos7挂载移动硬盘
- 关于SAP 启用新公司时 选用的会计准则
- 企业微信可以取消实名认证吗?如何操作