作者icetofux (豆腐)
看板ASM
標題[問題] 簡單的8051問題
時間Fri Jan 25 18:56:48 2008
我想讓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
1F:推 BACCAB:DELAY的時間 算一算大概12秒 問題是在這裡吧 01/25 20:25
2F:→ icetofux:250*200*240=12M DJNZ一次要2個指令週期12M*2=24M 01/25 21:50
3F:→ icetofux:24MHz的震盪器1秒震盪24M次 扣掉MOV的指令週期 01/25 21:52
4F:→ icetofux:差不多是一秒,請問我觀念是不是哪裡錯了呢? 01/25 21:53
5F:推 BASG:你忘了machine cycle 01/26 13:07
6F:→ nosql:洽眾? 01/31 16:30
7F:推 Becque:請問沒照你想法動作 是純粹時間不對嗎? 明暗 正常? 03/01 12:47
8F:推 a1314520:不要用P0 03/15 11:35