亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cortrol.c.bak

?? 在外部環(huán)境中檢測亮度
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
//****************************************************************************
//**********情報板系統(tǒng)控制器程序              ***********
//**********單片機STC12C5410AD,晶振18.432MHZ  ***********
//**********LIUBIN<2008.6.16>                 ***********
//**********當前版本1.0                       ***********
//****************************************************************************
#include <reg52.h>
#include <stdio.h>
#include <absacc.h>
#include <ctype.h>
#include <intrins.h> 
#define ACK  1
#define noACK 0
#define MEASURE_TEMP 0X03   //測量溫度命令        
#define MEASURE_HUM1 0X05   //測量濕度命令   
#define TEMP 0              //溫度參數標志
#define HUMI 1              //濕度參數標志
#define LUMM 2              //亮度參數標志
#define S_TEMP 3            
#define DC     4         
////***********************************************************************************/
sfr	ISP_CONTR=0xe7;   
sfr ADC_CONTR=0XC5;
sfr ADC_DATA=0XC6;
sfr P1M0=0X91;
sfr P1M1=0X92;
sbit CHECK1=P1^0;
sbit CHECK2=P1^1;
sbit CHECK3=P1^2;
sbit TH_DATA=P1^4;
sbit TH_SCK =P1^5;
sbit C=P3^7;
sbit DRE=P3^2;
sbit E=P1^7;
sbit AC1=P2^0;
sbit AC2=P2^1;
sbit AC3=P2^2;
sbit KB0=0XA0;
sbit KB1=0XA1;
sbit KB2=0XA2;
sbit KB3=0XA3;
sbit STB=P0^0;
sbit CLK=P0^1;
sbit DATA0=P0^2;
sbit BELL=P0^3;
sbit LED=P3^5;
sbit IN1=P3^3;
//sbit test=P1^6;
//****************************************************************************************
void delay1(unsigned char d1);
void delay(unsigned int i);
int ADC3_Switch(void);
void POW_Check(void);
void Display(signed int display_data,unsigned char dis_flag);
void Display_set(signed int display_set_data,unsigned char dis_set_flag);
void serial_Init(void);
char s_write_byte(char);
void s_transstart(void);
unsigned char s_read_byte(char s );
signed int measure(unsigned char mode);  
void key_deal(void);
unsigned char key_switch(unsigned char key_d);
void keycost_deal(unsigned char TH_flag);
void bell(void);
void error_bell(void);
void TH_Control(void);
void Key_scan();
void R_Data_with(void);
void read_device_status( );
void set_TH_Control( );
//******************************************************************/
typedef unsigned char uchar;
uchar xdata CHECK_DATA,POW_DATA;
//uchar xdata serial_id;
uchar xdata i,j;
uchar xdata KeyNumber,kb_data;
bit keyboard_flag,keyflag,RT_Flag;
uchar xdata error;
signed int L_Temp_set,H_Temp_set,H_Hum_set,H_Lum_set;//L_Hum_set,L_Lum_set;
int TEM,HUMM,LUM,f1,f2,f3,time_count;
char TH_F0,TH_F1,TH_F2,kf;
uchar data  serial_count,serial_count_T;				// serial幀位置計數  
uchar data serial_length;							    // serial幀數據長度  
uchar data serial_sum;								    // serial幀總校驗和  
uchar data serial_data;						    	    // serial幀數據  
uchar data serial_id;							        // DEVICE地址 
unsigned char serial_buf_R[7]; 		              		// 接收緩沖區(qū)
unsigned char serial_buf_T[7]; 		              		// 發(fā)送緩沖區(qū)
unsigned char serial_buf2[7]; 		                	// 接收緩沖2區(qū)
/*****************************************************************/
/***********************************************************************************/
void main(void)
{
 serial_Init( );
  while(1)
  {                       
	LED=0;                                           //點亮指示燈   
  
 	POW_Check( );                                    //三相電源檢測
 	TH_Control();                                    //溫濕度控制
 
   	if(kb_data!=0xff)                                //按鍵查詢處理
	  { 
        key_deal();	  
 	    KeyNumber=0xff;
 	    kb_data=0Xff;
		keyflag=0;
      }             
    if(TH_F0==1&&RT_Flag==0)               
	  {          
	   
    	TEM=measure(TEMP);                           //測試溫度值  
	    Display(TEM,TEMP);                           //顯示溫度值 
	
	    	 
	  }
	  
    LED=1;                                           //熄滅指示燈   
	if(TH_F1==1&&RT_Flag==0)
	  { 
	  HUMM=measure(HUMI);                            //測試濕度值  
	  Display(HUMM,HUMI);                            //顯示濕度值  
      }
	  
    if(TH_F2==1&&RT_Flag==0)
	  { LUM=ADC3_Switch();                           //測試亮度值  
	    Display(LUM,LUMM);                           //顯示亮度值   
	    keyflag=1;
	  }         
    if(RT_Flag==1)
	    {
			R_Data_with();
			serial_count=0;                          //復位幀計數  
			serial_sum=0;                            //復位校驗和 
	        RT_Flag=0;
		 }  	   
  }
}
/*************************************初始化程序********************************
****函數名稱:serial_Init()                         ****************************
****函數功能:設置通訊波特率,定時器0初值 ,變量初值****************************
*******************************************************************************/          
void serial_Init(void)
{ 
	TH1 = 0xFB;									    // 設定TH1初值 , 波特率  19200  
	TL1 = 0xFB;									    // 設定TL1初值,  波特率  19200   
	TH0 = 0Xa5;                                     //定時器0設置初值,定時時間為10MS
	TL0 = 0X00;
	SCON = 0x50;                                    // 設定串口工作方式
    PCON  = PCON|0X80;				 	  
	TMOD = (TMOD & 0x0f) | 0x21;  					// 設定T1為波特發(fā)生器
	PS   = 1;										// 串口為高級中斷
	ES   = 1;										// 允許串口中斷						      	
	TR1  = 1;  										// 啟動T1
	TR0  = 1;  
    ET0  = 1; 
//	EX1  = 1;
//	PX1 =1;
//	IT1=1;
   	EA  = 0;
	DRE = 0;                                        //設485接受   
    C=0;
	E=0;
    delay(5);
	serial_id=P2;                                   //讀地址 
	delay(5);
	E=1;

	BELL=1;
    error=0;  
//	P2=0XF0;
    KeyNumber=0XFF;
	kb_data=0xff;
	keyboard_flag=1;
	RT_Flag=0;
	keyflag=0;
	f1=200;
	f2=0;
	f3=0;
	TH_F0=0;
	TH_F1=0;
	TH_F2=0;
	time_count=0;
    kf=0;
    serial_count=0;
    serial_count_T=0;
    L_Temp_set=10;
    H_Temp_set=45;
    H_Hum_set=80;
   	EA=1;
 }
//********************************串口中斷**********************************
//*******函數功能:處理串口中斷,接收數據到緩沖區(qū)
//*******          發(fā)送緩沖區(qū)中要發(fā)送的數據
//**************************************************************************
void serial_IR (void) interrupt  4 
{
  uchar temp;
  if(RI)
  {RI=0;
  	//LED=0;
   temp=SBUF;
   if(temp==0x00)
   	ISP_CONTR=0X60;                                     //軟件復位  
   else 
   serial_buf_R[serial_count++]=temp; 	                //將數據寫入緩存區(qū)              
   }
  if(TI)
  { TI=0;
	serial_count_T++;
	if(serial_count_T < 7)
    	SBUF = serial_buf_T[serial_count_T];            //發(fā)送待發(fā)數據  
	else DRE = 0;                                       //設485接受 
  }


 }

 //*********************************接收到數據處理函數*******************
 
void R_Data_with(void)
{// LED=0;
	for(i=0;i<7;i++)
   {
   	serial_buf2[i]=serial_buf_R[i];
   	}
	 for(i=0;i<6;i++)
    {
    	serial_sum+=serial_buf_R[i];
   	}
	  if(serial_sum==serial_buf2[6])                //校驗和累加  
		{  
			if(serial_buf2[1]== serial_id)          //校驗地址  
	    	{   
	    		if(serial_buf2[2] == 0xA0)
		      	   read_device_status( );           //讀取控制狀態(tài)    
			 	if(serial_buf2[2]==0x50)
			       {
			       	set_TH_Control( );              //設置控制  
		           // write_flash();
		           }
	         }   
		  }  
 
 }
//*******************************取電源狀態(tài),溫濕度,亮度參數值發(fā)送函數*********************
void read_device_status( )
{ // LED=0;
   serial_buf_T[0]=0XAA;
   serial_buf_T[1]=serial_id;
   serial_buf_T[2]=POW_DATA;
   serial_buf_T[3]=TEM;
   serial_buf_T[4]=HUMM;
   serial_buf_T[5]=LUM;
   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];
   DRE = 1;                                        //485啟動發(fā)送 ,發(fā)送溫濕度,亮度參數值
   delay(200); 
   serial_count_T = 0;
   SBUF = serial_buf_T[0]; 
 
 
 }
//******************************************************************************************
//*************************參數控制處理函數*************************************************
void set_TH_Control( )
{
  L_Temp_set=serial_buf2[3];
  H_Temp_set=serial_buf2[4];	
  H_Hum_set =serial_buf2[5];
  serial_buf_T[0]=0XBB;
   serial_buf_T[1]=serial_id;
   serial_buf_T[2]=0X50;
   serial_buf_T[3]=serial_buf2[3];
   serial_buf_T[4]=serial_buf2[4];
   serial_buf_T[5]=serial_buf2[5];
   serial_buf_T[6]=serial_buf2[6];
   DRE = 1;                                        //485啟動發(fā)送,返回應答數據 
   delay(200); 
   serial_count_T = 0;
   SBUF = serial_buf_T[0]; 	
}
//*****************************************************************************************	
	
//********************************A/D轉換函數*(P1.3)***********************************************/
int ADC3_Switch(void)
{
 int ADC_DA;
 ADC_CONTR=ADC_CONTR|0X80;                 //開A/D轉換電源 
 delay(1000);
 P1M0=P1M0|0X08;                           //設置P1.3為開漏模式                         
 P1M1=P1M1|0X08;
 ADC_CONTR=ADC_CONTR|0XE3;                 //設置P1.3為A/D轉換通道 
 ADC_CONTR=ADC_CONTR&0XEF;
 delay(10);
 ADC_DATA=0;
 ADC_CONTR= ADC_CONTR|0X08;                //啟動A/D轉換 
  while((ADC_CONTR&0X10)==0)                //判斷A/D轉換是否完成                 
      {;} 
 ADC_CONTR=ADC_CONTR&0XE7;                 //清標志,關閉A/D轉換  
 ADC_DA=ADC_DATA;   
 return(ADC_DA);
}
//****************************************************************************************************************/
//*******************************************三相電源檢測函數*****************************************************/    
void POW_Check()
 {
   if(CHECK1==0)
     {
      POW_DATA=0X01;
     
      }
   else 
   	  {
   	   POW_DATA=0;
   	
       }
   if(CHECK2==0)
     {
      POW_DATA=(POW_DATA<<1)|0X01;
  
      }
   else 
   	  {
   	   POW_DATA=POW_DATA<<1;
   	   
      }
   if(CHECK3==0)
      {
       POW_DATA=(POW_DATA<<1)|0X01;
      }
   else 
   	  {
   	   POW_DATA=POW_DATA<<1;
   	 
       }

  if(POW_DATA!=0x07)
    {CHECK_DATA=0XFF;

	 }
  else 
   { CHECK_DATA=0XF8;

	}


 }
//================================================================================================================//
//=============================================溫濕度控制函數=====================================================
void TH_Control(void)
{uchar TH_Con_data;
 if(TEM>H_Temp_set)
    TH_Con_data=0xf7;
 else if(TEM<L_Temp_set)
    TH_Con_data=0xEF;
 else if(L_Temp_set<TEM<H_Temp_set)
    TH_Con_data=0XFF;
 if(HUMM>H_Hum_set)
 	 TH_Con_data= TH_Con_data&0XDF;
 ET0=0;
 P2=CHECK_DATA&TH_Con_data;
 C=1;
 delay(5);
 C=0;
 ET0=1;
 //P2=0XF0;	   
 
}
//*********************************************************************************************************************/
//************************************************數碼管顯示函數*******************************************************
//********函數名稱: Display                        *******
//********函數功能:五位數碼管顯示溫濕度,亮度     *******
//********入口參數:顯示數值,參數標志             *******
//********返回值  :無                             *******
//*******************************************************************************************************
void Display(signed int display_data,unsigned char dis_flag)
{uchar xdata A[5];
 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};
 uchar dp_data,Y;
 if(dis_flag==TEMP)
    {A[0]=12;
	 A[1]=24;
	 }
 if(dis_flag==HUMI)
    {A[0]=16;
	 A[1]=19;
	 }
 if(dis_flag==LUMM)
    {A[0]=17;
	 A[1]=22;
	 }
 if(display_data<=-10)
   {A[2]=(display_data*(-1))%10;
    A[3]=(display_data*(-1))/10;
    A[4]=23;
    }
 else if(display_data<0)
    {A[2]=display_data*(-1);
     A[3]=22;
     A[4]=23;
    }
 else if(display_data<10)
    {A[2]=display_data;
     A[3]=22;
     A[4]=22;
     }
 else if(display_data<100)
    {A[2]=display_data%10;
     A[3]=display_data/10;
     A[4]=22;
    }
 else if(display_data<1000)
    {A[2]=display_data%10;
     A[3]=(display_data/10)%10;
     A[4]=display_data/100;
    }
 else if(display_data<10000)
    {A[1]=display_data%10;
     A[2]=(display_data/10)%10;
     A[3]=(display_data/100)%10;
     A[4]=display_data/1000;
    }

 for(i=0;i<5;i++)
 {dp_data=D[A[i]];
  for(j=8;j>0;j--)
     {  CLK=0;
   	    if(dp_data&0x80)
	       Y=1;
		else Y=0;
	       DATA0=Y;
	       CLK=1;
		   dp_data=dp_data<<1;
     
      }  
	
  }
   STB=0;
   STB=1;
   delay(2);
   STB=0;
 
}
//===========================================================================================================// 
//**********************************************數碼管顯示參數 函數*******************************************
//******函數功能:顯示設置參數值   *******
//************************************************************************************************************
void Display_set(signed int display_set_data,unsigned char dis_set_flag)
{int B[5];
 code uchar DD[]={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};
 uchar dp_data,Y;
 if(dis_set_flag==0)
    {B[4]=17;
    }
 if(dis_set_flag==1)
    {B[4]=16;
	}

 if(display_set_data<=-10)
   {B[0]=(display_set_data*(-1))%10;
    B[1]=(display_set_data*(-1))/10;
    B[2]=23;
    B[3]=22;

    }
 else if(display_set_data<0)
    {B[0]=display_set_data*(-1);
     B[1]=22;
     B[2]=23;
     B[3]=22;
    }
 else if(display_set_data<10)
    {B[0]=display_set_data;
     B[1]=22;
     B[2]=22;
	 B[3]=22;
     }
 else if(display_set_data<100)
    {B[0]=display_set_data%10;
     B[1]=display_set_data/10;
     B[2]=22;
	 B[3]=22;
    }
 else if(display_set_data<1000)
    {B[0]=display_set_data%10;
     B[1]=(display_set_data/10)%10;
     B[2]=display_set_data/100;
	 B[3]=22;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
337p粉嫩大胆噜噜噜噜噜91av | 一区二区三区四区在线免费观看| 在线免费观看日韩欧美| 精油按摩中文字幕久久| 亚洲愉拍自拍另类高清精品| 久久精品夜色噜噜亚洲aⅴ| 欧美麻豆精品久久久久久| 北条麻妃一区二区三区| 青青草国产成人av片免费| 亚洲视频在线一区| 久久久久久久久久久电影| 3d成人h动漫网站入口| 春色校园综合激情亚洲| 久久99热这里只有精品| 亚洲成人你懂的| 亚洲三级电影全部在线观看高清| 2023国产一二三区日本精品2022| 欧美日韩国产色站一区二区三区| av福利精品导航| 国产高清不卡二三区| 日本麻豆一区二区三区视频| 亚洲精品福利视频网站| 国产精品久久久久一区二区三区 | 欧美午夜电影网| av在线不卡观看免费观看| 国产精品亚洲专一区二区三区 | 国产精品亚洲视频| 黄页视频在线91| 麻豆精品一区二区| 亚洲mv大片欧洲mv大片精品| 亚洲美女在线一区| 专区另类欧美日韩| 欧美国产精品久久| 国产日本欧美一区二区| 久久久久久久久久看片| 国产日韩欧美一区二区三区乱码| 精品成人佐山爱一区二区| 欧美一区二区三区男人的天堂| 欧美性videosxxxxx| 精品视频一区三区九区| 欧美日韩不卡一区二区| 欧美日韩视频第一区| 久久亚洲精品小早川怜子| 日韩视频免费观看高清完整版 | 欧美日韩你懂得| 欧美天堂亚洲电影院在线播放| 色老综合老女人久久久| 一本一本大道香蕉久在线精品| 99视频在线观看一区三区| 91在线精品一区二区三区| 91女人视频在线观看| 在线视频观看一区| 欧美一区二区三级| 欧美精品一区二区高清在线观看| 精品福利一二区| 欧美国产日本视频| 亚洲人精品一区| 午夜不卡av免费| 久久av老司机精品网站导航| 风间由美一区二区av101| 99国产精品久| 欧美伦理电影网| 久久新电视剧免费观看| 最新成人av在线| 亚洲h在线观看| 国产一区二区精品久久99| 91亚洲精品久久久蜜桃网站 | 欧美午夜在线观看| 日韩色视频在线观看| 久久久久久久久岛国免费| 17c精品麻豆一区二区免费| 五月综合激情婷婷六月色窝| 精品中文字幕一区二区小辣椒| 国产成人免费av在线| 色女孩综合影院| 日韩精品一区二区三区视频播放 | 亚洲激情一二三区| 日本不卡在线视频| 成人免费看片app下载| 欧美日韩国产欧美日美国产精品| 欧美精品一区二| 亚洲成人7777| av一区二区久久| 欧美一级淫片007| 亚洲欧洲国产日本综合| 裸体一区二区三区| 91无套直看片红桃| 日韩女优视频免费观看| 1024国产精品| 黄页网站大全一区二区| 欧美系列亚洲系列| 国产精品欧美一区喷水| 婷婷丁香激情综合| 99热精品国产| 久久一区二区视频| 性做久久久久久久免费看| 福利91精品一区二区三区| 制服丝袜亚洲色图| 国产精品美女久久久久久久| 男男成人高潮片免费网站| 色综合婷婷久久| 国产亚洲欧洲997久久综合 | 韩国精品免费视频| 欧美精品自拍偷拍| 亚洲欧美视频一区| 国产精品一区二区果冻传媒| 欧美高清视频不卡网| 亚洲三级电影全部在线观看高清| 国产在线视视频有精品| 欧美人动与zoxxxx乱| 亚洲精品你懂的| 成人99免费视频| 久久这里只有精品6| 青青草国产成人99久久| 欧美亚洲国产一区二区三区 | 精品在线播放免费| 欧美日韩第一区日日骚| 尤物视频一区二区| 成人激情图片网| 久久久久久久av麻豆果冻| 麻豆成人免费电影| 911精品国产一区二区在线| 亚洲精品国产高清久久伦理二区| 波多野结衣精品在线| 国产精品三级视频| 国产aⅴ综合色| 中文字幕国产一区二区| 国产精品一区2区| 欧美韩国日本综合| 国产成人无遮挡在线视频| 久久婷婷国产综合国色天香| 狠狠色丁香九九婷婷综合五月| 日韩精品一区二区在线观看| 麻豆成人av在线| 久久久夜色精品亚洲| 国产不卡视频在线观看| 亚洲国产岛国毛片在线| 国产成人欧美日韩在线电影| 国产亚洲精品aa午夜观看| 国产91丝袜在线18| 国产精品天美传媒| 91丨porny丨首页| 一区二区国产视频| 欧美日韩国产一区| 麻豆中文一区二区| 国产亚洲欧洲一区高清在线观看| 波多野结衣在线一区| 综合久久给合久久狠狠狠97色| 在线中文字幕一区二区| 水野朝阳av一区二区三区| 欧美电视剧免费观看| 国产电影一区在线| 亚洲日本va午夜在线影院| 欧美三级在线播放| 青青草一区二区三区| 国产三级欧美三级日产三级99| 成人av午夜电影| 亚洲在线观看免费视频| 欧美电视剧在线看免费| 成人精品视频一区二区三区尤物| 中文字幕亚洲成人| 欧美日韩国产精品成人| 国内精品国产成人| 国产精品久久久久久亚洲伦| 欧洲人成人精品| 久久99精品国产.久久久久久| 国产色产综合色产在线视频| 欧美自拍偷拍一区| 另类的小说在线视频另类成人小视频在线 | 一区二区三区av电影| 欧美精品第1页| 国产精品一区二区久久精品爱涩| 成人欧美一区二区三区小说 | 亚洲一区二区三区激情| 日韩午夜精品电影| 成人高清免费在线播放| 亚洲18色成人| 久久久久久久网| 欧美三级中文字幕在线观看| 久久爱www久久做| 一区二区视频免费在线观看| 日韩精品一区二区三区中文精品| 97精品国产露脸对白| 青青草国产精品97视觉盛宴| 亚洲色图欧洲色图| 精品国产乱码久久久久久1区2区| 91在线一区二区三区| 精品在线免费视频| 亚洲福利电影网| 国产日韩欧美电影| 欧美一三区三区四区免费在线看 | 国产一区二区精品久久91| 亚洲国产精品影院| 欧美激情艳妇裸体舞| 亚洲丶国产丶欧美一区二区三区| 精品成人佐山爱一区二区| 欧美久久一二三四区| 91免费版pro下载短视频| 国产毛片精品国产一区二区三区| 亚洲观看高清完整版在线观看 |