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

📄 main.c

📁 用DS18B20和51单片机组合成的温度测量仪器
💻 C
字号:
/***********************************************/
//**********Author :wyb**************************
//**********07.2.23*************************
#include <e51.h>
#include <reg51.h>
#define  HIGH()    P1=(P1&0xf8)|0x04
#define  MID()    P1=(P1&0xf8)|0x02
#define  LOW()   P1=(P1&0xf8)|0x01 
#define  OFF()   P1=(P1&0xf8)|0x00
/**************全局变量*******************/
uchar DisBuf[4]={1,2,3,4};
extern uchar   Tick;
extern   void BeginConver();
extern  unsigned int  ReadTemperature(void);
extern  uchar Key;
main()
{
 unsigned int Temperature;
 uchar  CTL=0;
 bit  MODE=0;
 unsigned int SetTpr[]={100,200,300};//240对应温度24.0,300对
 SetTpr[0]=100;
 SetTpr[1]=200;
 SetTpr[2]=300;
 TMOD=0x01;
 TH0=-2000/256;
 TL0=-2000%256;
 EA=1;
 ET0=1;
 TR0=1;
 do{
  //********************key  process**************************
   if(Key&0x80)
      {
            Key&=0x7f;
            if(Key==0x08)  {MODE=~MODE;P17=~P17;}
			if(MODE==1) DisBuf[0]=8;
            if(Key==0x04&&MODE==0)  {CTL++;P17=~P17;}
			if(CTL==4&&MODE==0) CTL=0;
      }
	//*****************fan Control**************************
	if(MODE==0)
	   {
	      switch(CTL)
		  {
		  case  0: OFF();break;
		  case  1: LOW();break;
		  case  2: MID();break;
		  case  3: HIGH();break;
		  default :break;
		  }
		  DisBuf[0]=CTL;
	   }
//**************************read  temprature*****************	 
   if(Tick==0)  
   {
     EA=0;
     BeginConver();
	 P0=0x00;
	 EA=1;
   }
  if(Tick==49) 
  {
  EA=0;
  Temperature=ReadTemperature();
  DisBuf[1]=Temperature/100;
  DisBuf[2]=(Temperature/10)%10;
  DisBuf[3]=Temperature%10; 
  P0=0xff;
  EA=1;
  if(MODE==1)
	     {
		   if(Temperature<SetTpr[0])  OFF();
		  // if(Temperature<100)  OFF();
		   if( (Temperature>=SetTpr[0]) && (Temperature<SetTpr[1]) )  LOW();
		//   if( (Temperature>=100) && (Temperature<=200) )  LOW();
		   if( (Temperature>=SetTpr[1]) && (Temperature<=SetTpr[2]) )   MID();
		  //  if( (Temperature>=200) && (Temperature<=300) )   MID();
			if(Temperature>SetTpr[2])   HIGH();
		 //  if(Temperature>300)   HIGH();
		   DisBuf[0]=8;
		 }
  }
 }while (1);
}

⌨️ 快捷键说明

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