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

📄 8733_tp.lst

📁 Elan eKTP8733N 单片机Touch Pad驱动程序。可检测8个Touch Pad按键是否按下。在Elan公司开发环境中使用。
💻 LST
📖 第 1 页 / 共 5 页
字号:
   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 + -