LOP: MOV P0,#0FEH//使p0口的第0位为零,以点亮第一个发光二极管
ACALL DEL//调用延时子程序下同
MOV P0,#0FDH//使p0口的第1位为零,以点亮第二个发光二极管
ACALL DEL
MOV P0,#0FBH
ACALL DEL
MOV P0,#0F7H
ACALL DEL
MOV P0,#0EFH
ACALL DEL
MOV P0,#0DFH
ACALL DEL
MOV P0,#0BFH
ACALL DEL
MOV P0,#7FH
CLR A//将累加器A的内容清0
MOVC A,@A+DPTR//将DPTR内容取出,既是每次要显示数字的八位码,先送入累加器A中
CJNZ A,#00H,SHOWLED//如果累加器A中的不为0,则跳转至SHOWLED标识的子程序段执行
JZ SHOW//若A为0则调用SHOW标识的子程序段执行;
LOP1: ACALL DEL
AJMP LOP
SHOW: MOV DPTR,#TAB
ACALL LOP1
SHOWLED: MOV P1,A ;显示LCD //将累加器A中内容送入P1口以使数码管显示
INC DPTR//使DPTR地址加一,以使指向下一个要送入P1的码表中的码
ACALL LOP1
DEL: MOV R5,#01H//延时子程序begin
DEL3: MOV R7,#FEH
DEL1: MOV R6,#FEH
DEL2: DJNZ R6,DEL2
DJNZ R7,DEL1
DJNZ R5,DEL3
RET //延时子程序end
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H ;不带小数点十六进制数字8--16对应的编码
END
由于初学,自己写的P0口控制流水灯,P1口控制一个数码管,仿真没有发现问题,下到板子上后,数码管只运行到F后,然后就停住了,流水等还继续走了几遍后,也停住了,不知为何?请高手赐教!!![/center]
[/color][/size]
[/size]