📄 taskmain.lst
字号:
C51 COMPILER V7.06 TASKMAIN 10/30/2008 13:20:04 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TASKMAIN
OBJECT MODULE PLACED IN TaskMain.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TaskMain.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define DATA
2 #include"include.h"
3
4 /*********************************************************************************************************
5 ** 函数名称: uint8 ReadKey(void)
6 ** 功能描述: 读取本机地址
7 ** 输 入: 无
8 ** 输 出: 无
9 ** 全局变量:
10 ** 调用模块:
11 **
12 ** 作 者: 李伟
13 ** 日 期: 2008年12月09日
14 **-------------------------------------------------------------------------------------------------------
15 ** 修 改 人:
16 ** 日 期:
17 **-------------------------------------------------------------------------------------------------------
18 ********************************************************************************************************/
19 uint8 ReadKey(void)
20 {
21 1 uint8 KEY;
22 1 KEY = 0;
23 1 if(KEY0 == 1)KEY = KEY + 1;
24 1 if(KEY1 == 1)KEY = KEY + 2;
25 1 if(KEY2 == 1)KEY = KEY + 4;
26 1 if(KEY3 == 1)KEY = KEY + 8;
27 1 return KEY;
28 1 }
29 /*********************************************************************************************************
30 ** 函数名称: void Voltage_Collect(void)
31 ** 功能描述: 各模拟量采集
32 ** 输 入: 无
33 ** 输 出: 无
34 ** 全局变量:
35 ** 调用模块:
36 **
37 ** 作 者: 李伟
38 ** 日 期: 2008年12月09日
39 **-------------------------------------------------------------------------------------------------------
40 ** 修 改 人:
41 ** 日 期:
42 **-------------------------------------------------------------------------------------------------------
43 ********************************************************************************************************/
44 void Voltage_Collect(void)
45 {
46 1 uint8 channel;
47 1 uint16 adcT;
48 1 ChargeCurrent = Adc_Collect(NEG_CURRENT); //充电电流为负
49 1 DisChargeCurrent = Adc_Collect(ACT_CURRENT); //放电电流为正
50 1 for(channel = 0;channel < 15;channel++)
51 1 {
52 2 A11 = 1;
53 2 A12 = 1;
54 2 delaynms(20);
55 2 SetChannel(channel);
C51 COMPILER V7.06 TASKMAIN 10/30/2008 13:20:04 PAGE 2
56 2 if(channel == 0)delaynms(100);
57 2 else delaynms(50);
58 2 CellVoltage[channel] = Adc_Collect(CELL_VOLTAGE);
59 2 if(channel <= 7)
60 2 {
61 3 adcT = Adc_Collect(CELL_TEMPERATURE);
62 3 if(channel == 2)Temperature[0] = TemperatureLine(adcT);
63 3 if(channel == 1)Temperature[1] = TemperatureLine(adcT);
64 3 if(channel == 0)Temperature[2] = TemperatureLine(adcT);
65 3 if(channel == 3)Temperature[3] = TemperatureLine(adcT);
66 3 if(channel == 4)Temperature[4] = TemperatureLine(adcT);
67 3 if(channel == 6)Temperature[5] = TemperatureLine(adcT);
68 3 if(channel == 7)Temperature[6] = TemperatureLine(adcT);
69 3 if(channel == 5)Temperature[7] = TemperatureLine(adcT);
70 3 }
71 2 else if(channel == 8)
72 2 {
73 3 adcT = Adc_Collect(OUTS_TEMPERATURE);
74 3 Temperature[channel] = TemperatureLine(adcT);
75 3 }
76 2 }
77 1 //RunLed = ~RunLed;
78 1 }
79 /**
80 ********************************************************************************************************
81 ** 名 称: void SystermInitiate(void)
82 ** 功 能:
83 ** 作 者: 李 伟
84 ** 日 期: 2008年12月09日
85 **------------------------------------------------------------------------------------------------------
86 ** 修改人:
87 ** 日 期:
88 **------------------------------------------------------------------------------------------------------
89 ********************************************************************************************************
90 **/
91 void SystermInitiate(void)
92 {
93 1 uint8 i;
94 1 uint16 address;
95 1 if(EepReadByte(0x2E00) != 119)//第四扇区
96 1 {
97 2 EepSectotErase(0x2E00); //擦除第四扇区
98 2 EepWriteByte(119,0x2E00); //写入119定值
99 2 CUK = 10000; //单体电池电压采集系数
100 2 CTK = 10000; //单体电池温度采集系数
101 2 OTK = 10000; //环境温度系数
102 2 P1M0 &= 0xFD; //将RS485通讯使能端设为推挽模式
103 2 P1M1 |= 0x02;
104 2
105 2 ModeSysConfig[0] = 2600; //CellVlow 单体电压下限2600mV
106 2 ModeSysConfig[1] = 4200; //CellVhigh 单体电压上限4200mV
107 2 ModeSysConfig[2] = 56000; //PackOV 电池组充电过压限值56.0V
108 2 ModeSysConfig[3] = 40500; //PackUV 电池组放电欠压限值40.5V
109 2 ModeSysConfig[4] = 2000; //ChargeOC 充电电流限值 2A
110 2 ModeSysConfig[5] = 10000; //DisChargeOC 放电电流限值10A
111 2 ModeSysConfig[6] = 3000; //ReCellVlow 单体电池电压恢复下限 3000mV
112 2 ModeSysConfig[7] = 4000; //ReCellVhigh 单体电池电压恢复上限 4000mV
113 2 ModeSysConfig[8] = ReadKey(); //BoardAddress读取本机地址
114 2
115 2 ModeTempCofing[0] = 5; //ChargeTlow 充电温度下限 5 摄氏度
116 2 ModeTempCofing[1] = 45; //ChargeThigh 充电温度上限 45 摄氏度
117 2 ModeTempCofing[2] = -10; //DisChargeTlow 放电温度下限-10 摄氏度(光宇标准)
C51 COMPILER V7.06 TASKMAIN 10/30/2008 13:20:04 PAGE 3
118 2 ModeTempCofing[3] = 55; //DisChargeThigh 放电温度上限 55 摄氏度(光宇标准)
119 2 ModeTempCofing[4] = 55; //EnvironmentOT 环境温度告警值与放电温度告警值相同
120 2 ModeTempCofing[5] = -10; //EnvironmentUT
121 2 ModeTempCofing[6] = 53; //ReEnvironmentOT环境温度告警恢复限值与放电温度告警恢复限值相同
122 2 ModeTempCofing[7] = -8; //ReEnvironmentUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -