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

📄 temprature.lst

📁 本人写的利用c8051f330单片机开发的系统的程序,包括驱动ds18b20功能和hd7279的驱动,保证能用!
💻 LST
📖 第 1 页 / 共 3 页
字号:
 486   1      Clear_Bit(Hd7279_Data);
 487   1      return(Data_In);
 488   1      }
 489          
C51 COMPILER V7.06   TEMPRATURE                                                            04/09/2008 00:06:15 PAGE 9   

 490          
 491          void HD_Key_ISR() interrupt 0   //外部中断0函数(按键中断)
 492          {
 493   1              EA=0;
 494   1      
 495   1              Send_Byte(0x15);                        //读键盘
 496   1              KeyValue=Receive_Byte();        //取得键值
 497   1              while(!Hd7279_Key);                     //等待按键结束
 498   1              if(KeyValue==4||KeyValue==5||KeyValue==6||KeyValue==8)
 499   1                      Int_Flag=1;
 500   1              if(KeyValue==0||KeyValue==2)
 501   1                      Control_Flag=1;
 502   1              EA=1;
 503   1              
 504   1      }
 505          
 506          
 507                  
 508          /*HD7279值,加热(0),臭氧(1),排风(2),确定(3),时间加(4),时间减(5),温度加(6),温度减(8)
             -*/
 509          
 510          
 511          void Up_Down_Check(void )                       //检查是否在增加减少温度/时间值
 512          {
 513   1               char TemperatureTemp,TimeTemp;
 514   1              long counter=0;
 515   1              ET0=0;
 516   1              ET1=0;
 517   1      
 518   1      
 519   1              if((KeyValue==4||KeyValue==5||KeyValue==6||KeyValue==8)&&Int_Flag==1)
 520   1              {
 521   2                              TimeTemp=TimeSet;
 522   2                              TemperatureTemp=TemperatureSet;
 523   2                              
 524   2                                      do{
 525   3                              
 526   3                                              Send_Byte(0x88);
 527   3                                              Send_Byte(0x00);                        //LED闪烁
 528   3                                              delayms(200);
 529   3                                      if(Int_Flag==1)
 530   3                                      {
 531   4      
 532   4                                              
 533   4                                              
 534   4                                              if(KeyValue==4)                         //时间加
 535   4                                              {
 536   5                                                      TimeTemp++;
 537   5                                                      if(TimeTemp>=60)
 538   5                                                              TimeTemp=60;
 539   5                                      
 540   5                                                      
 541   5                                              }
 542   4                                              if(KeyValue==5)         //时间减
 543   4                                              {       
 544   5                                              
 545   5                                                      
 546   5                                                              TimeTemp--;
 547   5                                                              if(TimeTemp<=0)
 548   5                                                              TimeTemp=0;
 549   5                                                              
 550   5                                              
C51 COMPILER V7.06   TEMPRATURE                                                            04/09/2008 00:06:15 PAGE 10  

 551   5                                      
 552   5                                              }
 553   4      
 554   4                                              if(KeyValue==6)         //温度加
 555   4                                              {
 556   5                                                      TemperatureTemp++;
 557   5                                                      if(TemperatureTemp>=99)
 558   5                                                              TemperatureTemp=99;
 559   5                                              
 560   5                                              }
 561   4                              
 562   4                                              if(KeyValue==8)         //温度减
 563   4                                              {
 564   5                                                      TemperatureTemp--;
 565   5                                                      if(TemperatureTemp<=1)
 566   5                                                              TemperatureTemp=1;
 567   5                                              
 568   5                                              }
 569   4                                              counter=0;
 570   4                                              delayms(700);
 571   4                                              Temperature_Display(TemperatureTemp);
 572   4                                              Time_Display(TimeTemp);
 573   4                                              Int_Flag=0;
 574   4                                      }
 575   3                                      
 576   3                                      counter++;
 577   3                              }
 578   2                              while(KeyValue!=3&&counter<0x30000);
 579   2                              
 580   2                              TemperatureSet=TemperatureTemp;
 581   2                              TimeSet=TimeTemp;
 582   2              }
 583   1                                      Send_Byte(0x88);
 584   1                                      Send_Byte(0xff);                        //LED停止闪烁
 585   1                      
 586   1      
 587   1                      ET0=1;
 588   1                      ET1=1;
 589   1              
 590   1      }
 591          void LED_Flash(void)
 592          {
 593   1              JiaRe_Disp=1;
 594   1              FengShan_Disp=0;
 595   1              delayms(1000);
 596   1              JiaRe_Disp=0;
 597   1              FengShan_Disp=1;
 598   1              delayms(1000);
 599   1      }
 600          void Control_Key_Check(void)                            //检查控制按键
 601          {
 602   1              
 603   1      //      EA=0;                                                   //关外部中断
 604   1      //      ET0=0;
 605   1      //      ET1=0;
 606   1      
 607   1                      if(KeyValue==0)                         //加热被按下
 608   1                      {
 609   2                              JiaRe_Time++;
 610   2                              KeyValue=0xff;
 611   2                              FengShan_Time=0;
 612   2                      }
C51 COMPILER V7.06   TEMPRATURE                                                            04/09/2008 00:06:15 PAGE 11  

 613   1                      if(KeyValue==2)                         //排风按钮被按下
 614   1                      {
 615   2                              FengShan_Time++;
 616   2                              KeyValue=0xff;
 617   2                              JiaRe_Time=0;
 618   2                      }       
 619   1                              
 620   1      //              if(JiaRe_Time==1)
 621   1      //                      FengShan_Time=0;
 622   1      //              if(FengShan_Time==1)
 623   1      //                      JiaRe_Time=0;
 624   1      
 625   1                      if((FengShan_Time==1))//
 626   1                              {
 627   2                                      
 628   2                      
 629   2                                              FengShan=1;                     //启动排风
 630   2                                              JiaRe=0;                        //关闭加热
 631   2                                              JiaRe_Disp=0;
 632   2                                              if(TemperatureNow<=TemperatureSet-10)
 633   2                                              {
 634   3                                                      FengShan_Disp=1;
 635   3                                                      delayms(500);
 636   3                                                      FengShan_Disp=0;
 637   3                                                      delayms(500);
 638   3                                              }       
 639   2                                              else
 640   2                                              {
 641   3                                      
 642   3                                                      FengShan_Disp=1;        //排风灯亮
 643   3      
 644   3                                              }
 645   2                                      
 646   2                                      
 647   2                              }
 648   1                              if(FengShan_Time==2)    //第二次被按下
 649   1                              {
 650   2                                      FengShan_Time=0;
 651   2                                      Control_Auto=0;         //切换至自动状态
 652   2                                      
 653   2                                      
 654   2                              }
 655   1      
 656   1      
 657   1                              if((JiaRe_Time==1))             //第一次被按下//
 658   1                              {
 659   2                              
 660   2                                      
 661   2                                              JiaRe=1;                        //启动加热
 662   2                                              FengShan=0;                     //关闭排风
 663   2                                              FengShan_Disp=0;
 664   2                                      
 665   2                                              if(TemperatureNow>=TemperatureSet+10)
 666   2                                              {
 667   3                                                      JiaRe_Disp=1;
 668   3                                                      delayms(500);
 669   3                                                      JiaRe_Disp=0;
 670   3                                                      delayms(500);
 671   3                                              }
 672   2                                              else
 673   2                                              {
 674   3                                      
C51 COMPILER V7.06   TEMPRATURE                                                            04/09/2008 00:06:15 PAGE 12  

 675   3                                                      JiaRe_Disp=1;           //加热灯亮
 676   3                                              }
 677   2                                      
 678   2                              }
 679   1                                      
 680   1                              if(JiaRe_Time==2)               //第二次被按下
 681   1                              {
 682   2                                      JiaRe_Time=0;
 683   2                                      Control_Auto=0;         //切换至自动状态
 684   2                                      
 685   2                                      
 686   2                              }       
 687   1                              
 688   1                              
 689   1                      
 690   1                      
 691   1       //     EA=1;                                                   //开外部中断
 692   1       //     ET0=1;
 693   1      //              ET1=1;
 694   1              
 695   1      }
 696          
 697          void ChouYang_Check(void)
 698          {
 699   1              if(KeyValue==0x01)
 700   1              {
 701   2                      KeyValue=0xff;
 702   2                      ChouYang_Flag++;
 703   2                      if(ChouYang_Flag==1)
 704   2                      {
 705   3                              ChouYang=1;
 706   3                              ChouYang_Disp=1;
 707   3                      }
 708   2                      if(ChouYang_Flag==2)
 709   2                      {
 710   3                              ChouYang=0;
 711   3                              ChouYang_Disp=0;
 712   3                              ChouYang_Flag=0;
 713   3                      }
 714   2              }
 715   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1590    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     35      21
   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 + -