📄 jk0061119.lst
字号:
__start:
__text_start:
0068 EFCF LDI R28,0xFF
0069 E0D4 LDI R29,4
006A BFCD OUT 0x3D,R28
006B BFDE OUT 0x3E,R29
006C 52C0 SUBI R28,0x20
006D 40D0 SBCI R29,0
006E EA0A LDI R16,0xAA
006F 8308 STD Y+0,R16
0070 2400 CLR R0
0071 E3EE LDI R30,0x3E
0072 E0F1 LDI R31,1
0073 E013 LDI R17,3
0074 37ED CPI R30,0x7D
0075 07F1 CPC R31,R17
0076 F011 BEQ 0x0079
0077 9201 ST R0,Z+
0078 CFFB RJMP 0x0074
0079 8300 STD Z+0,R16
007A E9E2 LDI R30,0x92
007B E0F0 LDI R31,0
007C E0A0 LDI R26,0
007D E0B1 LDI R27,1
007E E010 LDI R17,0
007F 3DE0 CPI R30,0xD0
0080 07F1 CPC R31,R17
0081 F021 BEQ 0x0086
0082 95C8 LPM
0083 9631 ADIW R30,1
0084 920D ST R0,X+
0085 CFF9 RJMP 0x007F
0086 940E19C0 CALL _main
_exit:
0088 CFFF RJMP _exit
_init_Variables_0:
temp1 --> R20
temp0 --> R22
i --> R10
0089 940E1C02 CALL push_gset3
FILE: F:\单片机\小监控\新的小监控\连瑞宏达C\JK0061119_ram.h
(0001) /////////////////////////Var of communication
(0002) //char Time0_10ms_com0=0;
(0003) char Time0_Ovf_com0_ProgramBranch=0;
(0004) char Com0_R_Cout=0,Com0_R_CRCcouter;
(0005) char Com0_R_Complete=0;
(0006) //char Com0_S_Data_flag=0;
(0007) char Com0_R_Data[20];
(0008) char Com0_S_Data[60];
(0009) char Com0_S_DataByte;
(0010) char *Com0_S_Pointer;
(0011) //char Com0_S_Data_times=0;////此变量纯粹是为发均充浮充控制命令时重复发3次
(0012) //char Com0_S_Data_FC_JC=0;////此变量纯粹是为记录均充浮充标志
(0013) //////////////////////////////////////////////////////////
(0014) //char Time0_13ms_com1=0;
(0015) //char Time0_Ovf_com1_ProgramBranch=0;
(0016) char Com1_R_Cout;
(0017) char Com1_R_Complete=0;
(0018) char Com1_R_Data[40];
(0019) char Com1_S_Data_flag=0;
(0020) char Master_Com1_S_Data_flag=0;
(0021) //char Master_Com1_S_Data_delay=0;
(0022) char Master_Com1_S_Data_flag_ID=10;
(0023) //char Com1_S_Data_FC_JC=0;////此变量纯粹是为记录均充浮充标志
(0024) char Com1_S_Data1[15]={0xFF,0x53,0x0C,0x00,0x07,0x1A,0x00,0x00,0x00,0x00};//设置模块输出电压电流
(0025) char Com1_S_Data2[6]={0x01,0x41,0x00,0x00};//读取模块模拟量
(0026) char Com1_S_Data3[6]={0x01,0x43,0x00,0x00};//读模块的告警状态
(0027) char Com1_S_Data[30];
(0028) char Com1_S_DataByte;
(0029) char Com1_S_Byte_UCSR1B;
(0030) char *Com1_S_Pointer;
(0031) /////////////////////////////////////////////////////////
(0032) char JK_Value[70];
(0033) char JK_IO[4]={0x01};
(0034) char MK_error[2];//最大只能接16个模块
(0035) char MK_Communication_Error[16];
(0036) ///////////////////////////////////////////////////////////////////
(0037) char Flag_JC_FC=0; //0:FC 1:JC
(0038) /////////////////////////////////////////////////////////////
(0039) unsigned int v_HM_Voltage;/// 合母电压有效值
(0040) unsigned int v_KM_Voltage;////控母电压有效值
(0041) unsigned int v_MK_Voltage;/////模块电压有效值
(0042) unsigned int v_BAT_Voltage;///电池电压有效值
(0043) unsigned int A_CD_Current;//// 充电电流有效值
(0044) unsigned int A_KM_Load_Current;///控母负载电流
(0045) ////////////////////////////////////////////////////////////////
(0046) unsigned int v_HM_Voltage_process[10];
(0047) unsigned int v_KM_Voltage_process[10];
(0048) unsigned int v_MK_Voltage_process[10];
(0049) unsigned int v_BAT_Voltage_process[10];
(0050) unsigned int A_CD_Current_process[10];
(0051) unsigned int A_KM_Load_Current_process[10];
(0052) char portc_temp[6]={0x1F,0x9F,0x5F,0xDF,0x3F,0xBF};
(0053) char Get_Data=0;
(0054) //////////////////////////////////////////////////////////////
(0055) unsigned int Voltage_GL_Join;
(0056) unsigned int Voltage_GL_Quit;
(0057) char GL_Join_Quit_Count=5;
(0058) unsigned int *Voltage_HM_High_Alarm;
(0059) unsigned int *Voltage_HM_Low_Alarm;
(0060) unsigned int *Voltage_KM_High_Alarm;
(0061) unsigned int *Voltage_KM_Low_Alarm;
(0062) ////////////////////////////////////////////////
(0063) unsigned int *A_Current_Sensor; ///霍尔传感器量称
(0064) unsigned int *A_Current_BypassSensor;///分流器量程
(0065) unsigned int *A_Current_JC; //均充电流值
(0066) unsigned int *A_Current_FC;///浮充电流值
(0067) unsigned int *A_Current_FC_Change_JC;//浮充转均充电流值
(0068) unsigned int *Time_Interval_JC;////均充间隔设置值
(0069) unsigned int *Time_Limited_JC;////均充限时设置值
(0070) unsigned int *Time_Delay_JC;////均充延时设置值
(0071) unsigned int Time_Interval_JC_register;////均充间隔
(0072) unsigned int Time_Limited_JC_register;////均充限时
(0073) unsigned int Time_Delay_JC_register;////////均充延时
(0074) // char data_cout;//数据微调
(0075) long temp_temp;
(0076) unsigned int *v_HM_data_potentiometer;
(0077) unsigned int *v_KM_data_potentiometer;
(0078) unsigned int *v_MK_data_potentiometer;
(0079) unsigned int *v_Bat_data_potentiometer;
(0080) unsigned int *A_KM_Load_Current_potentiometer;
(0081) unsigned int *A_CD_Current_potentiometer;
(0082) ////////////////////////////////////////////
(0083) unsigned int ram_array[22];
(0084) //////////////////////////////////////////////////////
(0085) char Time_five_second;//5 秒钟定时
(0086) unsigned int Time_one_minute; //1 分钟定时
(0087) unsigned int Time_one_hour;//1小时定时
(0088) unsigned int Password_Level_2;
(0089) ///////////////////////////////////AD采集
(0090) char AD_Channels;
(0091) char AD_collect_cout=0;
(0092) char data_collect_flag=0;
(0093) unsigned int Var_temp_int;
(0094) /////////////////////////////////////////
(0095) unsigned int *v_MK_JC_Voltage;//此变量为设置模块输出电压时使用
(0096) unsigned int *v_MK_FC_Voltage;//此变量为设置模块输出电压时使用
(0097) float A_MK_OUTPUT ; //此变量为后来加的模块的输出电流
(0098) union num_float
(0099) {
(0100) float a;
(0101) char num[4];
(0102) }MK_float_num;
(0103) //////////////////////
(0104) //////////////Display LCD
(0105) char LCD_Display_ram[66];
(0106) char *P_LCD_display;
(0107) unsigned int LCD_light_on_time=0;
(0108) unsigned char ASCLL_byte1,ASCLL_byte2,ASCLL_byte3,ASCLL_byte4;
(0109) unsigned char ASCLL_byte1_potentiometer,ASCLL_byte2_potentiometer,ASCLL_byte3_potentiometer,ASCLL_byte4_potentiometer;
(0110) /////////键盘延时
(0111) char Time2_press_key_delay=0; //延时12ms
(0112) char ID_key_pressed=0;
(0113) unsigned int Password_Level_2;
(0114) unsigned char byte_PASSword_1=0;
(0115) unsigned char byte_PASSword_2=0;
(0116) unsigned char byte_PASSword_3=0;
(0117) unsigned char byte_PASSword_4=0;
(0118) unsigned int Password_input;
(0119) ///////////
(0120) char press_key_value_pc0=1;
(0121) char press_key_value_pc2=1;
(0122) char menu_ID=1;
(0123) char floor_ID=1;
(0124) char Flag_press_key=0;
(0125) unsigned int key_change_temp;
(0126) /////////////////////////////////////////////////////////////////
(0127) void init_Variables_0(void)
(0128) {
(0129) char i,temp0,temp1;
(0130)
(0131) Com0_S_Data[0]=EEPROMread((int)&Address_JK);
008B E001 LDI R16,1
008C E010 LDI R17,0
008D 940E1C63 CALL _EEPROMread
008F 9300032C STS _Com0_S_Data,R16
(0132) JK_Value[56]=0;
0091 2422 CLR R2
0092 922002D0 STS 0x2D0,R2
(0133) JK_Value[57]=Com0_S_Data[0];
0094 2E20 MOV R2,R16
0095 922002D1 STS 0x2D1,R2
(0134) //Com0_S_Data[0]=02;
(0135) temp0=EEPROMread((int)&Voltage_GL_Join_110_Hbyte);
0097 E002 LDI R16,2
0098 E010 LDI R17,0
0099 940E1C63 CALL _EEPROMread
009B 2F60 MOV R22,R16
(0136) temp1=EEPROMread((int)&Voltage_GL_Join_110_Lbyte);
009C E003 LDI R16,3
009D E010 LDI R17,0
009E 940E1C63 CALL _EEPROMread
00A0 2F40 MOV R20,R16
(0137) Voltage_GL_Join=(int)temp0<<8;
00A1 2E26 MOV R2,R22
00A2 2433 CLR R3
00A3 2C32 MOV R3,R2
00A4 2422 CLR R2
00A5 92300201 STS _Voltage_GL_Join+1,R3
00A7 92200200 STS _Voltage_GL_Join,R2
(0138) Voltage_GL_Join|=(int)temp1;
00A9 2E24 MOV R2,R20
00AA 2433 CLR R3
00AB 90400200 LDS R4,_Voltage_GL_Join
00AD 90500201 LDS R5,_Voltage_GL_Join+1
00AF 2842 OR R4,R2
00B0 2853 OR R5,R3
00B1 92500201 STS _Voltage_GL_Join+1,R5
00B3 92400200 STS _Voltage_GL_Join,R4
(0139) ////
(0140) temp0=EEPROMread((int)&Voltage_GL_Quit_110_Hbyte);
00B5 E004 LDI R16,4
00B6 E010 LDI R17,0
00B7 940E1C63 CALL _EEPROMread
00B9 2F60 MOV R22,R16
(0141) temp1=EEPROMread((int)&Voltage_GL_Quit_110_Lbyte);
00BA E005 LDI R16,5
00BB E010 LDI R17,0
00BC 940E1C63 CALL _EEPROMread
00BE 2F40 MOV R20,R16
(0142) Voltage_GL_Quit=(int)temp0<<8;
00BF 2E26 MOV R2,R22
00C0 2433 CLR R3
00C1 2C32 MOV R3,R2
00C2 2422 CLR R2
00C3 923001FF STS _Voltage_GL_Quit+1,R3
00C5 922001FE STS _Voltage_GL_Quit,R2
(0143) Voltage_GL_Quit|=(int)temp1;
00C7 2E24 MOV R2,R20
00C8 2433 CLR R3
00C9 904001FE LDS R4,_Voltage_GL_Quit
00CB 905001FF LDS R5,_Voltage_GL_Quit+1
00CD 2842 OR R4,R2
00CE 2853 OR R5,R3
00CF 925001FF STS _Voltage_GL_Quit+1,R5
00D1 924001FE STS _Voltage_GL_Quit,R4
(0144) ////
(0145) temp0=EEPROMread((int)&Password_Level_2_Hbyte);
00D3 E308 LDI R16,0x38
00D4 E010 LDI R17,0
00D5 940E1C63 CALL _EEPROMread
00D7 2F60 MOV R22,R16
(0146) temp1=EEPROMread((int)&Password_Level_2_Lbyte);
00D8 E309 LDI R16,0x39
00D9 E010 LDI R17,0
00DA 940E1C63 CALL _EEPROMread
00DC 2F40 MOV R20,R16
(0147) Password_Level_2=(int)temp0<<8;
00DD 2E26 MOV R2,R22
00DE 2433 CLR R3
00DF 2C32 MOV R3,R2
00E0 2422 CLR R2
00E1 9230019E STS _Password_Level_2+1,R3
00E3 9220019D STS _Password_Level_2,R2
(0148) Password_Level_2|=(int)temp1;
00E5 2E24 MOV R2,R20
00E6 2433 CLR R3
00E7 9040019D LDS R4,_Password_Level_2
00E9 9050019E LDS R5,_Password_Level_2+1
00EB 2842 OR R4,R2
00EC 2853 OR R5,R3
00ED 9250019E STS _Password_Level_2+1,R5
00EF 9240019D STS _Password_Level_2,R4
(0149) ///
(0150) for(i=0; i<22; i++)
00F1 24AA CLR R10
00F2 C042 RJMP 0x0135
(0151) {
(0152) temp0=EEPROMread((int)&EEprom_array[2*i]);
00F3 E082 LDI R24,2
00F4 9D8A MUL R24,R10
00F5 0180 MOVW R16,R0
00F6 E086 LDI R24,6
00F7 E090 LDI R25,0
00F8 0F08 ADD R16,R24
00F9 1F19 ADC R17,R25
00FA 940E1C63 CALL _EEPROMread
00FC 2F60 MOV R22,R16
(0153) temp1=EEPROMread((int)&EEprom_array[2*i+1]);
00FD E082 LDI R24,2
00FE 9D8A MUL R24,R10
00FF 0180 MOVW R16,R0
0100 E087 LDI R24,7
0101 E090 LDI R25,0
0102 0F08 ADD R16,R24
0103 1F19 ADC R17,R25
0104 940E1C63 CALL _EEPROMread
0106 2F40 MOV R20,R16
(0154) JK_Value[2*i+12]=temp0;
0107 E082 LDI R24,2
0108 9D8A MUL R24,R10
0109 01F0 MOVW R30,R0
010A EA84 LDI R24,0xA4
010B E092 LDI R25,2
010C 0FE8 ADD R30,R24
010D 1FF9 ADC R31,R25
010E 8360 STD Z+0,R22
(0155) JK_Value[2*i+13]=temp1;
010F E082 LDI R24,2
0110 9D8A MUL R24,R10
0111 01F0 MOVW R30,R0
0112 EA85 LDI R24,0xA5
0113 E092 LDI R25,2
0114 0FE8 ADD R30,R24
0115 1FF9 ADC R31,R25
0116 8340 STD Z+0,R20
(0156) ram_array[i]=(int)temp0<<8;
0117 E082 LDI R24,2
0118 9D8A MUL R24,R10
0119 01F0 MOVW R30,R0
011A EA84 LDI R24,0xA4
011B E091 LDI R25,1
011C 0FE8 ADD R30,R24
011D 1FF9 ADC R31,R25
011E 2E26 MOV R2,R22
011F 2433 CLR R3
0120 2C32 MOV R3,R2
0121 2422 CLR R2
0122 8231 STD Z+1,R3
0123 8220 STD Z+0,R2
(0157) ram_array[i]|=(int)temp1;
0124 E082 LDI R24,2
0125 9D8A MUL R24,R10
0126 0110 MOVW R2,R0
0127 EA84 LDI R24,0xA4
0128 E091 LDI R25,1
0129 0E28 ADD R2,R24
012A 1E39 ADC R3,R25
012B 2E44 MOV R4,R20
012C 2455 CLR R5
012D 01F1 MOVW R30,R2
012E 8060 LDD R6,Z+0
012F 8071 LDD R7,Z+1
0130 2864 OR R6,R4
0131 2875 OR R7,R5
0132 8271 STD Z+1,R7
0133 8260 STD Z+0,R6
0134 94A3 INC R10
0135 2D8A MOV R24,R10
0136 3186 CPI R24,0x16
0137 F408 BCC 0x0139
0138 CFBA RJMP 0x00F3
(0158) }
(0159)
(0160) //////////
(0161) A_Current_BypassSensor=ram_array;
0139 EA84 LDI R24,0xA4
013A E091 LDI R25,1
013B 939001F3 STS _A_Current_BypassSensor+1,R25
013D 938001F2 STS _A_Current_BypassSensor,R24
(0162) A_Current_JC=ram_array+1;
013F EA86 LDI R24,0xA6
0140 E091 LDI R25,1
0141 939001F1 STS _A_Current_JC+1,R25
0143 938001F0 STS _A_Current_JC,R24
(0163) A_Current_FC=ram_array+2;
0145 EA88 LDI R24,0xA8
0146 E091 LDI R25,1
0147 939001EF STS _A_Current_FC+1,R25
0149 938001EE STS _A_Current_FC,R24
(0164) A_Current_FC_Change_JC=ram_array+3;
014B EA8A LDI R24,0xAA
014C E091 LDI R25,1
014D 939001ED STS _A_Current_FC_Change_JC+1,R25
014F 938001EC STS _A_Current_FC_Change_JC,R24
(0165) Voltage_HM_High_Alarm=ram_array+4;
0151 EA8C LDI R24,0xAC
0152 E091 LDI R25,1
0153 939001FD STS _Voltage_HM_High_Alarm+1,R25
0155 938001FC STS _Voltage_HM_High_Alarm,R24
(0166) Voltage_HM_Low_Alarm=ram_array+5;
0157 EA8E LDI R24,0xAE
0158 E091 LDI R25,1
0159 939001FB STS _Voltage_HM_Low_Alarm+1,R25
015B 938001FA STS _Voltage_HM_Low_Alarm,R24
(0167) Voltage_KM_High_Alarm=ram_array+6;
015D EB80 LDI R24,0xB0
015E E091 LDI R25,1
015F 939001F9 STS _Voltage_KM_High_Alarm+1,R25
0161 938001F8 STS _Voltage_KM_High_Alarm,R24
(0168) Voltage_KM_Low_Alarm=ram_array+7;
0163 EB82 LDI R24,0xB2
0164 E091 LDI R25,1
0165 939001F7 STS _Voltage_KM_Low_Alarm+1,R25
0167 938001F6 STS _Voltage_KM_Low_Alarm,R24
(0169) A_Current_Sensor=ram_array+8;
0169 EB84 LDI R24,0xB4
016A E091 LDI R25,1
016B 939001F5 STS _A_Current_Sensor+1,R25
016D 938001F4 STS _A_Current_Sensor,R24
(0170) Time_Interval_JC=ram_array+9;
016F EB86 LDI R24,0xB6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -