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

请问如何确定一个延时程序的延时时间呢?

qiuqiu 2020-12-30 浏览量:1149
请问如何确定一个晶振12M的单片机程序中延时程序延时的时间呢?
比如说12M晶振,晶振周期1/12微妙,一个机器周期包含12个晶振周期,所以12M晶振时机器周期=12x(1/12)微秒=1微秒。
那么1MS的延时程序为:
void delay(uint z)//延时函数1ms
{
        uint xy;
        for(x=z;x>0;x--);
                for(y=110;y>0;y--);
}


请问这个y=110里这个110是怎么来的?
谢谢大家指点
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 用软件仿真测试出来的,仿真器每步执行再调试窗口都有时间显示,通过修改这个数字,使这一段语句时间长度在1ms,所以这个110也是一点一点测试出来的,不过还有一个简单办法我还是用stcisp软件,设置好参数,他会自动生成延时函数
    • 发布于 2021-01-01
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 这个要用仿真来看时间间隔了,因为C语言要变成汇编才能计算他的执行的机器周期数,,直接算是不好得出来的,还可以用stcisp烧录软件、上面有一个计算延时的工具,选择你要的延时生成就行
    • 发布于2020-12-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 最好用定时器,那个准,这种死循环的延时容易受中断影响,那个110应该是实测出来比较接近的
    • 发布于2021-01-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

请问如何确定一个延时程序的延时时间呢?