?? henhao.lst
字號:
519 ;Store the data to FIFO buffer
03F4 520 FIFO_STORE:
03F4 E535 521 MOV A,FifoBufferEnd
03F6 B53405 522 CJNE A,FifoBufferBegin,FIFO_STORE_1
03F9 200A28 523 JB blnFifoFull,FIFO_STORE_4
03FC 8004 524 SJMP FIFO_STORE_2
03FE 525 FIFO_STORE_1:
03FE C20A 526 CLR blnFifoFull
0400 C20B 527 CLR blnFifoNull
0402 528 FIFO_STORE_2:
0402 A935 529 MOV R1,FifoBufferEnd
0404 A732 530 MOV @R1,CodeReg_1
0406 0535 531 INC FifoBufferEnd
0408 A935 532 MOV R1,FifoBufferEnd
040A A733 533 MOV @R1,CodeReg_2
040C 0535 534 INC FifoBufferEnd
040E E535 535 MOV A,FifoBufferEnd
0410 C3 536 CLR C
0411 9460 537 SUBB A,#FifoBuffer
0413 B42003 538 CJNE A,#FifoBufferLength,FIFO_STORE_3
0416 753560 539 MOV FifoBufferEnd,#FifoBuffer
0419 540 FIFO_STORE_3:
0419 C20B 541 CLR blnFifoNull
041B E535 542 MOV A,FifoBufferEnd
041D B53404 543 CJNE A,FifoBufferBegin,FIFO_STORE_4
0420 C2B3 544 CLR bitOVERFLOW
0422 D20A 545 SETB blnFifoFull
0424 546 FIFO_STORE_4:
0424 22 547 RET
548 ;*********************************************
0425 549 READFIFO:
A51 MACRO ASSEMBLER HENHAO 09/25/2008 16:42:26 PAGE 11
0425 300C0E 550 JNB blnOddByte,READFIFO_5
0428 853690 551 MOV P1,TmpOddByte
042B C20C 552 CLR blnOddByte
042D D2B5 553 SETB bitD74
042F C2B7 554 CLR bitCLK74
0431 D2B7 555 SETB bitCLK74
0433 D2B3 556 SETB bitOVERFLOW
0435 22 557 RET
0436 558 READFIFO_5:
0436 E534 559 MOV A,FifoBufferBegin
0438 B53505 560 CJNE A,FifoBufferEnd,READFIFO_1
043B 200B30 561 JB blnFifoNull,READFIFO_4
043E 8004 562 SJMP READFIFO_2
0440 563 READFIFO_1:
0440 C20A 564 CLR blnFifoFull
0442 C20B 565 CLR blnFifoNull
0444 566 READFIFO_2:
0444 A934 567 MOV R1,FifoBufferBegin
0446 8790 568 MOV P1,@R1
0448 0534 569 INC FifoBufferBegin
044A A934 570 MOV R1,FifoBufferBegin
044C 8736 571 MOV TmpOddByte,@R1
044E 0534 572 INC FifoBufferBegin
0450 D2B3 573 SETB bitOVERFLOW
0452 D20C 574 SETB blnOddByte
0454 D2B5 575 SETB bitD74
0456 C2B7 576 CLR bitCLK74
0458 D2B7 577 SETB bitCLK74
045A E534 578 MOV A,FifoBufferBegin
045C C3 579 CLR C
045D 9460 580 SUBB A,#FifoBuffer
045F B42003 581 CJNE A,#FifoBufferLength,READFIFO_3
0462 753460 582 MOV FifoBufferBegin,#FifoBuffer
0465 583 READFIFO_3:
0465 C20A 584 CLR blnFifoFull
0467 E534 585 MOV A,FifoBufferBegin
0469 B53502 586 CJNE A,FifoBufferEnd,READFIFO_4
046C D20B 587 SETB blnFifoNull
046E 588 READFIFO_4:
046E 22 589 RET
590 ;**********************************************
046F 591 COMMAND:
046F C2A8 592 CLR EX0
0471 C2B2 593 CLR P3.2
0473 7B2D 594 MOV R3,#45
0475 DBFE 595 DJNZ R3,$
0477 C2B1 596 CLR bitDAT
0479 7B2D 597 MOV R3,#45
047B DBFE 598 DJNZ R3,$
047D D2B2 599 SETB P3.2
047F 7A01 600 MOV R2,#1
0481 7C08 601 MOV R4,#8
0483 602 COMMAND_2:
0483 20B2FD 603 JB P3.2,$
0486 13 604 RRC A
0487 92B1 605 MOV bitDAT,C
0489 5001 606 JNC COMMAND_1
048B 0A 607 INC R2
048C 608 COMMAND_1:
048C 30B2FD 609 JNB P3.2,$
048F DCF2 610 DJNZ R4,COMMAND_2
0491 20B2FD 611 JB P3.2,$
0494 EA 612 MOV A,R2
0495 13 613 RRC A
0496 92B1 614 MOV bitDAT,C
0498 30B2FD 615 JNB P3.2,$
A51 MACRO ASSEMBLER HENHAO 09/25/2008 16:42:26 PAGE 12
049B 20B2FD 616 JB P3.2,$
049E D2B1 617 SETB bitDAT
04A0 D2B2 618 SETB P3.2
04A2 D2A8 619 SETB EX0
04A4 22 620 RET
621 ;******************************************
04A5 622 LEDCTRL:
04A5 E520 623 MOV A,20H
04A7 5407 624 ANL A,#7
04A9 F5F0 625 MOV B,A
04AB 74ED 626 MOV A,#0EDH
04AD 12046F 627 LCALL COMMAND
04B0 7D25 628 MOV R5,#025H
04B2 629 DELAY_LED:
04B2 7EDD 630 MOV R6,#0DDH
04B4 DEFE 631 DJNZ R6,$
04B6 DDFA 632 DJNZ R5,DELAY_LED
633
04B8 E5F0 634 MOV A,B
04BA 12046F 635 LCALL COMMAND
04BD 22 636 RET
637 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
04BE 638 FINDVIKEYCODE:
04BE E531 639 MOV A,gByteCounter
04C0 B40106 640 CJNE A,#01H,JUDGE_A ;One byte?
04C3 120508 641 LCALL PROCESS_1
04C6 020507 642 LJMP JUDGE_G
04C9 643 JUDGE_A:
04C9 E531 644 MOV A,gByteCounter
04CB 6402 645 XRL A,#02H
04CD 7006 646 JNZ JUDGE_B
04CF 12057B 647 LCALL PROCESS_2
04D2 020507 648 LJMP JUDGE_G
04D5 649 JUDGE_B:
04D5 E531 650 MOV A,gByteCounter
04D7 6403 651 XRL A,#03H
04D9 7006 652 JNZ JUDGE_C
04DB 1205AA 653 LCALL PROCESS_3
04DE 020507 654 LJMP JUDGE_G
04E1 655 JUDGE_C:
04E1 E531 656 MOV A,gByteCounter
04E3 6404 657 XRL A,#04H
04E5 7006 658 JNZ JUDGE_D
04E7 1205B3 659 LCALL PROCESS_4
04EA 020507 660 LJMP JUDGE_G
04ED 661 JUDGE_D:
04ED E531 662 MOV A,gByteCounter
04EF 6406 663 XRL A,#06H
04F1 7006 664 JNZ JUDGE_E
04F3 1205BC 665 LCALL PROCESS_5
04F6 020507 666 LJMP JUDGE_G
04F9 667 JUDGE_E:
04F9 E531 668 MOV A,gByteCounter
04FB 6408 669 XRL A,#08H
04FD 7006 670 JNZ JUDGE_F
04FF 1205C5 671 LCALL PROCESS_6
0502 020507 672 LJMP JUDGE_G
0505 673 JUDGE_F:
0505 74FF 674 MOV A,#0FFH
0507 675 JUDGE_G:
0507 22 676 RET
677 ;*****************************************
0508 678 PROCESS_1:
0508 7532FF 679 MOV CodeReg_1 ,#0FFH
050B E550 680 MOV A,RestoreBuffer
050D 6477 681 XRL A,#77H ;Is the key NumLockKey?
A51 MACRO ASSEMBLER HENHAO 09/25/2008 16:42:26 PAGE 13
050F 7002 682 JNZ LED_A
0511 B201 683 CPL blnNumLockKey
0513 684 LED_A:
0513 E550 685 MOV A,RestoreBuffer
0515 6458 686 XRL A,#58H ;Is the key CapsLockKey
0517 7002 687 JNZ LED_B
0519 B202 688 CPL blnCapsLockKey
051B 689 LED_B:
051B E550 690 MOV A,RestoreBuffer
051D 647E 691 XRL A,#7EH
051F 7002 692 JNZ FIND
0521 B200 693 CPL bitStrollLockKey
0523 694 FIND:
0523 AF50 695 MOV R7,RestoreBuffer ;Break out the data to A
0525 EF 696 MOV A,R7
0526 C3 697 CLR C ;Clean the C
0527 9468 698 SUBB A,#68H
0529 4005 699 JC FIND_1
052B 7950 700 MOV R1,#RestoreBuffer
052D 300110 701 JNB blnNumLockKey,MULTI_PLY
0530 702 FIND_1:
0530 AF50 703 MOV R7,RestoreBuffer ;Break out the data to A
0532 EF 704 MOV A,R7
0533 C3 705 CLR C ;Clean the C
0534 9490 706 SUBB A,#90H
0536 5005 707 JNC INPUTERROR
0538 EF 708 MOV A,R7
0539 1205CB 709 LCALL FINDKEYCODE
053C 22 710 RET
053D 711 INPUTERROR:
053D 74FF 712 MOV A,#0FFH
053F 22 713 RET
0540 714 MULTI_PLY :
715
716
0540 E7 717 MOV A,@R1
0541 900558 718 MOV DPTR,#KeyCodeTable
0544 7E00 719 MOV R6,#0
0546 FF 720 MOV R7,A
0547 721 MULTI_1:
0547 EE 722 MOV A,R6
0548 93 723 MOVC A,@A+DPTR
0549 60F2 724 JZ INPUTERROR
054B 6F 725 XRL A,R7
054C 6003 726 JZ MULTI_2
054E 0E 727 INC R6
054F 80F6 728 SJMP MULTI_1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -