ORG 000H //定位,使程序放在0000H处
MOV P1,#0FFH //使P1口全为高电平,八个灯全灭
L034: MOV A,#0FEH //11111110B值送入A,只使P1.0为低电平
L033: MOV P1,A //将A值送出P1口,只有D1亮
LCALL SE19 //调用延时子程序(决定每个灯亮的时间长度)
// {可在此再次(或多次)加入“LCALL SE19”使亮的时间增加一倍}
RL A //左循环位移,为了下次只使D2亮(再下次就是D3……)
SJMP L033 //跳转到L033处重新执行,使D1、D2、D3……D1轮流亮
//下面是延时程序,决定每调用一次延时多长时间
ORG 07A0H //定位,将下面的程序(延时程序段)放在07A0H处
SE19: MOV R6,#0A0H //更改#0A0H值
L036: MOV R7,#0FFH //或更改#0FFH值就可以改变其每次调用延时的时间
L035: DJNZ R7,L035
DJNZ R6,L036
RET
END |