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

📄 cortrol.lst

📁 在外部环境中检测亮度
💻 LST
📖 第 1 页 / 共 4 页
字号:
 246          //*******************************取电源状态,温湿度,亮度参数值发送函数*********************
 247          void read_device_status( )
 248          { // LED=0;
 249   1         serial_buf_T[0]=0XAA;
 250   1         serial_buf_T[1]=serial_id;
 251   1         serial_buf_T[2]=POW_DATA;
 252   1         serial_buf_T[3]=TEM;
 253   1         serial_buf_T[4]=HUMM;
 254   1         serial_buf_T[5]=LUM;
 255   1         serial_buf_T[6]=serial_buf_T[0]+serial_buf_T[1]+serial_buf_T[2]+serial_buf_T[3]+serial_buf_T[4]+serial_
             -buf_T[5];
 256   1         DRE = 1;                                        //485启动发送 ,发送温湿度,亮度参数值
 257   1         delay(200); 
 258   1         serial_count_T = 0;
 259   1         SBUF = serial_buf_T[0]; 
 260   1       
 261   1       
 262   1       }
 263          //******************************************************************************************
 264          //*************************参数控制处理函数*************************************************
 265          void set_TH_Control( )
 266          {
 267   1        L_Temp_set=serial_buf2[3];
 268   1        H_Temp_set=serial_buf2[4];    
 269   1        H_Hum_set =serial_buf2[5];
 270   1        serial_buf_T[0]=0XBB;
 271   1         serial_buf_T[1]=serial_id;
 272   1         serial_buf_T[2]=0X50;
 273   1         serial_buf_T[3]=serial_buf2[3];
 274   1         serial_buf_T[4]=serial_buf2[4];
 275   1         serial_buf_T[5]=serial_buf2[5];
 276   1         serial_buf_T[6]=serial_buf2[6];
 277   1         DRE = 1;                                        //485启动发送,返回应答数据 
 278   1         delay(200); 
 279   1         serial_count_T = 0;
 280   1         SBUF = serial_buf_T[0];      
 281   1      }
 282          //*****************************************************************************************     
 283                  
 284          //********************************A/D转换函数*(P1.3)***********************************************/
 285          int ADC3_Switch(void)
 286          {
 287   1       int ADC_DA;
 288   1       ADC_CONTR=ADC_CONTR|0X80;                 //开A/D转换电源 
 289   1       delay(1000);
 290   1       P1M0=P1M0|0X08;                           //设置P1.3为开漏模式                         
 291   1       P1M1=P1M1|0X08;
 292   1       ADC_CONTR=ADC_CONTR|0XE3;                 //设置P1.3为A/D转换通道 
 293   1       ADC_CONTR=ADC_CONTR&0XEF;
 294   1       delay(10);
 295   1       ADC_DATA=0;
 296   1       ADC_CONTR= ADC_CONTR|0X08;                //启动A/D转换 
 297   1        while((ADC_CONTR&0X10)==0)                //判断A/D转换是否完成                 
 298   1            {;} 
 299   1       ADC_CONTR=ADC_CONTR&0XE7;                 //清标志,关闭A/D转换  
 300   1       ADC_DA=ADC_DATA;   
 301   1       return(ADC_DA);
 302   1      }
C51 COMPILER V7.20   CORTROL                                                               08/25/2008 11:28:19 PAGE 6   

 303          //********************************************************************************************************
             -********/
 304          //*******************************************三相电源检测函数*********************************************
             -********/    
 305          void POW_Check()
 306           {
 307   1         if(CHECK1==0)
 308   1           {
 309   2            POW_DATA=0X01;
 310   2           
 311   2            }
 312   1         else 
 313   1                {
 314   2                 POW_DATA=0;
 315   2              
 316   2             }
 317   1         if(CHECK2==0)
 318   1           {
 319   2            POW_DATA=(POW_DATA<<1)|0X01;
 320   2        
 321   2            }
 322   1         else 
 323   1                {
 324   2                 POW_DATA=POW_DATA<<1;
 325   2                 
 326   2            }
 327   1         if(CHECK3==0)
 328   1            {
 329   2             POW_DATA=(POW_DATA<<1)|0X01;
 330   2            }
 331   1         else 
 332   1                {
 333   2                 POW_DATA=POW_DATA<<1;
 334   2               
 335   2             }
 336   1      
 337   1        if(POW_DATA!=0x07)
 338   1          {CHECK_DATA=0XFF;
 339   2      
 340   2               }
 341   1        else 
 342   1         { CHECK_DATA=0XF8;
 343   2      
 344   2              }
 345   1      
 346   1      
 347   1       }
 348          //========================================================================================================
             -========//
 349          //=============================================温湿度控制函数=============================================
             -========
 350          void TH_Control(void)
 351          {uchar TH_Con_data;
 352   1       if(TEM>H_Temp_set)
 353   1          TH_Con_data=0xf7;
 354   1       else if(TEM<L_Temp_set)
 355   1          TH_Con_data=0xEF;
 356   1       else if(L_Temp_set<TEM<H_Temp_set)
 357   1          TH_Con_data=0XFF;
 358   1       if(HUMM>H_Hum_set)
 359   1               TH_Con_data= TH_Con_data&0XDF;
 360   1       ET0=0;
C51 COMPILER V7.20   CORTROL                                                               08/25/2008 11:28:19 PAGE 7   

 361   1       P2=CHECK_DATA&TH_Con_data;
 362   1       C=1;
 363   1       delay(5);
 364   1       C=0;
 365   1       ET0=1;
 366   1       //P2=0XF0;        
 367   1       
 368   1      }
 369          //********************************************************************************************************
             -*************/
 370          //************************************************数码管显示函数******************************************
             -*************
 371          //********函数名称: Display                        *******
 372          //********函数功能:五位数码管显示温湿度,亮度     *******
 373          //********入口参数:显示数值,参数标志             *******
 374          //********返回值  :无                             *******
 375          //*******************************************************************************************************
 376          void Display(signed int display_data,unsigned char dis_flag)
 377          {uchar xdata A[5];
 378   1       code uchar D[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X89,0XC7
             -,0X8C,0X88,0XC1,0X91,0XFF,0XBF,0X9C};
 379   1       uchar dp_data,Y;
 380   1       if(dis_flag==TEMP)
 381   1          {A[0]=12;
 382   2               A[1]=24;
 383   2               }
 384   1       if(dis_flag==HUMI)
 385   1          {A[0]=16;
 386   2               A[1]=19;
 387   2               }
 388   1       if(dis_flag==LUMM)
 389   1          {A[0]=17;
 390   2               A[1]=22;
 391   2               }
 392   1       if(display_data<=-10)
 393   1         {A[2]=(display_data*(-1))%10;
 394   2          A[3]=(display_data*(-1))/10;
 395   2          A[4]=23;
 396   2          }
 397   1       else if(display_data<0)
 398   1          {A[2]=display_data*(-1);
 399   2           A[3]=22;
 400   2           A[4]=23;
 401   2          }
 402   1       else if(display_data<10)
 403   1          {A[2]=display_data;
 404   2           A[3]=22;
 405   2           A[4]=22;
 406   2           }
 407   1       else if(display_data<100)
 408   1          {A[2]=display_data%10;
 409   2           A[3]=display_data/10;
 410   2           A[4]=22;
 411   2          }
 412   1       else if(display_data<1000)
 413   1          {A[2]=display_data%10;
 414   2           A[3]=(display_data/10)%10;
 415   2           A[4]=display_data/100;
 416   2          }
 417   1       else if(display_data<10000)
 418   1          {A[1]=display_data%10;
 419   2           A[2]=(display_data/10)%10;
C51 COMPILER V7.20   CORTROL                                                               08/25/2008 11:28:19 PAGE 8   

 420   2           A[3]=(display_data/100)%10;
 421   2           A[4]=display_data/1000;
 422   2          }
 423   1      
 424   1       for(i=0;i<5;i++)
 425   1       {dp_data=D[A[i]];
 426   2        for(j=8;j>0;j--)
 427   2           {  CLK=0;
 428   3                  if(dp_data&0x80)
 429   3                     Y=1;
 430   3                      else Y=0;
 431   3                     DATA0=Y;
 432   3                     CLK=1;
 433   3                         dp_data=dp_data<<1;
 434   3           
 435   3            }  
 436   2              
 437   2        }
 438   1         STB=0;
 439   1         STB=1;
 440   1         delay(2);
 441   1         STB=0;
 442   1       
 443   1      }
 444          //========================================================================================================
             -===// 
 445          //**********************************************数码管显示参数 函数***************************************
             -****
 446          //******函数功能:显示设置参数值   *******
 447          //********************************************************************************************************
             -****
 448          void Display_set(signed int display_set_data,unsigned char dis_set_flag)
 449          {int B[5];
 450   1       code uchar DD[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X89,0XC
             -7,0X8C,0X88,0XC1,0X91,0XFF,0XBF,0X9C};
 451   1       uchar dp_data,Y;
 452   1       if(dis_set_flag==0)
 453   1          {B[4]=17;
 454   2          }
 455   1       if(dis_set_flag==1)
 456   1          {B[4]=16;
 457   2              }
 458   1      
 459   1       if(display_set_data<=-10)
 460   1         {B[0]=(display_set_data*(-1))%10;
 461   2          B[1]=(display_set_data*(-1))/10;
 462   2          B[2]=23;
 463   2          B[3]=22;
 464   2      
 465   2          }
 466   1       else if(display_set_data<0)
 467   1          {B[0]=display_set_data*(-1);
 468   2           B[1]=22;
 469   2           B[2]=23;
 470   2           B[3]=22;
 471   2          }
 472   1       else if(display_set_data<10)
 473   1          {B[0]=display_set_data;
 474   2           B[1]=22;
 475   2           B[2]=22;
 476   2               B[3]=22;
 477   2           }
C51 COMPILER V7.20   CORTROL                                                               08/25/2008 11:28:19 PAGE 9   

 478   1       else if(display_set_data<100)
 479   1          {B[0]=display_set_data%10;
 480   2           B[1]=display_set_data/10;
 481   2           B[2]=22;
 482   2               B[3]=22;
 483   2          }
 484   1       else if(display_set_data<1000)
 485   1          {B[0]=display_set_data%10;
 486   2           B[1]=(display_set_data/10)%10;
 487   2           B[2]=display_set_data/100;

⌨️ 快捷键说明

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