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

标题: [求助]求教各位高手两个延时程序的算法 [打印本页]

作者: min    时间: 2012-8-18 18:09
标题: [求助]求教各位高手两个延时程序的算法
有两个延时程序不是很懂,望各位高手指教下,最好能给出每一步的具体算法过程:

第一个:
  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
  各位高手麻烦下了,谢了,记得给出具体计算方法哦~~

作者: star    时间: 2012-8-20 09:58
应该是这样的

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






欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://www.enroobbs.com/) Powered by Discuz! X3.2