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

📄 main.lst

📁 DS1820智能温控系统,使用1602液晶显示,51单片机控制,KEIL开发
💻 LST
📖 第 1 页 / 共 2 页
字号:
 151   4                             ltemp++;
 152   4                                }
 153   3                        if(DOWN==0&&(ltemp!=99)&&(ltemp!=0))
 154   3                             {
 155   4                               while(DOWN==0);
 156   4                                   beer();
 157   4                               ltemp--;
 158   4                             }
 159   3                             if(flag==0)
 160   3                                      {
 161   4                                   lcd_strwdat( 0," L temp setting" );
 162   4                               display1(ltemp);
 163   4                                      }
 164   3                         else
 165   3                               lcd_strwdat( 0x40,"                 " );
 166   3                     if(MENU==0)
 167   3                              {        
 168   4                                        while(MENU==0);
 169   4                                I2CSendByte(2,ltemp);
 170   4                                beer();
 171   4                                lcd_init();
 172   4                                break;
 173   4                              }
 174   3                      }
 175   2                  }
 176   1      }
 177          
 178          //******************************************************************************
 179          
C51 COMPILER V8.08   MAIN                                                                  01/12/2009 19:00:37 PAGE 4   

 180          //****************************************************************************
 181          //按键处理
 182           key()
 183           {
 184   1         uchar tem=0;
 185   1         if(ENTER==0)                  //ENTER按下时进入选择高低报警温度设置
 186   1                 {   
 187   2                     while(ENTER==0);
 188   2                         beer();
 189   2                     while(1)
 190   2                          {
 191   3                                switch(tem)
 192   3                                  {
 193   4                                    case 0:  HTemperature();break;      //高温设置
 194   4                                        case 1: LTemperature();break;            //低温设置
 195   4                                  }
 196   3                                if(UP==0)                                                                //UP/DOWN都是改变选择画面
 197   3                              {  
 198   4                                    while(UP==0);
 199   4                                    beer();
 200   4                                if(tem==0)
 201   4                                      tem=1;
 202   4                                        else 
 203   4                                          tem=0;
 204   4                                   }
 205   3                            if(DOWN==0)
 206   3                               {
 207   4                                 while(DOWN==0);
 208   4                                     beer();
 209   4                                 if(tem==0)
 210   4                                      tem=1;
 211   4                                         else 
 212   4                                          tem=0;
 213   4                               }
 214   3                                if(MENU==0)                                                     //MENU按下则退出到读取当前温度状态
 215   3                                   {
 216   4                                     while(MENU==0);
 217   4                                     beer();
 218   4                                     lcd_init();
 219   4                                     break;
 220   4                                   }
 221   3                          }
 222   2                 
 223   2      
 224   2                      }
 225   1      }
 226          //************************************************************************** 
 227          
 228          //***************************************************************************
 229          //到设定温度时报警函数
 230          warn()
 231          {
 232   1              if(temper[1]>=I2CReadByte(1))                    //当前温度大于或等于高温设定时报警
 233   1               {
 234   2                  flag2=1;
 235   2                      if(flag==0)
 236   2                      lcd_strwdat(0,"                 " );  // 用于第一行闪动
 237   2             beer();                                                           //蜂鸣器长叫
 238   2                }
 239   1               else
 240   1           if(temper[1]<=I2CReadByte(2))
 241   1               {                                                                                 //当前温度小于或等于低温设定时报警
C51 COMPILER V8.08   MAIN                                                                  01/12/2009 19:00:37 PAGE 5   

 242   2                  flag2=2;
 243   2                      if(flag==0)
 244   2                      lcd_strwdat(0,"                 " );   // 用于第一行闪动
 245   2             beer();
 246   2                }      
 247   1          else
 248   1          flag2=0;
 249   1      
 250   1      
 251   1      }
 252          
 253          main()
 254          { uchar i,CON;
 255   1        
 256   1        TMOD=0X01;                       //用定时器一
 257   1        TH0=(65536-50000)/256;   //定时为0.05s
 258   1        TL0=(65536-50000)%256;
 259   1        ET0=1;
 260   1        EA=1;                                   //开总中断
 261   1        TR0=1;                                  //开定时器
 262   1        lcd_init();                     //初始化lcd
 263   1        for(i=0;i<4;i++)                //显示缓冲区置0
 264   1        dispbuf[i] = 0;
 265   1        while(1)
 266   1          {
 267   2                 display();             //显示 
 268   2                  key();
 269   2                      warn();
 270   2                      CON++;
 271   2                      if(CON==500)     //写时刷屏
 272   2                      lcd_init();
 273   2      
 274   2      
 275   2          }
 276   1      }
 277          
 278          //****************************************************
 279          void time0() interrupt 1
 280          {  uchar contuer;
 281   1        TH0=(65536-50000)/256;                        //定时为0.05s
 282   1        TL0=(65536-50000)%256;
 283   1         contuer++;
 284   1         if(contuer==7)                                       //当到0.35s改变 flag
 285   1         {
 286   2         contuer=0;
 287   2        flag=~flag;
 288   2        }
 289   1        
 290   1      }
 291          
 292          //*****************************************************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    786    ----
   CONSTANT SIZE    =    107    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     19      10
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V8.08   MAIN                                                                  01/12/2009 19:00:37 PAGE 6   


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

⌨️ 快捷键说明

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