📄 main.lis
字号:
033A L69:
033A .dbline 246
033A ; }
033A ; if(D4FC!=0)
033A 20901A00 lds R2,_D4FC
033E 2220 tst R2
0340 39F0 breq L71
0342 .dbline 247
0342 ; {
0342 .dbline 248
0342 ; D4FC=0;
0342 2224 clr R2
0344 20921A00 sts _D4FC,R2
0348 .dbline 249
0348 ; D5FC=1;
0348 81E0 ldi R24,1
034A 80931900 sts _D5FC,R24
034E .dbline 250
034E ; goto exit_1;
034E 10C0 rjmp L66
0350 L71:
0350 .dbline 252
0350 ; }
0350 ; if(D5FC!=0)
0350 20901900 lds R2,_D5FC
0354 2220 tst R2
0356 61F0 breq L73
0358 .dbline 253
0358 ; {
0358 .dbline 254
0358 ; D5FC=1;
0358 81E0 ldi R24,1
035A 80931900 sts _D5FC,R24
035E .dbline 255
035E ; D4FC=1;
035E 80931A00 sts _D4FC,R24
0362 .dbline 256
0362 ; D3FC=1;
0362 80931B00 sts _D3FC,R24
0366 .dbline 257
0366 ; DECODER_FLAG_L;
0366 80910200 lds R24,_flag
036A 8B7F andi R24,251
036C 80930200 sts _flag,R24
0370 .dbline 258
0370 ; goto exit_1;
0370 L73:
0370 L66:
0370 .dbline 260
0370 ; }
0370 ; exit_1:;
0370 .dbline 261
0370 ; }
0370 L62:
0370 .dbline 262
0370 ; e=(key_2());
0370 00D0 rcall _key_2
0372 A02E mov R10,R16
0374 .dbline 263
0374 ; if(e==1) //闪烁数据加一
0374 0130 cpi R16,1
0376 09F0 breq X1
0378 ABC0 rjmp L75
037A X1:
037A .dbline 264
037A ; {
037A .dbline 265
037A ; sec=30;
037A 8EE1 ldi R24,30
037C 80930400 sts _sec,R24
0380 .dbline 266
0380 ; if(D1FC!=0)
0380 20901D00 lds R2,_D1FC
0384 2220 tst R2
0386 09F4 brne X2
0388 37C0 rjmp L77
038A X2:
038A .dbline 267
038A ; {
038A .dbline 268
038A ; if(d<99) d++; //转成BCD到显示
038A 6336 cpi R22,99
038C 08F4 brsh L79
038E .dbline 268
038E 6395 inc R22
0390 L79:
0390 .dbline 269
0390 ; dipdata[1]=diptable[(d/10)];
0390 2AE0 ldi R18,10
0392 30E0 ldi R19,0
0394 062F mov R16,R22
0396 1127 clr R17
0398 00D0 rcall div16s
039A F801 movw R30,R16
039C 80E0 ldi R24,<_diptable
039E 90E0 ldi R25,>_diptable
03A0 E80F add R30,R24
03A2 F91F adc R31,R25
03A4 E491 lpm R30,Z
03A6 E0930C00 sts _dipdata+1,R30
03AA .dbline 270
03AA ; dipdata[2]=diptable[d%10];
03AA 2AE0 ldi R18,10
03AC 30E0 ldi R19,0
03AE 062F mov R16,R22
03B0 1127 clr R17
03B2 00D0 rcall mod16s
03B4 F801 movw R30,R16
03B6 80E0 ldi R24,<_diptable
03B8 90E0 ldi R25,>_diptable
03BA E80F add R30,R24
03BC F91F adc R31,R25
03BE E491 lpm R30,Z
03C0 E0930D00 sts _dipdata+2,R30
03C4 .dbline 271
03C4 ; lookup_led(d);
03C4 062F mov R16,R22
03C6 FDDE rcall _lookup_led
03C8 .dbline 272
03C8 ; if((d3==0)&&(d4==0)&&(d5==0)) //未用过的EEPROM
03C8 20901700 lds R2,_d3
03CC 2220 tst R2
03CE A1F4 brne L83
03D0 20901600 lds R2,_d4
03D4 2220 tst R2
03D6 81F4 brne L83
03D8 20901500 lds R2,_d5
03DC 2220 tst R2
03DE 61F4 brne L83
03E0 .dbline 273
03E0 ; {
03E0 .dbline 274
03E0 ; EEPROM_write((d*4)+2,0);
03E0 2227 clr R18
03E2 84E0 ldi R24,4
03E4 869F mul R24,R22
03E6 002D mov R16,R0
03E8 0E5F subi R16,254 ; addi 2
03EA 00D0 rcall _EEPROM_write
03EC .dbline 275
03EC ; EEPROM_write((d*4)+3,0);
03EC 2227 clr R18
03EE 84E0 ldi R24,4
03F0 869F mul R24,R22
03F2 002D mov R16,R0
03F4 0D5F subi R16,253 ; addi 3
03F6 00D0 rcall _EEPROM_write
03F8 .dbline 276
03F8 ; }
03F8 L83:
03F8 .dbline 277
03F8 ; }
03F8 L77:
03F8 .dbline 278
03F8 ; if((D3FC!=0)&&(D4FC==0))
03F8 20901B00 lds R2,_D3FC
03FC 2220 tst R2
03FE E1F0 breq L85
0400 20901A00 lds R2,_D4FC
0404 2220 tst R2
0406 C1F4 brne L85
0408 .dbline 279
0408 ; {
0408 .dbline 280
0408 ; if(d3<9) d3++;
0408 80911700 lds R24,_d3
040C 8930 cpi R24,9
040E 18F4 brsh L87
0410 .dbline 280
0410 8F5F subi R24,255 ; addi 1
0412 80931700 sts _d3,R24
0416 L87:
0416 .dbline 281
0416 ; dipdata[3]=diptable[d3];
0416 80E0 ldi R24,<_diptable
0418 90E0 ldi R25,>_diptable
041A E0911700 lds R30,_d3
041E FF27 clr R31
0420 E80F add R30,R24
0422 F91F adc R31,R25
0424 E491 lpm R30,Z
0426 E0930E00 sts _dipdata+3,R30
042A .dbline 282
042A ; EEPROM_write((d*4)+2,d3);
042A 20911700 lds R18,_d3
042E 84E0 ldi R24,4
0430 869F mul R24,R22
0432 002D mov R16,R0
0434 0E5F subi R16,254 ; addi 2
0436 00D0 rcall _EEPROM_write
0438 .dbline 283
0438 ; }
0438 L85:
0438 .dbline 284
0438 ; if((D4FC!=0)&&(D5FC==0))
0438 20901A00 lds R2,_D4FC
043C 2220 tst R2
043E 11F1 breq L90
0440 20901900 lds R2,_D5FC
0444 2220 tst R2
0446 F1F4 brne L90
0448 .dbline 285
0448 ; {
0448 .dbline 286
0448 ; if(d4<9) d4++;
0448 80911600 lds R24,_d4
044C 8930 cpi R24,9
044E 18F4 brsh L92
0450 .dbline 286
0450 8F5F subi R24,255 ; addi 1
0452 80931600 sts _d4,R24
0456 L92:
0456 .dbline 287
0456 ; dipdata[4]=diptable[d4];
0456 80E0 ldi R24,<_diptable
0458 90E0 ldi R25,>_diptable
045A E0911600 lds R30,_d4
045E FF27 clr R31
0460 E80F add R30,R24
0462 F91F adc R31,R25
0464 E491 lpm R30,Z
0466 E0930F00 sts _dipdata+4,R30
046A .dbline 288
046A ; j=((d4<<4)+d5);
046A 20901500 lds R2,_d5
046E 40911600 lds R20,_d4
0472 4F70 andi R20,#0x0F
0474 4295 swap R20
0476 420D add R20,R2
0478 .dbline 289
0478 ; EEPROM_write((d*4)+3,j);
0478 242F mov R18,R20
047A 84E0 ldi R24,4
047C 869F mul R24,R22
047E 002D mov R16,R0
0480 0D5F subi R16,253 ; addi 3
0482 00D0 rcall _EEPROM_write
0484 .dbline 290
0484 ; }
0484 L90:
0484 .dbline 291
0484 ; if((D5FC!=0)&&(D4FC==0))
0484 20901900 lds R2,_D5FC
0488 2220 tst R2
048A 11F1 breq L95
048C 20901A00 lds R2,_D4FC
0490 2220 tst R2
0492 F1F4 brne L95
0494 .dbline 292
0494 ; {
0494 .dbline 293
0494 ; if(d5<9) d5++;
0494 80911500 lds R24,_d5
0498 8930 cpi R24,9
049A 18F4 brsh L97
049C .dbline 293
049C 8F5F subi R24,255 ; addi 1
049E 80931500 sts _d5,R24
04A2 L97:
04A2 .dbline 294
04A2 ; dipdata[5]=diptable[d5];
04A2 80E0 ldi R24,<_diptable
04A4 90E0 ldi R25,>_diptable
04A6 E0911500 lds R30,_d5
04AA FF27 clr R31
04AC E80F add R30,R24
04AE F91F adc R31,R25
04B0 E491 lpm R30,Z
04B2 E0931000 sts _dipdata+5,R30
04B6 .dbline 295
04B6 ; j=((d4<<4)+d5);
04B6 20901500 lds R2,_d5
04BA 40911600 lds R20,_d4
04BE 4F70 andi R20,#0x0F
04C0 4295 swap R20
04C2 420D add R20,R2
04C4 .dbline 296
04C4 ; EEPROM_write((d*4)+3,j);
04C4 242F mov R18,R20
04C6 84E0 ldi R24,4
04C8 869F mul R24,R22
04CA 002D mov R16,R0
04CC 0D5F subi R16,253 ; addi 3
04CE 00D0 rcall _EEPROM_write
04D0 .dbline 297
04D0 ; }
04D0 L95:
04D0 .dbline 298
04D0 ; }
04D0 L75:
04D0 .dbline 299
04D0 ; if(e==2)
04D0 8A2D mov R24,R10
04D2 8230 cpi R24,2
04D4 99F4 brne L100
04D6 .dbline 300
04D6 ; {
04D6 .dbline 301
04D6 ; if((PIND&0x20)==0)
04D6 4D99 sbic 0x9,5
04D8 11C0 rjmp L102
04DA .dbline 302
04DA ; {
04DA .dbline 303
04DA ; for(i=0;i<255;i++)
04DA CC24 clr R12
04DC 04C0 rjmp L107
04DE L104:
04DE .dbline 304
04DE .dbline 305
04DE 2FEF ldi R18,255
04E0 0C2D mov R16,R12
04E2 00D0 rcall _EEPROM_write
04E4 .dbline 306
04E4 L105:
04E4 .dbline 303
04E4 C394 inc R12
04E6 L107:
04E6 .dbline 303
04E6 8C2D mov R24,R12
04E8 8F3F cpi R24,255
04EA C8F3 brlo L104
04EC .dbline 307
04EC ; {
04EC ; EEPROM_write(i,0xff);
04EC ; }
04EC ; flagh |=0x01;
04EC 80910300 lds R24,_flagh
04F0 8160 ori R24,1
04F2 80930300 sts _flagh,R24
04F6 .dbline 308
04F6 ; SPFC=1;
04F6 81E0 ldi R24,1
04F8 80930800 sts _SPFC,R24
04FC .dbline 309
04FC ; }
04FC L102:
04FC .dbline 310
04FC ; }
04FC L100:
04FC .dbline 311
04FC ; e=(key_3());
04FC 00D0 rcall _key_3
04FE A02E mov R10,R16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -