?? alm.lst
字號:
C51 COMPILER V7.06 ALM 10/30/2008 13:20:05 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ALM
OBJECT MODULE PLACED IN ALM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ALM.C OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"include.h"
2
3 uint8 bdata AlarmET;
4 uint8 bdata AlarmVh0; //1~ 8只電池過壓告警
5 uint8 bdata AlarmVh1; //9~15只電池過壓告警
6 uint8 bdata AlarmVl0; //1~ 8只電池欠壓告警
7 uint8 bdata AlarmVl1; //9~15只電池欠壓告警
8 uint8 bdata AlarmScCTh; //1~15只電池充電過溫
9 uint8 bdata AlarmScCTl; //1~15只電池充電欠溫
10 uint8 bdata AlarmSDcTh; //1~15只電池放電過溫
11 uint8 bdata AlarmSDcTl; //1~15只電池放電欠溫
12 uint8 bdata TemperaSensor; //1~ 8路溫度傳感器失效
13 uint8 bdata VoltageSensor0; //電壓傳感器失效
14
15
16 sbit C_01_OV_Alarm = AlarmVh0^0; sbit C_09_OV_Alarm = AlarmVh1^0; //電池過壓告警量
17 sbit C_02_OV_Alarm = AlarmVh0^1; sbit C_10_OV_Alarm = AlarmVh1^1;
18 sbit C_03_OV_Alarm = AlarmVh0^2; sbit C_11_OV_Alarm = AlarmVh1^2;
19 sbit C_04_OV_Alarm = AlarmVh0^3; sbit C_12_OV_Alarm = AlarmVh1^3;
20 sbit C_05_OV_Alarm = AlarmVh0^4; sbit C_13_OV_Alarm = AlarmVh1^4;
21 sbit C_06_OV_Alarm = AlarmVh0^5; sbit C_14_OV_Alarm = AlarmVh1^5;
22 sbit C_07_OV_Alarm = AlarmVh0^6; sbit C_15_OV_Alarm = AlarmVh1^6;
23 sbit C_08_OV_Alarm = AlarmVh0^7; sbit C_TV_OV_Alarm = AlarmVh1^7; //總電壓過壓
24
25 sbit C_01_UV_Alarm = AlarmVl0^0; sbit C_09_UV_Alarm = AlarmVl1^0; //電池欠壓告警量
26 sbit C_02_UV_Alarm = AlarmVl0^1; sbit C_10_UV_Alarm = AlarmVl1^1;
27 sbit C_03_UV_Alarm = AlarmVl0^2; sbit C_11_UV_Alarm = AlarmVl1^2;
28 sbit C_04_UV_Alarm = AlarmVl0^3; sbit C_12_UV_Alarm = AlarmVl1^3;
29 sbit C_05_UV_Alarm = AlarmVl0^4; sbit C_13_UV_Alarm = AlarmVl1^4;
30 sbit C_06_UV_Alarm = AlarmVl0^5; sbit C_14_UV_Alarm = AlarmVl1^5;
31 sbit C_07_UV_Alarm = AlarmVl0^6; sbit C_15_UV_Alarm = AlarmVl1^6;
32 sbit C_08_UV_Alarm = AlarmVl0^7; sbit C_TV_UV_Alarm = AlarmVl1^7; //總電壓欠壓
33
34 sbit C_01_02_C_OT = AlarmScCTh^0; sbit C_01_02_C_UT = AlarmScCTl^0;//充電過欠溫告警量
35 sbit C_03_04_C_OT = AlarmScCTh^1; sbit C_03_04_C_UT = AlarmScCTl^1;
36 sbit C_05_06_C_OT = AlarmScCTh^2; sbit C_05_06_C_UT = AlarmScCTl^2;
37 sbit C_07_08_C_OT = AlarmScCTh^3; sbit C_07_08_C_UT = AlarmScCTl^3;
38 sbit C_09_10_C_OT = AlarmScCTh^4; sbit C_09_10_C_UT = AlarmScCTl^4;
39 sbit C_11_12_C_OT = AlarmScCTh^5; sbit C_11_12_C_UT = AlarmScCTl^5;
40 sbit C_13_14_C_OT = AlarmScCTh^6; sbit C_13_14_C_UT = AlarmScCTl^6;
41 sbit C_15_15_C_OT = AlarmScCTh^7; sbit C_15_15_C_UT = AlarmScCTl^7;
42
43 sbit C_01_02_Dc_OT = AlarmSDcTh^0; sbit C_01_02_Dc_UT = AlarmSDcTl^0;//放電過欠溫告警
44 sbit C_03_04_Dc_OT = AlarmSDcTh^1; sbit C_03_04_Dc_UT = AlarmSDcTl^1;
45 sbit C_05_06_Dc_OT = AlarmSDcTh^2; sbit C_05_06_Dc_UT = AlarmSDcTl^2;
46 sbit C_07_08_Dc_OT = AlarmSDcTh^3; sbit C_07_08_Dc_UT = AlarmSDcTl^3;
47 sbit C_09_10_Dc_OT = AlarmSDcTh^4; sbit C_09_10_Dc_UT = AlarmSDcTl^4;
48 sbit C_11_12_Dc_OT = AlarmSDcTh^5; sbit C_11_12_Dc_UT = AlarmSDcTl^5;
49 sbit C_13_14_Dc_OT = AlarmSDcTh^6; sbit C_13_14_Dc_UT = AlarmSDcTl^6;
50 sbit C_15_15_Dc_OT = AlarmSDcTh^7; sbit C_15_15_Dc_UT = AlarmSDcTl^7;
51
52 sbit TSensor_01_Bro = TemperaSensor^0; sbit TSensor_05_Bro = TemperaSensor^4; //溫度感器失效
53 sbit TSensor_02_Bro = TemperaSensor^1; sbit TSensor_06_Bro = TemperaSensor^5;
54 sbit TSensor_03_Bro = TemperaSensor^2; sbit TSensor_07_Bro = TemperaSensor^6;
55 sbit TSensor_04_Bro = TemperaSensor^3; sbit TSensor_08_Bro = TemperaSensor^7;
C51 COMPILER V7.06 ALM 10/30/2008 13:20:05 PAGE 2
56
57 sbit VSensorBroken = VoltageSensor0^0; //電壓傳感器失效
58
59 /*******************************************************************
60 AlarmET告警位說明
61 *******************************************************************/
62 /* --------------------------------------------------------------
63 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | |
64 --------------------------------------------------------------
65 | ETSB | CSB | PDOC | PCOC | ENUT| EVOT | PDOT | PCOT | |
66 --------------------------------------------------------------*/
67 sbit Pack_C_OT_Alarm = AlarmET^0; //電池組充電過溫
68 sbit Pack_D_OT_Alarm = AlarmET^1; //電池組放電過溫
69 sbit Envi_OT_Alarm = AlarmET^2; //環境溫度過溫
70 sbit Envi_UT_Alarm = AlarmET^3; //環境溫度欠溫
71 sbit Pack_C_OC_Alarm = AlarmET^4; //電池組充電過流
72 sbit Pack_D_OC_Alarm = AlarmET^5; //電池組放電過流
73 sbit CurrentSensorBr = AlarmET^6; //電流傳感器失效
74 sbit EnviTemSensorBr = AlarmET^7; //環境溫度傳感器失效
75
76 /*********************************************************************************************************
77 ** 函數名稱: void AlarmInitiate(void)
78 ** 功能描述: 告警初始化
79 ** 輸 入: 無
80 ** 輸 出: 無
81 ** 全局變量:
82 ** 調用模塊:
83 **
84 ** 作 者: 李偉
85 ** 日 期: 2008年12月15日
86 **-------------------------------------------------------------------------------------------------------
87 ** 修 改 人:
88 ** 日 期:
89 **-------------------------------------------------------------------------------------------------------
90 ********************************************************************************************************/
91 void AlarmInitiate(void)
92 {
93 1 AlarmET = 0;
94 1 AlarmVh0 = 0; //1~ 8只電池過壓告警
95 1 AlarmVh1 = 0; //9~15只電池過壓告警
96 1 AlarmVl0 = 0; //1~ 8只電池欠壓告警
97 1 AlarmVl1 = 0; //9~15只電池欠壓告警
98 1 AlarmScCTh = 0; //1~15只電池充電過溫
99 1 AlarmScCTl = 0; //1~15只電池充電欠溫
100 1 AlarmSDcTh = 0; //1~15只電池放電過溫
101 1 AlarmSDcTl = 0; //1~15只電池放電欠溫
102 1 }
103 /*********************************************************************************************************
104 ** 函數名稱: void SignalCellT(uint8 *Buf,uint8 width,uint8 WorkMode)
105 ** 功能描述:
106 ** 輸 入: 無
107 ** 輸 出: 無
108 ** 全局變量:
109 ** 調用模塊:
110 **
111 ** 作 者: 李偉
112 ** 日 期: 2008年12月15日
113 **-------------------------------------------------------------------------------------------------------
114 ** 修 改 人:
115 ** 日 期:
116 **-------------------------------------------------------------------------------------------------------
117 ********************************************************************************************************/
C51 COMPILER V7.06 ALM 10/30/2008 13:20:05 PAGE 3
118 void SignalCellT(uint8 *Buf,uint8 width,uint8 WorkMode)
119 {
120 1 uint8 i;
121 1 uint8 *buf;
122 1 buf = Buf;
123 1 for(i = 0;i < width;i++)
124 1 {
125 2 if(WorkMode == ChargeStep)
126 2 {
127 3 if(buf[i] > ModeTempCofing[1]) //45攝氏度ChargeThigh
128 3 {
129 4 if(i == 0)C_01_02_C_OT = 1; //產生充電過溫告警
130 4 if(i == 1)C_03_04_C_OT = 1;
131 4 if(i == 2)C_05_06_C_OT = 1;
132 4 if(i == 3)C_07_08_C_OT = 1;
133 4 if(i == 4)C_09_10_C_OT = 1;
134 4 if(i == 5)C_11_12_C_OT = 1;
135 4 if(i == 6)C_13_14_C_OT = 1;
136 4 if(i == 7)C_15_15_C_OT = 1;
137 4 }
138 3 else if(buf[i] < ModeTempCofing[9]) //43攝氏度ReChargeThigh
139 3 {
140 4 if(i == 0)C_01_02_C_OT = 0; //消除充電過溫告警
141 4 if(i == 1)C_03_04_C_OT = 0;
142 4 if(i == 2)C_05_06_C_OT = 0;
143 4 if(i == 3)C_07_08_C_OT = 0;
144 4 if(i == 4)C_09_10_C_OT = 0;
145 4 if(i == 5)C_11_12_C_OT = 0;
146 4 if(i == 6)C_13_14_C_OT = 0;
147 4 if(i == 7)C_15_15_C_OT = 0;
148 4 }
149 3 if(buf[i] < ModeTempCofing[0]) //5攝氏度ChargeTlow
150 3 {
151 4 if(i == 0)C_01_02_C_UT = 1; //產生充電欠溫告警
152 4 if(i == 1)C_03_04_C_UT = 1;
153 4 if(i == 2)C_05_06_C_UT = 1;
154 4 if(i == 3)C_07_08_C_UT = 1;
155 4 if(i == 4)C_09_10_C_UT = 1;
156 4 if(i == 5)C_11_12_C_UT = 1;
157 4 if(i == 6)C_13_14_C_UT = 1;
158 4 if(i == 7)C_15_15_C_UT = 1;
159 4 }
160 3 else if(buf[i] > ModeTempCofing[8]) //7攝氏度ReChargeTlow
161 3 {
162 4 if(i == 0)C_01_02_C_UT = 0;//消除充電欠溫告警
163 4 if(i == 1)C_03_04_C_UT = 0;
164 4 if(i == 2)C_05_06_C_UT = 0;
165 4 if(i == 3)C_07_08_C_UT = 0;
166 4 if(i == 4)C_09_10_C_UT = 0;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -