📄 main.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 + -