📄 ai.lst
字号:
163 /* FUNCTION */
164 /* */
165 /* Temp_measure */
166 /* */
167 /* DESCRIPTION */
168 /* */
169 /* Temprature measure function */
170 /* */
171 /* AUTHOR */
172 /* */
173 /* Wang ZhongFu */
174 /* */
175 /* CALLED BY */
176 /* */
177 /* Application */
178 /* */
179 /* CALLS */
C51 COMPILER V8.17 AI 04/16/2009 17:40:13 PAGE 4
180 /* */
181 /* none */
182 /* */
183 /* INPUTS */
184 /* */
185 /* none */
186 /* */
187 /* OUTPUTS */
188 /* */
189 /* none */
190 /* */
191 /* HISTORY */
192 /* */
193 /* DATE REMARKS */
194 /* 10-30-2006 Created initial version 1.0 */
195 /*************************************************************************/
196 void Temp_measure(){
197 1 adc0_source(9); //ADC0 channel select
198 1 //while(stack_index<STACK_LEN){
199 1 ADC0START; //ADC0 start
200 1 while (~AD0INT);
201 1 AD0INT=0;
202 1 //isnewdata=1;
203 1
204 1 SampleValue=ADC0DATA;
205 1 //kk=ADC0H*256;
206 1 //kk+=ADC0L;
207 1 //stack_index++;
208 1 //ADC0START;
209 1 //}
210 1 //stack_index=0;
211 1 //for(ti=0,total=0L;ti<STACK_LEN;ti++)
212 1 //total+=mystack[ti];
213 1 //total/=8L;
214 1 tempvalue=(float)SampleValue/4096;
215 1 tempvalue*=2.43;
216 1 tempvalue/=2L;
217 1 tempvalue-=0.776;
218 1 tempvalue/=0.00286;//transform measure data to real temprature
219 1 Sample_TempratureValue=tempvalue;
220 1 //isnewdata=0;
221 1 //temp16[dataindex]=tempvalue;//put temprature into 20 arraies
222 1 //dataindex++;
223 1 //if(dataindex>19)
224 1 //dataindex=0;
225 1 }
226 void main(){
227 1 //memset(&mystack,0x00,sizeof(mystack));
228 1 EA = 0;
229 1 //SFRPAGE=0x00;
230 1 //rst=RSTSRC;
231 1 config();
232 1 RelayOut_ControlFan=0;
233 1 OutTest=0;
234 1 t0ini();
235 1 adc0_ini();//ADC0 initialization
236 1 EA = 1;
237 1 T0RUN;
238 1 delay1ms(10);
239 1 SFRPAGE=0x0f;
240 1 Temp_measure();//discard first samplevalue
241 1 Temp_measure();//environment temprature
C51 COMPILER V8.17 AI 04/16/2009 17:40:13 PAGE 5
242 1 Start_temprature=Sample_TempratureValue;
243 1 while(1){
244 2 if(Time_1_Minute_Switch>10){
245 3 Time_1_Minute_Switch=0;
246 3 Temp_measure();//environment temprature
247 3 Sub_temprature=Sample_TempratureValue-Start_temprature;
248 3 Enviroment_History_temprature=Sample_TempratureValue;
249 3 Temprature_Measure_Switch=1;
250 3 if(Enviroment_History_temprature>=AlarmTemprature_HighLine){
251 4 OutControl_Switch=0;
252 4 }
253 3 else{
254 4 OutControl_Switch=1;
255 4 }
256 3 }
257 2 if(Time_3_Minute_Switch>3){
258 3 Time_3_Minute_Switch=0;
259 3 Relay_Run_Stop_Switch=0;
260 3 }
261 2 if(Temprature_Measure_Switch){
262 3 Temp_measure();//environment temprature
263 3
264 3 Enviroment_temprature=0.8*Enviroment_History_temprature+0.2*(Sample_TempratureValue-Sub_temprature);
265 3 Enviroment_History_temprature=Enviroment_temprature;
266 3 if((Enviroment_temprature>AlarmTemprature_HighLine)&&(Relay_Run_Stop_Switch==0)&&(OutControl_Switch!=1)
-){
267 4 RelayOut_ControlFan=1;
268 4 OutTest=1;
269 4 Relay_Run_Stop_Switch=1;
270 4 OutControl_Switch=1;
271 4
272 4 }
273 3 if((Enviroment_temprature<AlarmTemprature_LowLine)&&(Relay_Run_Stop_Switch==0)&&(OutControl_Switch!=0))
-{
274 4 RelayOut_ControlFan=0;
275 4 OutTest=0;
276 4 Relay_Run_Stop_Switch=1;
277 4 OutControl_Switch=0;
278 4
279 4 }
280 3 }
281 2
282 2
283 2 }
284 1 }
285
286
287 /************************************/
288 /* T0 interrupt function */
289 /************************************/
290 void T0int1() interrupt 1{
291 1
292 1 //static uchar AccuCounter=0;
293 1
294 1 temppage1=SFRPAGE;
295 1 SFRPAGE=0x00;
296 1 TR0 = 0;
297 1 TH0 = 62346/256;
298 1 TL0 = 62346%256;
299 1 TR0 = 1;
300 1 SFRPAGE=0x0f;
301 1 //OutTest=~OutTest;
C51 COMPILER V8.17 AI 04/16/2009 17:40:13 PAGE 6
302 1 if(!Temprature_Measure_Switch){
303 2 Time_1_Minute_Switch++;
304 2 }
305 1 if(Relay_Run_Stop_Switch){
306 2 Time_3_Minute_Switch++;
307 2 }
308 1
309 1 //ProgramLED=~ProgramLED;
310 1 //CANLED=~CANLED;
311 1 //WDTCN=0xA5;
312 1 SFRPAGE=temppage1;
313 1
314 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 972 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 41 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
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 + -