📄 key_new.lis
字号:
00B2 7E07 cpc R23,R30
00B4 09F0 breq L23
00B6 X8:
00B6 07C0 xjmp L20
00B8 L23:
00B8 .dbline 37
00B8 ; {
00B8 ; case 0x0e:key=4;break;
00B8 44E0 ldi R20,4
00BA .dbline 37
00BA 05C0 xjmp L21
00BC L24:
00BC .dbline 38
00BC ; case 0x0d:key=5;break;
00BC 45E0 ldi R20,5
00BE .dbline 38
00BE 03C0 xjmp L21
00C0 L25:
00C0 .dbline 39
00C0 ; case 0x0b:key=6;break;
00C0 46E0 ldi R20,6
00C2 .dbline 39
00C2 01C0 xjmp L21
00C4 L26:
00C4 .dbline 40
00C4 ; case 0x07:key=7;break;
00C4 47E0 ldi R20,7
00C6 .dbline 40
00C6 L20:
00C6 L21:
00C6 .dbline 42
00C6 ; }
00C6 ; PORTB=0xbf; //第三次高位输出1011
00C6 8FEB ldi R24,191
00C8 88BB out 0x18,R24
00CA .dbline 43
00CA ; delay(1600);
00CA 00E4 ldi R16,1600
00CC 16E0 ldi R17,6
00CE 98DF xcall _delay
00D0 .dbline 44
00D0 ; switch((PINB&0x0f))//按键识别 (8,9,a,b)
00D0 66B3 in R22,0x16
00D2 7727 clr R23
00D4 6F70 andi R22,15
00D6 7070 andi R23,0
00D8 6730 cpi R22,7
00DA E0E0 ldi R30,0
00DC 7E07 cpc R23,R30
00DE 99F0 breq L33
00E0 X9:
00E0 6B30 cpi R22,11
00E2 E0E0 ldi R30,0
00E4 7E07 cpc R23,R30
00E6 69F0 breq L32
00E8 X10:
00E8 6D30 cpi R22,13
00EA E0E0 ldi R30,0
00EC 7E07 cpc R23,R30
00EE 39F0 breq L31
00F0 X11:
00F0 6E30 cpi R22,14
00F2 E0E0 ldi R30,0
00F4 7E07 cpc R23,R30
00F6 09F0 breq L30
00F8 X12:
00F8 07C0 xjmp L27
00FA L30:
00FA .dbline 46
00FA ; {
00FA ; case 0x0e:key=8;break;
00FA 48E0 ldi R20,8
00FC .dbline 46
00FC 05C0 xjmp L28
00FE L31:
00FE .dbline 47
00FE ; case 0x0d:key=9;break;
00FE 49E0 ldi R20,9
0100 .dbline 47
0100 03C0 xjmp L28
0102 L32:
0102 .dbline 48
0102 ; case 0x0b:key=10;break;
0102 4AE0 ldi R20,10
0104 .dbline 48
0104 01C0 xjmp L28
0106 L33:
0106 .dbline 49
0106 ; case 0x07:key=11;break;
0106 4BE0 ldi R20,11
0108 .dbline 49
0108 L27:
0108 L28:
0108 .dbline 51
0108 ; }
0108 ; PORTB=0x7f; //第四次高位输出0111
0108 8FE7 ldi R24,127
010A 88BB out 0x18,R24
010C .dbline 52
010C ; delay(1600);
010C 00E4 ldi R16,1600
010E 16E0 ldi R17,6
0110 77DF xcall _delay
0112 .dbline 53
0112 ; switch((PINB&0x0f))//按键识别 (c,d,e,f)
0112 66B3 in R22,0x16
0114 7727 clr R23
0116 6F70 andi R22,15
0118 7070 andi R23,0
011A 6730 cpi R22,7
011C E0E0 ldi R30,0
011E 7E07 cpc R23,R30
0120 99F0 breq L40
0122 X13:
0122 6B30 cpi R22,11
0124 E0E0 ldi R30,0
0126 7E07 cpc R23,R30
0128 69F0 breq L39
012A X14:
012A 6D30 cpi R22,13
012C E0E0 ldi R30,0
012E 7E07 cpc R23,R30
0130 39F0 breq L38
0132 X15:
0132 6E30 cpi R22,14
0134 E0E0 ldi R30,0
0136 7E07 cpc R23,R30
0138 09F0 breq L37
013A X16:
013A 07C0 xjmp L34
013C L37:
013C .dbline 55
013C ; {
013C ; case 0x0e:key=12;break;
013C 4CE0 ldi R20,12
013E .dbline 55
013E 05C0 xjmp L35
0140 L38:
0140 .dbline 56
0140 ; case 0x0d:key=13;break;
0140 4DE0 ldi R20,13
0142 .dbline 56
0142 03C0 xjmp L35
0144 L39:
0144 .dbline 57
0144 ; case 0x0b:key=14;break;
0144 4EE0 ldi R20,14
0146 .dbline 57
0146 01C0 xjmp L35
0148 L40:
0148 .dbline 58
0148 ; case 0x07:key=15;break;
0148 4FE0 ldi R20,15
014A .dbline 58
014A L34:
014A L35:
014A .dbline 60
014A ; }
014A ; }while((PINB&0x0f)!=0x0f); //按键检测
014A L11:
014A .dbline 60
014A 86B3 in R24,0x16
014C 8F70 andi R24,15
014E 8F30 cpi R24,15
0150 09F0 breq X19
0152 74CF xjmp L10
0154 X19:
0154 X17:
0154 .dbline 61
0154 ; PORTD=table[key];
0154 CE01 movw R24,R28
0156 E42F mov R30,R20
0158 FF27 clr R31
015A E80F add R30,R24
015C F91F adc R31,R25
015E 2080 ldd R2,z+0
0160 22BA out 0x12,R2
0162 .dbline 62
0162 ; delay(16000);
0162 00E8 ldi R16,16000
0164 1EE3 ldi R17,62
0166 4CDF xcall _delay
0168 .dbline 63
0168 ; }
0168 L8:
0168 .dbline 19
0168 69CF xjmp L7
016A X18:
016A .dbline -2
016A L5:
016A .dbline 0 ; func end
016A 6096 adiw R28,16
016C 0895 ret
016E .dbsym l table 0 A[16:16]c
016E .dbsym r key 20 c
016E .dbend
016E ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -