你拷贝丢了秒个位显示,只要把显示顺序颠倒一下就可以了。
DISP:
MOV A,30H
MOV B,#10
DIV AB
MOV 20H,B ;余数(秒个位数)
MOV 21H,A ;商(秒十位数)
MOV A,31H
MOV B,#10
DIV AB
MOV 22H,B ;余数(分个位数)
MOV 23H,A ;商(分十位数)
MOV A,32H
MOV B,#10
DIV AB
MOV 24H,B ;余数(时个位数)
MOV 25H,A ;商(时十位数)
MOV A,20H ;秒个位
ACALL SEG7
SETB P2.6
MOV P0,A
CLR P2.6
MOV P0,00H
ACALL DLY
SETB P2.7
SETB P0.5
CLR P2.7
MOV A,21H ;秒十位
ACALL SEG7
SETB P2.6
MOV P0,A
CLR P2.6
MOV P0,00H
ACALL DLY
SETB P2.7
SETB P0.4
CLR P2.7
MOV A,22H ;分个位
ACALL SEG7
SETB P2.6
MOV P0,A
CLR P2.6
MOV P0,00H
ACALL DLY
SETB P2.7
SETB P0.3
CLR P2.7
MOV A,23H ;分十位
ACALL SEG7
SETB P2.6
MOV P0,A
CLR P2.6
MOV P0,00H
ACALL DLY
SETB P2.7
SETB P0.2
CLR P2.7
MOV A,24H ;时个位
ACALL SEG7
SETB P2.6
MOV P0,A
CLR P2.6
MOV P0,00H
ACALL DLY
SETB P2.7
SETB P0.1
CLR P2.7
MOV A,25H ;时十位
ACALL SEG7
SETB P2.6
MOV P0,A
CLR P2.6
MOV P0,00H
ACALL DLY
SETB P2.7
SETB P0.0
CLR P2.7
MOV P0,00H
AJMP DISP
SEG7: INC A
MOVC A,@A+PC
RET
DB 0C0H ;0 共阴
DB 0F9H ;1
DB 0A4H ;2
DB 0B0H ;3
DB 099H ;4
DB 092H ;5
DB 082H ;6
DB 0F8H ;7
DB 080H ;8
DB 090H ;9
END
仅仅是想要改变数字的显示位置?
程序,不用变。
你把数码管引脚上的标号:1、2、3、456,重新安排一下,即可。
--------------------
但是,程序,还是有瑕疵的。
比如这句:
MOV P0, 00H
你能说一下,这句是干什么的吗?
应该是这样吧:
MOV P0, #00H