打印

每日一问:软件延时计算

[复制链接]
1886|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
como|  楼主 | 2008-9-26 08:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  还是昨天那个程序

       ORG 0100H
       MOV R2,#200H

LOOP:  MOV R3,#250
       DJNZ R3,$
       DJNZ R2,LOOP
       RET
 
参考书上的解释延时时间=200*250*2个机器周期

我算的是 LOOP 循环201次,DJNZ R3,$循环251次,
MOV R3,#250 也是两个机器周期

延时时间=(251+1+1)*201*2  这样算对不对?

另外,51中的专用寄存器是不是都可以表示直接地址?
如 PUSH P1;PUSH TCON 
  
大学四年荒废,一切从头开始。如果问的问题太低级,还望大家不要见怪。

相关帖子

沙发
HWM| | 2008-9-26 08:11 | 只看该作者

1)建议用仿真看,2)不仅可能而且只能。

使用特权

评论回复
板凳
NE5532| | 2008-9-26 08:44 | 只看该作者

直接拿示波器或者频率计来打。

算起来没意思。

使用特权

评论回复
地板
hotyong| | 2008-9-26 09:12 | 只看该作者

编译器里可以看到时间的

使用特权

评论回复
5
como|  楼主 | 2008-9-26 09:38 | 只看该作者

现在只是在看书,还不知道什么叫仿真器

  学51必备软件有哪些?需要添置哪些设备?

使用特权

评论回复
6
lyjian| | 2008-9-26 09:41 | 只看该作者

keil软件仿真可以看时间

使用特权

评论回复
7
como|  楼主 | 2008-9-26 09:47 | 只看该作者

这就下去

使用特权

评论回复
8
hchao| | 2008-9-26 10:00 | 只看该作者

*

LOOP:  MOV R3,#5(现假设是一个小的数值)
       DJNZ R3,$
       DJNZ R2,LOOP
       RET

再读DJNZ R3,$
    程序执行次数     R3
           0          5
           1          4
           2          3
           …         …
           5          0(此时开始执行下一条指令)
所以程序执行的次数就是R3寄存器里的数值
参考书的计算是正确的。

使用特权

评论回复
9
como|  楼主 | 2008-9-26 13:18 | 只看该作者

明白了

   DJNZ 指令是先减一再判断,我理解成先判断后减一了
 谢谢你们

使用特权

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

本版积分规则

20

主题

108

帖子

0

粉丝