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

📄 闹钟.lst

📁 带温度显示的电子钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
 333   3           p0=0x00;
 334   3        if(m==2&&k==-1)
 335   3          delay(8);
 336   3        else
 337   3        {
 338   4             p2=cout2[6]; 
 339   4             p0=outfunction(second/10); 
 340   4             delay(5); 
 341   4             p0=0x00;
 342   4             p2=cout2[7]; 
 343   4             p0=outfunction(second%10); 
 344   4             delay(5); 
 345   4             p0=0x00;
 346   4        }
 347   3      if(l==500)
 348   3          {
 349   4          k=-k; 
 350   4          l=0;
 351   4        }
 352   3      l++;
 353   3          }
 354   2         //日期调节
 355   2         if(m==3||m==4||m==5)
 356   2          {
 357   3        if(m==3&&k==-1)
 358   3          delay(39);
 359   3        else
 360   3           {
 361   4           p2=cout2[0]; 
 362   4              p0=outfunction(temp[3]/1000); 
 363   4              delay(5);
 364   4              p0=0x00;
 365   4              p2=cout2[1]; 
C51 COMPILER V7.06   闹钟                                                                  11/22/2008 15:33:51 PAGE 7   

 366   4              p0=outfunction((temp[3]%1000)/100); 
 367   4              delay(5);
 368   4              p0=0x00;
 369   4              p2=cout2[2]; 
 370   4              p0=outfunction((temp[3]%100)/10); 
 371   4              delay(5);
 372   4              p0=0x00;
 373   4              p2=cout2[3]; 
 374   4              p0=outfunction(temp[3]%10); 
 375   4              delay(5);
 376   4              p0=0x00;
 377   4         }
 378   3        if(m==4&&k==-1)
 379   3          delay(8);
 380   3        else
 381   3         {
 382   4              p2=cout2[4]; 
 383   4              p0=outfunction(temp[4]/10); 
 384   4              delay(5);
 385   4              p0=0x00;
 386   4              p2=cout2[5]; 
 387   4              p0=outfunction(temp[4]%10); 
 388   4              delay(5);
 389   4              p0=0x00;
 390   4          }
 391   3        if(m==5&&k==-1)
 392   3          delay(8);
 393   3        else
 394   3         {
 395   4              p2=cout2[6]; 
 396   4              p0=outfunction(temp[5]/10); 
 397   4              delay(5);
 398   4              p0=0x00;
 399   4              p2=cout2[7]; 
 400   4              p0=outfunction(temp[5]%10);
 401   4              delay(5); 
 402   4              p0=0x00;
 403   4          }
 404   3        if(l==500)
 405   3           {
 406   4           k=-k; 
 407   4           l=0;
 408   4          }
 409   3           l++;
 410   3          }
 411   2         //闹钟调节
 412   2         if(m==6||m==7||m==8)
 413   2          {
 414   3          if(m==6&&k==-1)
 415   3          delay(8);
 416   3        else
 417   3        {
 418   4            p2=cout2[0]; 
 419   4             p0=outfunction(temp[6]/10);
 420   4             delay(5); 
 421   4             p0=0x00;
 422   4             p2=cout2[1]; 
 423   4             p0=outfunction(temp[6]%10); 
 424   4             delay(5); 
 425   4             p0=0x00;
 426   4        }
 427   3        if(m==7&&k==-1)
C51 COMPILER V7.06   闹钟                                                                  11/22/2008 15:33:51 PAGE 8   

 428   3          delay(8);
 429   3        else
 430   3        {
 431   4             p2=cout2[2]; 
 432   4             p0=outfunction(temp[7]/10);
 433   4             delay(5);  
 434   4             p0=0x00;
 435   4             p2=cout2[3]; 
 436   4             p0=outfunction(temp[7]%10); 
 437   4             delay(5); 
 438   4             p0=0x00;
 439   4        }
 440   3           p2=cout2[4]; 
 441   3           p0=cout1[10];
 442   3           delay(7);
 443   3           p0=0x00;
 444   3        if(m==8&&k==-1)
 445   3          delay(17);
 446   3        else
 447   3        {
 448   4             if(temp[8]==0)
 449   4            {
 450   5           p2=cout2[5];
 451   5           p0=0x3f;
 452   5           delay(7);
 453   5           p0=0x00;
 454   5           p2=cout2[6];
 455   5           p0=0x71;
 456   5           delay(7);
 457   5           p0=0x00;
 458   5           p2=cout2[7];
 459   5           p0=0x71;
 460   5           delay(7);
 461   5           p0=0x00;
 462   5         }
 463   4          if(temp[8]==1)
 464   4            {
 465   5           p2=cout2[5];
 466   5           p0=0x3f;
 467   5           delay(7);
 468   5           p0=0x00;
 469   5           p2=cout2[6];
 470   5           p0=0x37;
 471   5           delay(7);
 472   5           p0=0x00;
 473   5         }
 474   4        }
 475   3      if(l==500)
 476   3          {
 477   4          k=-k; 
 478   4          l=0;
 479   4        }
 480   3      l++;
 481   3          }
 482   2         recount(); //换算时分秒
 483   2        }
 484   1      }
 485          ///////////////////////////////模糊延时函数///////////////////////////////////
 486          void delay(int a)
 487          {
 488   1         for(i=0;i<a;i++);
 489   1      }
C51 COMPILER V7.06   闹钟                                                                  11/22/2008 15:33:51 PAGE 9   

 490          ////////////////////////////////输出转换////////////////////////////////
 491          int outfunction(int a)
 492          {
 493   1        switch(a)
 494   1        {
 495   2          case 0:return cout1[0];break;  
 496   2          case 1:return cout1[1];break;
 497   2          case 2:return cout1[2];break;
 498   2          case 3:return cout1[3];break;
 499   2          case 4:return cout1[4];break;
 500   2          case 5:return cout1[5];break;
 501   2          case 6:return cout1[6];break;
 502   2          case 7:return cout1[7];break;
 503   2          case 8:return cout1[8];break;
 504   2          case 9:return cout1[9];break;
 505   2        }
 506   1      }
 507          ///////////////////////////////////时间计算//////////////////////////////////
 508          void recount()
 509          {
 510   1      
 511   1      if (second==60)
 512   1           {
 513   2             second=second%60;
 514   2             minute++;
 515   2               if (minute==60)
 516   2                {
 517   3                  minute=minute%60;
 518   3                  hour++;
 519   3                  if(hour==24)
 520   3                 {
 521   4                   hour=0;
 522   4                   date++;
 523   4                      if(date==29&&month==2&&(!(year%4==0 && year%100!=0 || year%400==0)))
 524   4                {
 525   5                        date=1;
 526   5                        month++;
 527   5                }
 528   4                      if(date==30&&month==2&&(year%4==0 && year%100!=0 || year%400==0))
 529   4                {
 530   5                        date=1;
 531   5                        month++;
 532   5                }
 533   4                      if(date==31&&(month==4||month==6||month==9||month==11))
 534   4                {
 535   5                        date=1;
 536   5                        month++;
 537   5                }
 538   4                      if(date==32&&(month==1||month==3||month==5||month==7||month==8||month==10||month==12))
 539   4                {
 540   5                        date=1;
 541   5                        month++;
 542   5                }
 543   4                      if(month==13)
 544   4                {
 545   5                        month=1;
 546   5                        year++;
 547   5                }
 548   4                 }
 549   3                }
 550   2           }
 551   1      
C51 COMPILER V7.06   闹钟                                                                  11/22/2008 15:33:51 PAGE 10  

 552   1      }
 553          int alm()
 554          {
 555   1        TH1=0x06;
 556   1        TL1=0x06;
 557   1        ET1=1;
 558   1        EX0=0;
 559   1        EX1=0;
 560   1        while(1)
 561   1         {
 562   2           p2=cout2[0]; 
 563   2           p0=0x77;
 564   2           delay(5); 
 565   2           p0=0x00;
 566   2           p2=cout2[1]; 
 567   2           p0=0x38; 
 568   2           delay(5); 
 569   2           p0=0x00;
 570   2           p2=cout2[2]; 
 571   2           p0=cout1[10];
 572   2           delay(7);
 573   2           p0=0x00;
 574   2           p2=cout2[3]; 
 575   2           p0=outfunction(alm_hour/10);
 576   2           delay(5);  
 577   2           p0=0x00;
 578   2           p2=cout2[4]; 
 579   2           p0=outfunction(alm_hour%10); 
 580   2           delay(5); 
 581   2           p0=0x00;
 582   2          
 583   2           p2=cout2[5]; 
 584   2           p0=cout1[10];
 585   2           delay(7);
 586   2           p0=0x00;
 587   2           p2=cout2[6]; 
 588   2           p0=outfunction(alm_minute/10); 
 589   2           delay(5); 
 590   2           p0=0x00;
 591   2           p2=cout2[7]; 
 592   2           p0=outfunction(alm_minute%10); 
 593   2           delay(5); 
 594   2           p0=0x00;
 595   2        if(TR1==0)
 596   2        {
 597   3          temp[0]=0;
 598   3             temp[1]=0;
 599   3             temp[2]=0;
 600   3             stopb=0;
 601   3             flagb=0;
 602   3             TR1=1;
 603   3         }
 604   2           if(alm_minute!=minute)
 605   2           {
 606   3          TR1=0;
 607   3          EX0=1;
 608   3          EX1=1; 
 609   3          p37=1;
 610   3          return 1;
 611   3         }
 612   2        if(p13==0)
 613   2           {
C51 COMPILER V7.06   闹钟                                                                  11/22/2008 15:33:51 PAGE 11  

 614   3           TR1=0; 
 615   3           EX0=1;
 616   3           EX1=1;
 617   3           p37=1;
 618   3           return 0;
 619   3         }
 620   2           recount();
 621   2         }
 622   1      }
 623          void Timer1_Overflow() interrupt 3 using 1
 624          {
 625   1        temp[2]++;
 626   1        if(temp[2]==2000)
 627   1         {
 628   2           temp[2]=0;
 629   2           if(stopb==0)
 630   2            {
 631   3              stopb=~stopb;
 632   3             }
 633   2           else
 634   2            {
 635   3              stopb=1;
 636   3              TR1=0;
 637   3             }
 638   2          }
 639   1        if(stopb==0)
 640   1         {
 641   2           temp[1]++;
 642   2           if(temp[1]==3)
 643   2           {
 644   3             temp[1]=0;
 645   3             p37=~p37;
 646   3            }
 647   2          }
 648   1        else
 649   1         {
 650   2           temp[0]++;
 651   2           if(temp[0]==4)
 652   2            {
 653   3              temp[0]=0;
 654   3              p37=~p37;
 655   3             }
 656   2          }
 657   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3415    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     94    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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