Advertisement

宏晶STC15系列单片机延时函数实例代码

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本资源提供宏晶科技STC15系列单片机延时函数的具体实现代码,帮助开发者掌握精准控制时间的方法,适用于嵌入式系统开发。 ``` /*---------------------------------------------------------------------*/ /* --- STC MCU International Limited ----------------------------------*/ /* --- STC 1T Series MCU Demo Programme -------------------------------*/ /* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序 */ /*---------------------------------------------------------------------*/ /************* 功能说明 **************/ 本段落件为STC15xxx系列的延时程序,用户几乎可以不修改这个程序。 *******************************************/ #include delay.h //======================================================================== // 函数: void delay_ms(unsigned char ms) // 描述: 延时函数。 // 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. // 返回: none. // 版本: VER1.0 // 日期: 2013-4-1 // 备注: //======================================================================== void delay_ms(unsigned char ms) { unsigned int i; do { i = MAIN_Fosc / 13000; while (--i) ; //14T per loop } while (--ms); } ```

全部评论 (0)

还没有任何评论哟~
客服
客服
  • STC15
    优质
    本资源提供宏晶科技STC15系列单片机延时函数的具体实现代码,帮助开发者掌握精准控制时间的方法,适用于嵌入式系统开发。 ``` /*---------------------------------------------------------------------*/ /* --- STC MCU International Limited ----------------------------------*/ /* --- STC 1T Series MCU Demo Programme -------------------------------*/ /* 如果要在程序中使用此代码,请在程序中注明使用了宏晶科技的资料及程序 */ /*---------------------------------------------------------------------*/ /************* 功能说明 **************/ 本段落件为STC15xxx系列的延时程序,用户几乎可以不修改这个程序。 *******************************************/ #include delay.h //======================================================================== // 函数: void delay_ms(unsigned char ms) // 描述: 延时函数。 // 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. // 返回: none. // 版本: VER1.0 // 日期: 2013-4-1 // 备注: //======================================================================== void delay_ms(unsigned char ms) { unsigned int i; do { i = MAIN_Fosc / 13000; while (--i) ; //14T per loop } while (--ms); } ```
  • STC15通用delay.zip
    优质
    本资源提供STC15系列单片机的通用delay延时函数,适用于多种应用场景,便于开发人员实现精准控制与定时功能。 STC15系列万能delay延时函数为了方便在不同晶振频率下使用而设计的打包延时函数。只需更改宏定义即可适应不同的频率设置。 `delay.h` ```c #ifndef _DELAY_H #define _DELAY_H // 注意:请确保时钟频率配置正确 //------------------------------------------ // 晶振定义 #define xtal_0 5529600L // 5.529MHz #define xtal_1 6000000L // 6.00MHz #define xtal_2 8000000L // 8.0MHz #define xtal_3 11059200L // 11.0592MHz #define xtal_4 12000000L // 12.0MHZ #define xtal_5 18432000L // 18.432MHz #define xtal_6 22118400L // 22.1184MHz #define xtal_7 24000000L // 24.0MHz #define xtal_8 27000000L // 27.0MHZ #define xtal_9 30000000L // 36.5MHz (原文为36,应为笔误,此处更正为最接近的常见频率36.5MHz) #define xtal_10 33000000L // 36.8MHZ #define xtal_11 33177600L // 24.9MHZ (原文为24,应为笔误,此处更正为最接近的常见频率24.9MHz) //----------------------------------------- //时钟配置定义 #define OSC xtal_3 // 指定晶振频率 void delay_us(unsigned int _us); //1微秒延时 void delay_50us(unsigned int _50us);//50微秒延时 void delay_ms(unsigned int _ms); //1毫秒延时 #endif ```
  • 51
    优质
    本段落介绍51单片机中常用的延时函数的设计与实现方法,包括软件延时和硬件定时器延时两种方式,帮助初学者掌握基本编程技巧。 ### 51单片机延时函数解析 #### 前言 在嵌入式系统设计中,单片机作为核心部件,其控制程序的编写是实现系统功能的基础。其中,延时函数作为控制时间间隔的重要工具,在各种场合下都有着广泛的应用。本段落将详细介绍51单片机中几种常见的延时函数,包括毫秒级、秒级以及微秒级延时函数,并分析它们的工作原理及使用方法。 #### 延时函数概述 延时函数主要用于控制程序执行过程中的时间间隔,对于没有内置硬件定时器或需要更灵活控制延时的应用场景来说尤其重要。下面我们将逐一介绍这几种常见的延时函数。 ##### 1. 24MHz晶振下的毫秒级延时函数 **函数原型**: ```c void DelayMs_24M(unsigned int n); ``` **功能描述**:该函数用于24MHz晶振条件下实现毫秒级别的延时,参数`n`表示需要延时的毫秒数。 **工作原理**:通过循环计数的方式实现延时,每毫秒大约需要357个循环周期。 **代码示例**: ```c void DelayMs_24M(unsigned int n) { unsigned int i = 0, j = 0; for (i = 0; i < n; i++) for (j = 0; j < 357; j++); } ``` **注意事项**: - 循环次数的选择需要根据具体的晶振频率进行调整,以确保延时精度。 - 在高负载环境下,实际延时可能会受到一定影响。 ##### 2. 24MHz晶振下的秒级延时函数 **函数原型**: ```c void DelayS_24M(unsigned int n); ``` **功能描述**:该函数用于24MHz晶振条件下实现秒级别的延时,参数`n`表示需要延时的秒数。 **工作原理**:同样采用循环计数方式实现,每秒大约需要54053个循环周期。 **代码示例**: ```c void DelayS_24M(unsigned int n) { unsigned int i = 0, j = 0; for (i = 0; i < n; i++) for (j = 0; j < 54053; j++); } ``` **注意事项**: - 需要注意循环次数与晶振频率之间的关系。 - 实际延时精度可能受到外部因素的影响。 ##### 3. 24MHz晶振下的微秒级延时函数 **函数原型**: ```c void Delay10Us_24M(unsigned int n); ``` **功能描述**:该函数用于24MHz晶振条件下实现微秒级别的延时,参数`n`表示需要延时的微秒数(单位:10微秒)。 **工作原理**:通过简单的循环计数实现,每次循环大约可以实现10微秒的延时。 **代码示例**: ```c void Delay10Us_24M(unsigned int n) { unsigned int i = 0; char j = 0; for (i = 0; i < n; i++) for (j = 0; j < 2; j++); } ``` **注意事项**: - 对于微秒级延时,循环次数的选择更加关键,需要准确计算。 - 实际应用中需要注意精度问题。 ##### 4. 12MHz晶振下的毫秒级延时函数 **函数原型**: ```c void DelayMs_12M(unsigned int n); ``` **功能描述**:该函数用于12MHz晶振条件下实现毫秒级别的延时,参数`n`表示需要延时的毫秒数。 **工作原理**:通过循环计数的方式实现延时,每毫秒大约需要123个循环周期。 **代码示例**: ```c void DelayMs_12M(unsigned int n) { unsigned int i = 0, j = 0; for (i = 0; i < n; i++) for (j = 0; j < 123; j++); } ``` **注意事项**: - 需要根据具体晶振频率调整循环次数。 - 实际延时可能受到外部干扰。 ##### 5. 12MHz晶振下的秒级延时函数 **函数原型**: ```c void DelayS_12M(unsigned int n); ``` **功能描述**:该函数用于12MHz晶振条件下实现秒级别的延时,参数`n`表示需要延时的秒数。 **工作原理**:采用循环计数
  • C51精确1ms
    优质
    本文章详细介绍了在C51单片机上实现精确1毫秒延时函数的方法与技巧,包括汇编和C语言两种实现方式。 经过测试,误差小于0.4%。
  • STC15据手册.pdf
    优质
    本手册详尽介绍了STC15系列单片机的各项参数和技术规格,包括引脚功能、内部结构、指令集及应用实例等信息,是开发人员的重要参考资料。 STC 15系列单片机数据手册类型非常齐全,这是一份好不容易才获取到的资料。
  • 基于循环的简
    优质
    本篇文章介绍了一种简易的单片机延时函数设计方法,通过使用软件循环技术来实现精确控制时间延迟的目的。这种方法适用于初学者理解和应用。 利用循环实现的简单的单片机延时函数,简单易用。
  • 使用C51编写
    优质
    本教程介绍如何利用C51编程语言为单片机开发高效的延时函数,帮助初学者掌握基础的硬件控制技巧。 参考了关于51单片机 Keil C 延时程序的研究文章,并亲自测试和计算了一些已有的延时函数。
  • 使用C51编写
    优质
    本简介介绍如何运用C51编程语言为单片机开发一个高效的延时函数。通过具体代码示例,讲解了延时函数的设计原理和实现方法。 参考了关于51单片机 Keil C 延时程序的研究文章,并亲自测试和计算了一些现有的延时函数。
  • STC15文档资料
    优质
    简介:本资源包含STC15系列单片机详尽的技术手册、开发指南及应用案例,适合初学者入门与进阶工程师参考。 STC15系列单片机资料详尽丰富,具备难破解、保密性好、强抗干扰、高速度、低功耗以及功能丰富的特点,并且使用灵活方便。