📄 yt_key.s
字号:
///////////////////////////////////////////////////////////////////////////////
// /
// 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 + -