📄 main.lis
字号:
0276 E0E0 ldi R30,0
0278 9E07 cpc R25,R30
027A 71F4 brne L20
027C .dbline 134
027C ; key_line<<=1;
027C 20900200 lds R2,L17
0280 30900300 lds R3,L17+1
0284 220C lsl R2
0286 331C rol R3
0288 30920300 sts L17+1,R3
028C 20920200 sts L17,R2
0290 .dbline 136
0290 ; else
0290 ; break;
0290 L23:
0290 .dbline 137
0290 L19:
0290 .dbline 128
0290 6395 inc R22
0292 L21:
0292 .dbline 128
0292 84E0 ldi R24,4
0294 8617 cp R24,R22
0296 C0F6 brsh L18
0298 L20:
0298 .dbline 138
0298 ; }
0298 ; delay_nms(5);
0298 05E0 ldi R16,5
029A 10E0 ldi R17,0
029C 0E940000 xcall _delay_nms
02A0 .dbline 139
02A0 ; if(key_value==(key_mask&PIND))
02A0 80B3 in R24,0x10
02A2 9927 clr R25
02A4 8F70 andi R24,15
02A6 9070 andi R25,0
02A8 20900000 lds R2,L16
02AC 30900100 lds R3,L16+1
02B0 2816 cp R2,R24
02B2 3906 cpc R3,R25
02B4 09F0 breq X1
02B6 8DC0 xjmp L24
02B8 X1:
02B8 .dbline 140
02B8 ; {
02B8 .dbline 142
02B8 ;
02B8 ; switch(key_line|key_value)
02B8 60910200 lds R22,L17
02BC 70910300 lds R23,L17+1
02C0 6229 or R22,R2
02C2 7329 or R23,R3
02C4 6732 cpi R22,39
02C6 E0E0 ldi R30,0
02C8 7E07 cpc R23,R30
02CA 09F4 brne X2
02CC 68C0 xjmp L36
02CE X2:
02CE 6B32 cpi R22,43
02D0 E0E0 ldi R30,0
02D2 7E07 cpc R23,R30
02D4 09F4 brne X3
02D6 60C0 xjmp L35
02D8 X3:
02D8 6D32 cpi R22,45
02DA E0E0 ldi R30,0
02DC 7E07 cpc R23,R30
02DE 09F4 brne X4
02E0 58C0 xjmp L34
02E2 X4:
02E2 6E32 cpi R22,46
02E4 E0E0 ldi R30,0
02E6 7E07 cpc R23,R30
02E8 09F4 brne X5
02EA 50C0 xjmp L33
02EC X5:
02EC 8EE2 ldi R24,46
02EE 90E0 ldi R25,0
02F0 8617 cp R24,R22
02F2 9707 cpc R25,R23
02F4 A4F0 brlt L46
02F6 L45:
02F6 6731 cpi R22,23
02F8 E0E0 ldi R30,0
02FA 7E07 cpc R23,R30
02FC 09F4 brne X6
02FE 43C0 xjmp L32
0300 X6:
0300 6B31 cpi R22,27
0302 E0E0 ldi R30,0
0304 7E07 cpc R23,R30
0306 09F4 brne X7
0308 3BC0 xjmp L31
030A X7:
030A 6D31 cpi R22,29
030C E0E0 ldi R30,0
030E 7E07 cpc R23,R30
0310 09F4 brne X8
0312 33C0 xjmp L30
0314 X8:
0314 6E31 cpi R22,30
0316 E0E0 ldi R30,0
0318 7E07 cpc R23,R30
031A 61F1 breq L29
031C 5AC0 xjmp L26
031E L46:
031E 6734 cpi R22,71
0320 E0E0 ldi R30,0
0322 7E07 cpc R23,R30
0324 09F4 brne X9
0326 47C0 xjmp L40
0328 X9:
0328 6B34 cpi R22,75
032A E0E0 ldi R30,0
032C 7E07 cpc R23,R30
032E 09F4 brne X10
0330 3FC0 xjmp L39
0332 X10:
0332 6D34 cpi R22,77
0334 E0E0 ldi R30,0
0336 7E07 cpc R23,R30
0338 09F4 brne X11
033A 37C0 xjmp L38
033C X11:
033C 6E34 cpi R22,78
033E E0E0 ldi R30,0
0340 7E07 cpc R23,R30
0342 81F1 breq L37
0344 6734 cpi R22,71
0346 E0E0 ldi R30,0
0348 7E07 cpc R23,R30
034A 0CF4 brge X12
034C 42C0 xjmp L26
034E X12:
034E L47:
034E 6738 cpi R22,135
0350 E0E0 ldi R30,0
0352 7E07 cpc R23,R30
0354 09F4 brne X13
0356 3BC0 xjmp L44
0358 X13:
0358 6B38 cpi R22,139
035A E0E0 ldi R30,0
035C 7E07 cpc R23,R30
035E 09F4 brne X14
0360 33C0 xjmp L43
0362 X14:
0362 6D38 cpi R22,141
0364 E0E0 ldi R30,0
0366 7E07 cpc R23,R30
0368 61F1 breq L42
036A 6E38 cpi R22,142
036C E0E0 ldi R30,0
036E 7E07 cpc R23,R30
0370 29F1 breq L41
0372 2FC0 xjmp L26
0374 X0:
0374 .dbline 143
0374 ; {
0374 L29:
0374 .dbline 144
0374 ; case 0b00011110:key_return=7;
0374 47E0 ldi R20,7
0376 50E0 ldi R21,0
0378 .dbline 145
0378 ; break;
0378 2CC0 xjmp L27
037A L30:
037A .dbline 146
037A ; case 0b00011101:key_return=8;
037A 48E0 ldi R20,8
037C 50E0 ldi R21,0
037E .dbline 147
037E ; break;
037E 29C0 xjmp L27
0380 L31:
0380 .dbline 148
0380 ; case 0b00011011:key_return=9;
0380 49E0 ldi R20,9
0382 50E0 ldi R21,0
0384 .dbline 149
0384 ; break;
0384 26C0 xjmp L27
0386 L32:
0386 .dbline 150
0386 ; case 0b00010111:key_return=11;
0386 4BE0 ldi R20,11
0388 50E0 ldi R21,0
038A .dbline 151
038A ; break;
038A 23C0 xjmp L27
038C L33:
038C .dbline 152
038C ; case 0b00101110:key_return=4;
038C 44E0 ldi R20,4
038E 50E0 ldi R21,0
0390 .dbline 153
0390 ; break;
0390 20C0 xjmp L27
0392 L34:
0392 .dbline 154
0392 ; case 0b00101101:key_return=5;
0392 45E0 ldi R20,5
0394 50E0 ldi R21,0
0396 .dbline 155
0396 ; break;
0396 1DC0 xjmp L27
0398 L35:
0398 .dbline 156
0398 ; case 0b00101011:key_return=6;
0398 46E0 ldi R20,6
039A 50E0 ldi R21,0
039C .dbline 157
039C ; break;
039C 1AC0 xjmp L27
039E L36:
039E .dbline 158
039E ; case 0b00100111:key_return=10;
039E 4AE0 ldi R20,10
03A0 50E0 ldi R21,0
03A2 .dbline 159
03A2 ; break;
03A2 17C0 xjmp L27
03A4 L37:
03A4 .dbline 160
03A4 ; case 0b01001110:key_return=1;
03A4 41E0 ldi R20,1
03A6 50E0 ldi R21,0
03A8 .dbline 161
03A8 ; break;
03A8 14C0 xjmp L27
03AA L38:
03AA .dbline 162
03AA ; case 0b01001101:key_return=2;
03AA 42E0 ldi R20,2
03AC 50E0 ldi R21,0
03AE .dbline 163
03AE ; break;
03AE 11C0 xjmp L27
03B0 L39:
03B0 .dbline 164
03B0 ; case 0b01001011:key_return=3;
03B0 43E0 ldi R20,3
03B2 50E0 ldi R21,0
03B4 .dbline 165
03B4 ; break;
03B4 0EC0 xjmp L27
03B6 L40:
03B6 .dbline 166
03B6 ; case 0b01000111:key_return=12;
03B6 4CE0 ldi R20,12
03B8 50E0 ldi R21,0
03BA .dbline 167
03BA ; break;
03BA 0BC0 xjmp L27
03BC L41:
03BC .dbline 168
03BC ; case 0b10001110:key_return=0;
03BC 4427 clr R20
03BE 5527 clr R21
03C0 .dbline 169
03C0 ; break;
03C0 08C0 xjmp L27
03C2 L42:
03C2 .dbline 170
03C2 ; case 0b10001101:key_return=13;//小数点
03C2 4DE0 ldi R20,13
03C4 50E0 ldi R21,0
03C6 .dbline 171
03C6 ; break;
03C6 05C0 xjmp L27
03C8 L43:
03C8 .dbline 172
03C8 ; case 0b10001011:key_return=14;//ENTER
03C8 4EE0 ldi R20,14
03CA 50E0 ldi R21,0
03CC .dbline 173
03CC ; break;
03CC 02C0 xjmp L27
03CE L44:
03CE .dbline 174
03CE ; case 0b10000111:key_return=15;//启动自动扫描
03CE 4FE0 ldi R20,15
03D0 50E0 ldi R21,0
03D2 .dbline 175
03D2 ; break;
03D2 L26:
03D2 L27:
03D2 .dbline 177
03D2 ; }
03D2 ; }
03D2 L24:
03D2 .dbline 178
03D2 ; return key_return;
03D2 8A01 movw R16,R20
03D4 .dbline -2
03D4 L15:
03D4 0E940000 xcall pop_gset2
03D8 .dbline 0 ; func end
03D8 0895 ret
03DA .dbsym r key_return 20 i
03DA .dbsym r i 22 c
03DA .dbend
03DA .dbfunc e read_keyvalue _read_keyvalue fV
03DA ; i -> R22,R23
03DA ; temp -> R20,R21
03DA ; keycode -> R22
.even
03DA _read_keyvalue::
03DA 0E940000 xcall push_gset2
03DE .dbline -1
03DE .dbline 183
03DE ; }
03DE ;
03DE ;
03DE ; void read_keyvalue()
03DE ; {
03DE .dbline 184
03DE ; uint temp=0;
03DE 4427 clr R20
03E0 5527 clr R21
03E2 .dbline 185
03E2 ; uint i=0;
03E2 6627 clr R22
03E4 7727 clr R23
03E6 .dbline 186
03E6 ; uchar keycode=16;
03E6 60E1 ldi R22,16
03E8 .dbline 187
03E8 ; keycode=KeyScan();
03E8 21DF xcall _KeyScan
03EA 602F mov R22,R16
03EC .dbline 188
03EC ; if(((keycode >=0)&&(keycode <=9)&&(cn < 4))||((keycode ==13)&&(cn == 1)))
03EC 0030 cpi R16,0
03EE 38F0 brlo L53
03F0 89E0 ldi R24,9
03F2 8017 cp R24,R16
03F4 20F0 brlo L53
03F6 80912700 lds R24,_cn
03FA 8430 cpi R24,4
03FC 40F0 brlo L51
03FE L53:
03FE 6D30 cpi R22,13
0400 09F0 breq X17
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -