給你個絕對能用的
START: MOV R0, #0
MOV DPTR,#TABLE
LOOP: ACALL DISPLAY
INC R0 ;計時器加1
CJNE R0, #250,LOOP
JMP START
;-----------------------------------------
DISPLAY:MOV A, R0 ;
MOV B, #10
DIV AB
MOV R1, A
MOV R2, B
;--------
MOV A, R1 ;
MOV B, #10 ;換成十進制
DIV AB ;a/b的商存入A,余數存入B
MOV R1, A ;R1暫時
MOV R4, B ;R2放十位
;---------
MOV A, R1 ;
MOV B, #10
DIV AB ;a/b的商存入A,余數存入B
MOV R1, A
MOV R5, B
MOV R3, #60 ;導通頻率為50
;------個位數顯示-----------------------------------
LOOP1:MOV A,R2
ACALL CHANG
CLR P2.0 ;開個位顯示
ACALL DLY10MS ;延時
SETB P2.0 ;關個位顯示
;-------十位顯示---------------------------------
MOV A,R4
ACALL CHANG
CLR P2.1
ACALL DLY10MS
SETB P2.1
;-------百位顯示-----------------------------------
MOV A,R5
ACALL CHANG
CLR P2.2
ACALL DLY10MS
SETB P2.2
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 |