📄 main1.lst
字号:
377 2 {
378 3 Voltage_Count = Voltage_Count + Adc_Data/1.639;
379 3 Count++;
380 3 if(Count>=128)
381 3 {
382 4 Voltage = Voltage_Count>>7;
383 4 Display_Buf[0] = Voltage/1000;
384 4 Display_Buf[1] = (Voltage%1000)/100;
385 4 Display_Buf[2] = (Voltage%100)/10;
386 4 Display_Buf[3] = Voltage%10;
387 4 Count = 0;
388 4 Voltage_Count = 0;
389 4 }
390 3 }
391 2 if(Disp_Flag==1)
392 2 {
393 3 Display();
394 3 ledv = 1;
395 3 ledd = 1;
396 3 ledt = 1;
397 3 }
398 2 else
399 2 {
400 3 P2 = 0x00;
401 3 ledv = 1;
402 3 ledd = 1;
403 3 ledt = 1;
404 3 }
405 2 if(Date_Flag==1)
406 2 {
407 3 Display_Buf[4] = Last_Month/10;
408 3 Display_Buf[5] = Last_Month%10;
409 3 Display_Buf[6] = Last_Date/10;
410 3 Display_Buf[7] = Last_Date%10;
411 3 }
412 2 else
413 2 {
414 3 Display_Buf[4] = Month/10;
415 3 Display_Buf[5] = Month%10;
416 3 Display_Buf[6] = Date/10;
417 3 Display_Buf[7] = Date%10;
418 3 }
419 2 if(Time_Flag==1)
420 2 {
421 3 Display_Buf[8] = Last_Hour/10;
422 3 Display_Buf[9] = Last_Hour%10;
423 3 Display_Buf[10] = Last_Minite/10;
424 3 Display_Buf[11] = Last_Minite%10;
425 3 }
426 2 else
427 2 {
C51 COMPILER V8.08 MAIN1 05/21/2008 20:12:33 PAGE 8
428 3 Display_Buf[8] = Hour/10;
429 3 Display_Buf[9] = Hour%10;
430 3 Display_Buf[10] = Minite/10;
431 3 Display_Buf[11] = Minite%10;
432 3 }
433 2 }
434 1 }
435 //时间定时
436 void Timer0_Isr(void) interrupt 1 using 0
437 {
438 1 TL0 = 0x00;//D7
439 1 TH0 = 0x80;//FE
440 1 //sss = 1;
441 1 //yuyin = 1;
442 1 tcnt++;
443 1 if(tcnt>=91)
444 1 {
445 2 tcnt=0;
446 2 Second++;
447 2 if(Second>=60)
448 2 {
449 3 Second=0;
450 3 Minite++;
451 3 if(Minite>=60)
452 3 {
453 4 Minite=0;
454 4 Hour++;
455 4 if(Hour>=24)
456 4 {
457 5 Hour=0;
458 5 Date++;
459 5 if(Date>=31)
460 5 {
461 6 Date=1;
462 6 Month++;
463 6 if(Month>=13)
464 6 {
465 7 Month=1;
466 7 }
467 6 }
468 5 }
469 4 }
470 3 }
471 2 }
472 1 //Delay_Ms(2);//Delay(1);
473 1 //sss = 0;
474 1 //
475 1 //yuyin = 0;
476 1 }
477
478 //显示
479 void Display(void)
480 {
481 1 Mstcnt++;
482 1 if(Volt_Flag==1&&Mstcnt>=390)
483 1 {
484 2 Mstcnt = 0;
485 2 }
486 1 else if(Date_Flag==1&&Mstcnt>=790)
487 1 {
488 2 Mstcnt = 400;
489 2 }
C51 COMPILER V8.08 MAIN1 05/21/2008 20:12:33 PAGE 9
490 1 else if(Time_Flag==1&&Mstcnt>=1190)
491 1 {
492 2 Mstcnt = 800;
493 2 }
494 1 if(Mstcnt<400)
495 1 {
496 2 ledv = 0;
497 2 ledd = 1;
498 2 ledt = 1;
499 2 if(Clea_Flag==0&&Alarm_Flag==1)
500 2 {
501 3 if(Mstcnt>=60)
502 3 {
503 4 led1 = 1;
504 4 yuyin = 1;
505 4 }
506 3 else
507 3 {
508 4 led1 = 0;
509 4 yuyin = 1;
510 4 }
511 3 }
512 2 else
513 2 {
514 3 led1 = 0;
515 3 yuyin = 0;
516 3 }
517 2 led2 = 1;
518 2 led3 = 1;
519 2 led4 = 1;
520 2 P2=Led_Data[Display_Buf[0]];//显示电压
521 2 Delay(5);
522 2
523 2 led1 = 1;
524 2 if(Clea_Flag==0&&Alarm_Flag==1)
525 2 {
526 3 if(Mstcnt>=60)
527 3 {
528 4 led2 = 1;
529 4 }
530 3 else
531 3 {
532 4 led2 = 0;
533 4 }
534 3 }
535 2 else
536 2 {
537 3 led2 = 0;
538 3 }
539 2 led3 = 1;
540 2 led4 = 1;
541 2 P2=Led_Data[Display_Buf[1]];//显示电压
542 2 Delay(10);
543 2
544 2 led1 = 1;
545 2 led2 = 1;
546 2 if(Clea_Flag==0&&Alarm_Flag==1)
547 2 {
548 3 if(Mstcnt>=60)
549 3 {
550 4 led3 = 1;
551 4 }
C51 COMPILER V8.08 MAIN1 05/21/2008 20:12:33 PAGE 10
552 3 else
553 3 {
554 4 led3 = 0;
555 4 }
556 3 }
557 2 else
558 2 {
559 3 led3 = 0;
560 3 }
561 2 led4 = 1;
562 2 P2=Led_Data[Display_Buf[2]]+0x40;//显示电压
563 2 Delay(10);
564 2
565 2 led1 = 1;
566 2 led2 = 1;
567 2 led3 = 1;
568 2 if(Clea_Flag==0&&Alarm_Flag==1)
569 2 {
570 3 if(Mstcnt>=60)
571 3 {
572 4 led4 = 1;
573 4 }
574 3 else
575 3 {
576 4 led4 = 0;
577 4 }
578 3 }
579 2 else
580 2 {
581 3 led4 = 0;
582 3 }
583 2 P2=Led_Data[Display_Buf[3]];//显示电压
584 2 Delay(10);
585 2 led4 = 1;
586 2 if(Alarm_Flag==1)
587 2 {
588 3 if(Mstcnt>=200)
589 3 {
590 4 Mstcnt = 0;
591 4 }
592 3 }
593 2 }
594 1 else if(Mstcnt<800&&Alarm_Flag==0)
595 1 {
596 2 ledv = 1;
597 2 ledd = 0;
598 2 ledt = 1;
599 2
600 2 led1 = 0;
601 2 led2 = 1;
602 2 led3 = 1;
603 2 led4 = 1;
604 2 P2=Led_Data[Display_Buf[4]];//显示日期
605 2 Delay(5);
606 2
607 2 led1 = 1;
608 2 led2 = 0;
609 2 led3 = 1;
610 2 led4 = 1;
611 2 P2=Led_Data[Display_Buf[5]]+0x40;//显示日期
612 2 Delay(10);
613 2
C51 COMPILER V8.08 MAIN1 05/21/2008 20:12:33 PAGE 11
614 2 led1 = 1;
615 2 led2 = 1;
616 2 led3 = 0;
617 2 led4 = 1;
618 2 P2=Led_Data[Display_Buf[6]];//显示日期
619 2 Delay(10);
620 2
621 2 led1 = 1;
622 2 led2 = 1;
623 2 led3 = 1;
624 2 led4 = 0;
625 2 P2=Led_Data[Display_Buf[7]];//显示日期
626 2 Delay(10);
627 2 led4 = 1;
628 2 }
629 1 else if(Mstcnt<1200&&Alarm_Flag==0)
630 1 {
631 2 ledv = 1;
632 2 ledd = 1;
633 2 ledt = 0;
634 2
635 2 led1 = 0;
636 2 led2 = 1;
637 2 led3 = 1;
638 2 led4 = 1;
639 2 P2=Led_Data[Display_Buf[8]];//显示时间
640 2 Delay(5);
641 2
642 2 led1 = 1;
643 2 led2 = 0;
644 2 led3 = 1;
645 2 led4 = 1;
646 2 P2=Led_Data[Display_Buf[9]]+0x40;//显示时间
647 2 Delay(10);
648 2
649 2 led1 = 1;
650 2 led2 = 1;
651 2 led3 = 0;
652 2 led4 = 1;
653 2 P2=Led_Data[Display_Buf[10]];//显示时间
654 2 Delay(10);
655 2
656 2 led1 = 1;
657 2 led2 = 1;
658 2 led3 = 1;
659 2 led4 = 0;
660 2 P2=Led_Data[Display_Buf[11]];//显示时间
661 2 Delay(10);
662 2 led4 = 1;
663 2 }
664 1 else
665 1 {
666 2 Mstcnt = 0;
667 2 }
668 1 }
669 //开机读取数据
670 void Read_Data(void)
671 {
672 1 E2p_Buf[0] = SM_Receive(0xA0,0x0002);
673 1 E2p_Buf[1] = SM_Receive(0xA0,0x0003);
674 1 E2p_Buf[2] = SM_Receive(0xA0,0x0004);
675 1 E2p_Buf[3] = SM_Receive(0xA0,0x0005);
C51 COMPILER V8.08 MAIN1 05/21/2008 20:12:33 PAGE 12
676 1 E2p_Buf[4] = SM_Receive(0xA0,0x0006);
677 1 E2p_Buf[5] = SM_Receive(0xA0,0x0007);
678 1 Last_Voltage = E2p_Buf[0]*256 + E2p_Buf[1];
679 1 if(Last_Voltage>1500)
680 1 {
681 2 Last_Voltage = 1500;
682 2 }
683 1 Month = E2p_Buf[2];
684 1 if(Month>12)
685 1 {
686 2 Month = 12;
687 2 }
688 1 Date = E2p_Buf[3];
689 1 if(Date>31)
690 1 {
691 2 Date = 31;
692 2 }
693 1 Hour = E2p_Buf[4];
694 1 if(Hour>23)
695 1 {
696 2 Hour = 23;
697 2 }
698 1 Minite = E2p_Buf[5];
699 1 if(Minite>59)
700 1 {
701 2 Minite = 59;
702 2 }
703 1 }
704
705 //定时保存数据
706 void Save_Data(void)
707 {
708 1 E2p_Buf[0] = Last_Voltage/256;
709 1 E2p_Buf[1] = Last_Voltage%256;
710 1 E2p_Buf[2] = Month;
711 1 E2p_Buf[3] = Date;
712 1 E2p_Buf[4] = Hour;
713 1 E2p_Buf[5] = Minite;
714 1 SM_Send(0xA0,0x0002,E2p_Buf[0]);
715 1 SM_Send(0xA0,0x0003,E2p_Buf[1]);
716 1 SM_Send(0xA0,0x0004,E2p_Buf[2]);
717 1 SM_Send(0xA0,0x0005,E2p_Buf[3]);
718 1 SM_Send(0xA0,0x0006,E2p_Buf[4]);
719 1 SM_Send(0xA0,0x0007,E2p_Buf[5]);
720 1 /*
721 1 if(E2prom_Addr>=32760)
722 1 {
723 1 E2prom_Addr = 20;
724 1 }
725 1 E2p_Buf[0] = Voltage/256;
726 1 E2p_Buf[1] = Voltage%256;
727 1 E2p_Buf[2] = Month;
728 1 E2p_Buf[3] = Date;
729 1 E2p_Buf[4] = Hour;
730 1 E2p_Buf[5] = Minite;
731 1 SM_Send(0xA0,E2prom_Addr,E2p_Buf[0]);
732 1 E2prom_Addr = E2prom_Addr + 1;
733 1 SM_Send(0xA0,E2prom_Addr,E2p_Buf[1]);
734 1 E2prom_Addr = E2prom_Addr + 1;
735 1 SM_Send(0xA0,E2prom_Addr,E2p_Buf[2]);
736 1 E2prom_Addr = E2prom_Addr + 1;
737 1 SM_Send(0xA0,E2prom_Addr,E2p_Buf[3]);
C51 COMPILER V8.08 MAIN1 05/21/2008 20:12:33 PAGE 13
738 1 E2prom_Addr = E2prom_Addr + 1;
739 1 SM_Send(0xA0,E2prom_Addr,E2p_Buf[4]);
740 1 E2prom_Addr = E2prom_Addr + 1;
741 1 SM_Send(0xA0,E2prom_Addr,E2p_Buf[5]);
742 1 E2prom_Addr = E2prom_Addr + 1;
743 1 */
744 1 }
745
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2380 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 40 ----
PDATA SIZE = ---- ----
DATA SIZE = 30 ----
IDATA SIZE = ---- ----
BIT SIZE = 9 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -