📄 矩阵键盘.lis
字号:
00C6 X5:
00C6 .dbline 63
00C6 ; switch(key)
00C6 642F mov R22,R20
00C8 7727 clr R23
00CA 673B cpi R22,183
00CC E0E0 ldi R30,0
00CE 7E07 cpc R23,R30
00D0 09F4 brne X25
00D2 6BC0 xjmp L40
00D4 X25:
00D4 X6:
00D4 6B3B cpi R22,187
00D6 E0E0 ldi R30,0
00D8 7E07 cpc R23,R30
00DA 09F4 brne X26
00DC 5EC0 xjmp L36
00DE X26:
00DE X7:
00DE 6D3B cpi R22,189
00E0 E0E0 ldi R30,0
00E2 7E07 cpc R23,R30
00E4 09F4 brne X27
00E6 51C0 xjmp L32
00E8 X27:
00E8 X8:
00E8 6E3B cpi R22,190
00EA E0E0 ldi R30,0
00EC 7E07 cpc R23,R30
00EE 09F4 brne X28
00F0 44C0 xjmp L28
00F2 X28:
00F2 X9:
00F2 8EEB ldi R24,190
00F4 90E0 ldi R25,0
00F6 8617 cp R24,R22
00F8 9707 cpc R25,R23
00FA A4F0 brlt L43
00FC X10:
00FC L42:
00FC 6737 cpi R22,119
00FE E0E0 ldi R30,0
0100 7E07 cpc R23,R30
0102 09F4 brne X29
0104 54C0 xjmp L41
0106 X29:
0106 X11:
0106 6B37 cpi R22,123
0108 E0E0 ldi R30,0
010A 7E07 cpc R23,R30
010C 09F4 brne X30
010E 47C0 xjmp L37
0110 X30:
0110 X12:
0110 6D37 cpi R22,125
0112 E0E0 ldi R30,0
0114 7E07 cpc R23,R30
0116 09F4 brne X31
0118 3AC0 xjmp L33
011A X31:
011A X13:
011A 6E37 cpi R22,126
011C E0E0 ldi R30,0
011E 7E07 cpc R23,R30
0120 71F1 breq L29
0122 X14:
0122 47C0 xjmp L23
0124 L43:
0124 673D cpi R22,215
0126 E0E0 ldi R30,0
0128 7E07 cpc R23,R30
012A 09F4 brne X32
012C 3CC0 xjmp L39
012E X32:
012E X15:
012E 6B3D cpi R22,219
0130 E0E0 ldi R30,0
0132 7E07 cpc R23,R30
0134 81F1 breq L35
0136 X16:
0136 6D3D cpi R22,221
0138 E0E0 ldi R30,0
013A 7E07 cpc R23,R30
013C 21F1 breq L31
013E X17:
013E 6E3D cpi R22,222
0140 E0E0 ldi R30,0
0142 7E07 cpc R23,R30
0144 C1F0 breq L27
0146 X18:
0146 673D cpi R22,215
0148 E0E0 ldi R30,0
014A 7E07 cpc R23,R30
014C 0CF4 brge X33
014E 31C0 xjmp L23
0150 X33:
0150 X19:
0150 L44:
0150 673E cpi R22,231
0152 E0E0 ldi R30,0
0154 7E07 cpc R23,R30
0156 29F1 breq L38
0158 X20:
0158 6B3E cpi R22,235
015A E0E0 ldi R30,0
015C 7E07 cpc R23,R30
015E C9F0 breq L34
0160 X21:
0160 6D3E cpi R22,237
0162 E0E0 ldi R30,0
0164 7E07 cpc R23,R30
0166 69F0 breq L30
0168 X22:
0168 6E3E cpi R22,238
016A E0E0 ldi R30,0
016C 7E07 cpc R23,R30
016E 09F0 breq L26
0170 X23:
0170 20C0 xjmp L23
0172 L26:
0172 .dbline 66
0172 ; {
0172 ; case 0xEE:
0172 ; key=0x0;
0172 4427 clr R20
0174 .dbline 67
0174 ; break;
0174 21C0 xjmp L16
0176 L27:
0176 .dbline 69
0176 ; case 0xDE:
0176 ; key=0x1;
0176 41E0 ldi R20,1
0178 .dbline 70
0178 ; break;
0178 1FC0 xjmp L16
017A L28:
017A .dbline 72
017A ; case 0xBE:
017A ; key=0x2;
017A 42E0 ldi R20,2
017C .dbline 73
017C ; break;
017C 1DC0 xjmp L16
017E L29:
017E .dbline 75
017E ; case 0x7E:
017E ; key=0x3;
017E 43E0 ldi R20,3
0180 .dbline 76
0180 ; break;
0180 1BC0 xjmp L16
0182 L30:
0182 .dbline 78
0182 ; case 0xED:
0182 ; key=0x4;
0182 44E0 ldi R20,4
0184 .dbline 79
0184 ; break;
0184 19C0 xjmp L16
0186 L31:
0186 .dbline 81
0186 ; case 0xDD:
0186 ; key=0x5;
0186 45E0 ldi R20,5
0188 .dbline 82
0188 ; break;
0188 17C0 xjmp L16
018A L32:
018A .dbline 84
018A ; case 0xBD:
018A ; key=0x6;
018A 46E0 ldi R20,6
018C .dbline 85
018C ; break;
018C 15C0 xjmp L16
018E L33:
018E .dbline 87
018E ; case 0x7D:
018E ; key=0x7;
018E 47E0 ldi R20,7
0190 .dbline 88
0190 ; break;
0190 13C0 xjmp L16
0192 L34:
0192 .dbline 90
0192 ; case 0xEB:
0192 ; key=0x8;
0192 48E0 ldi R20,8
0194 .dbline 91
0194 ; break;
0194 11C0 xjmp L16
0196 L35:
0196 .dbline 93
0196 ; case 0xDB:
0196 ; key=0x9;
0196 49E0 ldi R20,9
0198 .dbline 94
0198 ; break;
0198 0FC0 xjmp L16
019A L36:
019A .dbline 96
019A ; case 0xBB:
019A ; key=0xA;
019A 4AE0 ldi R20,10
019C .dbline 97
019C ; break;
019C 0DC0 xjmp L16
019E L37:
019E .dbline 99
019E ; case 0x7B:
019E ; key=0xB;
019E 4BE0 ldi R20,11
01A0 .dbline 100
01A0 ; break;
01A0 0BC0 xjmp L16
01A2 L38:
01A2 .dbline 102
01A2 ; case 0xE7:
01A2 ; key=0xC;
01A2 4CE0 ldi R20,12
01A4 .dbline 103
01A4 ; break;
01A4 09C0 xjmp L16
01A6 L39:
01A6 .dbline 105
01A6 ; case 0xD7:
01A6 ; key=0xD;
01A6 4DE0 ldi R20,13
01A8 .dbline 106
01A8 ; break;
01A8 07C0 xjmp L16
01AA L40:
01AA .dbline 108
01AA ; case 0xB7:
01AA ; key=0xE;
01AA 4EE0 ldi R20,14
01AC .dbline 109
01AC ; break;
01AC 05C0 xjmp L16
01AE L41:
01AE .dbline 111
01AE ; case 0x77:
01AE ; key=0xF;
01AE 4FE0 ldi R20,15
01B0 .dbline 112
01B0 ; break;
01B0 03C0 xjmp L16
01B2 L23:
01B2 .dbline 114
01B2 ; default:
01B2 ; key=16;
01B2 40E1 ldi R20,16
01B4 .dbline 115
01B4 ; }
01B4 .dbline 116
01B4 ; }
01B4 01C0 xjmp L16
01B6 L15:
01B6 .dbline 118
01B6 ; else
01B6 ; {
01B6 .dbline 119
01B6 ; key=16;
01B6 40E1 ldi R20,16
01B8 .dbline 120
01B8 ; }
01B8 L16:
01B8 .dbline 121
01B8 ; return key;
01B8 042F mov R16,R20
01BA .dbline -2
01BA L14:
01BA .dbline 0 ; func end
01BA 0C940000 xjmp pop_xgsetF00C
01BE .dbsym r j 10 c
01BE .dbsym r key 20 c
01BE .dbsym r i 22 c
01BE .dbend
01BE .dbfunc e main _main fV
01BE ; l -> R10
.even
01BE _main::
01BE .dbline -1
01BE .dbline 124
01BE ; }
01BE ; void main()
01BE ; {
01BE .dbline 126
01BE ; uchar l;
01BE ; DDRA=0xff;// 0001 1000
01BE 8FEF ldi R24,255
01C0 8ABB out 0x1a,R24
01C2 .dbline 127
01C2 ; DDRB=0XFF;
01C2 87BB out 0x17,R24
01C4 07C0 xjmp L47
01C6 L46:
01C6 .dbline 129
01C6 ; while(1)
01C6 ; {
01C6 .dbline 130
01C6 ; if(key_press())
01C6 4BDF xcall _key_press
01C8 0023 tst R16
01CA 21F0 breq L49
01CC X34:
01CC .dbline 131
01CC ; {
01CC .dbline 132
01CC ; l=key_scan();
01CC 59DF xcall _key_scan
01CE A02E mov R10,R16
01D0 .dbline 133
01D0 ; show(l,0);
01D0 2227 clr R18
01D2 2BDF xcall _show
01D4 .dbline 134
01D4 ; }
01D4 L49:
01D4 .dbline 135
01D4 ; }
01D4 L47:
01D4 .dbline 128
01D4 F8CF xjmp L46
01D6 X35:
01D6 .dbline -2
01D6 L45:
01D6 .dbline 0 ; func end
01D6 0895 ret
01D8 .dbsym r l 10 c
01D8 .dbend
01D8 ;
01D8 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -