英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4468|回复: 1
打印 上一主题 下一主题

[求助]求教各位高手两个延时程序的算法

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-18 18:09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有两个延时程序不是很懂,望各位高手指教下,最好能给出每一步的具体算法过程:

第一个:
  JSQ      EQU          20H
             MOVLW     100
             MOVWF     JSQ
  LOOP   DECFSZ     JSQ, 1
             GOTO        LOOP
             RETURN

第二个:
    JSQ    EQU   20H
    JSQ1   EQU   21H
              MOVLW   100
              MOVWF    JSQ
     LOOP  MOVLW    16
              MOVWF   JSQ1
     LOOP1   DECFSZ   JSQ1,1
                 GOTO   LOOP1
                DECFSZ    JSQ,1
               GOTO   LOOP
              RETURN
  各位高手麻烦下了,谢了,记得给出具体计算方法哦~~
2#
发表于 2012-8-20 09:58:55 | 只看该作者
应该是这样的

JSQ      EQU          20H

             MOVLW     100

             MOVWF     JSQ

  LOOP   DECFSZ     JSQ, 1

             GOTO        LOOP

             RETURN





先假设你的机器周期为 1US

movlw 是 1个机器周期

decfsz 是 1-2个机器周期

goto  是 2个机器周期



时间为 1+2 +(1+2)*99 +2 =302 US





第二个:

    JSQ    EQU   20H

    JSQ1   EQU   21H

              MOVLW   100

              MOVWF    JSQ

     LOOP  MOVLW    16

              MOVWF   JSQ1

     LOOP1   DECFSZ   JSQ1,1

                 GOTO   LOOP1

                DECFSZ    JSQ,1

               GOTO   LOOP

              RETURN



同样的道理

先计算 LOOP1的时间



((1+2)*15+3+3)*99+3+1 = 5052

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-24 20:52 , Processed in 0.056147 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表