📄 key2d.lst
字号:
268 07D8 0008 return
269 ;KEY2D.C: 145: {
270 07D9 0824 movf _key_bak,w
271 07DA 00A1 movwf _current_key
272 ;KEY2D.C: 147: scan_key_state = 0;
273 07DB 01A8 clrf _scan_key_state
274 ;KEY2D.C: 148: }
275 ;KEY2D.C: 150: break;
276 07DC 0008 return
277 07DD l33
278 ;KEY2D.C: 151: case 3:
279 ;KEY2D.C: 152: if (key == key_bak)
280 07DD 0823 movf _key,w
281 07DE 0624 xorwf _key_bak,w
282 07DF 1D03 btfss 3,2
283 07E0 2FE9 goto l34
284 ;KEY2D.C: 153: {
285 07E1 08A7 movf _repeat_key_timer
286 07E2 1D03 btfss 3,2
287 07E3 0008 return
288 ;KEY2D.C: 155: {
289 07E4 3014 movlw 20
290 07E5 00A7 movwf _repeat_key_timer
291 ;KEY2D.C: 157: current_key = repeat_key;
292 07E6 0826 movf _repeat_key,w
293 07E7 00A1 movwf _current_key
294 ;KEY2D.C: 158: }
295 07E8 0008 return
296 07E9 l34
297 ;KEY2D.C: 160: {
298 07E9 01A8 clrf _scan_key_state
299 ;KEY2D.C: 162: }
300 ;KEY2D.C: 163: break;
301 07EA 0008 return
302 07EB l37
303 ;KEY2D.C: 164: case 4:
304 ;KEY2D.C: 165: if (key!= key_bak)
305 07EB 0823 movf _key,w
306 07EC 0624 xorwf _key_bak,w
307 07ED 1D03 btfss 3,2
308 ;KEY2D.C: 166: {
309 07EE 01A8 clrf _scan_key_state
310 ;KEY2D.C: 168: }
311 07EF 0008 return
312 07F0 l13
313 07F0 0828 movf _scan_key_state,w
314 07F1 1903 btfsc 3,2
315 07F2 2F94 goto l14
316 07F3 3A01 xorlw 1
317 07F4 1903 btfsc 3,2
318 07F5 2F9F goto l17
319 07F6 3A03 xorlw 3
320 07F7 1903 btfsc 3,2
321 07F8 2FAD goto l21
322 07F9 3A01 xorlw 1
323 07FA 1903 btfsc 3,2
324 07FB 2FDD goto l33
325 07FC 3A07 xorlw 7
326 07FD 1D03 btfss 3,2
327 07FE 0008 return
328 07FF 2FEB goto l37
329
330 psect text3
331 ;KEY2D.C: 185: void tmint(void)
332 ;KEY2D.C: 186: { T0CS=0;
333 0719 _tmint
334 0719 1683 bsf 3,5
335 071A 1303 bcf 3,6 ;carry unused
336 071B 1281 bcf 1,5
337 ;KEY2D.C: 187: PSA=0;
338 071C 1181 bcf 1,3
339 ;KEY2D.C: 188: PS2=0;
340 071D 1101 bcf 1,2
341 ;KEY2D.C: 189: PS1=1;
342 071E 1481 bsf 1,1
343 ;KEY2D.C: 190: PS0=1;
344 071F 1401 bsf 1,0
345 ;KEY2D.C: 191: T0IF=0;
346 0720 110B bcf 11,2
347 ;KEY2D.C: 192: T0IE=1;
348 0721 168B bsf 11,5
349 ;KEY2D.C: 193: }
350 0722 1283 bcf 3,5
351 0723 0008 return
352 ;KEY2D.C: 213: main(void)
353 ;KEY2D.C: 214: {
354 0724 _main
355 ;KEY2D.C: 215: TRISB=0xF8;
356 0724 30F8 movlw -8
357 0725 1683 bsf 3,5
358 0726 1303 bcf 3,6 ;carry unused
359 0727 0086 movwf 6 ;volatile
360 ;KEY2D.C: 219: PORTB=0XFF;
361 0728 30FF movlw -1
362 0729 1283 bcf 3,5
363 072A 0086 movwf 6 ;volatile
364 ;KEY2D.C: 222: PCFG3=0;
365 072B 1683 bsf 3,5
366 072C 119F bcf 31,3
367 ;KEY2D.C: 223: PCFG2=1;
368 072D 151F bsf 31,2
369 ;KEY2D.C: 224: PCFG1=1;
370 072E 149F bsf 31,1
371 ;KEY2D.C: 225: PCFG0=1;
372 072F 141F bsf 31,0
373 ;KEY2D.C: 226: TRISA=0;
374 0730 0185 clrf 5 ;volatile
375 ;KEY2D.C: 227: PORTA=0;
376 0731 1283 bcf 3,5
377 0732 0185 clrf 5 ;volatile
378 ;KEY2D.C: 228: T0CS=0;
379 0733 1683 bsf 3,5
380 0734 1281 bcf 1,5
381 ;KEY2D.C: 229: RA4=0;
382 0735 1283 bcf 3,5
383 0736 1205 bcf 5,4
384 ;KEY2D.C: 230: ledadr=0;
385 0737 01A5 clrf _ledadr
386 ;KEY2D.C: 231: tmint();
387 0738 2719 fcall _tmint
388 ;KEY2D.C: 232: GIE=1;
389 0739 178B bsf 11,7
390 073A L3
391 ;KEY2D.C: 234: asm("nop");
392 073A 0000 nop ;#
393 ;KEY2D.C: 235: while(1)
394 ;KEY2D.C: 236: {
395 073B 0000 nop ;#
396 ;KEY2D.C: 238: process_panel_key();
397 073C 120A 118A 2792 fcall _process_panel_key
+ 120A 118A
398 ;KEY2D.C: 239: asm("nop");
399 0741 0000 nop ;#
400 ;KEY2D.C: 240: if(current_key!=0x00)
401 0742 08A1 movf _current_key
402 0743 1903 btfsc 3,2
403 0744 2F49 goto l53
404 ;KEY2D.C: 241: {
405 0745 0000 nop ;#
406 ;KEY2D.C: 243: asm("nop");
407 0746 0000 nop ;#
408 ;KEY2D.C: 244: current_key=0x00;
409 0747 01A1 clrf _current_key
410 ;KEY2D.C: 245: scan_key_state = 0;
411 0748 01A8 clrf _scan_key_state
412 0749 l53
413 ;KEY2D.C: 246: }
414 0749 0000 nop ;#
415 074A 2F3A goto L3
416
417 psect intcode
418 ;KEY2D.C: 194: void interrupt clkint(void)
419 ;KEY2D.C: 195: { if(T0IF=1)
420 000B _clkint
421 000B int_func
422 000B 150B bsf 11,2
423 000C 1D0B btfss 11,2
424 000D 2822 goto l43
425 ;KEY2D.C: 196: {
426 000E 30C2 movlw -62
427 000F 1283 bcf 3,5
428 0010 1303 bcf 3,6 ;carry unused
429 0011 0081 movwf 1 ;volatile
430 ;KEY2D.C: 198: T0IF=0;
431 0012 110B bcf 11,2
432 ;KEY2D.C: 199: ledadr=ledadr+1;
433 0013 0AA5 incf _ledadr
434 ;KEY2D.C: 200: if (ledadr==10)
435 0014 0825 movf _ledadr,w
436 0015 3A0A xorlw 10
437 0016 1D03 btfss 3,2
438 0017 2822 goto l43
439 ;KEY2D.C: 201: {
440 0018 08A9 movf _shake_cancel_timer
441 0019 1D03 btfss 3,2
442 ;KEY2D.C: 203: shake_cancel_timer--;
443 001A 03A9 decf _shake_cancel_timer
444 ;KEY2D.C: 204: if (repeat_key_timer!=0)
445 001B 08A7 movf _repeat_key_timer
446 001C 1D03 btfss 3,2
447 ;KEY2D.C: 205: repeat_key_timer--;
448 001D 03A7 decf _repeat_key_timer
449 ;KEY2D.C: 206: if (complex_key_timer!=0)
450 001E 08A0 movf _complex_key_timer
451 001F 1D03 btfss 3,2
452 ;KEY2D.C: 207: complex_key_timer--;
453 0020 03A0 decf _complex_key_timer
454 ;KEY2D.C: 208: ledadr=0;
455 0021 01A5 clrf _ledadr
456 ;KEY2D.C: 209: }
457 ;KEY2D.C: 211: }
458 0022 l43
459
460 psect intsave_0
461 0070 saved_w
462 0070 ds 1
463
464 psect intret
465 0022 082C movf saved_pclath,w
466 0023 008A movwf 10
467 0024 int_restore
468 0024 082B movf saved_status,w
469 0025 0083 movwf 3
470 0026 0EF0 swapf saved_w
471 0027 0E70 swapf saved_w,w
472 0028 0009 retfie
473
474 psect intentry
475 0004 int_entry
476 0004 00F0 movwf saved_w
477 0005 0803 movf 3,w
478 0006 0183 clrf 3
479 0007 00AB movwf saved_status
480 0008 080A movf 10,w
481 0009 00AC movwf saved_pclath
482 000A 018A clrf 10
483
484 psect intsave
485 002B saved_status
486 002B ds 1
487 002C saved_pclath
488 002C ds 1
489
490 psect text6
491 0000
492 0000
493 0000
494 0000
495 0000
496 0000
497 0000
498 0000
499 0000
500 0000
501 0000
502 0000
503 0000
504 0000
505 0000
506 0000
507 0000
508 0000
509 0000
510 0000
511 0000
512 0000
513 0000
514 0000
515 0000
516 0000
517 0000
518 0000
519 0000
520 0000
521 0000
522 0000
523 0000
524 0000
525 0000
526 0000
527 0000
528 0000
529 0000
530 0000
531 0000
532 0000
533 0000
534 0000
535 0000
536 0000
537 0000
538 0000
539 0000
540 0000
541 0000
542 0000
543 0000
544 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -