📄 ex10-2.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: EX10-2.ASM
Object File: EX10-2.HEX
List File: EX10-2.LST
Line I Addr Code Source
1: B 90 S_SET BIT P1.0 ;数字钟秒控制位
2: B 91 M_SET BIT P1.1 ;分钟控制位
3: B 92 H_SET BIT P1.2 ;小时控制位
4: N 0030 SECOND EQU 30H
5: N 0031 MINUTE EQU 31H
6: N 0032 HOUR EQU 32H
7: N 0034 TCNT EQU 34H
8: N 0000 ORG 00H
9: 0000 80 0C SJMP START
10: N 000B ORG 0BH
11: 000B 02 00 91 LJMP INT_T0
12: 000E 90 01 32 START: MOV DPTR,#TABLE
13: 0011 75 32 00 MOV HOUR,#0 ;初始化
14: 0014 75 31 00 MOV MINUTE,#0
15: 0017 75 30 00 MOV SECOND,#0
16: 001A 75 34 00 MOV TCNT,#0
17: 001D 75 89 01 MOV TMOD,#01H
18: 0020 75 8C 3C MOV TH0,#3CH ;fosc=12MHz,定时50毫秒
19: 0023 75 8A B0 MOV TL0,#0B0H
20: 0026 75 A8 82 MOV IE,#82H
21: 0029 D2 8C SETB TR0
22: ;****************************************************
23: ;判断是否有控制键按下,是哪一个键按下
24: 002B 12 00 C9 A1: LCALL DISPLAY
25: 002E 30 90 09 JNB S_SET,S1
26: 0031 30 91 19 JNB M_SET,S2
27: 0034 30 92 29 JNB H_SET,S3
28: 0037 02 00 2B LJMP A1
29: 003A 12 01 3C S1: LCALL DELAY ;去抖动
30: 003D 20 90 EB JB S_SET,A1
31:
32: 0040 05 30 INC SECOND ;秒值加1
33: 0042 E5 30 MOV A,SECOND
34: 0044 B4 3C 32 CJNE A,#60,J0 ;判断是否加到60秒
35: 0047 75 30 00 MOV SECOND,#0
36: 004A 02 00 53 LJMP K1
37: 004D 12 01 3C S2: LCALL DELAY
38: 0050 20 91 D8 JB M_SET,A1
39:
40: 0053 05 31 K1: INC MINUTE ;分钟值加1
41: 0055 E5 31 MOV A,MINUTE
42: 0057 B4 3C 27 CJNE A,#60,J1 ;判断是否加到60分
43: 005A 75 31 00 MOV MINUTE,#0
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 005D 02 00 66 LJMP K2
45: 0060 12 01 3C S3: LCALL DELAY
46: 0063 20 92 C5 JB H_SET,A1
47:
48: 0066 05 32 K2: INC HOUR ;小时值加1
49: 0068 E5 32 MOV A,HOUR
50: 006A B4 18 1C CJNE A,#24,J2 ;判断是否加到24小时
51: 006D 75 32 00 MOV HOUR,#0
52: 0070 75 31 00 MOV MINUTE,#0
53: 0073 75 30 00 MOV SECOND,#0
54: 0076 02 00 2B LJMP A1
55: ;****************************************************
56: ;等待按键抬起
57: 0079 20 90 AF J0: JB S_SET,A1
58: 007C 12 00 C9 LCALL DISPLAY
59: 007F 80 F8 SJMP J0
60: 0081 20 91 A7 J1: JB M_SET,A1
61: 0084 12 00 C9 LCALL DISPLAY
62: 0087 80 F8 SJMP J1
63: 0089 20 92 9F J2: JB H_SET,A1
64: 008C 12 00 C9 LCALL DISPLAY
65: 008F 80 F8 SJMP J2
66: ;***********************************************
67: ;定时器中断服务程序,对秒,分钟和小时的计数
68: 0091 75 8C 3C INT_T0: MOV TH0,#3CH
69: 0094 75 8A B0 MOV TL0,#0B0H
70: 0097 05 34 INC TCNT
71: 0099 E5 34 MOV A,TCNT
72: 009B B4 14 2A CJNE A,#20,RETUNE ;计时1秒
73: 009E 05 30 INC SECOND
74: 00A0 75 34 00 MOV TCNT,#0
75: 00A3 E5 30 MOV A,SECOND
76: 00A5 B4 3C 20 CJNE A,#60,RETUNE
77: 00A8 05 31 INC MINUTE
78: 00AA 75 30 00 MOV SECOND,#0
79: 00AD E5 31 MOV A,MINUTE
80: 00AF B4 3C 16 CJNE A,#60,RETUNE
81: 00B2 05 32 INC HOUR
82: 00B4 75 31 00 MOV MINUTE,#0
83: 00B7 E5 32 MOV A,HOUR
84: 00B9 B4 18 0C CJNE A,#24,RETUNE
85: 00BC 75 32 00 MOV HOUR,#0
86: 00BF 75 31 00 MOV MINUTE,#0
87: 00C2 75 30 00 MOV SECOND,#0
88: 00C5 75 34 00 MOV TCNT,#0
89: 00C8 32 RETUNE: RETI
90: ;******************************************
91: ;显示控制子程序
92: 00C9 E5 30 DISPLAY:MOV A,SECOND ;显示秒
93: 00CB 75 F0 0A MOV B,#10
94: 00CE 84 DIV AB
95: 00CF C2 B6 CLR P3.6
96: 00D1 93 MOVC A,@A+DPTR
97: 00D2 F5 80 MOV P0,A
98: 00D4 12 01 3C LCALL DELAY
99: 00D7 D2 B6 SETB P3.6
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
Line I Addr Code Source
100: 00D9 E5 F0 MOV A,B
101: 00DB C2 B7 CLR P3.7
102: 00DD 93 MOVC A,@A+DPTR
103: 00DE F5 80 MOV P0,A
104: 00E0 12 01 3C LCALL DELAY
105: 00E3 D2 B7 SETB P3.7
106:
107: 00E5 C2 B5 CLR P3.5
108: 00E7 75 80 40 MOV P0,#40H ;显示分隔符
109: 00EA 12 01 3C LCALL DELAY
110: 00ED D2 B5 SETB P3.5
111:
112: 00EF E5 31 MOV A,MINUTE ;显示分钟
113: 00F1 75 F0 0A MOV B,#10
114: 00F4 84 DIV AB
115: 00F5 C2 B3 CLR P3.3
116: 00F7 93 MOVC A,@A+DPTR
117: 00F8 F5 80 MOV P0,A
118: 00FA 12 01 3C LCALL DELAY
119: 00FD D2 B3 SETB P3.3
120: 00FF E5 F0 MOV A,B
121: 0101 C2 B4 CLR P3.4
122: 0103 93 MOVC A,@A+DPTR
123: 0104 F5 80 MOV P0,A
124: 0106 12 01 3C LCALL DELAY
125: 0109 D2 B4 SETB P3.4
126:
127: 010B C2 B2 CLR P3.2
128: 010D 75 80 40 MOV P0,#40H ;显示分隔符
129: 0110 12 01 3C LCALL DELAY
130: 0113 D2 B2 SETB P3.2
131:
132: 0115 E5 32 MOV A,HOUR ;显示小时
133: 0117 75 F0 0A MOV B,#10
134: 011A 84 DIV AB
135: 011B C2 B0 CLR P3.0
136: 011D 93 MOVC A,@A+DPTR
137: 011E F5 80 MOV P0,A
138: 0120 12 01 3C LCALL DELAY
139: 0123 D2 B0 SETB P3.0
140: 0125 E5 F0 MOV A,B
141: 0127 C2 B1 CLR P3.1
142: 0129 93 MOVC A,@A+DPTR
143: 012A F5 80 MOV P0,A
144: 012C 12 01 3C LCALL DELAY
145: 012F D2 B1 SETB P3.1
146: 0131 22 RET
147:
148: 0132 3F 06 5B 4F TABLE: DB 3FH,06H,5BH,4FH,66H
0136 66
149: 0137 6D 7D 07 7F DB 6DH,7DH,07H,7FH,6FH
013B 6F
150: 013C 7E 0A DELAY: MOV R6,#10
151: 013E 7F FA D1: MOV R7,#250
152: 0140 DF FE DJNZ R7,$
153: 0142 DE FA DJNZ R6,D1
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
Line I Addr Code Source
154: 0144 22 RET
155:
156: END
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 5
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
A1 CODE 002B 24
AC BIT D6
ACC DATA E0
B DATA F0
CY BIT D7
D1 CODE 013E 151
DELAY CODE 013C 150
DISPLAY CODE 00C9 92
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
HOUR NUMBER 0032 6
H_SET BIT 92 3
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
INT_T0 CODE 0091 68
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
J0 CODE 0079 57
J1 CODE 0081 60
J2 CODE 0089 63
K1 CODE 0053 40
K2 CODE 0066 48
MINUTE NUMBER 0031 5
M_SET BIT 91 2
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
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 6
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RETUNE CODE 00C8 89
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
S1 CODE 003A 29
S2 CODE 004D 37
S3 CODE 0060 45
SBUF DATA 99
SCON DATA 98
SECOND NUMBER 0030 4
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
START CODE 000E 12
S_SET BIT 90 1
T0 BIT B4
T1 BIT B5
TABLE CODE 0132 148
TB8 BIT 9B
TCNT NUMBER 0034 7
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 + -