; 该小程序相对简单易懂,通过清零一组并行端口输出高电平,控制LED
ORG 0000H
STAR:CLR P1.0; P1.0端口输出低电平(使用共阴级LED,共阴级LED可使用“SETB P1.0”指令)指示灯点亮
呼叫时间; 调用延迟子程序
SETB P1.0; P1.0端口输出高电平(使用共阴级LED,共阴级LED可使用“CLR P1.0”指令)指示灯熄灭
CLR P1.1
LCALL TIME
SETB P1.1
CLR P1.2
LCALL TIME
SETB P1.2
CLR P1.3
LCALL TIME
SETB P1.3
CLR P1.4
LCALL TIME
SETB P1.4
CLR P1.5
LCALL TIME
SETB P1.5
CLR P1.6
LCALL TIME
SETB P1.6
CLR P1.7
LCALL TIME
SETB P1.7
SJMP STAR; 返回主例程执行循环
TIME:MOV R0,#255; 延迟子程序
D1:MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET
结束
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $。
; 第二小程序使用前面的数字11111110,然后循环向右移动(向左移动)以实现流水灯
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV A,#0FEH; 发送数据初始值
MOV P1,a; 数据发送P1端口点亮发光二极管
A呼叫时间; 延迟时间
MOV R3,#07H; 向左移动7次
LOOP: RL A; 向左挪一个
MOV P1,a; 数据发送P1端口点亮发光二极管
A呼叫延迟; 延迟时间
DJNZ R3,LOOP; R3是否为0,如果不是0,则转动LOOP继续执行
AJMP MAIN; 返回主周期执行
TIME:MOV R0,#255; 延迟子程序
D1:MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET
结束