[討論] 延時副程式

看板ASM (組合語言)作者 (偉仔)時間18年前 (2007/02/03 02:11), 編輯推噓5(503)
留言8則, 2人參與, 最新討論串1/2 (看更多)
我看到一個霹靂燈的程式:我想請問延時副程式怎麼算?,有辨法改成延時三十分鐘 或六十分鐘那麼長嗎?他的全部程式如下: =====================================                主程式 ===================================== ORG 0000H        START MOV R1,#07H                          MOV A,#11111110B LEFT MOV P1,A ACALL DELAY     RL   A DJNZ R1,LEFT --------------------------------------------------------------------------- MOV A,#01111110B RIGHT MOV P1,A                             ACALL DELAY RL   A DJNZ R1,RIGHT AJMP START ====================================== ==             延時副程式                ==   ;延時0.1秒                                 DELAY MOV R6,#250 DL1 MOV R7,#200 DL2 DJNZ R7,DL2 DJNZ R6,DL1 END -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.133.241

02/03 02:15, , 1F
延時那麼久?要做也是可以做啦,但用慢一點的MCU不是更好ꄠ
02/03 02:15, 1F

02/03 02:17, , 2F
上面的延時的概念是200*250所以這個MCU相當快……
02/03 02:17, 2F

02/03 02:18, , 3F
一個指令週期約20us,其實挺慢的……
02/03 02:18, 3F

02/03 02:20, , 4F
算錯,是2us....
02/03 02:20, 4F

02/03 02:31, , 5F
又錯……orz...以上論說請完全忘記
02/03 02:31, 5F
============================================================================== 嗯嗯..無論無何謝謝33mruemann的回答!^______^ ========================================================================== loveflames大大,謝謝你的回答!^______^ 為何沒有return,老實講,我是從書上的霹靂燈的指令寫出來的,因為我 目前還在學要怎麼寫指令,我想說先從一般的小程式看起! 我在想如果利用霹靂燈的指令,可以將led換成繼電器接到燈泡的電源端,那就可以設定開跟關的順序; 例如:一顆燈泡平均半小時壞掉,那我設定他一小時換下一顆,以此類推,所以我才想知 道要怎麼看那個延時的指令,也想知道有沒有可能可以設定延時到一個小時。 ※ 編輯: king53719 來自: 124.8.131.43 (02/04 12:48)

02/05 00:13, , 6F
你call副程式一定要ret不然主程式不會正常執行
02/05 00:13, 6F

02/05 00:15, , 7F
至於怎麼改延時時間,我已經把us、ms跟s的換算寫出來了
02/05 00:15, 7F

02/05 00:16, , 8F
這應該是很好換算的
02/05 00:16, 8F
=========================================================================== 嗯嗯.改延時時間.我己經會算了! 從副程式返迴主程式要一個ret,我剛才看書..確實真的要..1oveflames謝謝你啊 ※ 編輯: king53719 來自: 140.127.137.207 (02/05 14:03)
文章代碼(AID): #15mtxex0 (ASM)
文章代碼(AID): #15mtxex0 (ASM)