用两个开关分别控制跑马灯的加速与减速

来源:百度知道 编辑:UC知道 时间:2024/06/04 15:00:19
首先是mcs-51单片机,现在给出以下的跑马灯程序
org 0
clr c
mov a,#01h
loop:mov p1,a
lcall delay
rlc a
ljmp loop
delay:mov r0,#0
d1:mov r1,#0
djnz r1,$
djnz r0,d1
ret
end
现在要求闭合开关k1时,跑马灯缓慢的加速,最后达到恒定的速度运行,此时闭合开关k2时,跑马灯缓慢的减速,直到达到最初的速度。(注意:跑马灯快速与慢速的运行,不是一下子就达到那种速度,必须有缓慢加速与缓慢的减速的过程)
请问我该怎么改上面的程序啊?
可以发到dapan.37@163.com

我把编译好的文件发到你邮箱里去了,去看看吧!

K1 REG P3.2
K2 REG P3.3
;
ORG 0
CLR C
MOV 20H,#01H ;20H 为速度调整用
MOV A,#01H
LOOP: JB K1,$A
INC 20H ;减速
MOV A,20H
JNZ $A
MOV 20H,#FFH ;最慢速度
$A JB K2,$B
DEC 20H ;加速
MOV A,20H
JNZ $B ;为1 则速度最快
MOV 20H,#01H ;最快速度
$B MOV P1,A
LCALL DELAY
RLC A
LJMP LOOP
;
DELAY: MOV A,20H
$1 CALL DLY
DJNZ A,$1
RET
;
DLY: MOV R0,#10 ;调整 R0,R1 值可以改变步进速度及最快,最慢速度
D1: MOV R1,#0
DJNZ R1,$
DJNZ R0,D1
RET
END