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

📄 bi2.lst

📁 驱动320240
💻 LST
📖 第 1 页 / 共 5 页
字号:
    04C0 E01A      LDI	R17,0xA
    04C1 91000080  LDS	R16,change
    04C3 940E0705  CALL	div8u
    04C5 E083      LDI	R24,3
    04C6 9F80      MUL	R24,R16
    04C7 01F0      MOVW	R30,R0
    04C8 E684      LDI	R24,0x64
    04C9 E090      LDI	R25,0
    04CA 0FE8      ADD	R30,R24
    04CB 1FF9      ADC	R31,R25
    04CC E187      LDI	R24,0x17
    04CD 8380      STD	Z+0,R24
    04CE C01D      RJMP	0x04EC
(0647)  else if(time[change/10][2]==24)
    04CF E01A      LDI	R17,0xA
    04D0 91000080  LDS	R16,change
    04D2 940E0705  CALL	div8u
    04D4 E083      LDI	R24,3
    04D5 9F80      MUL	R24,R16
    04D6 01F0      MOVW	R30,R0
    04D7 E684      LDI	R24,0x64
    04D8 E090      LDI	R25,0
    04D9 0FE8      ADD	R30,R24
    04DA 1FF9      ADC	R31,R25
    04DB 8180      LDD	R24,Z+0
    04DC 3188      CPI	R24,0x18
    04DD F471      BNE	0x04EC
(0648)    {time[change/10][2]=0;}
    04DE E01A      LDI	R17,0xA
    04DF 91000080  LDS	R16,change
    04E1 940E0705  CALL	div8u
    04E3 E083      LDI	R24,3
    04E4 9F80      MUL	R24,R16
    04E5 01F0      MOVW	R30,R0
    04E6 E684      LDI	R24,0x64
    04E7 E090      LDI	R25,0
    04E8 0FE8      ADD	R30,R24
    04E9 1FF9      ADC	R31,R25
    04EA 2422      CLR	R2
    04EB 8220      STD	Z+0,R2
(0649) }
    04EC 9508      RET
(0650) 
(0651) 
(0652) }
(0653) 
(0654) void write_eep()
(0655) {
(0656) unsigned char i;
(0657) change=10;
_write_eep:
  i                    --> Y+1
    04ED E08A      LDI	R24,0xA
    04EE 93800080  STS	change,R24
(0658) for(;;)
(0659) {
(0660)         if((change%10)==2)
    04F0 E01A      LDI	R17,0xA
    04F1 91000080  LDS	R16,change
    04F3 940E0703  CALL	mod8u
    04F5 3002      CPI	R16,2
    04F6 F471      BNE	0x0505
(0661)  	  	{if(change!=52)
    04F7 91800080  LDS	R24,change
    04F9 3384      CPI	R24,0x34
    04FA F021      BEQ	0x04FF
(0662) 		 {change=change+9;}
    04FB 5F87      SUBI	R24,0xF7
    04FC 93800080  STS	change,R24
    04FE C00B      RJMP	0x050A
(0663) 		 else
(0664) 		 {change=0;mo=0;break;}
    04FF 2422      CLR	R2
    0500 92200080  STS	change,R2
    0502 92200061  STS	mo,R2
    0504 C023      RJMP	0x0528
(0665) 		}
(0666) 		else
(0667) 		{change++;}
    0505 91800080  LDS	R24,change
    0507 5F8F      SUBI	R24,0xFF
    0508 93800080  STS	change,R24
(0668) EEPROMwrite(change,time[change/10][change%10]); 
    050A E01A      LDI	R17,0xA
    050B 91000080  LDS	R16,change
    050D 940E0705  CALL	div8u
    050F E083      LDI	R24,3
    0510 9F80      MUL	R24,R16
    0511 0110      MOVW	R2,R0
    0512 E682      LDI	R24,0x62
    0513 E090      LDI	R25,0
    0514 0E28      ADD	R2,R24
    0515 1E39      ADC	R3,R25
    0516 E02A      LDI	R18,0xA
    0517 E030      LDI	R19,0
    0518 91000080  LDS	R16,change
    051A 2711      CLR	R17
    051B 940E06C9  CALL	mod16s
    051D 01F8      MOVW	R30,R16
    051E 0DE2      ADD	R30,R2
    051F 1DF3      ADC	R31,R3
    0520 8120      LDD	R18,Z+0
    0521 2733      CLR	R19
    0522 91000080  LDS	R16,change
    0524 2711      CLR	R17
    0525 940E0792  CALL	_EEPROMwrite
    0527 CFC8      RJMP	0x04F0
    0528 9508      RET
_write_1302:
  temp                 --> Y+4
    0529 972C      SBIW	R28,0xC
(0669) }
(0670) 		
(0671) 		
(0672) }
(0673) void write_1302()
(0674) {unsigned char temp[8];
(0675)   Burst_SPI(0xbe,3,&time[0][0],&time[0][0]);
    052A E682      LDI	R24,0x62
    052B E090      LDI	R25,0
    052C 839B      STD	Y+3,R25
    052D 838A      STD	Y+2,R24
    052E 8399      STD	Y+1,R25
    052F 8388      STD	Y+0,R24
    0530 E023      LDI	R18,3
    0531 EB0E      LDI	R16,0xBE
    0532 DC1E      RCALL	_Burst_SPI
    0533 962C      ADIW	R28,0xC
    0534 9508      RET
_settime:
  j                    --> Y+2
    0535 940E072F  CALL	push_gset1
    0537 9721      SBIW	R28,1
(0676) 
(0677) }
(0678) 
(0679) void settime()
(0680) {unsigned char j;
(0681) disp_temp(0,1,0);
    0538 2422      CLR	R2
    0539 8228      STD	Y+0,R2
    053A E021      LDI	R18,1
    053B 2700      CLR	R16
    053C DE10      RCALL	_disp_temp
(0682) disp_change();
    053D DEBA      RCALL	_disp_change
(0683) switch(get_key())
    053E DE88      RCALL	_get_key
    053F 2F40      MOV	R20,R16
    0540 2755      CLR	R21
    0541 3041      CPI	R20,1
    0542 E0E0      LDI	R30,0
    0543 075E      CPC	R21,R30
    0544 F071      BEQ	0x0553
    0545 3042      CPI	R20,2
    0546 E0E0      LDI	R30,0
    0547 075E      CPC	R21,R30
    0548 F139      BEQ	0x0570
    0549 3043      CPI	R20,3
    054A E0E0      LDI	R30,0
    054B 075E      CPC	R21,R30
    054C F151      BEQ	0x0577
    054D 3044      CPI	R20,4
    054E E0E0      LDI	R30,0
    054F 075E      CPC	R21,R30
    0550 F409      BNE	0x0552
    0551 C045      RJMP	0x0597
    0552 C063      RJMP	0x05B6
(0684)  {
(0685)  case 1:if((change%10)==2)
    0553 E01A      LDI	R17,0xA
    0554 91000080  LDS	R16,change
    0556 940E0703  CALL	mod8u
    0558 3002      CPI	R16,2
    0559 F469      BNE	0x0567
(0686)  	  	{if(change!=52)
    055A 91800080  LDS	R24,change
    055C 3384      CPI	R24,0x34
    055D F021      BEQ	0x0562
(0687) 		 {change=change+9;}
    055E 5F87      SUBI	R24,0xF7
    055F 93800080  STS	change,R24
    0561 C00A      RJMP	0x056C
(0688) 		 else
(0689) 		 {change=0;write_eep();}
    0562 2422      CLR	R2
    0563 92200080  STS	change,R2
    0565 DF87      RCALL	_write_eep
(0690) 		}
    0566 C005      RJMP	0x056C
(0691) 		else
(0692) 		{change++;}
    0567 91800080  LDS	R24,change
    0569 5F8F      SUBI	R24,0xFF
    056A 93800080  STS	change,R24
(0693) 		delay(300);
    056C E20C      LDI	R16,0x2C
    056D E011      LDI	R17,1
    056E DB99      RCALL	_delay
(0694) 		
(0695)         break;
    056F C046      RJMP	0x05B6
(0696)  case 2: LCD_write_char(0x01,0);write_eep();break;
    0570 2722      CLR	R18
    0571 2733      CLR	R19
    0572 E001      LDI	R16,1
    0573 E010      LDI	R17,0
    0574 DD4E      RCALL	_LCD_write_char
    0575 DF77      RCALL	_write_eep
    0576 C03F      RJMP	0x05B6
(0697)  case 3:time[change/10][change%10]++;changetime();delay(200);write_1302();break;
    0577 E01A      LDI	R17,0xA
    0578 91000080  LDS	R16,change
    057A 940E0705  CALL	div8u
    057C E083      LDI	R24,3
    057D 9F80      MUL	R24,R16
    057E 0110      MOVW	R2,R0
    057F E682      LDI	R24,0x62
    0580 E090      LDI	R25,0
    0581 0E28      ADD	R2,R24
    0582 1E39      ADC	R3,R25
    0583 E02A      LDI	R18,0xA
    0584 E030      LDI	R19,0
    0585 91000080  LDS	R16,change
    0587 2711      CLR	R17
    0588 940E06C9  CALL	mod16s
    058A 0128      MOVW	R4,R16
    058B 0C42      ADD	R4,R2
    058C 1C53      ADC	R5,R3
    058D 01F2      MOVW	R30,R4
    058E 8180      LDD	R24,Z+0
    058F 5F8F      SUBI	R24,0xFF
    0590 8380      STD	Z+0,R24
    0591 DEBC      RCALL	_changetime
    0592 EC08      LDI	R16,0xC8
    0593 E010      LDI	R17,0
    0594 DB73      RCALL	_delay
    0595 DF93      RCALL	_write_1302
    0596 C01F      RJMP	0x05B6
(0698)  case 4:time[change/10][change%10]--;changetime();delay(200);write_1302();break;
    0597 E01A      LDI	R17,0xA
    0598 91000080  LDS	R16,change
    059A 940E0705  CALL	div8u
    059C E083      LDI	R24,3
    059D 9F80      MUL	R24,R16
    059E 0110      MOVW	R2,R0
    059F E682      LDI	R24,0x62
    05A0 E090      LDI	R25,0
    05A1 0E28      ADD	R2,R24
    05A2 1E39      ADC	R3,R25
    05A3 E02A      LDI	R18,0xA
    05A4 E030      LDI	R19,0
    05A5 91000080  LDS	R16,change
    05A7 2711      CLR	R17
    05A8 940E06C9  CALL	mod16s
    05AA 0128      MOVW	R4,R16
    05AB 0C42      ADD	R4,R2
    05AC 1C53      ADC	R5,R3
    05AD 01F2      MOVW	R30,R4
    05AE 8180      LDD	R24,Z+0
    05AF 5081      SUBI	R24,1
    05B0 8380      STD	Z+0,R24
    05B1 DE9C      RCALL	_changetime
    05B2 EC08      LDI	R16,0xC8
    05B3 E010      LDI	R17,0
    05B4 DB53      RCALL	_delay
    05B5 DF73      RCALL	_write_1302
    05B6 9621      ADIW	R28,1
    05B7 940E0732  CALL	pop_gset1
    05B9 9508      RET
(0699) 
(0700)  }
(0701) 
(0702) }
(0703) 
(0704) char com()
(0705) {
(0706) unsigned char i,temp=0;
_com:
  temp                 --> R16
  i                    --> R18
    05BA 2700      CLR	R16
(0707) for(i=1;i<6;i++)
    05BB E021      LDI	R18,1
    05BC C01A      RJMP	0x05D7
(0708) {
(0709) if(time[0][1]==time[i][1])
    05BD E083      LDI	R24,3
    05BE 9F82      MUL	R24,R18
    05BF 01F0      MOVW	R30,R0
    05C0 E683      LDI	R24,0x63
    05C1 E090      LDI	R25,0
    05C2 0FE8      ADD	R30,R24
    05C3 1FF9      ADC	R31,R25
    05C4 8020      LDD	R2,Z+0
    05C5 90300063  LDS	R3,time+1
    05C7 1432      CP	R3,R2
    05C8 F469      BNE	0x05D6
(0710) {if(time[0][2]==time[i][2])
    05C9 E083      LDI	R24,3
    05CA 9F82      MUL	R24,R18
    05CB 01F0      MOVW	R30,R0
    05CC E684      LDI	R24,0x64
    05CD E090      LDI	R25,0
    05CE 0FE8      ADD	R30,R24
    05CF 1FF9      ADC	R31,R25
    05D0 8020      LDD	R2,Z+0
    05D1 90300064  LDS	R3,time+2
    05D3 1432      CP	R3,R2
    05D4 F409      BNE	0x05D6
(0711)  {temp=1;}
    05D5 E001      LDI	R16,1
    05D6 9523      INC	R18
    05D7 3026      CPI	R18,6
    05D8 F320      BCS	0x05BD
(0712) }
(0713) }
(0714) return temp;
    05D9 9508      RET
(0715) }
(0716) 
(0717) void read_eep()
(0718) {
(0719) change=10;
_read_eep:
    05DA E08A      LDI	R24,0xA
    05DB 93800080  STS	change,R24
(0720) for(;;)
(0721) {
(0722)         if((change%10)==2)
    05DD E01A      LDI	R17,0xA
    05DE 91000080  LDS	R16,change
    05E0 940E0703  CALL	mod8u
    05E2 3002      CPI	R16,2
    05E3 F471      BNE	0x05F2
(0723)  	  	{if(change!=52)
    05E4 91800080  LDS	R24,change
    05E6 3384      CPI	R24,0x34
    05E7 F021      BEQ	0x05EC
(0724) 		 {change=change+9;}
    05E8 5F87      SUBI	R24,0xF7
    05E9 93800080  STS	change,R24
    05EB C00B      RJMP	0x05F7
(0725) 		 else
(0726) 		 {change=0;mo=0;break;}
    05EC 2422      CLR	R2
    05ED 92200080  STS	change,R2
    05EF 92200061  STS	mo,R2
    05F1 C023      RJMP	0x0615
(0727) 		}
(0728) 		else
(0729) 		{change++;}
    05F2 91800080  LDS	R24,change
    05F4 5F8F      SUBI	R24,0xFF
    05F5 93800080  STS	change,R24
(0730) 		time[change/10][change%10]=EEPROMread(change); 
    05F7 91000080  LDS	R16,change
    05F9 2711      CLR	R17
    05FA 940E078D  CALL	_EEPROMread
    05FC 0118      MOVW	R2,R16
    05FD E01A      LDI	R17,0xA
    05FE 91000080  LDS	R16,change
    0600 940E0705  CALL	div8u
    0602 E083      LDI	R24,3
    0603 9F80      MUL	R24,R16
    0604 0120      MOVW	R4,R0
    0605 E682      LDI	R24,0x62
    0606 E090      LDI	R25,0
    0607 0E48      ADD	R4,R24
    0608 1E59      ADC	R5,R25
    0609 E02A      LDI	R18,0xA
    060A E030      LDI	R19,0
    060B 91000080  LDS	R16,change
    060D 2711      CLR	R17
    060E 940E06C9  CALL	mod16s
    0610 01F8      MOVW	R30,R16
    0611 0DE4      ADD	R30,R4
    0612 1DF5      ADC	R31,R5
    0613 8220      STD	Z+0,R2
    0614 CFC8      RJMP	0x05DD
    0615 9508      RET
_main:
  i                    --> R20
    0616 9724      SBIW	R28,4
(0731) 
(0732) }
(0733) 
(0734) 
(0735) }
(0736) 	
(0737) 
(0738) 
(0739) void main()
(0740) {
(0741) unsigned int i;
(0742) sys_init();
    0617 DDD5      RCALL	_sys_init
(0743)    for(i=0;i<10;i++)
    0618 2744      CLR	R20
    0619 2755      CLR	R21
    061A C011      RJMP	0x062C
(0744) 	 {
(0745) 		 LCD_init();
    061B DC62      RCALL	_LCD_init
(0746) 
(0747)       
(0748)          LCD_write_string(0,0,"set the distance");
    061C ED81      LDI	R24,0xD1
    061D E090      LDI	R25,0
    061E 8399      STD	Y+1,R25
    061F 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -