作者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