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

📄 main.lis

📁 单片机 mega16L 电池放电器源码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0374 30902200          lds R3,_sc_bt1_v_temp+1
 0378 2220              tst R2
 037A 11F4              brne X17
 037C 3320              tst R3
 037E 49F0              breq L54
 0380           X17:
 0380                   .dbline 130
 0380 80912100          lds R24,_sc_bt1_v_temp
 0384 90912200          lds R25,_sc_bt1_v_temp+1
 0388 0197              sbiw R24,1
 038A 90932200          sts _sc_bt1_v_temp+1,R25
 038E 80932100          sts _sc_bt1_v_temp,R24
 0392           L54:
 0392                   .dbline 131
 0392           ;        if(sc_key_delay!=0)  sc_key_delay--;
 0392 20902300          lds R2,_sc_key_delay
 0396 30902400          lds R3,_sc_key_delay+1
 039A 2220              tst R2
 039C 11F4              brne X18
 039E 3320              tst R3
 03A0 49F0              breq L56
 03A2           X18:
 03A2                   .dbline 131
 03A2 80912300          lds R24,_sc_key_delay
 03A6 90912400          lds R25,_sc_key_delay+1
 03AA 0197              sbiw R24,1
 03AC 90932400          sts _sc_key_delay+1,R25
 03B0 80932300          sts _sc_key_delay,R24
 03B4           L56:
 03B4                   .dbline 132
 03B4 20902D00          lds R2,_sc_bt_ctrl
 03B8 30902E00          lds R3,_sc_bt_ctrl+1
 03BC 2220              tst R2
 03BE 11F4              brne X19
 03C0 3320              tst R3
 03C2 49F0              breq L58
 03C4           X19:
 03C4                   .dbline 132
 03C4 80912D00          lds R24,_sc_bt_ctrl
 03C8 90912E00          lds R25,_sc_bt_ctrl+1
 03CC 0197              sbiw R24,1
 03CE 90932E00          sts _sc_bt_ctrl+1,R25
 03D2 80932D00          sts _sc_bt_ctrl,R24
 03D6           L58:
 03D6                   .dbline -2
 03D6           L41:
 03D6                   .dbline 0 ; func end
 03D6 0895              ret
 03D8                   .dbend
 03D8                   .dbfunc e bt1_v_record _bt1_v_record fV
                        .even
 03D8           _bt1_v_record::
 03D8 2297              sbiw R28,2
 03DA                   .dbline -1
 03DA                   .dbline 135
 03DA           ;        if(sc_bt_ctrl!=0)  sc_bt_ctrl--;
 03DA           ;   }
 03DA           ; void bt1_v_record(void)
 03DA           ;   {  
 03DA                   .dbline 136
 03DA           ;      bt1_v_temp/=15;
 03DA 2FE0              ldi R18,15
 03DC 30E0              ldi R19,0
 03DE 00911400          lds R16,_bt1_v_temp
 03E2 10911500          lds R17,_bt1_v_temp+1
 03E6 00D0              rcall div16u
 03E8 10931500          sts _bt1_v_temp+1,R17
 03EC 00931400          sts _bt1_v_temp,R16
 03F0                   .dbline 137
 03F0           ;      EEPROM_READ(0x01F8,BT1_V_num);
 03F0 82E0              ldi R24,2
 03F2 90E0              ldi R25,0
 03F4 9983              std y+1,R25
 03F6 8883              std y+0,R24
 03F8 20E0              ldi R18,<_BT1_V_num
 03FA 30E0              ldi R19,>_BT1_V_num
 03FC 08EF              ldi R16,504
 03FE 11E0              ldi R17,1
 0400 00D0              rcall _EEPROMReadBytes
 0402                   .dbline 138
 0402           ;      EEPROM_WRITE(BT1_V_num*2,bt1_v_temp);
 0402 82E0              ldi R24,2
 0404 90E0              ldi R25,0
 0406 9983              std y+1,R25
 0408 8883              std y+0,R24
 040A 20E0              ldi R18,<_bt1_v_temp
 040C 30E0              ldi R19,>_bt1_v_temp
 040E 20901800          lds R2,_BT1_V_num
 0412 30901900          lds R3,_BT1_V_num+1
 0416 02E0              ldi R16,2
 0418 10E0              ldi R17,0
 041A 2F93              push R18
 041C 3F93              push R19
 041E 9101              movw R18,R2
 0420 00D0              rcall empy16s
 0422 3F91              pop R19
 0424 2F91              pop R18
 0426 00D0              rcall _EEPROMWriteBytes
 0428                   .dbline 140
 0428           ;       
 0428           ;       if(BT1_V_num<249)
 0428 80911800          lds R24,_BT1_V_num
 042C 90911900          lds R25,_BT1_V_num+1
 0430 893F              cpi R24,249
 0432 E0E0              ldi R30,0
 0434 9E07              cpc R25,R30
 0436 70F4              brsh L61
 0438                   .dbline 141
 0438           ;          {BT1_V_num++;EEPROM_WRITE(0x01F8,BT1_V_num);} 
 0438                   .dbline 141
 0438 0196              adiw R24,1
 043A 90931900          sts _BT1_V_num+1,R25
 043E 80931800          sts _BT1_V_num,R24
 0442                   .dbline 141
 0442 82E0              ldi R24,2
 0444 90E0              ldi R25,0
 0446 9983              std y+1,R25
 0448 8883              std y+0,R24
 044A 20E0              ldi R18,<_BT1_V_num
 044C 30E0              ldi R19,>_BT1_V_num
 044E 08EF              ldi R16,504
 0450 11E0              ldi R17,1
 0452 00D0              rcall _EEPROMWriteBytes
 0454                   .dbline 141
 0454           L61:
 0454                   .dbline 143
 0454           ;          
 0454           ;        bt1_v_temp=0;
 0454 2224              clr R2
 0456 3324              clr R3
 0458 30921500          sts _bt1_v_temp+1,R3
 045C 20921400          sts _bt1_v_temp,R2
 0460                   .dbline -2
 0460           L60:
 0460 2296              adiw R28,2
 0462                   .dbline 0 ; func end
 0462 0895              ret
 0464                   .dbend
 0464                   .dbfunc e main _main fV
                        .even
 0464           _main::
 0464                   .dbline -1
 0464                   .dbline 149
 0464           ;   }
 0464           ; /*------------------------------------
 0464           ;           主程序
 0464           ; -------------------------------------*/
 0464           ; void main(void)
 0464           ;   { 
 0464                   .dbline 150
 0464           ;        sc_eeprom=500;
 0464 84EF              ldi R24,500
 0466 91E0              ldi R25,1
 0468 90932A00          sts _sc_eeprom+1,R25
 046C 80932900          sts _sc_eeprom,R24
 0470                   .dbline 151
 0470           ;        delay_nms(20);  
 0470 04E1              ldi R16,20
 0472 10E0              ldi R17,0
 0474 00D0              rcall _delay_nms
 0476                   .dbline 152
 0476           ;        init_devices();         
 0476 00D0              rcall _init_devices
 0478                   .dbline 153
 0478           ;        LCD_clear();
 0478 00D0              rcall _LCD_clear
 047A                   .dbline 154
 047A           ;        LED2_OFF;
 047A AD98              cbi 0x15,5
 047C                   .dbline 155
 047C           ;      LED1_OFF; 
 047C AC98              cbi 0x15,4
 047E                   .dbline 156
 047E           ;        RunTab=5;
 047E 85E0              ldi R24,5
 0480 80930000          sts _RunTab,R24
 0484                   .dbline 157
 0484           ;        delay_nms(2000);
 0484 00ED              ldi R16,2000
 0486 17E0              ldi R17,7
 0488 00D0              rcall _delay_nms
 048A 05C0              rjmp L65
 048C           L64:
 048C                   .dbline 159
 048C                   .dbline 160
 048C 3DD0              rcall _discharge_init
 048E                   .dbline 161
 048E CDD1              rcall _discharge
 0490                   .dbline 162
 0490 04E6              ldi R16,100
 0492 10E0              ldi R17,0
 0494 00D0              rcall _delay_nms
 0496                   .dbline 163
 0496           L65:
 0496                   .dbline 158
 0496 FACF              rjmp L64
 0498           X20:
 0498                   .dbline -2
 0498           L63:
 0498                   .dbline 0 ; func end
 0498 0895              ret
 049A                   .dbend
 049A                   .dbfunc e welcome _welcome fV
 049A           ;             ID -> R20
                        .even
 049A           _welcome::
 049A 00D0              rcall push_gset1
 049C 2397              sbiw R28,3
 049E                   .dbline -1
 049E                   .dbline 166
 049E                   .dbline 167
 049E 45E0              ldi R20,5
 04A0                   .dbline 168
 04A0 20900000          lds R2,_RunTab
 04A4 2416              cp R2,R20
 04A6 91F4              brne L68
 04A8                   .dbline 169
 04A8                   .dbline 170
 04A8 8FE0              ldi R24,15
 04AA 8A83              std y+2,R24
 04AC 80E0              ldi R24,<L70
 04AE 90E0              ldi R25,>L70
 04B0 9983              std y+1,R25
 04B2 8883              std y+0,R24
 04B4 2227              clr R18
 04B6 04E0              ldi R16,4
 04B8 00D0              rcall _LCD_write_string
 04BA                   .dbline 171
 04BA 8FE0              ldi R24,15
 04BC 8A83              std y+2,R24
 04BE 80E0              ldi R24,<L71
 04C0 90E0              ldi R25,>L71
 04C2 9983              std y+1,R25
 04C4 8883              std y+0,R24
 04C6 21E0              ldi R18,1
 04C8 01E0              ldi R16,1
 04CA 00D0              rcall _LCD_write_string
 04CC                   .dbline 172
 04CC           L68:
 04CC                   .dbline -2
 04CC           L67:
 04CC 2396              adiw R28,3
 04CE 00D0              rcall pop_gset1
 04D0                   .dbline 0 ; func end
 04D0 0895              ret
 04D2                   .dbsym r ID 20 c
 04D2                   .dbend
 04D2                   .dbfunc e discharge_stop _discharge_stop fV
                        .even
 04D2           _discharge_stop::
 04D2                   .dbline -1
 04D2                   .dbline 175
 04D2           ;  while(1)
 04D2           ;        { 
 04D2           ;            discharge_init();
 04D2           ;                discharge();
 04D2           ;                delay_nms(100);
 04D2           ;        }
 04D2           ;   }
 04D2           ; void welcome(void)
 04D2           ;   {
 04D2           ;      unsigned char ID=5;
 04D2           ;         if(RunTab==ID)
 04D2           ;               {   
 04D2           ;                 LCD_write_string(4,0,"Welcome",15);
 04D2           ;                 LCD_write_string(1,1,"Discharger xp",15);   
 04D2           ;               }
 04D2           ;   }
 04D2           ; void discharge_stop(void)
 04D2           ;   {
 04D2                   .dbline 176
 04D2           ;      BT1_I_SET=0;BT1_I=0;
 04D2 2224              clr R2
 04D4 3324              clr R3
 04D6 30921100          sts _BT1_I_SET+1,R3
 04DA 20921000          sts _BT1_I_SET,R2
 04DE                   .dbline 176
 04DE 30921D00          sts _BT1_I+1,R3
 04E2 20921C00          sts _BT1_I,R2
 04E6                   .dbline 177
 04E6           ;        BT1_state&=~(1<<1);//已停止放电
 04E6 80912000          lds R24,_BT1_state
 04EA 8D7F              andi R24,253
 04EC 80932000          sts _BT1_state,R24
 04F0                   .dbline 178
 04F0           ;        BT1_state|=(1<<2);//已放完电
 04F0 8460              ori R24,4
 04F2 80932000          sts _BT1_state,R24
 04F6                   .dbline 179
 04F6           ;        DDRB&=~(1<<1);G_F;
 04F6 B998              cbi 0x17,1
 04F8                   .dbline 179
 04F8 AC98              cbi 0x15,4
 04FA                   .dbline 180
 04FA           ;        PWM=100;
 04FA 84E6              ldi R24,100
 04FC 90E0              ldi R25,0
 04FE 90930F00          sts _PWM+1,R25
 0502 80930E00          sts _PWM,R24
 0506                   .dbline -2
 0506           L72:
 0506                   .dbline 0 ; func end
 0506 0895              ret
 0508                   .dbend
 0508                   .dbfunc e discharge_init _discharge_init fV
                        .even
 0508           _discharge_init::
 0508                   .dbline -1
 0508                   .dbline 183
 0508                   .dbline 184
 0508 00D0              rcall _T_BT1_V
 050A 10931F00          sts _BT1_V+1,R17
 050E 00931E00          sts _BT1_V,R16
 0512                   .dbline 185
 0512 80ED              ldi R24,2000
 0514 97E0              ldi R25,7
 0516 8017              cp R24,R16
 0518 9107              cpc R25,R17
 051A 58F4              brsh L74
 051C 20902000          lds R2,_BT1_state
 0520 2220              tst R2
 0522 39F4              brne L74
 0524                   .dbline 186
 0524                   .dbline 187
 0524 822D              mov R24,R2
 0526 8160              ori R24,1
 0528 80932000          sts _BT1_state,R24
 052C                   .dbline 188
 052C 8AE0              ldi R24,10
 052E 80930000          sts _RunTab,R24
 0532                   .dbline 189
 0532           L74:
 0532                   .dbline -2
 0532           L73:
 0532                   .dbline 0 ; func end
 0532 0895              ret
 0534                   .dbend
 0534                   .dbfunc e Capacitance_setting _Capacitance_setting fV

⌨️ 快捷键说明

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