📄 my1.lst
字号:
221 manage_sub(user_plan);
222 }
223 }//end if
224 else if (key_dec==0){
225 delay1();
226 if(key_dec==0){
227 manage_warn();
228 }
229 }//end else
230 }
231 break;
232 case 10: { user_plan=10; //不能去掉,因为有可能到了某一状态不按键
233 manage_10();
234 flag_10=1;
235 if(key_inc==0){ //查询按键,
236 delay1();
237 if(key_inc==0&&flag_10==1) {
238 user_plan=15; //=15
239 ;// manage_15();
C51 COMPILER V7.00 MY1 09/28/2002 15:23:02 PAGE 5
240 ;// flag_15=1;
241 flag_10=0;
242 manage_sub(user_plan);
243 }
244 }//end if
245 else if (key_dec==0){
246 delay1();
247 if(key_dec==0){
248 user_plan=5;
249 manage_sub(user_plan);
250 }
251 }//end else
252 }
253 break;
254
255 case 12: { user_plan=10; //不能去掉,因为有可能到了某一状态不按键
256 manage_12();
257 flag_10=1;
258 if(key_inc==0){ //查询按键,
259 delay1();
260 if(key_inc==0&&flag_10==1) {
261 user_plan=15; //=15
262 ;// manage_15();
263 ;// flag_15=1;
264 flag_10=0;
265 manage_sub(user_plan);
266 }
267 }//end if
268 else if (key_dec==0){
269 delay1();
270 if(key_dec==0){
271 user_plan=5;
272 manage_sub(user_plan);
273 }
274 }//end else
275 }
276 break;
277 case 15: { user_plan=15; //不能去掉,因为有可能到了某一状态不按键
278 manage_15();
279 flag_15=1;
280 if(key_inc==0){ //查询按键,
281 delay1();
282 if(key_inc==0&&flag_15==1) {
283 user_plan=20; //=20
284 ;// manage_15();
285 ;// flag_15=1;
286 flag_15=0;
287 manage_sub(user_plan);
288 }
289 }//end if
290 else if (key_dec==0){
291 delay1();
292 if(key_dec==0){
293 user_plan=10;
294 manage_sub(user_plan);
295 }
296 }//end else
297 }
298 break;
299 case 18: { user_plan=15; //不能去掉,因为有可能到了某一状态不按键
300 manage_18();
301 flag_15=1;
C51 COMPILER V7.00 MY1 09/28/2002 15:23:02 PAGE 6
302 if(key_inc==0){ //查询按键,
303 delay1();
304 if(key_inc==0&&flag_15==1) {
305 user_plan=20; //=20
306 ;// manage_15();
307 ;// flag_15=1;
308 flag_15=0;
309 manage_sub(user_plan);
310 }
311 }//end if
312 else if (key_dec==0){
313 delay1();
314 if(key_dec==0){
315 user_plan=10;
316 manage_sub(user_plan);
317 }
318 }//end else
319 }
320 break;
321 case 20: { user_plan=20; //不能去掉,因为有可能到了某一状态不按键
322 manage_20();
323 flag_20=1;
324 if(key_inc==0){ //查询按键,
325 delay1();
326 if(key_inc==0&&flag_20==1) {
327 manage_warn();
328 }
329 }//end if
330 else if (key_dec==0){
331 delay1();
332 if(key_dec==0){
333 user_plan=15;
334 manage_sub(user_plan);
335 }
336 }//end else
337 }
338 break;
339 default: { if((user_plan>USER_hign)||(user_plan<USER_low))
340 manage_warn();
341 }
342 break;
343 }//end switch
344 }//end
345
-
346 /******************************************************************
347 //主程序
348 //
349 /**********************************************************************/
350 void main(){
351
352 P1=0x01; //P1口初始化。定义为输出方式
353 P3=0x0a; //1,3为输入方式
354
355 TMOD=0x22|TMOD; //设T0为方式2,T1为方式2
356
357 ;// TH0=0X38;
358 ; // TL0=0x38; //实现自动重装,
359
360 ;// TR1=1;
361
362 ET0=1; //允许定时器0中断
C51 COMPILER V7.00 MY1 09/28/2002 15:23:02 PAGE 7
363 ;// ET1=1; //允许定时器1中断
364 EA=1; //总允许
365
366 ;// init_t1(); //初始化并启动定时器1,用于定时5秒
367
368 ;// time5=1; //设置为1,否则第一次循环无法进行
369 while(1){
370 ;// while(time5==1){
371
372 ;// time5=0; //清零,否则扰乱定时器标志
373
374 elec_port=1; //电容先放电
375
376 wait_1();
377
378 elec_port=0; //放电完成后置低
379
380 /*必须先进行测试得出初始温度,才能进行用户的自我设定,所以先启动定时器0,测试初始温度*/
381
382 init_t0(); //初始化并启动定时器T0,计算共用实时时间
383
384 while(query_port!=1) {;} //
385 // while(query_port!=0) {;} //test
386
387 //此时进入中断服务程序,读出初始温度
388 //进行相应处理
389
390 // user_plan=temp_c; //
391
392 if(query_port==1){
393
394 TR0=0; //终止定时器
395
396 // i=38; //test
397 //此时充电时间是假设
398 if((i>=10)&&(i<15)) count_time=1; // 5 //充电时间应该是一个范围
399 if((i>=15)&&(i<20)) count_time=2; //8
400 if((i>=20)&&(i<25)) count_time=3; //10
401 if((i>=25)&&(i<30)) count_time=4; //12
402 if((i>=30)&&(i<35)) count_time=5; //15
403 if((i>=35)&&(i<40)) count_time=6; //18
404 else if((i>=40)&&(i<50)) count_time=7; //20
405
406 // count_time=i; //得出共用时间
407 switch(count_time)
408 {
409 case 1: temp_c=5; //假设
410 break;
411 case 2: temp_c=8;
412 break;
413 case 3: temp_c=10;
414 break;
415 case 4: temp_c=12;
416 break;
417 case 5: temp_c=15;
418 break;
419
420 case 6: temp_c=18;
421 break;
422 case 7: temp_c=20;
423 break;
424 default: ;
C51 COMPILER V7.00 MY1 09/28/2002 15:23:02 PAGE 8
425 break;
426 } //end switch
427
428 if(temp_c>=USER_hign-2) {fan_port=1;} //高于设定温度开启风扇
429 else if(temp_c<=USER_low) {fan_port=0;} //关闭风扇
430
431 }//end
432 manage_sub(temp_c); //
433
434 delay_5(); //延时大约4秒因为之前处理用去一些时间
435
436 i=0; //将记数清零,以免下次启动继续记数
437 P1=0x01; //P1口初始化。定义为输出方式 p1.0 output
438 P3=0x0a; //1,3为输入方式
439 }
440
441 }
442
443
444
445
C51 COMPILATION COMPLETE. 0 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -