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

📄 main.c

📁 系统采用51单片机
💻 C
字号:
#include  "config.h"

extern  Temperature_Set;//设定温度
int CurrentTemp;
void LEDDisp(int t)
{        
   if (Temperature_Set==t/8)
   { 
   LEDSet=0;
   LEDCool=1;
   LEDHot=1;
 // printf("LEDSet!");
   }
   else if (t/8>Temperature_Set)
   {
   LEDSet=1;
   LEDCool=0;
   LEDHot=1;
  // printf("LEDCool!");
   }
   else
   {
   LEDSet=1;
   LEDCool=1;
   LEDHot=0	;
  //printf("LEDHot!");
   }	
}

/*
T1的中断处理函数,实现led的定时刷新
*/
void T1INTSVC() interrupt 3
{	
	 //0123456789的数码管字型数据
	 code unsigned char SegTab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
                                       //0    1    2     3    4    5    6    7   8    9     no            
	
     code unsigned char ComTab[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
     static unsigned char n = 0;
      unsigned char *Dispbuf=0;
	  TR1 = 0;
	  TH1 = 0xFC;
	  TL1 = 0x66;
	  TR1 = 1 ;
	
     Dispbuf = DispTemp(CurrentTemp);

   
	  // seg--- P0
    //com ---P1
     P1=0xff; 
	 if (n==3)
	 {
    //P0=(SegTab[mydata]);//dot on 
    P0=SegTab[*(Dispbuf+n)]|0x80;
	 }
	 else
	 {
	 	P0=SegTab[*(Dispbuf+n)];
	 } 
	 P1=~ComTab[n];
	 n++;
	 n &= 0x07;
 	// }

//	uchar Dispbuf[8]={0};
//	disp(225);//disp temp
    
   // DispStr(Dispbuf); 

	LEDDisp(CurrentTemp);	
}

/*
函数:SysInit()
功能:系统初始化
*/
void T1Init()
{
	TMOD &= 0x0F;
	TMOD |= 0x10;	//设置T0为16位定时器
	TH1 = 0xFC;
	TL1 = 0x66;
	TR1 = 1;
	ET1 = 1;
}

void main()
{
   unsigned char commend[]={0xac,0x02,0xee,0xa1,0x28,0x00,0xa2,0x23,0x00}; 
//	EA = 0;		//禁止总中断
    //系统初始化
	T0Init();
	T1Init(); 
    //UartInit();
	//DispInit();		//数码管扫描显示初始化
	I2C_Init();		//初始化I2C总线
	INTInit();
	EA=1;
	//LED init
	LEDCool=1;
	LEDHot=1;
	LEDSet=1;
   // KEY1=1;
    //KEY2=1;
    Temperature_Set=28;
	  I2C_Puts(0x90, 0xac, 1, &commend[1]);
     I2C_Puts_s(0x90, 0xee);
//I2C_Puts(0x90, 0xee, 0, &commend[0]);	
	I2C_Puts(0x90, 0xa1, 2, &commend[4]);	
	I2C_Puts(0x90, 0xa2, 2, &commend[7]);	
	Delay(50);
	CurrentTemp=LM75A_GetTemp();
	Buzzer=1;
	//printf("SysInit ok!");
//	int t=0;
    while(1)
    {

  // disp(225);//disp temp
    
   // DispStr(Dispbuf); 

//	LEDDisp(225) ;
	   PCON|=0x01; 
    	CurrentTemp=LM75A_GetTemp();
	//printf("temp  test:%ud\n",LM75A_GetTemp());
   // printf("temp  set:%ud\n",Temperature_Set);
    //test lcd
    // seg--- P0
    //com ---P1
    //	P0=8;
    //	P1=8;

	//test led
	/*
	LEDCool = P2^0; //定义LED由P0.0控制
	LEDHot = P2^1; 	//定义LED由P0.0控制
    LEDSet = P2^2; //定义LED由P0.0控制
	*/

	//LEDCool=1;
	//LEDHot=0;
	//LEDSet=1;

    //test buzzer
    //Buzzer=~Buzzer;
	

    //LEDDisp(LM75A_GetTemp());
  // uchar Dispbuf[8]={0};
   // disp(Dispbuf,225);//disp temp
    
   // DispStr(Dispbuf); 
//DispStr(buf1); 
//	LEDDisp(225);
    //disp(LM75A_GetTemp());//disp temp 
   
	//Delay(10);
    
    //disp();//disp temp set
    }

}


⌨️ 快捷键说明

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