数码管0~9的显示,延时1s_没有通过用计数器的延时

;NAME: 数码管0~9的显示
;AUTOR:
;TIEE: 2012年3月29日 13:22:22
【数码管0~9的显示,延时1s_没有通过用计数器的延时】;CONTENT: 数码管0~9的显示,延时1s(没有通过用计数器的延时)
6 ORG 0000H
7 SJMP MAIN
8 ORG 0030H
9 MAIN:
10 LOOP1: MOV A, #00H
11 MOV R5,#00H
12 MOV DPTR, #TAB ;首地址即0C0HQA的地址
13 LOOP2:
14 MOV A, R5
15 MOVC A, @A+DPTR
16 MOV P1, A
17 CALL DELAY
18 CJNE R5, #0AH , FLAG ;比较R5是否等于10,若不是向FLAG跳转
19 SJMP LOOP1 ;当R5等与10,重新开始,即跳到了LOOP1:A的值变为0
20 FLAG: INC R5
21 SJMP LOOP2 ;当R5不等于10,程序跳到了LOOP2,即显示下一个数字
22
23 ;执行1s的延时程序
24 DELAY:
25 MOV R7, #1DH
26 DL1:
27 MOV R6, #10H
28 DL0:
29 MOV R4, #0B2H
30
31 DJNZ R4, $
32 DJNZ R6, DL0
33 DJNZ R7, DL1
34 RET
35
36 ;DELAY:
37 ; MOV R0, #250D
38 ; DJNZ R0, DELAY1
39 ;DELAY1:
40 ; MOV R1, #250D
41 ; DJNZ R1, DELAY2
42 ;DELAY2:
43 ; MOV R2, #250D
44 ; DJNZ R2, $
45 ; RET
46
47 TAB:
48 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
49 END
 

    推荐阅读