📄 keypad_soft.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]
; commandline [-errors .\err\keypad_soft.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Key_ISR PROC
;;;50 void __irq Key_ISR(void)
;;;51 {
000000 e92d503f STMFD sp!,{r0-r5,r12,lr}
000004 e24dd010 SUB sp,sp,#0x10
;;;52 U16 dat_row[5];
;;;53 int i=0,j=0;
000008 e3a04000 MOV r4,#0
00000c e3a05000 MOV r5,#0
;;;54
;;;55 Uart_Printf("!\n");
000010 e28f0f84 ADR r0,|L1.552|
000014 ebfffffe BL _printf
;;;56
;;;57 rINTMSK |= BIT_KEYPAD;
000018 e59f020c LDR r0,|L1.556|
00001c e5900008 LDR r0,[r0,#8]
000020 e3800f80 ORR r0,r0,#0x200
000024 e59f1200 LDR r1,|L1.556|
000028 e5810008 STR r0,[r1,#8]
;;;58 rKEYINTC&=~(1<<3);
00002c e2810647 ADD r0,r1,#0x4700000
000030 e5900004 LDR r0,[r0,#4]
000034 e3c00008 BIC r0,r0,#8
000038 e2811647 ADD r1,r1,#0x4700000
00003c e5810004 STR r0,[r1,#4]
;;;59
;;;60 rKEYMAN=0x3e;
000040 e3a0003e MOV r0,#0x3e
000044 e1c11000 BIC r1,r1,r0
000048 e5810010 STR r0,[r1,#0x10]
;;;61 Delay(1); //delay(100)=10msec, delay(10)=1msec
00004c e3a00001 MOV r0,#1
000050 ebfffffe BL Delay
;;;62 dat_row[0]=(rKEYMAN&0x1f);
000054 e59f01d4 LDR r0,|L1.560|
000058 e5900010 LDR r0,[r0,#0x10]
00005c e200001f AND r0,r0,#0x1f
000060 e1cd00b4 STRH r0,[sp,#4]
;;;63
;;;64 rKEYMAN=0x3d;
000064 e3a0003d MOV r0,#0x3d
000068 e59f11c0 LDR r1,|L1.560|
00006c e5810010 STR r0,[r1,#0x10]
;;;65 Delay(1); //delay(100)=10msec, delay(10)=1msec
000070 e3a00001 MOV r0,#1
000074 ebfffffe BL Delay
;;;66 dat_row[1]=(rKEYMAN&0x1f);
000078 e59f01b0 LDR r0,|L1.560|
00007c e5900010 LDR r0,[r0,#0x10]
000080 e200001f AND r0,r0,#0x1f
000084 e1cd00b6 STRH r0,[sp,#6]
;;;67
;;;68 rKEYMAN=0x3b;
000088 e3a0003b MOV r0,#0x3b
00008c e59f119c LDR r1,|L1.560|
000090 e5810010 STR r0,[r1,#0x10]
;;;69 Delay(1); //delay(100)=10msec, delay(10)=1msec
000094 e3a00001 MOV r0,#1
000098 ebfffffe BL Delay
;;;70 dat_row[2]=(rKEYMAN&0x1f);
00009c e59f018c LDR r0,|L1.560|
0000a0 e5900010 LDR r0,[r0,#0x10]
0000a4 e200001f AND r0,r0,#0x1f
0000a8 e1cd00b8 STRH r0,[sp,#8]
;;;71
;;;72 rKEYMAN=0x37;
0000ac e3a00037 MOV r0,#0x37
0000b0 e59f1178 LDR r1,|L1.560|
0000b4 e5810010 STR r0,[r1,#0x10]
;;;73 Delay(1); //delay(100)=10msec, delay(10)=1msec
0000b8 e3a00001 MOV r0,#1
0000bc ebfffffe BL Delay
;;;74 dat_row[3]=(rKEYMAN&0x1f);
0000c0 e59f0168 LDR r0,|L1.560|
0000c4 e5900010 LDR r0,[r0,#0x10]
0000c8 e200001f AND r0,r0,#0x1f
0000cc e1cd00ba STRH r0,[sp,#0xa]
;;;75
;;;76 rKEYMAN=0x2f;
0000d0 e3a0002f MOV r0,#0x2f
0000d4 e59f1154 LDR r1,|L1.560|
0000d8 e5810010 STR r0,[r1,#0x10]
;;;77 Delay(1); //delay(100)=10msec, delay(10)=1msec
0000dc e3a00001 MOV r0,#1
0000e0 ebfffffe BL Delay
;;;78 dat_row[4]=(rKEYMAN&0x1f);
0000e4 e59f0144 LDR r0,|L1.560|
0000e8 e5900010 LDR r0,[r0,#0x10]
0000ec e200001f AND r0,r0,#0x1f
0000f0 e1cd00bc STRH r0,[sp,#0xc]
;;;79
;;;80 for(i=0;i<6;i++)
0000f4 e3a04000 MOV r4,#0
|L1.248|
0000f8 e3540006 CMP r4,#6
0000fc aa000030 BGE |L1.452|
000100 ea000001 B |L1.268|
|L1.260|
000104 e2844001 ADD r4,r4,#1
000108 eafffffa B |L1.248|
;;;81 {
;;;82 if(dat_row[i]==0x1e)
|L1.268|
00010c e28d0004 ADD r0,sp,#4
000110 e0800084 ADD r0,r0,r4,LSL #1
000114 e1d000b0 LDRH r0,[r0,#0]
000118 e350001e CMP r0,#0x1e
00011c 1a000003 BNE |L1.304|
;;;83 {
;;;84 Uart_Printf("%d\n",j);
000120 e1a01005 MOV r1,r5
000124 e28f0f42 ADR r0,|L1.564|
000128 ebfffffe BL _printf
00012c ea000022 B |L1.444|
;;;85 }
;;;86 else if(dat_row[i]==0x1d)
|L1.304|
000130 e28d0004 ADD r0,sp,#4
000134 e0800084 ADD r0,r0,r4,LSL #1
000138 e1d000b0 LDRH r0,[r0,#0]
00013c e350001d CMP r0,#0x1d
000140 1a000003 BNE |L1.340|
;;;87 {
;;;88 Uart_Printf("%d\n",j+1);
000144 e2851001 ADD r1,r5,#1
000148 e28f00e4 ADR r0,|L1.564|
00014c ebfffffe BL _printf
000150 ea000019 B |L1.444|
;;;89 }
;;;90 else if(dat_row[i]==0x1b)
|L1.340|
000154 e28d0004 ADD r0,sp,#4
000158 e0800084 ADD r0,r0,r4,LSL #1
00015c e1d000b0 LDRH r0,[r0,#0]
000160 e350001b CMP r0,#0x1b
000164 1a000003 BNE |L1.376|
;;;91 {
;;;92 Uart_Printf("%d\n",j+2);
000168 e2851002 ADD r1,r5,#2
00016c e28f00c0 ADR r0,|L1.564|
000170 ebfffffe BL _printf
000174 ea000010 B |L1.444|
;;;93 }
;;;94 else if(dat_row[i]==0x17)
|L1.376|
000178 e28d0004 ADD r0,sp,#4
00017c e0800084 ADD r0,r0,r4,LSL #1
000180 e1d000b0 LDRH r0,[r0,#0]
000184 e3500017 CMP r0,#0x17
000188 1a000003 BNE |L1.412|
;;;95 {
;;;96 Uart_Printf("%d\n",j+3);
00018c e2851003 ADD r1,r5,#3
000190 e28f009c ADR r0,|L1.564|
000194 ebfffffe BL _printf
000198 ea000007 B |L1.444|
;;;97 }
;;;98 else if(dat_row[i]==0xf)
|L1.412|
00019c e28d0004 ADD r0,sp,#4
0001a0 e0800084 ADD r0,r0,r4,LSL #1
0001a4 e1d000b0 LDRH r0,[r0,#0]
0001a8 e350000f CMP r0,#0xf
0001ac 1a000002 BNE |L1.444|
;;;99 {
;;;100 Uart_Printf("%d\n",j+4);
0001b0 e2851004 ADD r1,r5,#4
0001b4 e28f0078 ADR r0,|L1.564|
0001b8 ebfffffe BL _printf
;;;101 }
;;;102 j=j+5;
|L1.444|
0001bc e2855005 ADD r5,r5,#5
;;;103 }
0001c0 eaffffcf B |L1.260|
;;;104
;;;105 rKEYMAN=(1<<5)|(0x0);
|L1.452|
0001c4 e3a00020 MOV r0,#0x20
0001c8 e59f1060 LDR r1,|L1.560|
0001cc e5810010 STR r0,[r1,#0x10]
;;;106 Delay(1);
0001d0 e3a00001 MOV r0,#1
0001d4 ebfffffe BL Delay
;;;107 ClearPending(BIT_KEYPAD); // Remove the pending bit
0001d8 e3a00f80 MOV r0,#0x200
0001dc e59f1048 LDR r1,|L1.556|
0001e0 e5810000 STR r0,[r1,#0]
0001e4 e1c10000 BIC r0,r1,r0
0001e8 e5900010 LDR r0,[r0,#0x10]
0001ec e5810010 STR r0,[r1,#0x10]
0001f0 e1a00001 MOV r0,r1
0001f4 e5900010 LDR r0,[r0,#0x10]
;;;108 rINTMSK &= ~(BIT_KEYPAD);
0001f8 e1a00001 MOV r0,r1
0001fc e5900008 LDR r0,[r0,#8]
000200 e3c00f80 BIC r0,r0,#0x200
000204 e5810008 STR r0,[r1,#8]
;;;109 rKEYINTC|=(1<<3);
000208 e2810647 ADD r0,r1,#0x4700000
00020c e5900004 LDR r0,[r0,#4]
000210 e3800008 ORR r0,r0,#8
000214 e2811647 ADD r1,r1,#0x4700000
000218 e5810004 STR r0,[r1,#4]
;;;110 }
00021c e28dd010 ADD sp,sp,#0x10
000220 e8bd503f LDMFD sp!,{r0-r5,r12,lr}
000224 e25ef004 SUBS pc,lr,#4
|L1.552|
000228 00000a21 DCB "!\n\0\0"
|L1.556|
00022c 40200000 DCD 0x40200000
|L1.560|
000230 44900000 DCD 0x44900000
|L1.564|
000234 000a6425 DCB "%d\n\0"
ENDP
Key_pad_Init PROC
;;;112 void Key_pad_Init(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -