找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5963|回复: 0
收起左侧

Delay.h头文件下载-AVR系列单片机的通用软件延时头文件

[复制链接]
ID:71259 发表于 2014-12-30 12:50 | 显示全部楼层 |阅读模式
在代码下方点复制代码,然后另存到电脑磁盘即可下载.


  1. /*****************************************************************************

  2.       单    位:广西民族大学物理与电子工程学院07物本班
  3.       文件名称:Delay.h
  4.       文件标识:_DELAY_H_
  5.       摘    要:AVR系列单片机的通用软件延时头文件
  6.       当前版本:V1.0
  7.       作    者: 【白 羽】
  8.       完成日期:2010年5月1日

  9. *****************************************************************************/
  10. #ifndef  _DELAY_H_
  11. #define  _DELAY_H_

  12. #include <BaiYuAvrKu\DataType.h>
  13. #include <BaiYuAvrKu\NOP.H>

  14. #ifndef  CRYSTAL
  15. #define  CRYSTAL   8.0    //默认晶振频率为8.0MHz(可在主程序文件中修改)
  16. #endif

  17. /*****************************************************************************
  18. 以下三个宏是参数预修正宏,它们在任意设定的晶振频率下均能实现准确的延时
  19. *****************************************************************************/
  20. #define  delay_s(n)  delay_ms(1000*(n))
  21. #define  delay_ms(n) wait_ms(((n)*CRYSTAL-0.017)/(CRYSTAL+0.006))
  22. #define  delay_us(n) wait_us((n)>14.0/CRYSTAL?((n)*CRYSTAL-8.0)/6.0:1)

  23. /*****************************************************************************
  24. 函数名称:wait_us
  25. 函数参数:n
  26. 描    述:延时 8+6*n 个时钟周期
  27. *****************************************************************************/
  28. void wait_us( UINT16 n )
  29. {
  30.    do{
  31.       n--;
  32.    }while(n);
  33. }

  34. /*****************************************************************************
  35. 函数名称:wait_ms
  36. 函数参数:n
  37. 描    述:延时 n 毫秒,约有 17+6*n 个时钟周期的正向误差
  38. *****************************************************************************/
  39. void wait_ms( UINT16 n )
  40. {
  41.    do{
  42.       delay_us(1000);
  43.    }while(--n);
  44. }



  45. #endif
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表