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

📄 yt_key.s

📁 完成数据的采集
💻 S
📖 第 1 页 / 共 5 页
字号:
///////////////////////////////////////////////////////////////////////////////
//                                                                            /
//                                                      06/Dec/2008  17:12:54 /
// IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                   /
// Copyright 1999-2007 IAR Systems. All rights reserved.                      /
//                                                                            /
//    Cpu mode     =  thumb                                                   /
//    Endian       =  little                                                  /
//    Source file  =  E:\ELE\yten\pro\app\yt_key.c                            /
//    Command line =  E:\ELE\yten\pro\app\yt_key.c -D EMB_FLASH -lCN          /
//                    E:\ELE\yten\pro\Debug\List\ -lb                         /
//                    E:\ELE\yten\pro\Debug\List\ -o                          /
//                    E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll         /
//                    --no_inline --no_code_motion --no_tbaa --no_clustering  /
//                    --no_scheduling --debug --endian little --cpu           /
//                    Cortex-M3 -e --fpu None --dlib_config "C:\Program       /
//                    Files\IAR Systems\Embedded Workbench 5.0                /
//                    Evaluation\ARM\INC\DLib_Config_Normal.h" -I             /
//                    E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I  /
//                    "C:\Program Files\IAR Systems\Embedded Workbench 5.0    /
//                    Evaluation\ARM\INC\" --section .text=.XML -On           /
//    List file    =  E:\ELE\yten\pro\Debug\List\yt_key.s                     /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME yt_key

        EXTERN ALAMCREG_History
        EXTERN ALAMC_mode_setion
        EXTERN CHK_ALAMCREG
        EXTERN GPIO_ReadInputDataBit
        EXTERN History
        EXTERN Init2515
        EXTERN USART_DeInit
        EXTERN Uart1Init
        EXTERN WriteFM24C04
        EXTERN WriteYear
        EXTERN Year
        EXTERN _YT

        PUBLIC BAUD_TAB1
        PUBLIC Set_HISTORY
        PUBLIC Set_UART
        PUBLIC Year_TAB
        PUBLIC key_add
        PUBLIC key_dec
        PUBLIC key_down
        PUBLIC key_setion
        PUBLIC key_up
        PUBLIC keyserver
        PUBLIC scankey


        SECTION `.rodata`:CONST:NOROOT(2)
Year_TAB:
        DATA
        DC16 0, 49, 40, 49, 48, 49, 48, 49, 49, 48, 49, 48, 49
        DC8 0, 0

        SECTION `.rodata`:CONST:NOROOT(2)
BAUD_TAB1:
        DATA
        DC16 19450, 9600, 4750
        DC8 0, 0

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
Set_UART:
        PUSH     {LR}
        SUB      SP,SP,#+28
        LDR.N    R0,??Set_UART_0  ;; _YT + 2
        LDRH     R0,[R0, #+0]
        LSLS     R0,R0,#+29       ;; ZeroExtS R0,R0,#+29,#+29
        LSRS     R0,R0,#+29
        MOVS     R1,#+2
        MULS     R0,R1,R0
        LDR.N    R1,??Set_UART_0+0x4  ;; BAUD_TAB1
        LDRH     R0,[R1, R0]
        STR      R0,[SP, #+0]
        MOVS     R0,#+0
        STRH     R0,[SP, #+4]
        MOVS     R0,#+0
        STRH     R0,[SP, #+6]
        MOVS     R0,#+0
        STRH     R0,[SP, #+8]
        MOVS     R0,#+0
        STRH     R0,[SP, #+10]
        MOVS     R0,#+12
        STRH     R0,[SP, #+12]
        MOVS     R0,#+0
        STRH     R0,[SP, #+14]
        MOVS     R0,#+0
        STRH     R0,[SP, #+16]
        MOVS     R0,#+0
        STRH     R0,[SP, #+18]
        MOVS     R0,#+0
        STRH     R0,[SP, #+20]
        MOVS     R0,#+0
        STRH     R0,[SP, #+8]
        LDR.N    R0,??Set_UART_0+0x8  ;; 0x40013800
        BL       USART_DeInit
        ADD      SP,SP,#+28
        POP      {PC}             ;; return
        DATA
??Set_UART_0:
        DC32     _YT + 2
        DC32     BAUD_TAB1
        DC32     0x40013800

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
scankey:
        PUSH     {R4-R6,LR}
        MOVS     R4,R0
        MOVS     R0,#+0
        MOVS     R6,R0
        MOVS     R1,#+16
        LDR.N    R0,??scankey_0   ;; 0x40010800
        BL       GPIO_ReadInputDataBit
        MOVS     R5,R0
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        CMP      R5,#+0
        BEQ.N    ??scankey_1
        ORRS     R6,R6,#0x1
??scankey_1:
        MOVS     R1,#+32
        LDR.N    R0,??scankey_0   ;; 0x40010800
        BL       GPIO_ReadInputDataBit
        MOVS     R5,R0
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        CMP      R5,#+0
        BEQ.N    ??scankey_2
        ORRS     R6,R6,#0x2
??scankey_2:
        MOVS     R1,#+64
        LDR.N    R0,??scankey_0   ;; 0x40010800
        BL       GPIO_ReadInputDataBit
        MOVS     R5,R0
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        CMP      R5,#+0
        BEQ.N    ??scankey_3
        ORRS     R6,R6,#0x4
??scankey_3:
        MOVS     R1,#+128
        LDR.N    R0,??scankey_0   ;; 0x40010800
        BL       GPIO_ReadInputDataBit
        MOVS     R5,R0
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        CMP      R5,#+0
        BEQ.N    ??scankey_4
        ORRS     R6,R6,#0x8
??scankey_4:
        MOVS     R1,#+16
        LDR.N    R0,??scankey_0+0x4  ;; 0x40011000
        BL       GPIO_ReadInputDataBit
        MOVS     R5,R0
        UXTB     R5,R5            ;; ZeroExtS R5,R5,#+24,#+24
        CMP      R5,#+0
        BEQ.N    ??scankey_5
        ORRS     R6,R6,#0x10
??scankey_5:
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+31
        BNE.N    ??scankey_6
        MOVS     R0,#+0
        STRH     R0,[R4, #+0]
        MOVS     R0,#+0
        STRB     R0,[R4, #+3]
        MOVS     R0,#+0
        B.N      ??scankey_7
??scankey_6:
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+31
        BEQ.N    ??scankey_8
        LDRH     R0,[R4, #+0]
        ADDS     R0,R0,#+1
        STRH     R0,[R4, #+0]
        UXTH     R0,R0            ;; ZeroExtS R0,R0,#+16,#+16
        CMP      R0,#+10
        BCC.N    ??scankey_9
        LDRB     R0,[R4, #+3]
        CMP      R0,#+0
        BNE.N    ??scankey_9
        MOVS     R0,#+1
        STRB     R0,[R4, #+3]
        EORS     R0,R6,#0x1F
        STRB     R0,[R4, #+2]
        B.N      ??scankey_8
??scankey_9:
        LDRH     R0,[R4, #+0]
        CMP      R0,#+10
        BCC.N    ??scankey_8
        LDRB     R0,[R4, #+3]
        CMP      R0,#+0
        BEQ.N    ??scankey_8
        UXTB     R6,R6            ;; ZeroExtS R6,R6,#+24,#+24
        CMP      R6,#+14
        BNE.N    ??scankey_8
        LDR.N    R0,??scankey_0+0x8  ;; History + 1
        MOVS     R1,#+100
        STRB     R1,[R0, #+0]
        LDR.N    R0,??scankey_0+0xC  ;; History + 2
        BL       Set_HISTORY
        LDR.N    R0,??scankey_0+0x10  ;; History + 102
        BL       Set_HISTORY
        LDR.N    R0,??scankey_0+0x14  ;; History + 202
        BL       Set_HISTORY
??scankey_8:
        MOVS     R0,#+0
??scankey_7:
        POP      {R4-R6,PC}       ;; return
        DATA
??scankey_0:
        DC32     0x40010800
        DC32     0x40011000
        DC32     History + 1
        DC32     History + 2
        DC32     History + 102
        DC32     History + 202

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
key_setion:
        PUSH     {R0,LR}
        MOVS     R2,R0
        LDRB     R0,[R1, #+1]
        CMP      R0,#+0
        CMP      R0,#+12
        BLS.N    ??key_setion_0
        SUBS     R0,R0,#+14
        CMP      R0,#+14
        BLS.N    ??key_setion_0
        SUBS     R0,R0,#+15
        CMP      R0,#+7
        BLS.N    ??key_setion_1
        B.N      ??key_setion_2
??key_setion_0:
        LDRH     R0,[R2, #+0]
        CMP      R0,#+200
        BCC.N    ??key_setion_2
        MOVS     R0,#+29
        STRB     R0,[R1, #+1]
        MOVS     R0,#+0
        STRB     R0,[R1, #+2]
        MOVS     R0,#+1
        STRB     R0,[R1, #+0]
        MOVS     R0,#+0
        B.N      ??key_setion_3
??key_setion_1:
        LDRH     R0,[R2, #+0]
        CMP      R0,#+10
        BNE.N    ??key_setion_4
        LDRB     R0,[R1, #+1]
        ADDS     R0,R0,#+1
        STRB     R0,[R1, #+1]
        MOVS     R0,#+0
        STRB     R0,[R1, #+2]
        MOVS     R0,#+1
        STRB     R0,[R1, #+0]
        MOVS     R0,#+0
        STRB     R0,[R1, #+3]
        LDRB     R0,[R1, #+1]
        CMP      R0,#+37
        BCC.N    ??key_setion_4
        MOVS     R0,#+29
        STRB     R0,[R1, #+1]
??key_setion_4:
        LDRH     R0,[R2, #+0]
        CMP      R0,#+200
        BCC.N    ??key_setion_2
        MOVS     R0,#+8
        STRB     R0,[R1, #+1]
        MOVS     R0,#+0
        STRB     R0,[R1, #+2]
        MOVS     R0,#+1
        STRB     R0,[R1, #+0]
        MOVS     R0,#+100
        B.N      ??key_setion_3
??key_setion_2:
        LDRB     R0,[R2, #+2]
??key_setion_3:
        ADD      SP,SP,#+4
        POP      {PC}             ;; return

        SECTION `.XML`:CODE:NOROOT(2)
        THUMB
key_up:
        PUSH     {R4-R8,LR}
        MOV      R8,R0
        MOVS     R4,R1
        MOVS     R5,R2
        LDRB     R0,[R4, #+1]
        CMP      R0,#+0
        CMP      R0,#+6
        BLS.N    ??key_up_0
        SUBS     R0,R0,#+7
        CMP      R0,#+21
        BLS.N    ??key_up_1
        SUBS     R0,R0,#+22
        BEQ.W    ??key_up_2
        SUBS     R0,R0,#+1
        BEQ.W    ??key_up_3
        SUBS     R0,R0,#+1
        BEQ.W    ??key_up_4
        SUBS     R0,R0,#+1
        BEQ.W    ??key_up_5
        SUBS     R0,R0,#+1
        BEQ.W    ??key_up_6
        SUBS     R0,R0,#+1
        BEQ.W    ??key_up_7
        SUBS     R0,R0,#+1
        BEQ.W    ??key_up_8
        SUBS     R0,R0,#+1
        BEQ.W    ??key_up_9
        B.N      ??key_up_10
??key_up_0:
        MOVS     R0,#+1
        STRB     R0,[R4, #+0]
        MOVS     R0,#+9
        STRB     R0,[R4, #+1]
        B.N      ??key_up_10
??key_up_1:
        LDRB     R0,[R4, #+1]
        ADDS     R0,R0,#+1
        STRB     R0,[R4, #+1]
        UXTB     R0,R0            ;; ZeroExtS R0,R0,#+24,#+24
        CMP      R0,#+29
        BCC.N    ??key_up_11
        MOVS     R0,#+7
        STRB     R0,[R4, #+1]
??key_up_11:
        MOVS     R0,#+0
        STRB     R0,[R4, #+2]
        MOVS     R0,#+1
        STRB     R0,[R4, #+0]
        LDRB     R0,[R4, #+1]
        CMP      R0,#+9
        BNE.N    ??key_up_12
        LDRH     R0,[R5, #+34]
        ANDS     R0,R0,#0x70
        CMP      R0,#+112
        BNE.N    ??key_up_12
        MOVS     R0,#+10
        STRB     R0,[R4, #+1]
??key_up_12:
        LDRB     R0,[R4, #+1]
        CMP      R0,#+10
        BNE.N    ??key_up_13
        LDRH     R0,[R5, #+34]
        ANDS     R0,R0,#0x380
        CMP      R0,#+896
        BNE.N    ??key_up_13
        MOVS     R0,#+11
        STRB     R0,[R4, #+1]
??key_up_13:
        LDRB     R0,[R4, #+1]
        CMP      R0,#+11
        BNE.N    ??key_up_14
        LDRH     R0,[R5, #+34]
        ANDS     R0,R0,#0x1C00
        CMP      R0,#+7168
        BNE.N    ??key_up_14
        MOVS     R0,#+12
        STRB     R0,[R4, #+1]
??key_up_14:
        LDRB     R0,[R4, #+1]
        CMP      R0,#+12
        BNE.N    ??key_up_15
        LDRH     R0,[R5, #+34]
        ANDS     R0,R0,#0xE000
        CMP      R0,#+57344
        BNE.N    ??key_up_15
        MOVS     R0,#+13
        STRB     R0,[R4, #+1]
??key_up_15:
        LDRB     R0,[R4, #+1]
        CMP      R0,#+13
        BNE.N    ??key_up_16
        LDRH     R0,[R5, #+34]
        ANDS     R0,R0,#0xE0
        CMP      R0,#+224
        BNE.N    ??key_up_16
        MOVS     R0,#+14
        STRB     R0,[R4, #+1]
??key_up_16:
        LDRB     R0,[R4, #+1]
        CMP      R0,#+14
        BNE.N    ??key_up_17
        LDRH     R0,[R5, #+34]
        LSLS     R0,R0,#+27
        BPL.N    ??key_up_17
        MOVS     R0,#+15
        STRB     R0,[R4, #+1]
??key_up_17:
        LDRB     R0,[R4, #+1]
        CMP      R0,#+15
        BNE.N    ??key_up_18
        LDRH     R0,[R5, #+34]
        LSLS     R0,R0,#+26
        BPL.N    ??key_up_18
        MOVS     R0,#+16
        STRB     R0,[R4, #+1]
??key_up_18:
        LDRB     R0,[R4, #+1]
        CMP      R0,#+16
        BNE.N    ??key_up_19
        LDRH     R0,[R5, #+34]
        LSLS     R0,R0,#+25
        BPL.N    ??key_up_19
        MOVS     R0,#+17
        STRB     R0,[R4, #+1]
??key_up_19:
        LDRB     R0,[R4, #+1]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -