• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

用C语言,如何写出单片机延时程序,且延时时间如何计算的?

451f0ba88f0fad23 2019-10-27 浏览量:2490
用C语言,如何写出单片机延时程序,且延时时间如何计算的?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1. 根据你的延时时长需求,配置定时器,产生定时中断,如1ms;

    2. 设置全局变量,如t_delay_cnt;在定时中断中递减:

    if (t_delay_cnt > 0)
    {
        t_delay_cnt--;
    }
    3. 延时子函数的实现,可参考:

    /@@*
        功能:延时子函数
        输入:n_ms 延时时间n毫秒
    */
    void delay_ms(unsigned int n_ms)
    {
        t_delay_cnt = n_ms;
        while (t_delay_cnt);
    }
    注意:该方法存在<=1ms的误差。

    • 发布于 2019-10-27
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 可以用stc的isp下载软件计算51单片机的延时函数,软件会自动生成函数,他是根据时钟频率,还有语句执行时间计算出延时时间的,也可以用定时器写延时函数
    • 发布于2019-10-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 最简单的就是空循环,不过不是那么准,延时时间用晶振的频率来算,指令的机器周期算出来得出一个循环多长时间,然后往里面添加数字多少个循环就可以了,最主要就是单位基准的1us或者1ms程序定下来就好
    • 发布于2019-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般来说它的库里面会有个延时函数,那个延时函数使用系统定时器做的,如果要自行开发,则可以用个定时器+中断的方法,精度比较高
    • 发布于2019-11-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

用C语言,如何写出单片机延时程序,且延时时间如何计算的?