请教高手:汇编语言控制数码管的问题?
程序如下:
DIN EQU P2.2
LAT EQU P2.1
CLK EQU P2.0
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV DPTR,#TAB ;首地址
NEXT1: MOV R0,#00H
NEXT2: MOV A,R0 ;取要显示的数据
MOVC A,@A+DPTR ;查表
MOV R3,#08H ;①
LOOP: RLC A
MOV R1_1,C
SETB CLK
CLR CLK
DJNZ R3,LOOP
SETB LAT
CLR LAT
ACALL DELAY ;调用延时1S子程序
INC R0 ;修改显示数据
CJNE R0,#06H,NEXT2 ;不到5,继续加1循环显示②
MOV R0,#00H
SJMP NEXT1
TAB: DB 0c0H,79h,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,79H
DELAY: MOV R5,#08H ;延时1S子程序
DELAY1: MOV R6,#0FAH
DELAY2: MOV R7,#0FAH
DJNZ R7,$
DJNZ R6,DELAY2
DJNZ R5,DELAY1
RET
END
硬件是用51单片机,控制6个74HC595控制6个7段“8字形”数码管! 就此程序可以实现显示5 4 3 2 1 0 ,然后移位0 5 4 3 2 1! 当把程序中标有②处改为:CJNE R0,#10H,NEXT2时,不能实现显示5 4 3 2 1 0 到 0 9 8 7 6 5 这样移位!
请教高手,如果要实现显示5 4 3 2 1 0 到 0 9 8 7 6 5 这样移位,程序中②应该如何改,程序中①处是否也要做相应改变?请不吝赐教! 谢谢!!!
发表时间:2007年2月24日21:32:39