[問題] 簡單的8051問題

看板ASM作者 (豆腐)時間16年前 (2008/01/25 18:56), 編輯推噓4(404)
留言8則, 6人參與, 最新討論串1/3 (看更多)
我想讓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

01/25 20:25, , 1F
DELAY的時間 算一算大概12秒 問題是在這裡吧
01/25 20:25, 1F

01/25 21:50, , 2F
250*200*240=12M DJNZ一次要2個指令週期12M*2=24M
01/25 21:50, 2F

01/25 21:52, , 3F
24MHz的震盪器1秒震盪24M次 扣掉MOV的指令週期
01/25 21:52, 3F

01/25 21:53, , 4F
差不多是一秒,請問我觀念是不是哪裡錯了呢?
01/25 21:53, 4F

01/26 13:07, , 5F
你忘了machine cycle
01/26 13:07, 5F

01/31 16:30, , 6F
洽眾?
01/31 16:30, 6F

03/01 12:47, , 7F
請問沒照你想法動作 是純粹時間不對嗎? 明暗 正常?
03/01 12:47, 7F

03/15 11:35, , 8F
不要用P0
03/15 11:35, 8F
文章代碼(AID): #17cS1o8S (ASM)
文章代碼(AID): #17cS1o8S (ASM)