看板 ASM 關於我們 聯絡資訊
我想讓P0的八個輸出先全亮一秒後再全暗一秒,重複這個動作,我參考指令集寫出下面, 這段,假設DELAY副程式為DELAY一秒(使用24MHz的震盪器),並且忽略START段的指令週期 。 但是組譯完燒出後,P0接上8個LED,上電後並沒有依照我的想法來動作,請問是不是有哪 裡寫錯了呢? ORG 00H JMP START START: MOV A,#00000000B MOV P0,A MOV R5,#240 CALL DELAY MOV A,#11111111B MOV P0,A MOV R5,#240 CALL DELAY JMP START RET DELAY: MOV R6,#200 D1: MOV R7,#250 D2: DJNZ R7,D2 DJNZ R6,D1 DJNZ R5,DELAY RET END -- 聞道有先後,術業有專攻。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.181.135
BACCAB:DELAY的時間 算一算大概12秒 問題是在這裡吧 01/25 20:25
icetofux:250*200*240=12M DJNZ一次要2個指令週期12M*2=24M 01/25 21:50
icetofux:24MHz的震盪器1秒震盪24M次 扣掉MOV的指令週期 01/25 21:52
icetofux:差不多是一秒,請問我觀念是不是哪裡錯了呢? 01/25 21:53
BASG:你忘了machine cycle 01/26 13:07
nosql:洽眾? 01/31 16:30
Becque:請問沒照你想法動作 是純粹時間不對嗎? 明暗 正常? 03/01 12:47
a1314520:不要用P0 03/15 11:35