📄 taskmain.lst
字号:
123 2 ModeTempCofing[8] = 7; //ReChargeTlow 充电低温恢复限值 7 摄氏度
124 2 ModeTempCofing[9] = 43; //ReChargeThigh 充电高温恢复限值 43 摄氏度
125 2 ModeTempCofing[10] = -8; //ReDisChargeTlow 放电低温恢复限值 -8 摄氏度
126 2 ModeTempCofing[11] = 53; //ReDisChargeThigh放电高温恢复限值 53 摄氏度
127 2 address = 0x2800;
128 2 EepSectotErase(address); //擦除第一扇区写入默认值
129 2 for(i = 0;i < 9;i++)
130 2 {
131 3 EepWriteWord(ModeSysConfig[i],address);
132 3 address++;
133 3 address++;
134 3 }
135 2 address = 0x2A00;
136 2 EepSectotErase(address); //擦除第二扇区写入默认值
137 2 for(i = 0;i < 12;i++)
138 2 {
139 3 EepWriteByte(ModeTempCofing[i],address);
140 3 address++;
141 3 }
142 2 EepSectotErase(0x2C00); //擦除第三扇区写入默认值
143 2 EepWriteWord(CUK,0x2C00); //单体电池电压采集系数
144 2 EepWriteWord(CTK,0x2C02); //单体电池温度采集系数
145 2 EepWriteWord(OTK,0x2C04); //环境温度系数
146 2
147 2 AlarmInitiate (); //初始化告警
148 2 Initiate_RS485(); //初始化485
149 2 Initiate_RS232(); //初始化232
150 2 soft_receive_enable(); // 模拟串口允许接收
151 2 COMEN = CommRxden; //RS485通讯允许接收
152 2 ChargeEn = ChargeEnable; //使能充电
153 2 DisChargeEn = DisChargeEnable; //使能放电
154 2 }
155 1 else if(EepReadByte(0x2E00) == 119)
156 1 {
157 2 P1M0 &= 0xFD; //将RS485通讯使能端设为推挽模式
158 2 P1M1 |= 0x02;
159 2 CUK = EepReadWord(0x2C00); //单体电池电压采集系数
160 2 CTK = EepReadWord(0x2C02); //单体电池温度采集系数
161 2 OTK = EepReadWord(0x2C04); //环境温度系数
162 2 address = 0x2800;
163 2 for(i = 0;i < 8;i++)
164 2 {
165 3 ModeSysConfig[i] = EepReadWord(address);
166 3 address++;
167 3 address++;
168 3 }
169 2 ModeSysConfig[8] = ReadKey(); //BoardAddress读取本机地址
170 2 address = 0x2A00;
171 2 for(i = 0;i < 12;i++)
172 2 {
173 3 ModeTempCofing[i] = EepReadByte(address);
174 3 address++;
175 3 }
176 2 AlarmInitiate (); //初始化告警
177 2 Initiate_RS485(); //初始化485
178 2 Initiate_RS232(); //初始化232
179 2 soft_receive_enable(); // 模拟串口允许接收
C51 COMPILER V7.06 TASKMAIN 10/30/2008 13:20:04 PAGE 4
180 2 COMEN = CommRxden; //RS485通讯允许接收
181 2 ChargeEn = ChargeEnable; //使能充电
182 2 DisChargeEn = DisChargeEnable; //使能放电
183 2 }
184 1 }
185 /**
186 ********************************************************************************************************
187 ** 名 称: void Main (void)
188 ** 功 能:
189 ** 作 者: 李 伟
190 ** 日 期: 2008年12月09日
191 **------------------------------------------------------------------------------------------------------
192 ** 修改人:
193 ** 日 期:
194 **------------------------------------------------------------------------------------------------------
195 ********************************************************************************************************
196 **/
197 void main(void)
198 {
199 1 SystermInitiate();
200 1 while(1)
201 1 {
202 2 Voltage_Collect(); //采信各模拟量
203 2 //WorkMode = WorkModeJudge(); //判断工作模式
204 2 ModeSysConfig[8] = ReadKey(); //BoardAddress
205 2 WorkMode = DisChargeStep;
206 2 if(WorkMode == ChargeStep) //充电管理
207 2 {
208 3 RunLed = 0; //充电时指示灯一直亮起,
209 3 SignalCellT(Temperature, 9,ChargeStep); //单只电池温度告警查询
210 3 SignalCellV(CellVoltage,15,ChargeStep); //单只电池温度告警查询
211 3 ChargeAndDisChargeEnable (ChargeStep); //放电使能查询
212 3 }
213 2 if(WorkMode == DisChargeStep) //放电管理
214 2 {
215 3 RunLed = ~RunLed; //放电时指示灯闪烁/秒
216 3 SignalCellT(Temperature, 9,DisChargeStep); //单只电池温度告警查询
217 3 SignalCellV(CellVoltage,15,DisChargeStep); //单只电池电压告警查询
218 3 ChargeAndDisChargeEnable (DisChargeStep); //放电使能查询
219 3 }
220 2 if(Rs232Massageflag == 1) //模拟串口通讯标志
221 2 {
222 3 Rs232Massageflag = 0;
223 3 soft_send_enable();
224 3 Rs232CommManage ();
225 3 soft_receive_enable();
226 3 }
227 2 if(Massageflag == 1) //RS485通讯标志
228 2 {
229 3 Massageflag = 0;
230 3 COMEN = CommTxden;
231 3 CommRs485Manage();
232 3 COMEN = CommRxden;
233 3 }
234 2 }
235 1 }
236 /********************************************************************************************************
237 End of file
238 ********************************************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.06 TASKMAIN 10/30/2008 13:20:04 PAGE 5
CODE SIZE = 968 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 142 ----
PDATA SIZE = ---- ----
DATA SIZE = 30 6
IDATA SIZE = 63 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -