永发信息网

51系列单片机for语句怎么算机器周期的啊?

答案:2  悬赏:0  手机版
解决时间 2021-04-29 11:25
  • 提问者网友:寂寞梧桐
  • 2021-04-28 13:49

如题 for语句怎么算周期的!

我用示波器看过for(i=0;i<100;i++)p1=!P1 输出的脉冲是100微秒周期 高低各50微秒;很不解是怎么回事!晶振11.0592

最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-04-28 15:12

怎么可能呢?是怎么测出来呢?用的是数字示波器吗?很可能被其它代码干扰了吧,可以 使用反汇编工具计算时间 的啊:


  用Keil C51中的反汇编工具计算延时时间,在反汇编窗口中可用源程序和汇编程序的混合代码或汇编代码显示目标应用程序。首先选择build taget,然后单击start/stop debug session按钮进入程序调试窗口,最后打开Disassembly window,找出与这部分循环结构相对应的汇编代码,具体如下:


    


可以看出,0x0003~0x0012一共10条语句,分析语句可以发现核心循环只有0x0005~0x0012共8条语句,执行取反一次也就是8~10微秒!

全部回答
  • 1楼网友:孤独入客枕
  • 2021-04-28 15:29
C语言写得延时很难精确计算的= =|,所以建议用定时方式写会比较好,或者用汇编写也可以..
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯