打印

延时问题

[复制链接]
1836|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beyondhero2008|  楼主 | 2011-11-14 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2011-11-14 16:35 | 只看该作者
调试出来的

使用特权

评论回复
板凳
beyondhero2008|  楼主 | 2011-11-15 08:20 | 只看该作者
谢谢啊,但是不太明白啊

使用特权

评论回复
地板
yewuyi| | 2011-11-15 08:24 | 只看该作者
看反汇编代码计算一共要执行多少调指令,然后算出一个周期内的总指令周期,用0.2秒除就可以了。

使用特权

评论回复
5
killvx| | 2011-11-15 09:08 | 只看该作者
反汇编代码
C:01BC    MOV R7,#0x14      
C:01BE    MOV R6,#0x14
C:01C0    DJNZ R6,C:01C0
C:01C2    DJNZ R7,C:01BE
C:01C4    MOV  R7,#0xF8
C:01C6    DJNZ R7,C:01C6

MOV 单周期指令
DJNZ 双周期指令
如果单片机机器周期1us
则延时时间计算:
J次循环时间:
  R6*2 = 20*2us = 40 us
i次循环时间:
  (R6*2 + R6赋值 + 2 )*R7  =  (40 + 1 + 2 )*20 =  860
K次循环时间:
  R7*2 + R7赋值= 248*2us + 1us = 497us
总循环时间K次 + J + I +R7赋值 +程序返回 = 497 +40 +860 + 1 + 2 = 1400us
楼主可以看下汇编指令计算一下  对不对

使用特权

评论回复
6
beyondhero2008|  楼主 | 2011-11-15 09:53 | 只看该作者
谢谢各位大侠

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

19

帖子

1

粉丝