⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 henhao.lst

📁 此代码是一个键盘程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
                     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 + -