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

📄 main.lis

📁 单片机 mega16L 电池放电器源码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0742 80930600          sts _speed,R24
 0746                   .dbline 225
 0746 1FC0              rjmp L96
 0748           L95:
 0748                   .dbline 226
 0748           ;                   else if((keyboard==down)&&speed>5)
 0748 80913500          lds R24,_keyboard
 074C 8230              cpi R24,2
 074E 71F4              brne L97
 0750 85E0              ldi R24,5
 0752 20900600          lds R2,_speed
 0756 8215              cp R24,R2
 0758 48F4              brsh L97
 075A                   .dbline 227
 075A           ;                    {keyboard=0;speed-=5;}
 075A                   .dbline 227
 075A 2224              clr R2
 075C 20923500          sts _keyboard,R2
 0760                   .dbline 227
 0760 80910600          lds R24,_speed
 0764 8550              subi R24,5
 0766 80930600          sts _speed,R24
 076A                   .dbline 227
 076A 0DC0              rjmp L98
 076C           L97:
 076C                   .dbline 228
 076C           ;                       else if(keyboard==pagedown)
 076C 80913500          lds R24,_keyboard
 0770 8830              cpi R24,8
 0772 49F4              brne L99
 0774                   .dbline 229
 0774           ;               { 
 0774                   .dbline 230
 0774           ;                        keyboard=0;
 0774 2224              clr R2
 0776 20923500          sts _keyboard,R2
 077A                   .dbline 231
 077A           ;                RunTab--;LCD_clear();
 077A 80910000          lds R24,_RunTab
 077E 8150              subi R24,1
 0780 80930000          sts _RunTab,R24
 0784                   .dbline 231
 0784 00D0              rcall _LCD_clear
 0786                   .dbline 232
 0786           ;               }
 0786           L99:
 0786           L98:
 0786           L96:
 0786                   .dbline 233
 0786           L89:
 0786                   .dbline -2
 0786           L88:
 0786 2996              adiw R28,9
 0788 00D0              rcall pop_gset1
 078A                   .dbline 0 ; func end
 078A 0895              ret
 078C                   .dbsym r ID 20 c
 078C                   .dbend
 078C                   .dbfunc e record_setting _record_setting fV
 078C           ;             ID -> R20
                        .even
 078C           _record_setting::
 078C 00D0              rcall push_gset1
 078E 2297              sbiw R28,2
 0790                   .dbline -1
 0790                   .dbline 236
 0790                   .dbline 237
 0790 4CE0              ldi R20,12
 0792                   .dbline 238
 0792 20900000          lds R2,_RunTab
 0796 2416              cp R2,R20
 0798 09F0              breq X23
 079A 44C0              rjmp L102
 079C           X23:
 079C                   .dbline 239
 079C                   .dbline 240
 079C 82E0              ldi R24,2
 079E 90E0              ldi R25,0
 07A0 9983              std y+1,R25
 07A2 8883              std y+0,R24
 07A4 20E0              ldi R18,<_mAh_set
 07A6 30E0              ldi R19,>_mAh_set
 07A8 0CEF              ldi R16,508
 07AA 11E0              ldi R17,1
 07AC 00D0              rcall _EEPROMWriteBytes
 07AE                   .dbline 241
 07AE 81E0              ldi R24,1
 07B0 90E0              ldi R25,0
 07B2 9983              std y+1,R25
 07B4 8883              std y+0,R24
 07B6 20E0              ldi R18,<_speed
 07B8 30E0              ldi R19,>_speed
 07BA 0EEF              ldi R16,510
 07BC 11E0              ldi R17,1
 07BE 00D0              rcall _EEPROMWriteBytes
 07C0                   .dbline 242
 07C0 84EF              ldi R24,500
 07C2 91E0              ldi R25,1
 07C4 90930F00          sts _PWM+1,R25
 07C8 80930E00          sts _PWM,R24
 07CC                   .dbline 242
 07CC 8CE4              ldi R24,7500
 07CE 9DE1              ldi R25,29
 07D0 90932600          sts _sc_bt1_record+1,R25
 07D4 80932500          sts _sc_bt1_record,R24
 07D8                   .dbline 243
 07D8 82EE              ldi R24,1250
 07DA 94E0              ldi R25,4
 07DC 90932A00          sts _sc_eeprom+1,R25
 07E0 80932900          sts _sc_eeprom,R24
 07E4                   .dbline 243
 07E4 84EF              ldi R24,500
 07E6 91E0              ldi R25,1
 07E8 90932200          sts _sc_bt1_v_temp+1,R25
 07EC 80932100          sts _sc_bt1_v_temp,R24
 07F0                   .dbline 244
 07F0 24E6              ldi R18,100
 07F2 30E0              ldi R19,0
 07F4 00910400          lds R16,_mAh_set
 07F8 10910500          lds R17,_mAh_set+1
 07FC 00D0              rcall div16u
 07FE 20910600          lds R18,_speed
 0802 3327              clr R19
 0804 00D0              rcall empy16s
 0806 10931100          sts _BT1_I_SET+1,R17
 080A 00931000          sts _BT1_I_SET,R16
 080E                   .dbline 245
 080E B99A              sbi 0x17,1
 0810                   .dbline 245
 0810 AC9A              sbi 0x15,4
 0812                   .dbline 246
 0812 80912000          lds R24,_BT1_state
 0816 8260              ori R24,2
 0818 80932000          sts _BT1_state,R24
 081C                   .dbline 247
 081C 81E0              ldi R24,1
 081E 80930000          sts _RunTab,R24
 0822                   .dbline 248
 0822 00D0              rcall _LCD_clear
 0824                   .dbline 249
 0824           L102:
 0824                   .dbline -2
 0824           L101:
 0824 2296              adiw R28,2
 0826 00D0              rcall pop_gset1
 0828                   .dbline 0 ; func end
 0828 0895              ret
 082A                   .dbsym r ID 20 c
 082A                   .dbend
 082A                   .dbfunc e discharge _discharge fV
 082A           ;         i_temp -> y+4
 082A           ;         v_temp -> y+0
 082A           ;              i -> R10
 082A           ;              v -> R12
                        .even
 082A           _discharge::
 082A 00D0              rcall push_gset4
 082C 2897              sbiw R28,8
 082E                   .dbline -1
 082E                   .dbline 255
 082E           ;                       }
 082E           ;   }
 082E           ; void record_setting(void)
 082E           ;   {
 082E           ;       unsigned char ID=12; 
 082E           ;       if(RunTab==ID)
 082E           ;                 {     
 082E           ;                   EEPROM_WRITE(0x01FC,mAh_set);
 082E           ;                       EEPROM_WRITE(0x01FE,speed);
 082E           ;                       PWM=500;sc_bt1_record=7500;
 082E           ;                       sc_eeprom=1250;sc_bt1_v_temp=500;
 082E           ;               BT1_I_SET=mAh_set/100*speed;
 082E           ;               DDRB|=(1<<1);G_N; 
 082E           ;                       BT1_state|=(1<<1);
 082E           ;                       RunTab=1;
 082E           ;                       LCD_clear();
 082E           ;                 }
 082E           ;   }
 082E           ; /*---------------------------------------
 082E           ;              放电程序
 082E           ; ----------------------------------------*/
 082E           ; void discharge (void)
 082E           ;   {    
 082E 9CC0              rjmp L106
 0830           L105:
 0830                   .dbline 260
 0830           ;       unsigned long v_temp,i_temp;
 0830           ;         unsigned char v,i;
 0830           ;        
 0830           ;         while(BT1_state&(1<<1))
 0830           ;         {G_N;
 0830                   .dbline 260
 0830 AC9A              sbi 0x15,4
 0832                   .dbline 261
 0832           ;               if(i<4)
 0832 8A2D              mov R24,R10
 0834 8430              cpi R24,4
 0836 A0F4              brsh L108
 0838                   .dbline 262
 0838           ;                {i_temp+=T_BT1_I();i++;}
 0838                   .dbline 262
 0838 00D0              rcall _T_BT1_I
 083A 1801              movw R2,R16
 083C 4424              clr R4
 083E 5524              clr R5
 0840 FE01              movw R30,R28
 0842 6480              ldd R6,z+4
 0844 7580              ldd R7,z+5
 0846 8680              ldd R8,z+6
 0848 9780              ldd R9,z+7
 084A 620C              add R6,R2
 084C 731C              adc R7,R3
 084E 841C              adc R8,R4
 0850 951C              adc R9,R5
 0852 FE01              movw R30,R28
 0854 6482              std z+4,R6
 0856 7582              std z+5,R7
 0858 8682              std z+6,R8
 085A 9782              std z+7,R9
 085C                   .dbline 262
 085C A394              inc R10
 085E                   .dbline 262
 085E 19C0              rjmp L109
 0860           L108:
 0860                   .dbline 264
 0860           ;               else
 0860           ;                {i=0;BT1_I=i_temp>>2;i_temp=0;}        
 0860                   .dbline 264
 0860 AA24              clr R10
 0862                   .dbline 264
 0862 82E0              ldi R24,2
 0864 90E0              ldi R25,0
 0866 FE01              movw R30,R28
 0868 2480              ldd R2,z+4
 086A 3580              ldd R3,z+5
 086C 4680              ldd R4,z+6
 086E 5780              ldd R5,z+7
 0870 8A93              st -y,R24
 0872 8101              movw R16,R2
 0874 9201              movw R18,R4
 0876 00D0              rcall lsr32
 0878 10931D00          sts _BT1_I+1,R17
 087C 00931C00          sts _BT1_I,R16
 0880                   .dbline 264
 0880 40E0              ldi R20,0
 0882 50E0              ldi R21,0
 0884 60E0              ldi R22,0
 0886 70E0              ldi R23,0
 0888 FE01              movw R30,R28
 088A 4483              std z+4,R20
 088C 5583              std z+5,R21
 088E 6683              std z+6,R22
 0890 7783              std z+7,R23
 0892                   .dbline 264
 0892           L109:
 0892                   .dbline 265
 0892           ;               delay_nms(5);
 0892 05E0              ldi R16,5
 0894 10E0              ldi R17,0
 0896 00D0              rcall _delay_nms
 0898                   .dbline 266
 0898           ;               if(v<64)
 0898 8C2D              mov R24,R12
 089A 8034              cpi R24,64
 089C E8F4              brsh L110
 089E                   .dbline 267
 089E           ;                {v_temp+=T_BT1_V()+(BT1_I>>1); v++;}
 089E                   .dbline 267
 089E 00D0              rcall _T_BT1_V
 08A0 20901C00          lds R2,_BT1_I
 08A4 30901D00          lds R3,_BT1_I+1
 08A8 3694              lsr R3
 08AA 2794              ror R2
 08AC 2801              movw R4,R16
 08AE 420C              add R4,R2
 08B0 531C              adc R5,R3
 08B2 1201              movw R2,R4
 08B4 4424              clr R4
 08B6 5524              clr R5
 08B8 FE01              movw R30,R28
 08BA 6080              ldd R6,z+0
 08BC 7180              ldd R7,z+1
 08BE 8280              ldd R8,z+2
 08C0 9380              ldd R9,z+3
 08C2 620C              add R6,R2
 08C4 731C              adc R7,R3
 08C6 841C              adc R8,R4
 08C8 951C              adc R9,R5
 08CA FE01              movw R30,R28
 08CC 6082              std z+0,R6
 08CE 7182              std z+1,R7
 08D0 8282              std z+2,R8
 08D2 9382              std z+3,R9
 08D4                   .dbline 267
 08D4 C394              inc R12
 08D6                   .dbline 267
 08D6 19C0              rjmp L111
 08D8           L110:
 08D8                   .dbline 269
 08D8           ;               else 
 08D8           ;                {v=0;BT1_V=v_temp>>6;v_temp=0;}
 08D8                   .dbline 269
 08D8 CC24              clr R12
 08DA                   .dbline 269
 08DA 86E0              ldi R24,6
 08DC 90E0              ldi R25,0
 08DE FE01              movw R30,R28
 08E0 2080              ldd R2,z+0
 08E2 3180              ldd R3,z+1
 08E4 4280              ldd R4,z+2
 08E6 5380              ldd R5,z+3
 08E8 8A93              st -y,R24
 08EA 8101              movw R16,R2
 08EC 9201              movw R18,R4
 08EE 00D0              rcall lsr32
 08F0 10931F00          sts _BT1_V+1,R17
 08F4 00931E00          sts _BT1_V,R16
 08F8                   .dbline 269
 08F8 40E0              ldi R20,0
 08FA 50E0              ldi R21,0
 08FC 60E0              ldi R22,0
 08FE 70E0              ldi R23,0
 0900 FE01              movw R30,R28
 0902 4083              std z+0,R20
 0904 5183              std z+1,R21
 0906 6283              std z+2,R22
 0908 7383              std z+3,R23
 090A                   .dbline 269
 090A           L111:
 090A                   .dbline 271
 090A 05E0              ldi R16,5
 090C 10E0              ldi R17,0
 090E 00D0              rcall _delay_nms
 09

⌨️ 快捷键说明

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