📄 电源老化测试定时器.lst
字号:
306 {
307 1 byte_read( 0x2000);
308 1 ON_2=ISP_DATA;
309 1 byte_read( 0x2001);
310 1 ON_1=ISP_DATA;
311 1 byte_read( 0x2002);
312 1 ON_0=ISP_DATA;
313 1
314 1 byte_read( 0x2003);
315 1 OFF_2=ISP_DATA;
316 1 byte_read( 0x2004);
317 1 OFF_1=ISP_DATA;
318 1 byte_read( 0x2005);
319 1 OFF_0=ISP_DATA;
320 1
321 1 byte_read( 0x2006);
322 1 TIMER_2=ISP_DATA;
323 1 byte_read( 0x2007);
324 1 TIMER_1=ISP_DATA;
325 1 byte_read( 0x2008);
326 1 TIMER_0=ISP_DATA;
327 1
328 1 ON=ON_2*100+ON_1*10+ON_0;
329 1 OFF=OFF_2*100+OFF_1*10+OFF_0;
330 1 TIMER=TIMER_2*100+TIMER_1*10+TIMER_0;
331 1
332 1 }
333
334
335
336
337
338
339
340
341
342
343 void Timer0ISR(void) interrupt 1 using 3 //定时器0中断程序,用于走时,1/8000秒一次
344 {
345 1 if(TIMER==0)
346 1 {
347 2 TR0=0;
348 2 out= 1;
349 2 start=0;
350 2 }
351 1 count_down--;
352 1 if(count_down==0) //过了一秒钟
353 1 {count_down=8000;
354 2 miao++;
355 2 if(miao==60)
356 2 {miao=0;
357 3 TIMER--;
358 3
359 3 }
360 2
361 2
362 2
363 2 if(ON_OFF==0)
364 2 {
365 3
C51 COMPILER V8.05a 电源老化测试定时芲 11/08/2007 21:39:03 PAGE 7
366 3 out= 1;
367 3 if(OFF==0) ON_OFF=1;
368 3 else OFF--;
369 3 }
370 2 else
371 2 {
372 3 out= 0;
373 3 if(ON==0) ON_OFF=0;
374 3 else ON--;
375 3 }
376 2 }
377 1 }
378
379
380
381
382
383
384
385
386 void Timer1ISR(void) interrupt 3 using 2 //定时器2中断,用于按键扫描
387 {uchar keytmp;
388 1
389 1 TH1=0x3c; TL1=0xb0; // 每30ms中断一次
390 1
391 1 //*** 按键扫描及处理 ***/
392 1 keytmp=P3;
393 1 if(keytmp==0xff) { km=0; kp=0; }
394 1 else
395 1 { if(km==0) km=1;
396 2 else
397 2 { if(kp==0)
398 3 { kp=1;
399 4
400 4 if(keytmp==0xfe &&TR0==0) //第一个按钮
401 4
402 4 {show_status++;
403 5
404 5 if(show_status==1)sheding=1;
405 5
406 5 if(show_status>4)
407 5 show_status=0;
408 5
409 5 }
410 4 if(keytmp==0xfd &&TR0==0 ) //第二个按钮
411 4
412 4 { switch(show_status )
413 5 { case 1:
414 6
415 6 if(ON>998) ON=999;
416 6 else ON++;
417 6 break;
418 6
419 6 case 2:
420 6
421 6 if(OFF>998) OFF=999;
422 6 else OFF++;
423 6 break;
424 6
425 6 case 3:
426 6
427 6 if(TIMER>998) TIMER=999;
C51 COMPILER V8.05a 电源老化测试定时芲 11/08/2007 21:39:03 PAGE 8
428 6 else TIMER++;
429 6 break;
430 6
431 6
432 6
433 6 default:
434 6 break;
435 6
436 6
437 6 }
438 5
439 5 }
440 4 if(keytmp==0xfb &&TR0==0) //第二个按钮
441 4
442 4 { switch(show_status )
443 5 {
444 6 case 1:
445 6
446 6 if(ON==0){ON=0; }
447 6 else {ON--; }
448 6 break;
449 6 case 2:
450 6
451 6 if(OFF==0){OFF=0; }
452 6 else {OFF--; }
453 6 break;
454 6 case 3:
455 6
456 6 if(TIMER==0){TIMER=0; }
457 6 else {TIMER--; }
458 6 break;
459 6
460 6
461 6
462 6 default:
463 6 break;
464 6
465 6
466 6 }
467 5
468 5 }
469 4
470 4 if(keytmp==0xf7 && start==0 ) //第二个按钮
471 4
472 4 {
473 5
474 5 rest=1;
475 5 show_status=0;
476 5
477 5
478 5
479 5
480 5
481 5 }
482 4 if(keytmp==0xef &&show_status==0) //第二个按钮
483 4
484 4 {
485 5 start=!start;
486 5 if(start==1)
487 5 {
488 6
489 6 TR0=1;
C51 COMPILER V8.05a 电源老化测试定时芲 11/08/2007 21:39:03 PAGE 9
490 6 }
491 5 else
492 5 {
493 6 TR0=0;
494 6 out= 1;
495 6 }
496 5 }
497 4 }
498 3 }
499 2 }
500 1 }
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530 main()
531 { out= 1;
532 1 EPIN=0;
533 1 lcdreset();
534 1
535 1 lcdwda(0,0," ON= s Timer");
536 1 lcdwda(0,1,"OFF= s m");
537 1 delay(50);
538 1 read_ISP_IAP();
539 1 start=0;
540 1 ON_OFF=0;
541 1 miao=0;
542 1 sheding=0;
543 1 IE=0; IP=0; //disable all interrupt and lower priority
544 1 TMOD=0x12; //timer 0 is set to mode 2,auto_reloading,timer1,mode 1
545 1 TH0=0x2F; TL0=0x2F; //timer0 parameters for 0.125ms
546 1 TH1=0x3c; TL1=0xb0; //timer1 parameters for 30ms
547 1 TR0=0; TR1=1; //timer0 interrupt most important
548 1 ET0=1; ET1=1; EA=1; //enable interrupt function
549 1 count_down=8000;
550 1 show_status=0;
551 1 while(1)
C51 COMPILER V8.05a 电源老化测试定时芲 11/08/2007 21:39:03 PAGE 10
552 1 {
553 2
554 2 show_1602();
555 2
556 2 if(sheding==1)
557 2 {sheding=0;
558 3 read_ISP_IAP();
559 3 }
560 2 if(rest==1)
561 2 {
562 3 rest=0;
563 3 read_ISP_IAP();
564 3
565 3 }
566 2 if( TR0==1)
567 2 {
568 3 if(ON==0 && ON_OFF==0)
569 3 {
570 4
571 4 byte_read( 0x2000);
572 4 ON_2=ISP_DATA;
573 4 byte_read( 0x2001);
574 4 ON_1=ISP_DATA;
575 4 byte_read( 0x2002);
576 4 ON_0=ISP_DATA;
577 4
578 4
579 4 ON=ON_2*100+ON_1*10+ON_0;
580 4
581 4
582 4 }
583 3 if(OFF==0&& ON_OFF==1)
584 3 {
585 4
586 4 byte_read( 0x2003);
587 4 OFF_2=ISP_DATA;
588 4 byte_read( 0x2004);
589 4 OFF_1=ISP_DATA;
590 4 byte_read( 0x2005);
591 4 OFF_0=ISP_DATA;
592 4
593 4
594 4 OFF=OFF_2*100+OFF_1*10+OFF_0;
595 4
596 4
597 4 }
598 3
599 3 }
600 2
601 2 }
602 1 }
603
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1558 ----
CONSTANT SIZE = 34 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 27 ----
IDATA SIZE = ---- ----
BIT SIZE = 6 ----
C51 COMPILER V8.05a 电源老化测试定时芲 11/08/2007 21:39:03 PAGE 11
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -