📄 biaotoum8.lst
字号:
02CF DD7F RCALL _DAT
02D0 EE08 LDI R16,0xE8
02D1 E013 LDI R17,3
02D2 DDB5 RCALL _del
02D3 98C3 CBI 0x18,3
02D4 EF0F LDI R16,0xFF
02D5 DD79 RCALL _DAT
02D6 E005 LDI R16,5
02D7 E010 LDI R17,0
02D8 DDAF RCALL _del
02D9 95A8 WDR
(0166) if(dp==0) {a31;DAT(shu[tm[2]]);del(1000);a30;DAT(0xff);del(5);WDR();}
02DA 902000A0 LDS R2,dp
02DC 2022 TST R2
02DD F4A9 BNE 0x02F3
02DE 9AA8 SBI 0x15,0
02DF E680 LDI R24,0x60
02E0 E090 LDI R25,0
02E1 91E0006E LDS R30,tm+2
02E3 27FF CLR R31
02E4 0FE8 ADD R30,R24
02E5 1FF9 ADC R31,R25
02E6 8100 LDD R16,Z+0
02E7 DD67 RCALL _DAT
02E8 EE08 LDI R16,0xE8
02E9 E013 LDI R17,3
02EA DD9D RCALL _del
02EB 98A8 CBI 0x15,0
02EC EF0F LDI R16,0xFF
02ED DD61 RCALL _DAT
02EE E005 LDI R16,5
02EF E010 LDI R17,0
02F0 DD97 RCALL _del
02F1 95A8 WDR
02F2 C019 RJMP 0x030C
(0167) else {a31;DAT(shu[tm[2]]&=~0x80);del(1000);a30;DAT(0xff);del(5);WDR();}
02F3 9AA8 SBI 0x15,0
02F4 E680 LDI R24,0x60
02F5 E090 LDI R25,0
02F6 9020006E LDS R2,tm+2
02F8 2433 CLR R3
02F9 0E28 ADD R2,R24
02FA 1E39 ADC R3,R25
02FB 01F1 MOVW R30,R2
02FC 8180 LDD R24,Z+0
02FD 778F ANDI R24,0x7F
02FE 2E48 MOV R4,R24
02FF 8240 STD Z+0,R4
0300 2F08 MOV R16,R24
0301 DD4D RCALL _DAT
0302 EE08 LDI R16,0xE8
0303 E013 LDI R17,3
0304 DD83 RCALL _del
0305 98A8 CBI 0x15,0
0306 EF0F LDI R16,0xFF
0307 DD47 RCALL _DAT
0308 E005 LDI R16,5
0309 E010 LDI R17,0
030A DD7D RCALL _del
030B 95A8 WDR
(0168) a41;DAT(shu[tm[3]]);del(1000);a40;DAT(0xff);del(5);WDR();
030C 9AAB SBI 0x15,3
030D E680 LDI R24,0x60
030E E090 LDI R25,0
030F 91E0006F LDS R30,tm+3
0311 27FF CLR R31
0312 0FE8 ADD R30,R24
0313 1FF9 ADC R31,R25
0314 8100 LDD R16,Z+0
0315 DD39 RCALL _DAT
0316 EE08 LDI R16,0xE8
0317 E013 LDI R17,3
0318 DD6F RCALL _del
0319 98AB CBI 0x15,3
031A EF0F LDI R16,0xFF
031B DD33 RCALL _DAT
031C E005 LDI R16,5
031D E010 LDI R17,0
031E DD69 RCALL _del
031F 95A8 WDR
0320 9508 RET
(0169) }
(0170)
(0171)
(0172)
(0173) void a1(void) ///*********///
(0174) {
(0175) tm[3]=m1/10; tm[2]=m1%10; tm[1]=s/10; tm[0]=s%10;
_a1:
0321 E01A LDI R17,0xA
0322 910000A5 LDS R16,m1
0324 D28A RCALL div8u
0325 9300006F STS tm+3,R16
0327 E01A LDI R17,0xA
0328 910000A5 LDS R16,m1
032A D282 RCALL mod8u
032B 9300006E STS tm+2,R16
032D E01A LDI R17,0xA
032E 910000A6 LDS R16,s
0330 D27E RCALL div8u
0331 9300006D STS tm+1,R16
0333 E01A LDI R17,0xA
0334 910000A6 LDS R16,s
0336 D276 RCALL mod8u
0337 9300006C STS tm,R16
(0176) i=3;
0339 E083 LDI R24,3
033A 938000A8 STS i,R24
033C C00E RJMP 0x034B
(0177) while(i>0&&tm[i]==0)
(0178) {tm[i]=11;i--;}
033D E68C LDI R24,0x6C
033E E090 LDI R25,0
033F 91E000A8 LDS R30,i
0341 27FF CLR R31
0342 0FE8 ADD R30,R24
0343 1FF9 ADC R31,R25
0344 E08B LDI R24,0xB
0345 8380 STD Z+0,R24
0346 918000A8 LDS R24,i
0348 5081 SUBI R24,1
0349 938000A8 STS i,R24
034B 2422 CLR R2
034C 903000A8 LDS R3,i
034E 1423 CP R2,R3
034F F448 BCC 0x0359
0350 E68C LDI R24,0x6C
0351 E090 LDI R25,0
0352 2DE3 MOV R30,R3
0353 27FF CLR R31
0354 0FE8 ADD R30,R24
0355 1FF9 ADC R31,R25
0356 8020 LDD R2,Z+0
0357 2022 TST R2
0358 F321 BEQ 0x033D
(0179) A();
0359 DD36 RCALL _A
035A 9508 RET
(0180) }
(0181)
(0182)
(0183) void read(void)
(0184) {
(0185)
(0186) date[0]=EEPROMread(19); WDR(); // en
_read:
035B E103 LDI R16,0x13
035C E010 LDI R17,0
035D D2BC RCALL _EEPROMread
035E 93000072 STS date,R16
0360 95A8 WDR
(0187) date[1]=EEPROMread(21); WDR(); // hour
0361 E105 LDI R16,0x15
0362 E010 LDI R17,0
0363 D2B6 RCALL _EEPROMread
0364 93000073 STS date+1,R16
0366 95A8 WDR
(0188) date[2]=EEPROMread(23); WDR(); // min
0367 E107 LDI R16,0x17
0368 E010 LDI R17,0
0369 D2B0 RCALL _EEPROMread
036A 93000074 STS date+2,R16
036C 95A8 WDR
(0189) date[3]=EEPROMread(25); WDR(); // set h
036D E109 LDI R16,0x19
036E E010 LDI R17,0
036F D2AA RCALL _EEPROMread
0370 93000075 STS date+3,R16
0372 95A8 WDR
(0190) date[4]=EEPROMread(27); WDR(); // set m
0373 E10B LDI R16,0x1B
0374 E010 LDI R17,0
0375 D2A4 RCALL _EEPROMread
0376 93000076 STS 0x76,R16
0378 95A8 WDR
(0191) date[5]=EEPROMread(29); WDR(); // long
0379 E10D LDI R16,0x1D
037A E010 LDI R17,0
037B D29E RCALL _EEPROMread
037C 93000077 STS 0x77,R16
037E 95A8 WDR
(0192) date[6]=EEPROMread(31); WDR(); // bee
037F E10F LDI R16,0x1F
0380 E010 LDI R17,0
0381 D298 RCALL _EEPROMread
0382 93000078 STS 0x78,R16
0384 95A8 WDR
(0193) date[7]=EEPROMread(33); WDR(); //win
0385 E201 LDI R16,0x21
0386 E010 LDI R17,0
0387 D292 RCALL _EEPROMread
0388 93000079 STS 0x79,R16
038A 95A8 WDR
038B 9508 RET
(0194) }
(0195)
(0196) void write(void)
(0197) {
(0198) EEPROMwrite(19,date[0]); WDR();
_write:
038C 91200072 LDS R18,date
038E E103 LDI R16,0x13
038F E010 LDI R17,0
0390 D28E RCALL _EEPROMwrite
0391 95A8 WDR
(0199) EEPROMwrite(21,date[1]); WDR();
0392 91200073 LDS R18,date+1
0394 E105 LDI R16,0x15
0395 E010 LDI R17,0
0396 D288 RCALL _EEPROMwrite
0397 95A8 WDR
(0200) EEPROMwrite(23,date[2]); WDR();
0398 91200074 LDS R18,date+2
039A E107 LDI R16,0x17
039B E010 LDI R17,0
039C D282 RCALL _EEPROMwrite
039D 95A8 WDR
(0201) EEPROMwrite(25,date[3]); WDR();
039E 91200075 LDS R18,date+3
03A0 E109 LDI R16,0x19
03A1 E010 LDI R17,0
03A2 D27C RCALL _EEPROMwrite
03A3 95A8 WDR
(0202) EEPROMwrite(27,date[4]); WDR();
03A4 91200076 LDS R18,0x76
03A6 E10B LDI R16,0x1B
03A7 E010 LDI R17,0
03A8 D276 RCALL _EEPROMwrite
03A9 95A8 WDR
(0203) EEPROMwrite(29,date[5]); WDR();
03AA 91200077 LDS R18,0x77
03AC E10D LDI R16,0x1D
03AD E010 LDI R17,0
03AE D270 RCALL _EEPROMwrite
03AF 95A8 WDR
(0204) EEPROMwrite(31,date[6]); WDR();
03B0 91200078 LDS R18,0x78
03B2 E10F LDI R16,0x1F
03B3 E010 LDI R17,0
03B4 D26A RCALL _EEPROMwrite
03B5 95A8 WDR
(0205) EEPROMwrite(33,date[7]); WDR();
03B6 91200079 LDS R18,0x79
03B8 E201 LDI R16,0x21
03B9 E010 LDI R17,0
03BA D264 RCALL _EEPROMwrite
03BB 95A8 WDR
03BC 9508 RET
(0206) }
(0207)
(0208)
(0209)
(0210) void main()
(0211) {
(0212) uchar menu=0;
_main:
menu --> R20
03BD 2744 CLR R20
(0213)
(0214) OSCCAL=0x89;//EEPROMread(0x10);
03BE E889 LDI R24,0x89
03BF BF81 OUT 0x31,R24
(0215) init_devices();
03C0 DE3C RCALL _init_devices
(0216) delay(100);
03C1 E604 LDI R16,0x64
03C2 E010 LDI R17,0
03C3 DD52 RCALL _delay
03C4 C007 RJMP 0x03CC
(0217)
(0218)
(0219) while(1)
(0220) {
(0221) CLI();
03C5 94F8 BCLR 7
(0222) show4(4765);
03C6 E90D LDI R16,0x9D
03C7 E112 LDI R17,0x12
03C8 DD8F RCALL _show4
(0223) delay(10000);
03C9 E100 LDI R16,0x10
03CA E217 LDI R17,0x27
03CB DD4A RCALL _delay
03CC CFF8 RJMP 0x03C5
(0224) }
(0225)
(0226)
(0227) read();
03CD DF8D RCALL _read
(0228) if(EEPROMread(33)==255)
03CE E201 LDI R16,0x21
03CF E010 LDI R17,0
03D0 D249 RCALL _EEPROMread
03D1 3F0F CPI R16,0xFF
03D2 F009 BEQ 0x03D4
03D3 C14A RJMP 0x051E
(0229) {
(0230) date[0]=1;
03D4 E081 LDI R24,1
03D5 93800072 STS date,R24
(0231) date[1]=21;
03D7 E185 LDI R24,0x15
03D8 93800073 STS date+1,R24
(0232) date[2]=3;
03DA E083 LDI R24,3
03DB 93800074 STS date+2,R24
(0233) date[3]=1;
03DD E081 LDI R24,1
03DE 93800075 STS date+3,R24
(0234) date[4]=0;
03E0 2422 CLR R2
03E1 92200076 STS 0x76,R2
(0235) date[5]=20;
03E3 E184 LDI R24,0x14
03E4 93800077 STS 0x77,R24
(0236) date[6]=1;
03E6 E081 LDI R24,1
03E7 93800078 STS 0x78,R24
(0237) date[7]=1;
03E9 93800079 STS 0x79,R24
(0238) write();
03EB DFA0 RCALL _write
(0239) }
03EC C131 RJMP 0x051E
(0240)
(0241) while(1)
(0242) {
(0243) if(1)
(0244) {
(0245) s1=0;
03ED 2422 CLR R2
03EE 922000A4 STS s1,R2
03F0 C001 RJMP 0x03F2
(0246) while(s1<5) {a();}
03F1 DE8C RCALL _a
03F2 918000A4 LDS R24,s1
03F4 3085 CPI R24,5
03F5 F3D8 BCS 0x03F1
(0247) }
(0248) WDR();
03F6 95A8 WDR
(0249)
(0250) if(start)
03F7 9020009E LDS R2,start
03F9 2022 TST R2
03FA F409 BNE 0x03FC
03FB C059 RJMP 0x0455
(0251) {
(0252) bee(300,400);
03FC E920 LDI R18,0x90
03FD E031 LDI R19,1
03FE E20C LDI R16,0x2C
03FF E011 LDI R17,1
0400 DCE0 RCALL _bee
(0253) s1=0;m1=0;out1;
0401 2422 CLR R2
0402 922000A4 STS s1,R2
0404 922000A5 STS m1,R2
0406 9A91 SBI 0x12,1
0407 C048 RJMP 0x0450
(0254) while(start)
(0255) {
(0256) a1();
0408 DF18 RCALL _a1
(0257) if(m1>=date[5]) {start=0;date[7]=0;out0;write();bee(1000,200);}
0409 90200077 LDS R2,0x77
040B 903000A5 LDS R3,m1
040D 1432 CP R3,R2
040E F060 BCS 0x041B
040F 2422 CLR R2
0410 9220009E STS start,R2
0412 92200079 STS 0x79,R2
0414 9891 CBI 0x12,1
0415 DF76 RCALL _write
0416 EC28 LDI R18,0xC8
0417 E030 LDI R19,0
0418 EE08 LDI R16,0xE8
0419 E013 LDI R17,3
041A DCC6 RCALL _bee
(0258) if(cw(5)>600) {start=0;date[7]=1;out0;write();bee(500,400); delay(300); bee(300,400);}
041B E005 LDI R16,5
041C DD75 RCALL _cw
041D E588 LDI R24,0x58
041E E092 LDI R25,2
041F 1780 CP R24,R16
0420 0791 CPC R25,R17
0421 F4A8 BCC 0x0437
0422 2422 CLR R2
0423 9220009E STS start,R2
0425 E081 LDI R24,1
0426 93800079 STS 0x79,R24
0428 9891 CBI 0x12,1
0429 DF62 RCALL _write
042A E920 LDI R18,0x90
042B E031 LDI R19,1
042C EF04 LDI R16,0xF4
042D E011 LDI R17,1
042E DCB2 RCALL _bee
042F E20C LDI R16,0x2C
0430 E011 LDI R17,1
0431 DCE4 RCALL _delay
0432 E920 LDI R18,0x90
0433 E031 LDI R19,1
0434 E20C LDI R16,0x2C
0435 E011 LDI R17,1
0436 DCAA RCALL _bee
(0259) if(!Add) { delay(100); if(!Add) {start=0;date[7]=0;out0; delay(200); bee(1000,400);}}
0437 B220 IN R2,0x10
0438 2433 CLR R3
0439 FC21 SBRC R2,1
043A C015 RJMP 0x0450
043B E604 LDI R16,0x64
043C E010 LDI R17,0
043D DCD8 RCALL _delay
043E B220 IN R2,0x10
043F 2433 CLR R3
0440 FC21 SBRC R2,1
0441 C00E RJMP 0x0450
0442 2422 CLR R2
0443 9220009E STS start,R2
0445 92200079 STS 0x79,R2
0447 9891 CBI 0x12,1
0448 EC08 LDI R16,0xC8
0449 E010 LDI R17,0
044A DCCB RCALL _delay
044B E920 LDI R18,0x90
044C E031 LDI R19,1
044D EE08 LDI R16,0xE8
044E E013 LDI R17,3
044F DC91 RCALL _bee
0450 9020009E LDS R2,start
0452 2022 TST R2
0453 F009 BEQ 0x0455
0454 CFB3 RJMP 0x0408
(0260) }
(0261) }
(0262)
(0263) if(!Add)
0455 B220 IN R2,0x10
0456 2433 CLR R3
0457 FC21 SBRC R2,1
0458 C00F RJMP 0x0468
(0264) {
(0265) delay(100);
0459 E604 LDI R16,0x64
045A E010 LDI R17,0
045B DCBA RCALL _delay
(0266) if(!Add)
045C B220 IN R2,0x10
045D 2433 CLR R3
045E FC21 SBRC R2,1
045F C008 RJMP 0x0468
(0267) {
(0268) start=1;
0460 E081 LDI R24,1
0461 9380009E STS start,R24
(0269) bee(1000,600);
0463 E528 LDI R18,0x58
0464 E032 LDI R19,2
0465 EE08 LDI R16,0xE8
0466 E013 LDI R17,3
0467 DC79 RCALL _bee
(0270) }
(0271) }
(0272)
(0273) if(!Set)
0468 B220 IN R2,0x10
0469 2433 CLR R3
046A FC22 SBRC R2,2
046B C0B2 RJMP 0x051E
(0274) {
(0275) delay(100);
046C E604 LDI R16,0x64
046D E010 LDI R17,0
046E DCA7 RCALL _delay
(0276) if(!Set)
046F B220 IN R2,0x10
0470 2433 CLR R3
0471 FC22 SBRC R2,2
0472 C0AB RJMP 0x051E
(0277) {
(0278) read();
0473 DEE7 RCALL _read
(0279) bee(300,400);
0474 E920 LDI R18,0x90
0475 E031 LDI R19,1
0476 E20C LDI R16,0x2C
0477 E011 LDI R17,1
0478 DC68 RCALL _bee
0479 C0A3 RJMP 0x051D
(0280) while(1)
(0281) {
(0282) if(!Set)
047A B220 IN R2,0x10
047B 2433 CLR R3
047C FC22 SBRC R2,2
047D C014 RJMP 0x0492
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -