以AT89c51为例:
我写代码如下: mov a,#1H
L: mov p2,a
rr a
nop
ljmp l
end
这个程序在ISIS软件上模拟运行后,P2端不接负载以每1.2秒速度向右移,P2轮翻输出低电平 ,但是奇怪的事情发生了。。。。接上负载后,速度改变了,并且看不出它是足个脚依次流水的,。。空载时也很奇怪,我在NOP 后再加一NOP,这里流水速度并没有发生变慢,反而变快了,这是为什么啊。。我是菜鸟,可是我怎么觉得单片机不听使唤啊
请各大侠们指点迷精,我觉得很有意思,可是我不懂。。求解,谢谢。!
哦。。
软件和现实相差很远吗
那为什么接负载又不一样呢
不是软件和现实相差很远,而是你的程序有问题
mov a,#1H ; 这样试试 加个 延时
L: mov p2,a
rr a
ACALL DELAY0
ljmp l
DELAY0: MOV R2, #5 ; 延时 1.2 S
DELAY1: MOV R1, #250 ; 延时 250 mS
DELAY2: MOV R0, #250 ; 延时 1 mS
DELAY8: NOP
NOP
DJNZ R0, DELAY8
DJNZ R1, DELAY2
DJNZ R2, DELAY1
RET
END
还是太快了
追答MOV R2, #10 ; 加大数值 试试
追问OH YES,谢谢拉。。。大侠!!!
本回答被提问者采纳