让你一个门外汉也能看懂汇编语言的程序:
START: MOV R0, #0 ;初始化计数器
MOV DPTR,#TABLE ;存入查表起始地址
LOOP: ACALL DISPLAY ;调用扫描程序
INC R0 ;计时器加1
CJNE R0, #10,LOOP; 不是10转移
JMP START
;-----------------------------------------
DISPLAY:
MOV A, R0 ;
MOV B, #10 ;换成十进制
DIV AB ;a/b的商存入A,余数存入B
MOV R1, A ;R1暂时
MOV R2, B ;R2放个位
;------个位数显示-----------------------------------
LOOP1:MOV A,R2
ACALL CHANG
CLR P2.0 ;开个位显示
ACALL DLY10MS ;延时
SETB P2.0 ;关个位显示
DJNZ R3, LOOP1 ;计数器减1不为0转移到LOOP
RET
;取表显示子程序------------------------
CHANG: MOVC A,@A+DPTR ;
MOV P0, A ;
RET
;--------------------------
;延时程序
;--------------------------
DLY10MS: MOV R6, #10
D1: MOV R7, #250
DJNZ R7, $
DJNZ R6, D1
RET
;-------------------------------
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;------------------------------
END
你也可以以此类推扩展到你想要的多位数0-999999等