📄 ex9-4.lst
字号:
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 1
MCS-51 Family Cross Assembler A S E M - 5 1 V 1.2
=====================================================
Source File: EX9-4.ASM
Object File: EX9-4.HEX
List File: EX9-4.LST
Line I Addr Code Source
1: B B5 DIN BIT P3.5 ;定义I/O口
2: B B6 LOAD BIT P3.6
3: B B7 CLK BIT P3.7
4: N 0000 ORG 0000H ;复位入口
5: 0000 02 00 30 LJMP MAIN
6: N 0030 ORG 0030H ;主程序起始地址
7: 0030 75 81 60 MAIN: MOV SP,#60H ;设置堆栈指针
8: 0033 7F 0A MOV R7,#0AH ;亮度寄存器
9: 0035 7D 07 MOV R5,#07H ;亮度值
10: 0037 12 00 6E LCALL DINPUT ;调用7219命令写入子程序
11: 003A 7F 0B MOV R7,#0BH ;扫描界限寄存器
12: 003C 7D 07 MOV R5,#07H ;显示8位数字
13: 003E 12 00 6E LCALL DINPUT ;调MAX7219命令写入子程序
14: 0041 7F 09 MOV R7,#09H ;译码方式寄存器
15: 0043 7D FF MOV R5,#0FFH ;#FFH=7-0位均译为B码,#00=不译码
16: 0045 12 00 6E LCALL DINPUT ;调MAX7219命令写入子程序
17: 0048 7F 0C MOV R7,#0CH ;停机寄存器
18: 004A 7D 01 MOV R5,#01H ;正常工作
19: 004C 12 00 6E LCALL DINPUT ;调MAX7219命令写入子程序
20: 004F 75 30 FF MOV 30H,#0FFH ;30H-37H为显示缓冲区
21: 0052 75 31 FF MOV 31H,#0FFH
22: 0055 75 32 08 MOV 32H,#08H ;显示..8051..
23: 0058 75 33 00 MOV 33H,#00H
24: 005B 75 34 05 MOV 34H,#05H
25: 005E 75 35 01 MOV 35H,#01H
26: 0061 75 36 FF MOV 36H,#0FFH
27: 0064 75 37 FF MOV 37H,#0FFH
28: 0067 7F 30 MOV R7,#30H
29: 0069 12 00 8B LCALL DISPLY ;调MAX7219显示子程序
30: 006C 80 FE SJMP $
31: 006E EF DINPUT: MOV A,R7 ;7219命令写入子程序,传递来的第1个参数保存在R7中
32: 006F 7A 08 MOV R2,#08 ;作为Max7219控制寄存器的8位地址值
33: 0071 33 LOOP1: RLC A ;A的D7位移至DIN,依次为D6~D0
34: 0072 92 B5 MOV DIN, C ;8位地址输入DIN
35: 0074 C2 B7 CLR CLK
36: 0076 D2 B7 SETB CLK
37: 0078 DA F7 DJNZ R2,LOOP1
38: 007A ED MOV A,R5 ;传递来的第2个参数保存在R5中
39: 007B 7A 08 MOV R2,#08 ;作为写入Max7219控制寄存器的8位命令数据值
40: 007D 33 LOOP2: RLC A ;A的D7位移至P1.0,依次为D6~D0
41: 007E 92 B5 MOV DIN, C ;8位数据输入DIN
42: 0080 C2 B7 CLR CLK
43: 0082 D2 B7 SETB CLK
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0084 DA F7 DJNZ R2,LOOP2
45: 0086 C2 B6 CLR LOAD ;输出LOAD信号,上升沿装载寄存器数据
46: 0088 D2 B6 SETB LOAD
47: 008A 22 RET
48: 008B EF DISPLY: MOV A,R7 ;7219显示子程序,R7的内容为7219显示缓冲区入口地址
49: 008C F8 MOV R0,A ;R0指向显示缓冲区首地址
50: 008D 79 01 MOV R1,#01 ;R1指向8字节显示RAM首地址
51: 008F 7B 08 MOV R3,#08
52: 0091 E6 LOOP3: MOV A,@R0 ;取出显示数据→R5
53: 0092 FD MOV R5,A
54: 0093 E9 MOV A,R1 ;取出显示RAM地址→R7
55: 0094 FF MOV R7,A
56: 0095 12 00 6E LCALL DINPUT ;调MAX7219命令写入子程序
57: 0098 08 INC R0
58: 0099 09 INC R1
59: 009A DB F5 DJNZ R3,LOOP3
60: 009C 22 RET
61: END
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AC BIT D6
ACC DATA E0
B DATA F0
CLK BIT B7 3
CY BIT D7
DIN BIT B5 1
DINPUT CODE 006E 31
DISPLY CODE 008B 48
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
LOAD BIT B6 2
LOOP1 CODE 0071 33
LOOP2 CODE 007D 40
LOOP3 CODE 0091 52
MAIN CODE 0030 7
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -