這是一款0-999999計(jì)數(shù)器的另一種形式。 ;**************************** org 00h ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV 30H,#00H ;30h--33h is a buffer for four 7-segment led display. MOV 31H,#00H ;at the beginning,the four 7-seg led all diaplay zero. MOV 32H,#00H MOV 33H,#00H MOV DPTR,#TAB MAIN1: MOV 35h,#10 lop1: MOV 34H,#00 ;34h and 35h is a counter for control the counter time.the 00h equal 256. LOOP: MOV A,30H MOVC A,@A+DPTR SETB P2.1 CLR P2.6 MOV P0,A LCALL DELAY MOV P0,#0FFH ;display the lowest 7-seg led.
MOV A,31H MOVC A,@A+DPTR SETB P2.6 CLR P2.5 MOV P0,A LCALL DELAY MOV P0,#0FFH
MOV A,32H MOVC A,@A+DPTR SETB P2.5 CLR P2.4 MOV P0,A LCALL DELAY MOV P0,#0FFH
MOV A,33H MOVC A,@A+DPTR SETB P2.4 CLR P2.3 MOV P0,A LCALL DELAY MOV P0,#0FFH ;display the highest 7-seg led.
SETB P2.3 CLR P2.2 MOV P0,#28h LCALL DELAY MOV P0,#0FFH ;display the highest 7-seg led.
SETB P2.2 CLR P2.1 MOV P0,#28h LCALL DELAY MOV P0,#0FFH ;display the highest 7-seg led.
DJNZ 34H,LOOP ;scan one time,34h decrease one,if 34h decrease to zero,the buffer content will change.
djnz 35h,lop1
INC 30H MOV A,30H CJNE A,#10,MAIN1 MOV 30H,#00H ;if 30h increase to 10,then clear 30h and increase 31h.
INC 31H MOV A,31H CJNE A,#10,MAIN1 MOV 31H,#00H ;if 31h increase to 10,then clear 31h and increase 32h.
INC 32H MOV A,32H CJNE A,#10,MAIN1 MOV 32H,#00H ;if 32h increase to 10,then clear 32h and increase 33h.
INC 33H MOV A,33H CJNE A,#10,MAIN2 MOV 33H,#00H ;if 33h increase to 10,then clear 33h and jump to main. AJMP MAIN
main2: ajmp main1 DELAY: CLR P3.3 MOV R7,#2 NOP NOP D1: MOV R6,#2 SETB P3.3 D2: DJNZ R6,D2 CLR P3.3 DJNZ R7,D1 SETB P3.3 RET TAB: DB 28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H
END |
|