单片机中C语言延时函数

发布者:范隆最新更新时间:2016-05-23 来源: eefocus关键字:单片机  C语言  延时函数 手机看文章 扫描二维码
随时随地手机看文章
单片机C语言延时程序计算2009-11-02 22:15单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有它不足之处:它的延时很不好控制,我们常常很难知道一段延时程序它的精确延时到底是多少,这和汇编延时程序没法比。但有时后写程序又不得不要用到比较精确的延时,虽然说可以用混合编程的方式解决,但这种方式不是每个人都能掌握,且写起来也麻烦。所以,通过测试我给大家提供一个延时子程序模块,并以此给一个出我们经常用到的延时的数据表格。(注意:表格中的数据只适合我的延时模块,对其他的延时程序不适用,切忌!!!!!!!!别到时候延时不对来骂我)

         延时模块:其中问号代表要填的数,要延时多少,到表格中去找数据,然后填上就OK!切忌3条FOR语句不能颠倒顺序

void Delay()
{
unsigned char a,b,c;
for(a=0;a for(b=0;b for(c=0;c

                                                         数据表如下
//
延时时间           a的值                 b的值               c的值       延时误差(us)
10us                       1                       1                       1                         -0.5       
20us                       1                       1                       8                         0  
30us                       1                       1                       15                       +0.5 
40us                       2                       1                       9                         0  
50us                       1                       1                       28                           0  
60us                       1                       1                       35                       +0.5 
70us                       1                       1                       42                       +1 
80us                       1                       1                       48                           0 
90us                       1                       1                       55                       +0.5  
100us                   1                       1                       61                       -0.5  
200us                   1                       1                       128                       0  
300us                   3                       1                       63                       +1.5  
400us                   2                       1                       129                       0  
500us                   5                       1                       63                       +0.5  
600us                   6                       1                       63                         0  
700us                   7                       1                       63                           -0.5  
800us                   1                       3                       175                       +0.5  
900us                   9                       1                       63                         -1.5  
1ms                       1                       3                       219                       -1.5
2ms                       2                       3                       220                       +3
3ms                       3                       3                       220                       +3
Xms                       X                       3                       220                       +3          
               (X的范围为2到255)

         基本上我们平时用到的延时都在这里了,每种延时的误差都很小,最大也不过3us,有的甚至没有误差,已经很精确了,如果想延时1秒钟,你可以连续调用延时250ms的程序4次,总共延时误差12us,这样的误差已经不算误差了,用汇编语言编写还达不到这个程度。

         现在你不再为延时不精确担忧了,参照表中的数据写延时,想延时多少就能延时多少。

         再次重申:此表格是根据我的延时模块编写,这也是大多数朋友都习惯用的一个模块,如果你用其他模块或是改动了我的模块,延时都不准的,不信大家可以试试!!! 
 

关键字:单片机  C语言  延时函数 引用地址:单片机中C语言延时函数

上一篇:单片机嵌入式产生精确延时的一种方法
下一篇:单片机c语言中nop函数的使用方法和延时计算

推荐阅读最新更新时间:2024-03-16 14:54

基于单片机双CPU构成的复杂系统应用研究
  单片机以其功能强、体积小、可靠性高及价格低廉等优势,被广泛应用在各种智能化仪器、仪表以及各种小型控制系统中。但其本身结构较为简单,自身资源少,在一些较为复杂的应用系统中就显出其硬件资源不足,速度太慢等缺点。在这种情况下,往往采取双CPU或多CPU的设计方案,以弥补其不足。但是由于单片微机不像通用的微机系统具有其它总线主控设备向CPU请求总线使用申请信号输入端,以及CPU对系统中其他总线主控设备请求使用权的应答信号输出端,这就给双CPU系统的设计带来一定的困难。本文提出一种双CPU共享外部数据存储器的设计方案,并介绍了该系统的几种应用实例。 1 系统的硬件设计   ATMEL公司的89系列是目前广泛应用的单片微机,图1所示
[单片机]
MSP430单片机在电源控制中的应用
MSP430系列单片机是美国TI公司生产的新一代16位单片机,是一种超低功耗的混合信号处理器(MixedSignal Processor),它具有低电压、超低功耗、强大的处理能力、系统工作稳定、丰富的片内外设、方便开发等优点,具有很高的性价比,在工程控制等领域有着极其广泛的应用范围。开关Boost稳压电源利用开关器件控制、无源磁性元件及电容元件的能量存储特性,从输入电压源获取分离的能量,暂时把能量以磁场的形式存储在电感器中,或以电场的形式存储在电容器中,然后将能量转换到负载。对DC—DC主回路采用Boost升压斩波电路。 2 系统结构和总设计方案     本开关稳压电源是以 MSP430F449 为主控制器件,它是TI公司生产
[电源管理]
MSP430<font color='red'>单片机</font>在电源控制中的应用
基于I2C总线的MSP430单片机应用系统设计
引言 串行护展总线技术是新一代单片机技术发展的一个显著特点。其中PHILIPS公司推出的I2C总线最为著名,它包括一个两端接口,通过一个带有缓冲区的接口,数据可以被I2C发送或接收,控制和状态信息则通过一套内存映射寄存器来传送。与并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。本文是把I2C总线应用到MSP430单片机温度控制系统中的一个典型实例。 I2C总线是用2根双向I/O信号线(串行时钟线SCL和串行数据线SDA)把多种器件连接起来,并实现器件之间的串行通讯。 MSP430是TI公司一种具有超低功耗的功能强大的16位单片机,MSP430F16
[单片机]
基于I2C总线的MSP430<font color='red'>单片机</font>应用系统设计
STM8L15x系列单片机判断指定I/O引脚电平
/** * @brief Reads the specified GPIO input data pin. * @param GPIOx : Select the GPIO peripheral number (x = A to I). * @param GPIO_Pin : Specifies the pin number. * This parameter can be one of the following values: * @arg GPIO_Pin_0: Pin 0 * @arg GPIO_Pin_1: Pin 1 * @arg GPIO_Pin_2: Pin 2
[单片机]
基于AVR单片机和组态王的陶瓷检测系统设计
摘要:针对国内的陶瓷性能检测仪自动化程度不高、检测精度低、检测范围比较窄,可视化差等情况,设计开发了一种基于AVR ATmega128单片机和北京亚控公司的组态软件的陶瓷检测实时控制系统。该系统运用虚拟仪器组态王作为上位机,辅以ATmega128单片机为核心的变参数的模糊神经网络PID控制器,对陶瓷性能进行检测。经现场使用表明,该系统检测精度高、范围广、可视化程度高,使用方便。 0 引言 在城市的建设进程中,越来越注重绿色环保理念,然而使用实心砖会造成资源的巨大浪费,因此空心砖的使用量急剧增长。生产空心砖需要大量的生态陶瓷材料,但相应的陶瓷材料的性能检测工具还很不完善。研制高性能生态陶瓷性能检测仪具有重要的现实意义。本文以陶
[单片机]
基于AVR<font color='red'>单片机</font>和组态王的陶瓷检测系统设计
单片机系统与标准PC键盘的接口模块设计
概述   在单片机系统中,当输入按键较多时,在硬件设计和软件编程之间总存在着矛盾。对于不同的单片机系统需要进行专用的键盘硬件设计和编程调试,通用性差,使项目开发复杂化。标准PC键盘在工艺与技术上都已相当成熟,而且工作稳定,价格低廉。本设计实现了一个接口模块,它将标准PC键盘发出的位置扫描码,变换为标准的ASCII码和OEM扫描码或Windows虚拟键代码,再以并行或串行方式传送给上位单片机。 接口模块的特点   该模块在PC键盘与上位单片机之间起转换作用,它屏蔽了与PC键盘进行数据和命令交互的复杂过程,大大简化了上位单片机系统的输入设计;它实现了类似DOS操作系统中键盘中断服务程序的功能,使设计人员只需关心接收按键的结果,并可使
[单片机]
为什么要学单片机,如何学习单片机
单片机是大专学校电类专业的一门普通课,有些学校甚至把它列为选修课,在众多课程中,没有显出它有多么重要。为什么要学习它呢?电类专业有很多专业课,这些专业课非常重要,是各个专业存在的必需课程,学完这些课程可以使学习者成为大学者的继承人,市场对学者继承人的需求太少,大量需要的是产品的研发者,研发产品是需要干实际事情的,需要研发工具,而单片机课程就是学习研发工具使用的课程。学习单片机课程与理论课程不一样,不能只做作业,而是要实际使用单片机,下面就如何准备学习单片机的条件和学习步骤简述一些不成熟的想法。 1. 硬件 (1)编程硬件 所谓编程就是把单片机运行的程序烧写到单片机的存储器中,目前大部分单片机都是使用 FLASH存储器,这些存储器的
[单片机]
Maxim推出微控制器时钟发生器, 带有看门狗功能
Maxim日前推出微控制器时钟发生器新品MAX7389/MAX7390,提供时钟源、重置和看门狗功能,适用于家用电器、汽车电子、手持产品、微控制器系统、手提设备等。 MAX7389/MAX7390时钟发生频率为出厂设置的1MHz到16MHz范围。可以有4种标准时钟频率选择。在12MHz时工作电压为5.5V。MAX7389/MAX7390同时提供看门狗功能。看门狗时钟频率可编程,重置时间可在16ms到2048ms进行选择。MAX7389提供一个单独的看门狗输出,可提供状态指示。电压低到1.1V时重置有效,±10mA时钟输入驱动电流。 与常规的石英和陶瓷晶振产品不同,MAX7389/MAX7390可抵抗电磁干扰(EMI),高温工作
[新品]
热门资源推荐
热门放大器推荐
  •  pdf文件单片机创新实践应用.
  •  pdf文件嵌入式C语言自我修养——从芯片、编译器到操作系统 带目录 文字版
  •  pdf文件现代操作系统(原书第4版)
  •  pdf文件C primer Plus
  • 系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面错误!请稍后再试~

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved