📄 8733_tp.lst
字号:
391 0016F 1584 JMP main_key5_psd ; key5
392 ;
393 00170 1820 MOV A, @0x20
394 00171 0123 SUB A, KeyValue
395 00172 0C83 JBC status, Z
396 00173 1586 JMP main_key6_psd ; key6
397 ;
398 00174 1840 MOV A, @0x40
399 00175 0123 SUB A, KeyValue
400 00176 0C83 JBC status, Z
401 00177 1588 JMP main_key7_psd ; key7
402 ;
403 00178 1880 MOV A, @0x80
404 00179 0123 SUB A, KeyValue
405 0017A 0C83 JBC status, Z
406 0017B 158A JMP main_key8_psd ; key8
407 ;-----------------------------------
408 0017C main_key1_psd:
409 0017C 1801 MOV A, @0x01
410 ;OR Port5, A
411 0017D 158B JMP main_key_Psd_Out
412 ;-----------------------------------
413 0017E main_key2_psd:
414 0017E 1802 MOV A, @0x02
415 ;OR Port5, A
416 0017F 158B JMP main_key_Psd_Out
417 ;-----------------------------------
418 00180 main_key3_psd:
419 00180 1803 MOV A, @0x03
420 ;OR Port5, A
421 00181 158B JMP main_key_Psd_Out
422 ;-----------------------------------
423 00182 main_key4_psd:
424 00182 1804 MOV A, @0x04
425 ;OR Port5, A
426 00183 158B JMP main_key_Psd_Out
427 ;-----------------------------------
428 00184 main_key5_psd:
429 00184 1805 MOV A, @0x05
430 ;OR Port5, A
431 00185 158B JMP main_key_Psd_Out
432 ;-----------------------------------
433 00186 main_key6_psd:
434 00186 1806 MOV A, @0x06
435 ;OR Port5, A
436 00187 158B JMP main_key_Psd_Out
437 ;-----------------------------------
438 00188 main_key7_psd:
439 00188 1807 MOV A, @0x07
440 ;OR Port5, A
441 00189 158B JMP main_key_Psd_Out
442 ;-----------------------------------
443 0018A main_key8_psd:
444 0018A 1808 MOV A, @0x08
445 ;OR Port5, A
446 0018B main_key_Psd_Out:
447 0018B 0048 mov Port8, A
448 0018C 0012 RET
449 ;-----------------------------------------------------------------
450 0018D MainStudyTP:
451 0018D 0F53 JBS Key_Tone, STYKey
452 0018E 15B4 JMP MainStudyTPRet
453 0018F 0D13 JBC Key_Tone, StyKeyFst
454 00190 15A0 JMP MainStudyTPNotFst
455 00191 1274 CALL StyKeyValue
456 00192 0B13 BS Key_Tone, StyKeyFst
457 00193 00D8 CLR KeyVaSwapCnt
458 00194 00D9 CLR KeyVaSwapCnt1
459 ;-------------------------------------------
460 00195 1810 MOV A, @16
461 00196 0056 MOV Temp, A
462 00197 1820 MOV A, @0x20 ; 将和保存区清零(bank 4的0x20~0x2F)
463 00198 0044 MOV R4, A
464 00199 1E94 BANK 4
465 0019A ClrBANK4R2XLP:
466 0019A 00C0 CLR R0
467 0019B 0544 INC R4
468 0019C 05D6 DJZ temp
469 0019D 159A JMP ClrBANK4R2XLP
470 0019E 1E90 BANK 0
471 0019F 15B4 JMP MainStudyTPRet
472 ;-------------------------------------------
473 001A0 MainStudyTPNotFst:
474 001A0 0559 INC KeyVaSwapCnt1
475 001A1 0419 MOV A, KeyVaSwapCnt1
476 001A2 1FFA ADD A, @256-6
477 001A3 0E03 JBS status, C
478 001A4 15B4 JMP MainStudyTPRet
479 001A5 00D9 CLR KeyVaSwapCnt1
480 001A6 120B CALL Compare2GroupVa
481 001A7 0E03 JBS status, c
482 001A8 15B1 JMP DoNotSwapKeyValue
483 001A9 11B5 CALL ToGetSumOfRltmVa
484 001AA 0558 INC KeyVaSwapCnt
485 001AB 18FC MOV A, @256-4
486 001AC 0398 ADD A, KeyVaSwapCnt
487 001AD 0E03 JBS status, C
488 001AE 15B4 JMP MainStudyTPRet
489 001AF 11C9 CALL GetTheValueToSwap
490 001B0 11DD CALL SwapKeyValueGnl
491 ;MOV A, @0x10
492 ;XOR Port5, A
493 ;
494 001B1 DoNotSwapKeyValue:
495 001B1 0953 BC Key_Tone, STYKey
496 001B2 0913 BC Key_Tone, StyKeyFst
497 001B3 00D5 CLR NOKeyPCNT
498 001B4 MainStudyTPRet:
499 001B4 0012 RET
500 ;-------------------------------------------------------------------
501 ;将所取到符合的数据(bank 2)进行相加,和存到bank 4的0x20~0x2F中
502 001B5 ToGetSumOfRltmVa:
503 001B5 1808 MOV A, @8
504 001B6 0056 MOV Temp, A
505 001B7 1820 MOV A, @0x20
506 001B8 0044 MOV R4, A
507 001B9 ToGetSumOfRltmVaLp:
508 001B9 1E92 BANK 2
509 001BA 0400 MOV A, R0 ; 取出实时值低位
510 001BB 1E94 BANK 4
511 001BC 03C0 ADD R0, A ; 将实时值低位加到保存寄存器中
512 001BD 0544 INC R4
513 001BE 0C03 JBC status, c
514 001BF 0540 INC R0 ; 进位了
515 ;
516 001C0 1E92 BANK 2
517 001C1 0400 MOV A, R0 ; 取实时值的高位
518 001C2 1E94 BANK 4
519 001C3 03C0 ADD R0, A
520 001C4 0544 INC R4
521 001C5 05D6 DJZ Temp
522 001C6 15B9 JMP ToGetSumOfRltmVaLp
523 001C7 1E90 BANK 0
524 001C8 0012 RET
525 ;-------------------------------------------------------------------
526 ;将取得的8组数据(bank 4 0x20~0x2F)除4
527 001C9 GetTheValueToSwap:
528 001C9 1820 MOV A, @0x20
529 001CA 0044 MOV R4, A
530 001CB 1808 MOV A, @8
531 001CC 0057 MOV temp1, A
532 001CD 1E94 BANK 4
533 001CE GetTheValueToSwapLp:
534 001CE 1802 MOV A, @2
535 001CF 0056 MOV temp, A
536 001D0 GetTheValueToSwapLp1:
537 001D0 0803 BC status, c
538 001D1 0544 INC R4
539 001D2 0640 RRC R0
540 001D3 01C4 DEC R4
541 001D4 0640 RRC R0
542 001D5 05D6 DJZ Temp
543 001D6 15D0 JMP GetTheValueToSwapLp1
544 001D7 0544 INC R4
545 001D8 0544 INC R4
546 001D9 05D7 DJZ temp1
547 001DA 15CE JMP GetTheValueToSwapLp
548 001DB 1E90 BANK 0
549 001DC 0012 RET
550 ;-------------------------------------------------------------------
551 ;将最后取得的4组AD值平均后的值赋给参考值buffer(bank 1 0x20 - 0x2F)
552 001DD SwapKeyValueGnl:
553 001DD 1810 MOV A, @16 ; 总共有八组十六字节数据要交换
554 001DE 0056 MOV Temp, A
555 001DF 1820 MOV A, @0x20
556 001E0 0044 MOV R4, A
557 001E1 SwapKeyValueGnlLp:
558 001E1 1E94 BANK 4
559 001E2 0400 MOV A, R0
560 001E3 1E91 BANK 1
561 001E4 0040 MOV R0, A
562 001E5 0544 INC R4
563 001E6 05D6 DJZ Temp
564 001E7 15E1 JMP SwapKeyValueGnlLp
565 001E8 1E90 BANK 0
566 001E9 0012 RET
567 ;-----------------------------------------------------------------
568 ; [Now value(TPdata) - reference(buffer)] >= KeyPsdValue, Key pressed
569 ; C = 1, key pressed
570 ; else
571 ; C = 0, no key pressed
572 001EA CMP_TWO_Value:
573 001EA 0431 MOV A, BUFFER+1
574 001EB 0111 SUB A, TPdataH
575 001EC 0E03 JBS status, c
576 001ED 1603 JMP ClrKeyPsdFlag ; The current TP value less than reference value, no key
577 001EE 0E83 JBS status, Z
578 001EF 15F6 JMP HiByteNotEqu
579 001F0 HiByteEqu:
580 ; BUFFER+1 == TPdataH
581 001F0 0430 MOV A, BUFFER
582 001F1 0110 SUB A, TPdataL
583 001F2 0E03 JBS status, c
584 001F3 1603 JMP ClrKeyPsdFlag ; The current TP value less than reference value, no key
585 ; BUFFER+1 == ADCDATAH
586 001F4 0122 SUB A, KeyPsdValue
587 001F5 1601 JMP ChkSetOrClr
588 001F6 HiByteNotEqu:
589 ; TPdataH > buffer+1
590 001F6 0430 MOV A, BUFFER
591 001F7 0110 SUB A, TPdataL
592 001F8 0070 MOV buffer, A
593 001F9 0E03 JBS status, c
594 001FA 01D1 DEC TPdataH
595 ;
596 001FB 0431 MOV A, BUFFER+1
597 001FC 0111 SUB A, TPdataH
598 001FD 0E83 JBS status, Z
599 001FE 1607 JMP SetKeyPsdFlag
600 001FF 0430 MOV A, BUFFER
601 00200 0122 SUB A, KeyPsdValue
602 00201 ChkSetOrClr:
603 00201 0E03 JBS status, c
604 00202 1607 JMP SetKeyPsdFlag
605 00203 ClrKeyPsdFlag:
606 00203 0803 BC status, C
607 00204 0000 NOP
608 00205 0803 BC status, C
609 00206 0012 RET
610 00207 SetKeyPsdFlag:
611
612 00207 0A03 BS status, C
613 00208 0000 NOP
614 00209 0A03 BS status, C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -