📄 test153s.lst
字号:
198 ;-----------------------
199 0007C GET_KEY2:
200 0007C 0D91 jbc key_flag,key2_again
201 0007D 1483 jmp GET_KEY2_off
202 0007E 0B91 bs key_flag,key2_again
203 0007F 0AC5 bs port5,3
204 00080 0B46 bs port6,5
205 00081 0B86 bs port6,6
206 00082 1421 jmp MAIN_Loop_01
207 00083 GET_KEY2_off:
208 00083 0991 bc key_flag,key2_again
209 00084 08C5 bc port5,3
210 00085 0FC6 jbs port6,7
211 00086 0946 bc port6,5
212 00087 0986 bc port6,6
213 00088 1421 jmp MAIN_Loop_01
214
215 00089 GET_KEY3:
216 00089 00D3 clr time_5min
217 0008A 0891 BC KEY_FLAG,F_1S
218 0008B 00D6 CLR TIME_1S
219 0008C 1801 MOV A,@1
220 0008D 0062 MOV TEMP,A
221 0008E 001F IOR IOCF
222 0008F 0222 OR A,TEMP ;set TICE is 1
223 00090 000F IOW IOCF
224 00091 0010 ENI
225 00092 0555 inc Key3_step
226 00093 1807 MOV A,@7
227 00094 0295 and a,Key3_step
228 00095 03C2 add pc,a
229 00096 0000 nop
230 00097 14A7 jmp GET_KEY3_5min
231 00098 14AF jmp GET_KEY3_10min
232 00099 14B7 jmp GET_KEY3_20min
233 0009A 149E jmp GET_KEY3_30min
234 0009B 0000 nop
235 0009C 0000 nop
236 0009D 0000 nop
237 0009E GET_KEY3_30min:
238 0009E 00D5 clr Key3_step
239 0009F 1806 mov a,@6
240 000A0 0054 mov key3_temp,a
241 000A1 18E0 mov a,@11100000b
242 000A2 02C6 and port6,a
243 000A3 0B06 bs port6,4 ;set led6 on
244 000A4 0B46 bs port6,5
245 000A5 0BC6 bs port6,7
246 000A6 14BF jmp GET_KEY3_count_time
247 000A7 GET_KEY3_5min:
248 000A7 1801 mov a,@1
249 000A8 0054 mov key3_temp,a
250 000A9 18E0 mov a,@11100000b
251 000AA 02C6 and port6,a
252 000AB 0A06 bs port6,0 ;set led3 on
253 000AC 0B46 bs port6,5
254 000AD 0BC6 bs port6,7
255 000AE 14BF jmp GET_KEY3_count_time
256 000AF GET_KEY3_10min:
257 000AF 1802 mov a,@2
258 000B0 0054 mov key3_temp,a
259 000B1 18E0 mov a,@11100000b
260 000B2 02C6 and port6,a
261 000B3 0A46 bs port6,1 ;set led4 on
262 000B4 0B46 bs port6,5
263 000B5 0BC6 bs port6,7
264 000B6 14BF jmp GET_KEY3_count_time
265 000B7 GET_KEY3_20min:
266 000B7 1804 mov a,@4
267 000B8 0054 mov key3_temp,a
268 000B9 18E0 mov a,@11100000b
269 000BA 02C6 and port6,a
270 000BB 0A86 bs port6,2 ;set led5 on
271 000BC 0B46 bs port6,5
272 000BD 0BC6 bs port6,7
273 000BE 14BF jmp GET_KEY3_count_time
274 000BF GET_KEY3_count_time:
275 000BF 10D2 CALL SCAN_KEY
276 000C0 0C51 JBC KEY_FLAG,F_push
277 000C1 146D jmp MAIN_Loop_01_in ;key retigger
278
279 000C2 0E91 JBS KEY_FLAG,F_1S
280 000C3 14BF JMP GET_KEY3_count_time
281 000C4 0891 bc KEY_FLAG,F_1S
282 000C5 0553 inc time_5min
283 000C6 1896 mov a,@150 ;set timer 5min
284 000C7 0313 xor a,time_5min
285 000C8 0E83 jbs sf,z
286 000C9 14BF jmp GET_KEY3_count_time
287 000CA 00D3 clr time_5min
288 000CB 05D4 djz key3_temp
289 000CC 14BF jmp GET_KEY3_count_time
290 000CD GET_KEY3_off:
291 000CD 0F86 jbs port6,6
292 000CE 0946 bc port6,5
293 000CF 1860 mov a,@01100000b
294 000D0 02C6 and port6,a
295 000D1 1421 jmp MAIN_Loop_01
296
297
298
299
300
301
302
303 000D2 SCAN_KEY:
304 000D2 0E11 JBS KEY_FLAG,F_keep
305 000D3 14DA JMP SCAN_KEY_01
306 000D4 0C05 JBC PORT5,0
307 000D5 1515 JMP END_SCAN_KEY
308 000D6 0C45 JBC PORT5,1
309 000D7 1515 JMP END_SCAN_KEY
310 ; JBC PORT6,3
311 000D8 0811 BC KEY_FLAG,F_keep
312 000D9 1515 JMP END_SCAN_KEY
313 000DA SCAN_KEY_01:
314 000DA 0E05 JBS PORT5,0
315 000DB 14ED JMP SCAN_KEY_02
316 000DC 1135 CALL DELAY_10MS
317 000DD 0E05 JBS PORT5,0
318 000DE 14ED JMP SCAN_KEY_02
319 000DF 1135 CALL DELAY_10MS
320 000E0 0E05 JBS PORT5,0
321 000E1 14ED JMP SCAN_KEY_02
322 000E2 1135 CALL DELAY_10MS
323 000E3 0E05 JBS PORT5,0
324 000E4 14ED JMP SCAN_KEY_02
325 000E5 1801 MOV A,@1
326 000E6 0052 MOV KEY_CNT,A
327 000E7 0AD1 bs key_flag,Key1
328 000E8 0911 bc key_flag,Key2
329 000E9 0951 bc key_flag,Key3
330 000EA 0A51 BS KEY_FLAG,F_push
331 000EB 0A11 BS KEY_FLAG,F_keep
332 000EC 1515 JMP END_SCAN_KEY
333 000ED SCAN_KEY_02:
334 000ED 0E45 JBS PORT5,1
335 000EE 1500 JMP SCAN_KEY_03
336 000EF 1135 CALL DELAY_10MS
337 000F0 0E45 JBS PORT5,1
338 000F1 1500 JMP SCAN_KEY_03
339 000F2 1135 CALL DELAY_10MS
340 000F3 0E45 JBS PORT5,1
341 000F4 1500 JMP SCAN_KEY_03
342 000F5 1135 CALL DELAY_10MS
343 000F6 0E45 JBS PORT5,1
344 000F7 1500 JMP SCAN_KEY_03
345 000F8 1802 MOV A,@2
346 000F9 0052 MOV KEY_CNT,A
347 000FA 0B11 bs key_flag,Key2
348 000FB 08D1 bc key_flag,Key1
349 000FC 0951 bc key_flag,Key3
350 000FD 0A51 BS KEY_FLAG,F_push
351 000FE 0A11 BS KEY_FLAG,F_keep
352 000FF 1515 JMP END_SCAN_KEY
353 00100 SCAN_KEY_03:
354 00100 1515 JMP END_SCAN_KEY
355 00101 0CC6 JBC PORT6,3
356 00102 1514 JMP SCAN_KEY_04
357 00103 1135 CALL DELAY_10MS
358 00104 0CC6 JBC PORT6,3
359 00105 1514 JMP SCAN_KEY_04
360 00106 1135 CALL DELAY_10MS
361 00107 0CC6 JBC PORT6,3
362 00108 1514 JMP SCAN_KEY_04
363 00109 1135 CALL DELAY_10MS
364 0010A 0CC6 JBC PORT6,3
365 0010B 1514 JMP SCAN_KEY_04
366 0010C 1803 MOV A,@3
367 0010D 0052 MOV KEY_CNT,A
368 0010E 0B51 bs key_flag,Key3
369 0010F 08D1 bc key_flag,Key1
370 00110 0911 bc key_flag,Key2
371 00111 0A51 BS KEY_FLAG,F_push
372 00112 0A11 BS KEY_FLAG,F_keep
373 00113 1515 JMP END_SCAN_KEY
374 00114 SCAN_KEY_04:
375 00114 0811 BC KEY_FLAG,F_keep
376 00115 END_SCAN_KEY:
377 00115 0012 RET
378
379 ;------------------------------------------------
380 ; the system initiallization sub_routine
381 00116 INITIAL_ROUTINE:
382 00116 0004 wdtc ; clr watchdog timer
383 00117 1805 mov a,@00000101b
384 00118 0002 contw ; TCC -> 1/128
385 00119 1805 mov a,@5
386 0011A 0041 mov tcc,a ;250*32=8ms
387 0011B 0011 disi
388 0011C 1807 mov a,@00000111b
389 0011D 0005 iow IOC5 ; P5 -> input
390 0011E 1808 mov a,@00001000b
391 0011F 0006 iow IOC6 ; P66,P67,P63 -> output
392 00120 00C5 clr PORT5
393 00121 00C6 clr PORT6
394 00122 18F8 mov a,@11111000b ;set P5.0,1,2 internal pull-down
395 00123 000B iow IOCB ;
396 00124 1800 mov a,@00000000b
397 00125 000C iow IOCC ; Open_drain control
398 00126 000D iow IOCD ; set p6 pull high
399 00127 1800 mov a,@00000000b
400 00128 000E iow IOCE ; WDT disable
401 00129 1800 mov a,@00000000b
402 0012A 000F iow IOCF ; ALL interrupt disable
403 0012B CLEAR_ALL_RAM:
404 0012B 182F mov a,@0x2f
405 0012C 0050 mov Flag,a
406 0012D 1810 mov a,@0x10
407 0012E 0044 mov RSR,a ; clr RAM ( 10H~30H)
408 0012F CLR_RAM:
409 0012F 0544 inc RSR
410 00130 00C0 clr R0 ; = 0
411 00131 05D0 djz Flag
412 00132 152F jmp CLR_RAM
413 00133 00D0 clr Flag
414 00134 0012 ret
415
416 ;------------------------------------------------
417 ; delay 10ms sub_routine
418 ; Period T = (15*257*5+143*5+11)*0.5 = 10ms
419 00135 DELAY_10MS:
420 00135 1810 mov a,@0x10
421 00136 0060 mov DelayH,a
422 00137 188F mov a,@0x8f
423 00138 0061 mov DelayL,a
424 00139 LOOP_10MS:
425 00139 0000 nop
426 0013A 0000 nop
427 0013B 05E1 djz DelayL
428 0013C 1539 jmp LOOP_10MS
429 0013D 0004 wdtc
430 0013E 0000 nop
431 0013F 05E0 djz DelayH
432 00140 1539 jmp LOOP_10MS
433 00141 0000 nop
434 00142 0012 ret
435 ;------------------------------------------------
436 ; delay 1000us sub_routine
437 ; Period T = (1*257*5+141*5+11)*0.5 = 1000.5us
438 00143 DELAY_1MS:
439 00143 1802 mov a,@0x02
440 00144 0060 mov DelayH,a
441 00145 188D mov a,@0x8d
442 00146 0061 mov DelayL,a
443 00147 LOOP_1MS:
444 00147 0000 nop
445 00148 0000 nop
446 00149 05E1 djz DelayL
447 0014A 1547 jmp LOOP_1MS ; 5
448 0014B 0000 nop
449 0014C 0000 nop
450 0014D 05E0 djz DelayH
451 0014E 1547 jmp LOOP_1MS ; 5*257
452 0014F 0000 nop
453 00150 0012 ret
454 00151 Delay_10us:
455 00151 0000 nop
456 00152 0000 nop
457 00153 0000 nop
458 00154 0000 nop
459 00155 0000 nop
460 00156 0000 nop
461 00157 0000 nop
462 00158 0000 nop
463 00159 0000 nop
464 0015A 0000 nop
465 0015B 0000 nop
466 0015C 0000 nop
467 0015D 0000 nop
468 0015E 0000 nop
469 0015F 0000 nop
470 00160 0012 ret
471 ;------------------------------------------------
472 ; end program
473 end
0 Error(s), 0 Warning(s), 0 User Message(s)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -