📄 emd.lst
字号:
02A3 91E4 LPM R30,0(Z)
02A4 93E00123 STS 0x123,R30
(0295) j=((d4<<4)+d5);
02A6 90200128 LDS R2,d5
02A8 91400129 LDS R20,d4
02AA 704F ANDI R20,0xF
02AB 9542 SWAP R20
02AC 0D42 ADD R20,R2
(0296) EEPROM_write((d*4)+3,j);
02AD 2F24 MOV R18,R20
02AE E084 LDI R24,4
02AF 9F86 MUL R24,R22
02B0 2D00 MOV R16,R0
02B1 5F0D SUBI R16,0xFD
02B2 D468 RCALL _EEPROM_write
(0297) }
(0298) }
(0299) if(e==2)
02B3 2D8A MOV R24,R10
02B4 3082 CPI R24,2
02B5 F499 BNE 0x02C9
(0300) {
(0301) if((PIND&0x20)==0)
02B6 994D SBIC 0x09,5
02B7 C011 RJMP 0x02C9
(0302) {
(0303) for(i=0;i<255;i++)
02B8 24CC CLR R12
02B9 C004 RJMP 0x02BE
(0304) {
(0305) EEPROM_write(i,0xff);
02BA EF2F LDI R18,0xFF
02BB 2D0C MOV R16,R12
02BC D45E RCALL _EEPROM_write
02BD 94C3 INC R12
02BE 2D8C MOV R24,R12
02BF 3F8F CPI R24,0xFF
02C0 F3C8 BCS 0x02BA
(0306) }
(0307) flagh |=0x01;
02C1 91800103 LDS R24,flagh
02C3 6081 ORI R24,1
02C4 93800103 STS flagh,R24
(0308) SPFC=1;
02C6 E081 LDI R24,1
02C7 93800108 STS SPFC,R24
(0309) }
(0310) }
(0311) e=(key_3());
02C9 D738 RCALL _key_3
02CA 2EA0 MOV R10,R16
(0312) if(e==1) //闪烁数据减一
02CB 3001 CPI R16,1
02CC F009 BEQ 0x02CE
02CD C096 RJMP 0x0364
(0313) {
(0314) sec=30;
02CE E18E LDI R24,0x1E
02CF 93800104 STS sec,R24
(0315) if(D1FC!=0)
02D1 90200130 LDS R2,D1FC
02D3 2022 TST R2
02D4 F0F9 BEQ 0x02F4
(0316) {
(0317) if(d!=0) d--; //转成BCD到显示
02D5 2366 TST R22
02D6 F009 BEQ 0x02D8
02D7 956A DEC R22
(0318) dipdata[1]=diptable[(d/10)];
02D8 E02A LDI R18,0xA
02D9 E030 LDI R19,0
02DA 2F06 MOV R16,R22
02DB 2711 CLR R17
02DC D74B RCALL div16s
02DD 01F8 MOVW R30,R16
02DE E386 LDI R24,0x36
02DF E090 LDI R25,0
02E0 0FE8 ADD R30,R24
02E1 1FF9 ADC R31,R25
02E2 91E4 LPM R30,0(Z)
02E3 93E0011F STS dipdata+1,R30
(0319) dipdata[2]=diptable[d%10];
02E5 E02A LDI R18,0xA
02E6 E030 LDI R19,0
02E7 2F06 MOV R16,R22
02E8 2711 CLR R17
02E9 D73A RCALL mod16s
02EA 01F8 MOVW R30,R16
02EB E386 LDI R24,0x36
02EC E090 LDI R25,0
02ED 0FE8 ADD R30,R24
02EE 1FF9 ADC R31,R25
02EF 91E4 LPM R30,0(Z)
02F0 93E00120 STS dipdata+2,R30
(0320) lookup_led(d);
02F2 2F06 MOV R16,R22
02F3 DE38 RCALL _lookup_led
(0321) }
(0322) if((D3FC!=0)&&(D4FC==0))
02F4 9020012E LDS R2,D3FC
02F6 2022 TST R2
02F7 F0E9 BEQ 0x0315
02F8 9020012D LDS R2,D4FC
02FA 2022 TST R2
02FB F4C9 BNE 0x0315
(0323) {
(0324) if(d3!=0) d3--;
02FC 9020012A LDS R2,d3
02FE 2022 TST R2
02FF F021 BEQ 0x0304
0300 2D82 MOV R24,R2
0301 5081 SUBI R24,1
0302 9380012A STS d3,R24
(0325) dipdata[3]=diptable[d3];
0304 E386 LDI R24,0x36
0305 E090 LDI R25,0
0306 91E0012A LDS R30,d3
0308 27FF CLR R31
0309 0FE8 ADD R30,R24
030A 1FF9 ADC R31,R25
030B 91E4 LPM R30,0(Z)
030C 93E00121 STS dipdata+3,R30
(0326) EEPROM_write((d*4)+2,d3);
030E 9120012A LDS R18,d3
0310 E084 LDI R24,4
0311 9F86 MUL R24,R22
0312 2D00 MOV R16,R0
0313 5F0E SUBI R16,0xFE
0314 D406 RCALL _EEPROM_write
(0327) }
(0328) if((D4FC!=0)&&(D5FC==0))
0315 9020012D LDS R2,D4FC
0317 2022 TST R2
0318 F121 BEQ 0x033D
0319 9020012C LDS R2,D5FC
031B 2022 TST R2
031C F501 BNE 0x033D
(0329) {
(0330) if(d4!=0) d4--;
031D 90200129 LDS R2,d4
031F 2022 TST R2
0320 F021 BEQ 0x0325
0321 2D82 MOV R24,R2
0322 5081 SUBI R24,1
0323 93800129 STS d4,R24
(0331) dipdata[4]=diptable[d4];
0325 E386 LDI R24,0x36
0326 E090 LDI R25,0
0327 91E00129 LDS R30,d4
0329 27FF CLR R31
032A 0FE8 ADD R30,R24
032B 1FF9 ADC R31,R25
032C 91E4 LPM R30,0(Z)
032D 93E00122 STS 0x122,R30
(0332) j=((d4<<4)+d5);
032F 90200128 LDS R2,d5
0331 91400129 LDS R20,d4
0333 704F ANDI R20,0xF
0334 9542 SWAP R20
0335 0D42 ADD R20,R2
(0333) EEPROM_write((d*4)+3,d4);
0336 91200129 LDS R18,d4
0338 E084 LDI R24,4
0339 9F86 MUL R24,R22
033A 2D00 MOV R16,R0
033B 5F0D SUBI R16,0xFD
033C D3DE RCALL _EEPROM_write
(0334) }
(0335) if((D5FC!=0)&&(D4FC==0))
033D 9020012C LDS R2,D5FC
033F 2022 TST R2
0340 F119 BEQ 0x0364
0341 9020012D LDS R2,D4FC
0343 2022 TST R2
0344 F4F9 BNE 0x0364
(0336) {
(0337) if(d5!=0) d5--;
0345 90200128 LDS R2,d5
0347 2022 TST R2
0348 F021 BEQ 0x034D
0349 2D82 MOV R24,R2
034A 5081 SUBI R24,1
034B 93800128 STS d5,R24
(0338) dipdata[5]=diptable[d5];
034D E386 LDI R24,0x36
034E E090 LDI R25,0
034F 91E00128 LDS R30,d5
0351 27FF CLR R31
0352 0FE8 ADD R30,R24
0353 1FF9 ADC R31,R25
0354 91E4 LPM R30,0(Z)
0355 93E00123 STS 0x123,R30
(0339) j=((d4<<4)+d5);
0357 90200128 LDS R2,d5
0359 91400129 LDS R20,d4
035B 704F ANDI R20,0xF
035C 9542 SWAP R20
035D 0D42 ADD R20,R2
(0340) EEPROM_write((d*4)+3,d5);
035E 2D22 MOV R18,R2
035F E084 LDI R24,4
0360 9F86 MUL R24,R22
0361 2D00 MOV R16,R0
0362 5F0D SUBI R16,0xFD
0363 D3B7 RCALL _EEPROM_write
(0341) }
(0342) }
(0343) if(e==2)
0364 2D8A MOV R24,R10
0365 3082 CPI R24,2
0366 F499 BNE 0x037A
(0344) {
(0345) if((PIND&0x40)==0)
0367 994E SBIC 0x09,6
0368 C011 RJMP 0x037A
(0346) {
(0347) for(i=0;i<255;i++)
0369 24CC CLR R12
036A C004 RJMP 0x036F
(0348) {
(0349) EEPROM_write(i,0xff);
036B EF2F LDI R18,0xFF
036C 2D0C MOV R16,R12
036D D3AD RCALL _EEPROM_write
036E 94C3 INC R12
036F 2D8C MOV R24,R12
0370 3F8F CPI R24,0xFF
0371 F3C8 BCS 0x036B
(0350) }
(0351) flagh |=0x01;
0372 91800103 LDS R24,flagh
0374 6081 ORI R24,1
0375 93800103 STS flagh,R24
(0352) SPFC=1;
0377 E081 LDI R24,1
0378 93800108 STS SPFC,R24
(0353) }
(0354) }
(0355) if((D3FC!=0)&&(D4FC!=0)&&(D5FC!=0))
037A 9020012E LDS R2,D3FC
037C 2022 TST R2
037D F409 BNE 0x037F
037E C0A0 RJMP 0x041F
037F 9020012D LDS R2,D4FC
0381 2022 TST R2
0382 F409 BNE 0x0384
0383 C09B RJMP 0x041F
0384 9020012C LDS R2,D5FC
0386 2022 TST R2
0387 F409 BNE 0x0389
0388 C096 RJMP 0x041F
(0356) {
(0357) if((flag&0x04)!=0)
0389 90200102 LDS R2,flag
038B FE22 SBRS R2,2
038C C092 RJMP 0x041F
(0358) {
(0359) j=code_comp();
038D DD79 RCALL _code_comp
038E 2F40 MOV R20,R16
(0360) if(j<100) //代码存在,显示代码位置,响三下表示学习不成功
038F 3604 CPI R16,0x64
0390 F008 BCS 0x0392
0391 C02F RJMP 0x03C1
(0361) {
(0362) SPFC=3;
0392 E083 LDI R24,3
0393 93800108 STS SPFC,R24
(0363) d=j;
0395 2F64 MOV R22,R20
(0364) dipdata[0]=diptable[0];
0396 E3E6 LDI R30,0x36
0397 E0F0 LDI R31,0
0398 91E4 LPM R30,0(Z)
0399 93E0011E STS dipdata,R30
(0365) dipdata[1]=diptable[(d/10)];
039B E02A LDI R18,0xA
039C E030 LDI R19,0
039D 2711 CLR R17
039E D689 RCALL div16s
039F 01F8 MOVW R30,R16
03A0 E386 LDI R24,0x36
03A1 E090 LDI R25,0
03A2 0FE8 ADD R30,R24
03A3 1FF9 ADC R31,R25
03A4 91E4 LPM R30,0(Z)
03A5 93E0011F STS dipdata+1,R30
(0366) dipdata[2]=diptable[d%10];
03A7 E02A LDI R18,0xA
03A8 E030 LDI R19,0
03A9 2F06 MOV R16,R22
03AA 2711 CLR R17
03AB D678 RCALL mod16s
03AC 01F8 MOVW R30,R16
03AD E386 LDI R24,0x36
03AE E090 LDI R25,0
03AF 0FE8 ADD R30,R24
03B0 1FF9 ADC R31,R25
03B1 91E4 LPM R30,0(Z)
03B2 93E00120 STS dipdata+2,R30
(0367) lookup_led(d);
03B4 2F06 MOV R16,R22
03B5 DD76 RCALL _lookup_led
(0368) D1FC=1;
03B6 E081 LDI R24,1
03B7 93800130 STS D1FC,R24
(0369) D3FC=0;
03B9 2422 CLR R2
03BA 9220012E STS D3FC,R2
(0370) D4FC=0;
03BC 9220012D STS D4FC,R2
(0371) D5FC=0;
03BE 9220012C STS D5FC,R2
(0372) }
03C0 C056 RJMP 0x0417
(0373) else
(0374) {
(0375) EEPROM_write(d*4,eaddr0); //写入EEPROM
03C1 91200132 LDS R18,eaddr0
03C3 E084 LDI R24,4
03C4 9F86 MUL R24,R22
03C5 2D00 MOV R16,R0
03C6 D354 RCALL _EEPROM_write
(0376) EEPROM_write((d*4)+1,eaddr1);
03C7 91200131 LDS R18,eaddr1
03C9 E084 LDI R24,4
03CA 9F86 MUL R24,R22
03CB 2D00 MOV R16,R0
03CC 5F0F SUBI R16,0xFF
03CD D34D RCALL _EEPROM_write
(0377) SPFC=1;
03CE E081 LDI R24,1
03CF 93800108 STS SPFC,R24
(0378) if(d<99)
03D1 3663 CPI R22,0x63
03D2 F008 BCS 0x03D4
03D3 C036 RJMP 0x040A
(0379) {
(0380) d++; //转成BCD到显示
03D4 9563 INC R22
(0381) dipdata[1]=diptable[(d/10)];
03D5 E02A LDI R18,0xA
03D6 E030 LDI R19,0
03D7 2F06 MOV R16,R22
03D8 2711 CLR R17
03D9 D64E RCALL div16s
03DA 01F8 MOVW R30,R16
03DB E386 LDI R24,0x36
03DC E090 LDI R25,0
03DD 0FE8 ADD R30,R24
03DE 1FF9 ADC R31,R25
03DF 91E4 LPM R30,0(Z)
03E0 93E0011F STS dipdata+1,R30
(0382) dipdata[2]=diptable[d%10];
03E2 E02A LDI R18,0xA
03E3 E030 LDI R19,0
03E4 2F06 MOV R16,R22
03E5 2711 CLR R17
03E6 D63D RCALL mod16s
03E7 01F8 MOVW R30,R16
03E8 E386 LDI R24,0x36
03E9 E090 LDI R25,0
03EA 0FE8 ADD R30,R24
03EB 1FF9 ADC R31,R25
03EC 91E4 LPM R30,0(Z)
03ED 93E00120 STS dipdata+2,R30
(0383) lookup_led(d);
03EF 2F06 MOV R16,R22
03F0 DD3B RCALL _lookup_led
(0384) if((d3==0)&&(d4==0)&&(d5==0)) //未用过的EEPROM写0
03F1 9020012A LDS R2,d3
03F3 2022 TST R2
03F4 F4D1 BNE 0x040F
03F5 90200129 LDS R2,d4
03F7 2022 TST R2
03F8 F4B1 BNE 0x040F
03F9 90200128 LDS R2,d5
03FB 2022 TST R2
03FC F491 BNE 0x040F
(0385) {
(0386) EEPROM_write((d*4)+2,0);
03FD 2722 CLR R18
03FE E084 LDI R24,4
03FF 9F86 MUL R24,R22
0400 2D00 MOV R16,R0
0401 5F0E SUBI R16,0xFE
0402 D318 RCALL _EEPROM_write
(0387) EEPROM_write((d*4)+3,0);
0403 2722 CLR R18
0404 E084 LDI R24,4
0405 9F86 MUL R24,R22
0406 2D00 MOV R16,R0
0407 5F0D SUBI R16,0xFD
0408 D312 RCALL _EEPROM_write
(0388) }
(0389) }
0409 C005 RJMP 0x040F
(0390) else flagh |=0x01;
040A 91800103 LDS R24,flagh
040C 6081 ORI R24,1
040D 93800103 STS flagh,R24
(0391) D3FC=1;
040F E081 LDI R24,1
0410 9380012E STS D3FC,R24
(0392) D4FC=0;
0412 2422 CLR R2
0413 9220012D STS D4FC,R2
(0393) D5FC=0;
0415 9220012C STS D5FC,R2
(0394) }
(0395) DECODER_FLAG_L;
0417 91800102 LDS R24,flag
0419 7F8B ANDI R24,0xFB
041A 93800102 STS flag,R24
(0396) DECODER_EN_H;//开RF接收数据
041C 6082 ORI R24,2
041D 93800102 STS flag,R24
(0397) }
(0398) }
(0399) DECODER_FLAG_L;
041F 91800102 LDS R24,flag
0421 7F8B ANDI R24,0xFB
0422 93800102 STS flag,R24
(0400) DECODER_EN_H;//开RF接收数据
0424 6082 ORI R24,2
0425 93800102 STS flag,R24
0427 90200103 LDS R2,flagh
0429 FE20 SBRS R2,0
042A CD84 RJMP 0x01AF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -