📄 count.lst
字号:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 1
MCS-51 Family Macro Assembler A S E M - 5 1 V 1.3
=====================================================
Source File: E:\MiCrOConTroller\Coba_M-IDE\PULSECOUNT\COUNT.asm
Object File: E:\MiCrOConTroller\Coba_M-IDE\PULSECOUNT\COUNT.hex
List File: E:\MiCrOConTroller\Coba_M-IDE\PULSECOUNT\COUNT.lst
Line I Addr Code Source
1: ;********************************************************************
2: ; APPLICATION PROGRAM FOR COUNTER(LCD ,SQUARE WAVE O/P AT PIN NO. 32 (P0.7) AND KEYBOARD MODULE)
3: ;OUTPUT DISPLAY----->
4: ;!!!!!!!!!!!!!!!!!!!!!
5: ;!!STATUS:START/STOP!!
6: ;!! 00:00sec !!
7: ;!!!!!!!!!!!!!!!!!!!!!
8: ;;********************************************************************
9:
10: N 0000 ORG 0000H
11: 0000 02 00 26 LJMP STARTUP ;POWER-ON RESET
12:
13: N 0003 ORG 0003H
14: 0003 02 04 C6 LJMP INTRPT0 ;EXTERNAL INTERRUPT 0
15:
16: N 0000 ORG 000B
17: 0000 02 04 C8 LJMP TIMER0X ;TIMER 0 OVERFLOW
18:
19: N 0013 ORG 0013H
20: 0013 02 04 D5 LJMP INTRPT1 ;EXTERNAL INTERRUPT 1
21:
22: N 0001 ORG 001B
23: 0001 02 04 D7 LJMP TIMER1Y ;TIMER 1 OVERFLOW
24:
25: N 0023 ORG 0023H
26: 0023 02 04 D9 LJMP SERIAL ;UART RX/TX INTERRUPT
27:
28: ;
29: ;********************************************************************
30: ; BYTE VARIABLES
31: ;
32: ;
33: N 40 TEMP_KEY DATA 40H
34: N 41 KEY_ID DATA 41H
35:
36: N 50 CHAR1 DATA 50h
37: N 51 CHAR2 DATA 51h
38: N 52 CHAR3 DATA 52h
39: N 53 CHAR4 DATA 53h
40: N 54 CHAR5 DATA 54h
41: N 55 CHAR6 DATA 55h
42: N 56 CHAR7 DATA 56h
43: N 57 CHAR8 DATA 57h
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: ;
45: N 58 CHAR9 DATA 58h
46: N 59 CHAR10 DATA 59h
47: N 5A CHAR11 DATA 5Ah
48: N 5B CHAR12 DATA 5Bh
49: N 5C CHAR13 DATA 5Ch
50: N 5D CHAR14 DATA 5Dh
51: N 5E CHAR15 DATA 5Eh
52: N 5F CHAR16 DATA 5Fh
53: ;
54: N 60 CHAR17 DATA 60h
55: N 61 CHAR18 DATA 61h
56: N 62 CHAR19 DATA 62h
57: N 63 CHAR20 DATA 63h
58: N 64 CHAR21 DATA 64h
59: N 65 CHAR22 DATA 65h
60: N 66 CHAR23 DATA 66h
61: N 67 CHAR24 DATA 67h
62: ;
63: N 68 CHAR25 DATA 68h
64: N 69 CHAR26 DATA 69h
65: N 6A CHAR27 DATA 6Ah
66: N 6B CHAR28 DATA 6Bh
67: N 6C CHAR29 DATA 6Ch
68: N 6D CHAR30 DATA 6Dh
69: N 6E CHAR31 DATA 6Eh
70: N 6F CHAR32 DATA 6Fh
71:
72: ;********************************************************************
73: ; BIT VARIABLES
74: ;
75: B 90 LCD_D0 BIT P1.0
76: B 91 LCD_D1 BIT P1.1
77: B 92 LCD_D2 BIT P1.2
78: B 93 LCD_D3 BIT P1.3
79: B 94 LCD_D4 BIT P1.4
80: B 95 LCD_D5 BIT P1.5
81: B 96 LCD_D6 BIT P1.6
82: B 97 LCD_D7 BIT P1.7
83:
84: B B5 LCD_EN BIT P3.5
85: B B6 LCD_RW BIT P3.6
86: B B7 LCD_RS BIT P3.7
87:
88: D 0090 LCD_DATA EQU P1
89:
90: N 0080 ADDR1 EQU 80h
91: N 0090 ADDR2 EQU 90h
92:
93: N 20 RUNFLG BIT 20H
94: ;********************************************************************
95: ; CONSTANTS/EXPRESSIONS
96: ;
97: ;********************************************************************
98: ; MAIN PROGRAM STARTS HERE
99: ;
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 3
Line I Addr Code Source
100: 0026 75 81 07 STARTUP: MOV SP,#07h
101: 0029 C2 20 CLR RUNFLG
102: 002B 12 02 56 LCALL RAM_INIT
103:
104: 002E C2 B7 CLR LCD_RS
105: 0030 C2 B6 CLR LCD_RW
106: 0032 D2 B5 SETB LCD_EN
107: 0034 00 NOP
108: 0035 C2 B5 CLR LCD_EN
109:
110: 0037 12 02 5F LCALL LCD_INIT
111: 003A 12 03 EB LCALL DELAY
112: 003D 12 03 EB LCALL DELAY
113:
114: 0040 74 2A MOV A,#'*'
115: 0042 12 02 CC LCALL SEND_DATA
116: 0045 12 02 AC LCALL CHK_BUSY
117:
118: 0048 74 2A MOV A,#'*'
119: 004A 12 02 CC LCALL SEND_DATA
120: 004D 12 02 AC LCALL CHK_BUSY
121:
122: 0050 74 2A MOV A,#'*'
123: 0052 12 02 CC LCALL SEND_DATA
124: 0055 12 02 AC LCALL CHK_BUSY
125:
126: 0058 74 2A MOV A,#'*'
127: 005A 12 02 CC LCALL SEND_DATA
128: 005D 12 02 AC LCALL CHK_BUSY
129:
130: 0060 74 2A MOV A,#'*'
131: 0062 12 02 CC LCALL SEND_DATA
132: 0065 12 02 AC LCALL CHK_BUSY
133:
134: 0068 74 2A MOV A,#'*'
135: 006A 12 02 CC LCALL SEND_DATA
136: 006D 12 02 AC LCALL CHK_BUSY
137:
138: 0070 74 41 MOV A,#'A'
139: 0072 12 02 CC LCALL SEND_DATA
140: 0075 12 02 AC LCALL CHK_BUSY
141:
142: 0078 74 54 MOV A,#'T'
143: 007A 12 02 CC LCALL SEND_DATA
144: 007D 12 02 AC LCALL CHK_BUSY
145:
146: 0080 74 53 MOV A,#'S'
147: 0082 12 02 CC LCALL SEND_DATA
148: 0085 12 02 AC LCALL CHK_BUSY
149:
150: 0088 74 2A MOV A,#'*'
151: 008A 12 02 CC LCALL SEND_DATA
152: 008D 12 02 AC LCALL CHK_BUSY
153:
154: 0090 74 2A MOV A,#'*'
155: 0092 12 02 CC LCALL SEND_DATA
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 4
Line I Addr Code Source
156: 0095 12 02 AC LCALL CHK_BUSY
157:
158: 0098 74 2A MOV A,#'*'
159:
160: 009A 12 02 CC LCALL SEND_DATA
161: 009D 12 02 AC LCALL CHK_BUSY
162:
163: 00A0 74 2A MOV A,#'*'
164: 00A2 12 02 CC LCALL SEND_DATA
165: 00A5 12 02 AC LCALL CHK_BUSY
166:
167: 00A8 74 2A MOV A,#'*'
168: 00AA 12 02 CC LCALL SEND_DATA
169: 00AD 12 02 AC LCALL CHK_BUSY
170:
171: 00B0 74 2A MOV A,#'*'
172: 00B2 12 02 CC LCALL SEND_DATA
173: 00B5 12 02 AC LCALL CHK_BUSY
174:
175: 00B8 74 2A MOV A,#'*'
176: 00BA 12 02 CC LCALL SEND_DATA
177: 00BD 12 02 AC LCALL CHK_BUSY
178:
179:
180: 00C0 74 C0 MOV A,#0C0h
181: 00C2 12 02 BF LCALL SEND_CMD
182: 00C5 12 02 AC LCALL CHK_BUSY
183:
184: 00C8 74 43 MOV A,#'C'
185: 00CA 12 02 CC LCALL SEND_DATA
186: 00CD 12 02 AC LCALL CHK_BUSY
187:
188: 00D0 74 45 MOV A,#'E'
189: 00D2 12 02 CC LCALL SEND_DATA
190: 00D5 12 02 AC LCALL CHK_BUSY
191:
192: 00D8 74 4E MOV A,#'N'
193: 00DA 12 02 CC LCALL SEND_DATA
194: 00DD 12 02 AC LCALL CHK_BUSY
195:
196: 00E0 74 54 MOV A,#'T'
197: 00E2 12 02 CC LCALL SEND_DATA
198: 00E5 12 02 AC LCALL CHK_BUSY
199:
200: 00E8 74 49 MOV A,#'I'
201: 00EA 12 02 CC LCALL SEND_DATA
202: 00ED 12 02 AC LCALL CHK_BUSY
203:
204: 00F0 74 20 MOV A,#20H
205: 00F2 12 02 CC LCALL SEND_DATA
206: 00F5 12 02 AC LCALL CHK_BUSY
207:
208: 00F8 74 53 MOV A,#'S'
209: 00FA 12 02 CC LCALL SEND_DATA
210: 00FD 12 02 AC LCALL CHK_BUSY
211:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 5
Line I Addr Code Source
212: 0100 74 45 MOV A,#'E'
213: 0102 12 02 CC LCALL SEND_DATA
214: 0105 12 02 AC LCALL CHK_BUSY
215:
216: 0108 74 43 MOV A,#'C'
217: 010A 12 02 CC LCALL SEND_DATA
218: 010D 12 02 AC LCALL CHK_BUSY
219:
220: 0110 74 2E MOV A,#'.'
221: 0112 12 02 CC LCALL SEND_DATA
222: 0115 12 02 AC LCALL CHK_BUSY
223:
224: 0118 74 20 MOV A,#20H
225: 011A 12 02 CC LCALL SEND_DATA
226: 011D 12 02 AC LCALL CHK_BUSY
227:
228: 0120 74 54 MOV A,#'T'
229: 0122 12 02 CC LCALL SEND_DATA
230: 0125 12 02 AC LCALL CHK_BUSY
231:
232: 0128 74 49 MOV A,#'I'
233: 012A 12 02 CC LCALL SEND_DATA
234: 012D 12 02 AC LCALL CHK_BUSY
235:
236: 0130 74 4D MOV A,#'M'
237: 0132 12 02 CC LCALL SEND_DATA
238: 0135 12 02 AC LCALL CHK_BUSY
239:
240: 0138 74 45 MOV A,#'E'
241: 013A 12 02 CC LCALL SEND_DATA
242: 013D 12 02 AC LCALL CHK_BUSY
243:
244: 0140 74 52 MOV A,#'R'
245: 0142 12 02 CC LCALL SEND_DATA
246: 0145 12 02 AC LCALL CHK_BUSY
247:
248:
249:
250: 0148 7A 08 MOV R2,#08H
251: 014A 12 03 EB REPEAT: LCALL DELAY
252: 014D DA FB DJNZ R2,REPEAT
253:
254: 014F 12 04 52 LCALL MESSAGE1
255: 0152 12 02 D9 LCALL DISP1
256: 0155 12 03 62 LCALL DISP2
257:
258: 0158 C2 20 CLR RUNFLG
259: 015A 75 68 30 MOV CHAR25,#30H
260: 015D 75 69 30 MOV CHAR26,#30H
261: 0160 75 6B 30 MOV CHAR28,#30H
262: 0163 75 6C 30 MOV CHAR29,#30H
263:
264: 0166 74 C8 MOV A,#0C8H
265: 0168 12 02 BF LCALL SEND_CMD
266: 016B 12 02 AC LCALL CHK_BUSY
267:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 6
Line I Addr Code Source
268: 016E E5 68 MOV A,CHAR25
269: 0170 12 02 CC LCALL SEND_DATA
270: 0173 12 02 AC LCALL CHK_BUSY
271:
272: 0176 E5 69 MOV A,CHAR26
273: 0178 12 02 CC LCALL SEND_DATA
274: 017B 12 02 AC LCALL CHK_BUSY
275:
276: 017E 74 CB MOV A,#0CBH
277: 0180 12 02 BF LCALL SEND_CMD
278: 0183 12 02 AC LCALL CHK_BUSY
279:
280: 0186 E5 6B MOV A,CHAR28
281: 0188 12 02 CC LCALL SEND_DATA
282: 018B 12 02 AC LCALL CHK_BUSY
283:
284: 018E E5 6C MOV A,CHAR29
285: 0190 12 02 CC LCALL SEND_DATA
286: 0193 12 02 AC LCALL CHK_BUSY
287:
288: 0196 12 04 B4 LCALL TMR0_INIT ; TIMER 0 CALL
289:
290: 0199 12 04 39 PROCESS: LCALL WAIT_FOR_KEY
291:
292: 019C E5 41 MOV A,KEY_ID
293: 019E C3 CLR C
294: 019F 94 01 SUBB A,#01H ;CHECK IF IT IS START/STOP KEY
295: 01A1 60 51 JZ STRT_STP
296:
297: 01A3 E5 41 MOV A,KEY_ID
298: 01A5 C3 CLR C
299: 01A6 94 02 SUBB A,#02H ;CHECK IF IT IS RESET KEY
300: 01A8 60 0E JZ RST_KEY
301:
302: 01AA E5 41 MOV A,KEY_ID
303: 01AC C3 CLR C
304: 01AD 94 04 SUBB A,#04H ;CHECK IF IT IS PULSE KEY
305: 01AF 60 5E JZ PULSE_KEY
306:
307: 01B1 E4 CLR A
308: 01B2 F5 40 MOV TEMP_KEY,A
309: 01B4 F5 41 MOV KEY_ID,A
310: 01B6 80 E1 SJMP PROCESS
311:
312: 01B8 74 C8 RST_KEY: MOV A,#0C8H
313: 01BA 12 02 BF LCALL SEND_CMD
314: 01BD 12 02 AC LCALL CHK_BUSY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -