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

📄 index.lst

📁 1602+ds1302时钟显示+ds18b20温度报警
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   INDEX                                                                 10/02/2008 21:03:27 PAGE 10  

 552   4                          if(year>8)
 553   4                          year--;
 554   4                         else
 555   4                          year=32;
 556   4                        }
 557   3                        if(m==1)
 558   3                          {
 559   4                                if(month>1)
 560   4                              month--;
 561   4                            else
 562   4                              month=12;
 563   4                              }
 564   3                        if(m==2)
 565   3                         {
 566   4                           if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
 567   4                           {
 568   5                             if(date>1)
 569   5                                  date--;
 570   5                                 else
 571   5                                  date=31;
 572   5                           }
 573   4                           if(month==4||month==6||month==9||month==11)
 574   4                            {
 575   5                             if(date>1)
 576   5                                  date--;
 577   5                                 else
 578   5                                  date=30;
 579   5                            }
 580   4                           if(month==2)
 581   4                            {
 582   5                             if(year%4==0 && year%100!=0 || year%400==0)
 583   5                                  {
 584   6                                     if(date>1)
 585   6                                           date--;
 586   6                                         else
 587   6                                           date=29;
 588   6                                   }
 589   5                                 if(!(year%4==0 && year%100!=0 || year%400==0))
 590   5                      {
 591   6                                        if(date>1)
 592   6                                         date--;
 593   6                                        else
 594   6                                         date=28;
 595   6                                       }
 596   5                                 }
 597   4                         }
 598   3                        if(m==3)
 599   3                          {
 600   4                                if(hour>0)
 601   4                              hour--;
 602   4                            else
 603   4                              hour=23;
 604   4                              }
 605   3                        if(m==4)
 606   3                          {
 607   4                                if(minute>0)
 608   4                             minute--;
 609   4                            else
 610   4                             minute=59;
 611   4                              }
 612   3                        if(m==5)
 613   3                          {
C51 COMPILER V7.50   INDEX                                                                 10/02/2008 21:03:27 PAGE 11  

 614   4                                if(second>0)
 615   4                             second--;
 616   4                            else
 617   4                             second=59;
 618   4                              }
 619   3                        if(m==6)
 620   3                          {
 621   4                                if(week>1)
 622   4                              week--;
 623   4                            else
 624   4                              week=7;
 625   4                              }
 626   3                      }
 627   2                if(keytype==0)                          ///////////跳出温度设置
 628   2                  {
 629   3                    keyon=0;
 630   3                    keytype=4;
 631   3                        out=1;                
 632   3                      }
 633   2                if(keytype==5)
 634   2                 {
 635   3                   keyon=0;
 636   3                   keytype=4;
 637   3                       out=1;
 638   3                       out2=1;
 639   3                 }
 640   2                keyon=0;
 641   2                keytype=4;
 642   2              }
 643   1      }
 644          
 645          ////////////////////////////////时间设置结束/////////////////////////////////////
 646          void main()                                     
 647          { 
 648   1          unsigned char i;
 649   1          P1=0XFF;
 650   1              BLUE=1;
 651   1              RED=1;
 652   1              SPEAKER=1;
 653   1          DS1302_init();
 654   1          lcd_init();
 655   1          lcd_pos(0);
 656   1          i=0;
 657   1          while(dis1[i]!='\0')
 658   1          {
 659   2            lcd_wdat(dis1[i]);
 660   2            i++;
 661   2          }
 662   1          lcd_pos(0x40);
 663   1          i=0;
 664   1          while(dis2[i]!='\0')
 665   1          {
 666   2            lcd_wdat(dis2[i]);
 667   2                i++;
 668   2          }
 669   1        while(1)
 670   1        {
 671   2          ReadTemperature();
 672   2          t_codechange();
 673   2              DS1302_readdate();
 674   2              ds_codechange();
 675   2              lcd_pos(0);
C51 COMPILER V7.50   INDEX                                                                 10/02/2008 21:03:27 PAGE 12  

 676   2          i=0;
 677   2          while(dis1[i]!='\0')
 678   2          {
 679   3            lcd_wdat(dis1[i]);
 680   3            i++;
 681   3          }
 682   2              lcd_pos(0x40);
 683   2          i=0;
 684   2          while(dis2[i]!='\0')
 685   2          {
 686   3            lcd_wdat(dis2[i]);
 687   3                i++;
 688   3          }
 689   2      
 690   2              if(SET==0)      /////////////////////////进入报警温度设定
 691   2                {
 692   3                  out=0;
 693   3                  delay(300);
 694   3                      while(SET==0);
 695   3                      strcpy(dis1,"ALARM-H: OFF 35 \0");
 696   3                      strcpy(dis2,"ALARM-L: OFF 00 \0");
 697   3                      lcd_init2();
 698   3                      lcd_pos(0);
 699   3              i=0;
 700   3              while(dis1[i]!='\0')
 701   3              {
 702   4                lcd_wdat(dis1[i]);
 703   4                i++;
 704   4              }
 705   3              lcd_pos(0x40);
 706   3              i=0;
 707   3              while(dis2[i]!='\0')
 708   3              {
 709   4                lcd_wdat(dis2[i]);
 710   4                    i++;
 711   4              }
 712   3                      lcd_pos(0x0a);//光标显示在高温开关位置
 713   3                      m=0;
 714   3                      keyon=0;
 715   3                      keytype=4;
 716   3                      while(1)
 717   3                        {
 718   4                          Display2();
 719   4                              seting();
 720   4                              if (out==1)
 721   4                              {
 722   5                                lcd_init();
 723   5                                strcpy(dis1,"03-11 19:57:00 2\0");
 724   5                        strcpy(dis2,"NOW TEMP: 015.0 \0");
 725   5                                break;
 726   5                              }
 727   4                              delay(1000);
 728   4                        }
 729   3                      delay(200);
 730   3                      while(SET==0);  
 731   3                }
 732   2              if(SET2==0)     /////////////////////////进入时间设定
 733   2                {
 734   3                  out=0;
 735   3                  out2=0;
 736   3                  delay(300);
 737   3                      while(SET2==0);
C51 COMPILER V7.50   INDEX                                                                 10/02/2008 21:03:27 PAGE 13  

 738   3                      strcpy(dis1,"TIME SET: 2008  \0");
 739   3                      strcpy(dis2,"10-11 19:57:00 2\0");
 740   3                      lcd_init2();
 741   3                      lcd_pos(0);
 742   3              i=0;
 743   3              while(dis1[i]!='\0')
 744   3              {
 745   4                lcd_wdat(dis1[i]);
 746   4                i++;
 747   4              }
 748   3              lcd_pos(0x40);
 749   3              i=0;
 750   3              while(dis2[i]!='\0')
 751   3              {
 752   4                lcd_wdat(dis2[i]);
 753   4                    i++;
 754   4              }
 755   3                      lcd_pos(0x0d);//光标显示在高温开关位置
 756   3                      m=0;
 757   3                      keyon=0;
 758   3                      keytype=4;
 759   3                      while(1)
 760   3                        {
 761   4                          Display3();
 762   4                              seting2();
 763   4                              if (out==1)
 764   4                              {
 765   5                                lcd_init();
 766   5                                strcpy(dis1,"03-11 19:57:00 2\0");
 767   5                        strcpy(dis2,"NOW TEMP: 015.0 \0"); 
 768   5                                if(out2==0) DS1302_writedate();
 769   5                                break;
 770   5                              }
 771   4                              delay(1000);
 772   4                        }
 773   3                      delay(200);
 774   3                      while(SET2==0); 
 775   3                      while(SET==0);
 776   3                }
 777   2              delay(30000);
 778   2              if(tH==1)
 779   2              RED=1;
 780   2              else if(tH==-1&&temperature>=temperatureH)
 781   2               {      
 782   3               RED=0;
 783   3              SPEAKER=1;
 784   3              delay(10000);
 785   3              SPEAKER=0;
 786   3              RED=1;
 787   3              delay(10000);
 788   3              SPEAKER=1;
 789   3              Too_hot();
 790   3              delay(50000);
 791   3                      }  //////满足条件是开启高温报警
 792   2              else if(temperature<(temperatureH-0.2))
 793   2              RED=1;
 794   2              if(tL==1)
 795   2              BLUE=1;
 796   2              if(tL==-1&&temperature<=temperatureL) 
 797   2              {
 798   3              BLUE=0;
 799   3              SPEAKER=1;
C51 COMPILER V7.50   INDEX                                                                 10/02/2008 21:03:27 PAGE 14  

 800   3              delay(10000);
 801   3              SPEAKER=0;
 802   3              BLUE=1;
 803   3              delay(10000);
 804   3              SPEAKER=1;
 805   3              Too_cold();
 806   3              delay(50000);
 807   3              }//////满足条件时开启低温报警        
 808   2              else if(temperature>(temperatureL+0.2))
 809   2               BLUE=1;                
 810   2              if(RED==1&&BLUE==1)
 811   2              SPEAKER=0;
 812   2        }
 813   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   4821    ----
   CONSTANT SIZE    =    218    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     69       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -