新闻中心

EEPW首页>嵌入式系统>设计应用> Keil C51精确延时程序设计

Keil C51精确延时程序设计

作者: 时间:2013-05-16 来源:网络 收藏

光标为当前程序的停止处,左侧的寄存器窗口可以看到一些寄存器名称及其值。可以通过设置断点的功能,每遇到断点,程序会自动停止在断点处。“sec”中数据的变化即为程序执行处到断点处所需的时间。对上述程序将断点设置在“P1=P1^0x01”代码处,然后点击全速运行可以得表2所示。

本文引用地址://m.amcfsurvey.com/article/170502.htm

g.JPG


从表2可以看出,delay函数执行的时间△t=2 391-389=2 002μs,与理论分析结果一样。

3 应用实例
DS18B20是一款单总线数字式温度传感器,对其控制必须按照严格的时序要求,有3个重要时序,分别是初始化、读以及写时序,时序图如图3所示。

h.JPG


由图3可知,涉及到程序的要求为:
初始化。(1)将总线低480~960μs,然后释放总线。(2)DS18B20等待15~60μs,然后返回低电平并持续60~240μs的存在脉冲。
写时序。(1)将总线置低电平并且持续15μs后发送数据的某一位。(2)60~120μs然后将总线拉高并持续至少1μs的时间后开始下一次发送。
读时序。(1)将总线置低电平,并且持续至少1μs,然后释放总线。(2)释放总线后15μs内读取并处理数据。(3)处理数据后,保证第一个步骤到延时结束时间至少60μs后为电阻上拉状态。
采用延时程序的设计方法,利用for循环编写delay函数和_nop_()函数控制DS18B20。
通过以上延时程序的控制方法,DS18B20稳定实现了温度采集。充分说明了高效的延时,在开发一些需要使用到延时程序时,可以先用先设计好延时程序,然后利用以上方法进行分析计算,最后直接调用,可节省大量的时间、提高CPU的使用效率。

4 结束语
具有强大的功能,只要利用合理,可以给开发者节省大量的时间,从而提高开发效率。另外在设计延时程序的时候,应该综合考虑各种延时程序的特点,以优化CPU的使用效率。

c语言相关文章:c语言教程


尘埃粒子计数器相关文章:尘埃粒子计数器原理
晶振相关文章:晶振原理
燃气报警器相关文章:燃气报警器原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭