📄 discharger.lis
字号:
.module discharger.c
.area data(ram, con, rel)
0000 _Menu::
0000 .blkw 1
.area idata
0000 7A00 .word L1
.area data(ram, con, rel)
0002 .blkw 1
.area idata
0002 6E00 .word L2
.area data(ram, con, rel)
0004 .blkw 1
.area idata
0004 6900 .word L3
.area data(ram, con, rel)
0006 .blkw 1
.area idata
0006 6200 .word L4
.area data(ram, con, rel)
0008 .blkw 1
.area idata
0008 5C00 .word L5
.area data(ram, con, rel)
000A .blkw 1
.area idata
000A 5600 .word L6
.area data(ram, con, rel)
000C .blkw 1
.area idata
000C 5400 .word L7
.area data(ram, con, rel)
000E .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
000E .dbsym e Menu _Menu A[14:7]pkc
000E _sec::
000E .blkb 1
.area idata
000E 00 .byte 0
.area data(ram, con, rel)
000F .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
000F .dbsym e sec _sec c
000F _min::
000F .blkb 1
.area idata
000F 00 .byte 0
.area data(ram, con, rel)
0010 .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
0010 .dbsym e min _min c
0010 _hour::
0010 .blkb 1
.area idata
0010 00 .byte 0
.area data(ram, con, rel)
0011 .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
0011 .dbsym e hour _hour c
0011 _RunTab::
0011 .blkb 1
.area idata
0011 01 .byte 1
.area data(ram, con, rel)
0012 .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
0012 .dbsym e RunTab _RunTab c
0012 _mAh_set::
0012 .blkb 2
.area idata
0012 E803 .word 1000
.area data(ram, con, rel)
0014 .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
0014 .dbsym e mAh_set _mAh_set i
0014 _speed::
0014 .blkb 1
.area idata
0014 0A .byte 10
.area data(ram, con, rel)
0015 .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
0015 .dbsym e speed _speed c
.area vector(rom, abs)
.org 8
0008 00C0 rjmp _timer2_ovf_isr
.area data(ram, con, rel)
0015 .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
.area text(rom, con, rel)
0000 .dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\discharger.c
0000 .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
.even
0000 _timer2_ovf_isr::
0000 00D0 rcall push_lset
0002 .dbline -1
0002 .dbline 63
0002 .dbline 64
0002 86E0 ldi R24,6
0004 84BD out 0x24,R24
0006 .dbline 65
0006 17D1 rcall _system_clock
0008 .dbline 66
0008 0DD0 rcall _system
000A .dbline 68
000A 20901100 lds R2,_RunTab
000E 30903100 lds R3,_RunTab_old
0012 3214 cp R3,R2
0014 29F0 breq L9
0016 .dbline 69
0016 .dbline 69
0016 00D0 rcall _LCD_clear
0018 .dbline 69
0018 20901100 lds R2,_RunTab
001C 20923100 sts _RunTab_old,R2
0020 .dbline 69
0020 L9:
0020 .dbline -2
0020 L8:
0020 00D0 rcall pop_lset
0022 .dbline 0 ; func end
0022 1895 reti
0024 .dbend
0024 .dbfunc e system _system fV
.even
0024 _system::
0024 00D0 rcall push_gset2
0026 2297 sbiw R28,2
0028 .dbline -1
0028 .dbline 75
0028 ; //项目名称:电池容量测试器V2.0
0028 ; //功能描述:通过对电池放电,测量出电池的容量
0028 ; //外部模块:1602LCD
0028 ; //开发人员:李卓生
0028 ; //开发日期:2006年2月16日
0028 ; //最后修正: 2006年2月27日
0028 ; //*********************************************************
0028 ; #include <iom8v.h>
0028 ; #include <macros.h>
0028 ; #include "discharge.h"
0028 ; #include "LCD_1602.h"
0028 ; #include "eeprom.h"
0028 ;
0028 ; #define key_delay 64
0028 ; #define keyboard_scan 16
0028 ; #define lcd_write 32
0028 ; #define timer_dealy 125
0028 ;
0028 ; const char *Menu[]=//系统菜单
0028 ; {"Menu","Discharging","D882","Record","Clear","USART","#"};
0028 ;
0028 ; unsigned char path_top,path;
0028 ; //系统参数
0028 ; unsigned char sec=0;
0028 ; unsigned char min=0;
0028 ; unsigned char hour=0;
0028 ; unsigned char keyboard;
0028 ; unsigned char RunTab=1;
0028 ; unsigned char RunTab_old;
0028 ;
0028 ; unsigned char sc_timer_dealy,sc_keyboard_scan,sc_lcd_write,sc_key_delay;//定时小于255*31.25ms的
0028 ; unsigned int sc_bt1,sc_bt_ctrl,sc_eeprom,sc_discharge,sc_bt1_record,sc_bt1_v_temp;
0028 ; /*//LED灯控制参数
0028 ; unsigned int G_led,G_led_cy,G_led_ht;
0028 ; unsigned int sc_G_cy,sc_G_ht;
0028 ;
0028 ; unsigned int R_led,R_led_cy,R_led_ht;
0028 ; unsigned int sc_R_cy,sc_R_ht;
0028 ; */
0028 ; // discharge
0028 ; unsigned char BT1_state;
0028 ; unsigned int BT1_V;
0028 ; unsigned int BT1_I;
0028 ; unsigned int BT1_T;
0028 ; unsigned int BT1_V_num;
0028 ; unsigned int BT1_V_num_temp;
0028 ; unsigned int bt1_v_temp;
0028 ; unsigned int bt1_v_temp_1;
0028 ;
0028 ; unsigned int BT1_I_SET;
0028 ; unsigned int PWM;
0028 ; unsigned long BT1_mAh;
0028 ; unsigned long BT1_time;
0028 ; unsigned int mAh;
0028 ; unsigned int D882_P;
0028 ;
0028 ; unsigned int mAh_set=1000;
0028 ; unsigned char speed=10;
0028 ; unsigned int BT1_P;
0028 ; //T2溢出中断服务程序 8ms
0028 ; #pragma interrupt_handler timer2_ovf_isr:5
0028 ; void timer2_ovf_isr(void)
0028 ; {
0028 ; TCNT2 = 0x06;//重装计时值0xFF=32us 0x00=8.192ms
0028 ; system_clock();//系统定时器
0028 ; system();//系统后台服务程序
0028 ; //Green_led(); Red_led();
0028 ; if(RunTab_old!=RunTab)
0028 ; {LCD_clear();RunTab_old=RunTab;}
0028 ; }
0028 ; /*----------------------------------
0028 ; 系统后台服务程序
0028 ; -----------------------------------*/
0028 ; void system(void)
0028 ; {
0028 .dbline 76
0028 ; if(sc_timer_dealy==0){timer(); sc_timer_dealy=timer_dealy;}
0028 20903000 lds R2,_sc_timer_dealy
002C 2220 tst R2
002E 21F4 brne L12
0030 .dbline 76
0030 .dbline 76
0030 68D9 rcall _timer
0032 .dbline 76
0032 8DE7 ldi R24,125
0034 80933000 sts _sc_timer_dealy,R24
0038 .dbline 76
0038 L12:
0038 .dbline 77
0038 ; if((sc_key_delay==0)&&(keyboard!=0)){sc_key_delay=key_delay;}
0038 20902D00 lds R2,_sc_key_delay
003C 2220 tst R2
003E 39F4 brne L14
0040 20903200 lds R2,_keyboard
0044 2220 tst R2
0046 19F0 breq L14
0048 .dbline 77
0048 .dbline 77
0048 80E4 ldi R24,64
004A 80932D00 sts _sc_key_delay,R24
004E .dbline 77
004E L14:
004E .dbline 78
004E ; if(sc_key_delay==1){keyboard=0;}
004E 80912D00 lds R24,_sc_key_delay
0052 8130 cpi R24,1
0054 19F4 brne L16
0056 .dbline 78
0056 .dbline 78
0056 2224 clr R2
0058 20923200 sts _keyboard,R2
005C .dbline 78
005C L16:
005C .dbline 79
005C ; if(sc_keyboard_scan==0)
005C 20902F00 lds R2,_sc_keyboard_scan
0060 2220 tst R2
0062 41F4 brne L18
0064 .dbline 80
0064 ; {keyboard=key(keyboard);sc_keyboard_scan=keyboard_scan;}
0064 .dbline 80
0064 00913200 lds R16,_keyboard
0068 00D0 rcall _key
006A 00933200 sts _keyboard,R16
006E .dbline 80
006E 80E1 ldi R24,16
0070 80932F00 sts _sc_keyboard_scan,R24
0074 .dbline 80
0074 L18:
0074 .dbline 81
0074 ; if(sc_lcd_write==0)
0074 20902E00 lds R2,_sc_lcd_write
0078 2220 tst R2
007A 29F4 brne L20
007C .dbline 82
007C ; {Run_Turn();LCD_write_new();sc_lcd_write=lcd_write;}
007C .dbline 82
007C 63D1 rcall _Run_Turn
007E .dbline 82
007E 00D0 rcall _LCD_write_new
0080 .dbline 82
0080 80E2 ldi R24,32
0082 80932E00 sts _sc_lcd_write,R24
0086 .dbline 82
0086 L20:
0086 .dbline 84
0086 ;
0086 ; if((BT1_I_SET)/*&&(sc_bt1_record==0)*/)
0086 20901000 lds R2,_BT1_I_SET
008A 30901100 lds R3,_BT1_I_SET+1
008E 2220 tst R2
0090 19F4 brne X0
0092 3320 tst R3
0094 09F4 brne X7
0096 A2C0 rjmp L22
0098 X7:
0098 X0:
0098 .dbline 85
0098 ; {
0098 .dbline 86
0098 ; if(sc_bt1==0)
0098 20902B00 lds R2,_sc_bt1
009C 30902C00 lds R3,_sc_bt1+1
00A0 2220 tst R2
00A2 11F5 brne L24
00A4 3320 tst R3
00A6 01F5 brne L24
00A8 X1:
00A8 .dbline 87
00A8 ; {BT1_mAh+=BT1_I;sc_bt1=450;}//容量统计,每3.6秒计一次
00A8 .dbline 87
00A8 20901C00 lds R2,_BT1_I
00AC 30901D00 lds R3,_BT1_I+1
00B0 4424 clr R4
00B2 5524 clr R5
00B4 80900C00 lds R8,_BT1_mAh+2
00B8 90900D00 lds R9,_BT1_mAh+2+1
00BC 60900A00 lds R6,_BT1_mAh
00C0 70900B00 lds R7,_BT1_mAh+1
00C4 620C add R6,R2
00C6 731C adc R7,R3
00C8 841C adc R8,R4
00CA 951C adc R9,R5
00CC 70920B00 sts _BT1_mAh+1,R7
00D0 60920A00 sts _BT1_mAh,R6
00D4 90920D00 sts _BT1_mAh+2+1,R9
00D8 80920C00 sts _BT1_mAh+2,R8
00DC .dbline 87
00DC 82EC ldi R24,450
00DE 91E0 ldi R25,1
00E0 90932C00 sts _sc_bt1+1,R25
00E4 80932B00 sts _sc_bt1,R24
00E8 .dbline 87
00E8 L24:
00E8 .dbline 88
00E8 ; if(sc_discharge==0)
00E8 20902500 lds R2,_sc_discharge
00EC 30902600 lds R3,_sc_discharge+1
00F0 2220 tst R2
00F2 01F5 brne L26
00F4 3320 tst R3
00F6 F1F4 brne L26
00F8 X2:
00F8 .dbline 89
00F8 ; {BT1_time++;sc_discharge=125;}//放电时间统计
00F8 .dbline 89
00F8 41E0 ldi R20,1
00FA 50E0 ldi R21,0
00FC 60E0 ldi R22,0
00FE 70E0 ldi R23,0
0100 40900800 lds R4,_BT1_time+2
0104 50900900 lds R5,_BT1_time+2+1
0108 20900600 lds R2,_BT1_time
010C 30900700 lds R3,_BT1_time+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -