📄 main.lis
字号:
0500 .dbline 312
0500 ; if(e==1) //闪烁数据减一
0500 0130 cpi R16,1
0502 09F0 breq X3
0504 96C0 rjmp L108
0506 X3:
0506 .dbline 313
0506 ; {
0506 .dbline 314
0506 ; sec=30;
0506 8EE1 ldi R24,30
0508 80930400 sts _sec,R24
050C .dbline 315
050C ; if(D1FC!=0)
050C 20901D00 lds R2,_D1FC
0510 2220 tst R2
0512 F9F0 breq L110
0514 .dbline 316
0514 ; {
0514 .dbline 317
0514 ; if(d!=0) d--; //转成BCD到显示
0514 6623 tst R22
0516 09F0 breq L112
0518 .dbline 317
0518 6A95 dec R22
051A L112:
051A .dbline 318
051A ; dipdata[1]=diptable[(d/10)];
051A 2AE0 ldi R18,10
051C 30E0 ldi R19,0
051E 062F mov R16,R22
0520 1127 clr R17
0522 00D0 rcall div16s
0524 F801 movw R30,R16
0526 80E0 ldi R24,<_diptable
0528 90E0 ldi R25,>_diptable
052A E80F add R30,R24
052C F91F adc R31,R25
052E E491 lpm R30,Z
0530 E0930C00 sts _dipdata+1,R30
0534 .dbline 319
0534 ; dipdata[2]=diptable[d%10];
0534 2AE0 ldi R18,10
0536 30E0 ldi R19,0
0538 062F mov R16,R22
053A 1127 clr R17
053C 00D0 rcall mod16s
053E F801 movw R30,R16
0540 80E0 ldi R24,<_diptable
0542 90E0 ldi R25,>_diptable
0544 E80F add R30,R24
0546 F91F adc R31,R25
0548 E491 lpm R30,Z
054A E0930D00 sts _dipdata+2,R30
054E .dbline 320
054E ; lookup_led(d);
054E 062F mov R16,R22
0550 38DE rcall _lookup_led
0552 .dbline 321
0552 ; }
0552 L110:
0552 .dbline 322
0552 ; if((D3FC!=0)&&(D4FC==0))
0552 20901B00 lds R2,_D3FC
0556 2220 tst R2
0558 E9F0 breq L116
055A 20901A00 lds R2,_D4FC
055E 2220 tst R2
0560 C9F4 brne L116
0562 .dbline 323
0562 ; {
0562 .dbline 324
0562 ; if(d3!=0) d3--;
0562 20901700 lds R2,_d3
0566 2220 tst R2
0568 21F0 breq L118
056A .dbline 324
056A 822D mov R24,R2
056C 8150 subi R24,1
056E 80931700 sts _d3,R24
0572 L118:
0572 .dbline 325
0572 ; dipdata[3]=diptable[d3];
0572 80E0 ldi R24,<_diptable
0574 90E0 ldi R25,>_diptable
0576 E0911700 lds R30,_d3
057A FF27 clr R31
057C E80F add R30,R24
057E F91F adc R31,R25
0580 E491 lpm R30,Z
0582 E0930E00 sts _dipdata+3,R30
0586 .dbline 326
0586 ; EEPROM_write((d*4)+2,d3);
0586 20911700 lds R18,_d3
058A 84E0 ldi R24,4
058C 869F mul R24,R22
058E 002D mov R16,R0
0590 0E5F subi R16,254 ; addi 2
0592 00D0 rcall _EEPROM_write
0594 .dbline 327
0594 ; }
0594 L116:
0594 .dbline 328
0594 ; if((D4FC!=0)&&(D5FC==0))
0594 20901A00 lds R2,_D4FC
0598 2220 tst R2
059A 21F1 breq L121
059C 20901900 lds R2,_D5FC
05A0 2220 tst R2
05A2 01F5 brne L121
05A4 .dbline 329
05A4 ; {
05A4 .dbline 330
05A4 ; if(d4!=0) d4--;
05A4 20901600 lds R2,_d4
05A8 2220 tst R2
05AA 21F0 breq L123
05AC .dbline 330
05AC 822D mov R24,R2
05AE 8150 subi R24,1
05B0 80931600 sts _d4,R24
05B4 L123:
05B4 .dbline 331
05B4 ; dipdata[4]=diptable[d4];
05B4 80E0 ldi R24,<_diptable
05B6 90E0 ldi R25,>_diptable
05B8 E0911600 lds R30,_d4
05BC FF27 clr R31
05BE E80F add R30,R24
05C0 F91F adc R31,R25
05C2 E491 lpm R30,Z
05C4 E0930F00 sts _dipdata+4,R30
05C8 .dbline 332
05C8 ; j=((d4<<4)+d5);
05C8 20901500 lds R2,_d5
05CC 40911600 lds R20,_d4
05D0 4F70 andi R20,#0x0F
05D2 4295 swap R20
05D4 420D add R20,R2
05D6 .dbline 333
05D6 ; EEPROM_write((d*4)+3,d4);
05D6 20911600 lds R18,_d4
05DA 84E0 ldi R24,4
05DC 869F mul R24,R22
05DE 002D mov R16,R0
05E0 0D5F subi R16,253 ; addi 3
05E2 00D0 rcall _EEPROM_write
05E4 .dbline 334
05E4 ; }
05E4 L121:
05E4 .dbline 335
05E4 ; if((D5FC!=0)&&(D4FC==0))
05E4 20901900 lds R2,_D5FC
05E8 2220 tst R2
05EA 19F1 breq L126
05EC 20901A00 lds R2,_D4FC
05F0 2220 tst R2
05F2 F9F4 brne L126
05F4 .dbline 336
05F4 ; {
05F4 .dbline 337
05F4 ; if(d5!=0) d5--;
05F4 20901500 lds R2,_d5
05F8 2220 tst R2
05FA 21F0 breq L128
05FC .dbline 337
05FC 822D mov R24,R2
05FE 8150 subi R24,1
0600 80931500 sts _d5,R24
0604 L128:
0604 .dbline 338
0604 ; dipdata[5]=diptable[d5];
0604 80E0 ldi R24,<_diptable
0606 90E0 ldi R25,>_diptable
0608 E0911500 lds R30,_d5
060C FF27 clr R31
060E E80F add R30,R24
0610 F91F adc R31,R25
0612 E491 lpm R30,Z
0614 E0931000 sts _dipdata+5,R30
0618 .dbline 339
0618 ; j=((d4<<4)+d5);
0618 20901500 lds R2,_d5
061C 40911600 lds R20,_d4
0620 4F70 andi R20,#0x0F
0622 4295 swap R20
0624 420D add R20,R2
0626 .dbline 340
0626 ; EEPROM_write((d*4)+3,d5);
0626 222D mov R18,R2
0628 84E0 ldi R24,4
062A 869F mul R24,R22
062C 002D mov R16,R0
062E 0D5F subi R16,253 ; addi 3
0630 00D0 rcall _EEPROM_write
0632 .dbline 341
0632 ; }
0632 L126:
0632 .dbline 342
0632 ; }
0632 L108:
0632 .dbline 343
0632 ; if(e==2)
0632 8A2D mov R24,R10
0634 8230 cpi R24,2
0636 99F4 brne L131
0638 .dbline 344
0638 ; {
0638 .dbline 345
0638 ; if((PIND&0x40)==0)
0638 4E99 sbic 0x9,6
063A 11C0 rjmp L133
063C .dbline 346
063C ; {
063C .dbline 347
063C ; for(i=0;i<255;i++)
063C CC24 clr R12
063E 04C0 rjmp L138
0640 L135:
0640 .dbline 348
0640 .dbline 349
0640 2FEF ldi R18,255
0642 0C2D mov R16,R12
0644 00D0 rcall _EEPROM_write
0646 .dbline 350
0646 L136:
0646 .dbline 347
0646 C394 inc R12
0648 L138:
0648 .dbline 347
0648 8C2D mov R24,R12
064A 8F3F cpi R24,255
064C C8F3 brlo L135
064E .dbline 351
064E ; {
064E ; EEPROM_write(i,0xff);
064E ; }
064E ; flagh |=0x01;
064E 80910300 lds R24,_flagh
0652 8160 ori R24,1
0654 80930300 sts _flagh,R24
0658 .dbline 352
0658 ; SPFC=1;
0658 81E0 ldi R24,1
065A 80930800 sts _SPFC,R24
065E .dbline 353
065E ; }
065E L133:
065E .dbline 354
065E ; }
065E L131:
065E .dbline 355
065E ; if((D3FC!=0)&&(D4FC!=0)&&(D5FC!=0))
065E 20901B00 lds R2,_D3FC
0662 2220 tst R2
0664 09F4 brne X4
0666 A0C0 rjmp L139
0668 X4:
0668 20901A00 lds R2,_D4FC
066C 2220 tst R2
066E 09F4 brne X5
0670 9BC0 rjmp L139
0672 X5:
0672 20901900 lds R2,_D5FC
0676 2220 tst R2
0678 09F4 brne X6
067A 96C0 rjmp L139
067C X6:
067C .dbline 356
067C ; {
067C .dbline 357
067C ; if((flag&0x04)!=0)
067C 20900200 lds R2,_flag
0680 22FE sbrs R2,2
0682 92C0 rjmp L141
0684 .dbline 358
0684 ; {
0684 .dbline 359
0684 ; j=code_comp();
0684 79DD rcall _code_comp
0686 402F mov R20,R16
0688 .dbline 360
0688 ; if(j<100) //代码存在,显示代码位置,响三下表示学习不成功
0688 0436 cpi R16,100
068A 08F0 brlo X7
068C 2FC0 rjmp L143
068E X7:
068E .dbline 361
068E ; {
068E .dbline 362
068E ; SPFC=3;
068E 83E0 ldi R24,3
0690 80930800 sts _SPFC,R24
0694 .dbline 363
0694 ; d=j;
0694 642F mov R22,R20
0696 .dbline 364
0696 ; dipdata[0]=diptable[0];
0696 E0E0 ldi R30,<_diptable
0698 F0E0 ldi R31,>_diptable
069A E491 lpm R30,Z
069C E0930B00 sts _dipdata,R30
06A0 .dbline 365
06A0 ; dipdata[1]=diptable[(d/10)];
06A0 2AE0 ldi R18,10
06A2 30E0 ldi R19,0
06A4 1127 clr R17
06A6 00D0 rcall div16s
06A8 F801 movw R30,R16
06AA 80E0 ldi R24,<_diptable
06AC 90E0 ldi R25,>_diptable
06AE E80F add R30,R24
06B0 F91F adc R31,R25
06B2 E491 lpm R30,Z
06B4 E0930C00 sts _dipdata+1,R30
06B8 .dbline 366
06B8 ; dipdata[2]=diptable[d%10];
06B8 2AE0 ldi R18,10
06BA 30E0 ldi R19,0
06BC 062F mov R16,R22
06BE 1127 clr R17
06C0 00D0 rcall mod16s
06C2 F801 movw R30,R16
06C4 80E0 ldi R24,<_diptable
06C6 90E0 ldi R25,>_diptable
06C8 E80F add R30,R24
06CA F91F adc R31,R25
06CC E491 lpm R30,Z
06CE E0930D00 sts _dipdata+2,R30
06D2 .dbline 367
06D2 ; lookup_led(d);
06D2 062F mov R16,R22
06D4 76DD rcall _lookup_led
06D6 .dbline 368
06D6 ; D1FC=1;
06D6 81E0 ldi R24,1
06D8 80931D00 sts _D1FC,R24
06DC .dbline 369
06DC ; D3FC=0;
06DC 2224 clr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -