📄 leddisp.lst
字号:
LEDDISP PAGE 1
1 $MOD51
2
0070 3 STACKTOP EQU 70H ; start of stack (grows up)
F000 4 LEDREG EQU 0F000H ; LED register address
5
---- 6 DSEG
0030 7 ORG 30H
0030 8 CNTR: DS 1 ; counter for wait routine
9
---- 10 CSEG
0000 11 ORG 0000H ; program starts at 0 after reset
0000 12 START:
13 ; initialize stack pointer ...
0000 758170 14 MOV SP,#STACKTOP
15 ; and the initial bit pattern to display
0003 7401 16 MOV A,#1
0005 17 LOOP:
18 ; show the bits on the LED digit
0005 90F000 19 MOV DPTR,#LEDREG
0008 F0 20 MOVX @DPTR,A
21 ; wait long enough so we can see the bits ...
0009 12000F 22 CALL WAIT
23 ; then rotate the bit pattern ...
000C 23 24 RL A
25 ; and then do it all again
000D 80F6 26 JMP LOOP
27
28
29 ; this subroutine waits about 1 second
000F 30 WAIT:
000F C0E0 31 PUSH ACC
0011 C0F0 32 PUSH B
0013 75300A 33 MOV cntr,#10
0016 34 WAIT1:
0016 75F000 35 MOV B,#0
0019 36 WAIT2:
0019 7400 37 MOV A,#0
001B D5E0FD 38 DJNZ ACC,$
001E D5F0F8 39 DJNZ B,WAIT2
0021 D530F2 40 DJNZ CNTR,WAIT1
0024 D0F0 41 POP B
0026 D0E0 42 POP ACC
0028 22 43 RET
44
45 END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
LEDDISP PAGE 2
ACC. . . . . . . . . . . . . . . D ADDR 00E0H PREDEFINED
B. . . . . . . . . . . . . . . . D ADDR 00F0H PREDEFINED
CNTR . . . . . . . . . . . . . . D ADDR 0030H
LEDREG . . . . . . . . . . . . . NUMB F000H
LOOP . . . . . . . . . . . . . . C ADDR 0005H
SP . . . . . . . . . . . . . . . D ADDR 0081H PREDEFINED
STACKTOP . . . . . . . . . . . . NUMB 0070H
START. . . . . . . . . . . . . . C ADDR 0000H NOT USED
WAIT . . . . . . . . . . . . . . C ADDR 000FH
WAIT1. . . . . . . . . . . . . . C ADDR 0016H
WAIT2. . . . . . . . . . . . . . C ADDR 0019H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -