⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 biaotoum8.lst

📁 AVR ICC基于AVR单片机的LED显示程序!
💻 LST
📖 第 1 页 / 共 4 页
字号:
    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 + -