⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main1.lst

📁 电源检测系统 能够检测电源的过欠压,报警
💻 LST
📖 第 1 页 / 共 2 页
字号:
 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 + -