📄 control.c
字号:
/*****************************************************************/
//CO2控制程序
//功能:调节温度和CO2浓度
/*****************************************************************/
#include <MSP430X14X.h>
#include "HT1381.c"
#define open_co2 P2OUT |= BIT3 //打开CO2控制器
#define close_co2 P2OUT &=~ BIT3 //关闭CO2控制器
#define open_temp P2OUT |= BIT2 //打开温度控制器
#define close_temp P2OUT &=~ BIT2 //关闭温度控制器
unsigned char mode,Temp_set,Temp_off,Temp_max;
unsigned int CO2_concentration_set,CO2_concentration_off;
//mode 控制器工作方式控制字
//Temp 当前的温度值
//CO2_concentration 当前二氧化碳的值
//Temp_set 设置的温度值
//CO2_concentration_set 设置的二氧化碳值
//Temp_off 温度偏移量
//CO2_concentration_off 二氧化碳偏移量
//Temp_max 允许的最大的温度
//*****************************************************************************/
//功能:控制相关器件调控CO2浓度和温度
//*****************************************************************************/
void control(unsigned char Temp,unsigned int CO2_concentration)
{
unsigned char i;
unsigned int a;
i = mode;
i &= 0x0f;
switch(i)
{
case 0: //Normal Mode,Night,Generator
close_co2; //关闭CO2控制端口
a = Temp_set + Temp_off;
if(Temp>a)
{
open_temp; //降低温度
}
if(Temp<Temp_set)
{
close_temp; //停止降低温度
}
if(Temp>Temp_max)
{
open_temp; //降低温度
}
a = Temp_set - Temp_off;
if(Temp<a)
{
close_temp; //停止降低温度
}
break;
case 1: //Greenhouse Mode,Night,Generator
close_co2; //关闭CO2控制端口
a = Temp_set - Temp_off;
if(Temp<a)
{
open_temp; //提高温度
}
if(Temp>Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
close_temp;
}
break;
case 2: //Greenhouse Night Heat Mode,Night,Generator
a = Temp_set - Temp_off;
if(Temp<a)
{
open_co2; //提高温度
}
/*
if(Temp>Temp_set)
{
close_CO2; //
}
*/
a = Temp_set + Temp_off;
if(Temp>a)
{
open_temp; //降低温度
}
if(Temp<Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
open_temp;
}
break;
case 3: //Mushroom Mode,Night,Generator
close_co2; //关闭CO2控制端口
a = Temp_set - Temp_off;
if(Temp<a)
{
open_temp; //提高温度
}
if(Temp>Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
close_temp;
}
break;
case 4: //Normal Mode,day,Generator
if((CO2_concentration>CO2_concentration_set)||(Temp>Temp_max))
{
close_co2;
}
a = CO2_concentration_set - CO2_concentration_off;
if((CO2_concentration<a)&&(Temp<Temp_max))
{
open_co2;
}
a = Temp_set + Temp_off;
if(Temp>a)
{
open_temp; //降低温度
}
if(Temp<Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
open_temp; //降低温度
}
a = Temp_set - Temp_off;
if(Temp<a)
{
close_temp;
}
break;
case 5: //Greenhouse Mode,day,Generator
if(CO2_concentration>CO2_concentration_set)
{
close_co2;
}
a = CO2_concentration_set - CO2_concentration_off;
if(CO2_concentration<a)
{
open_co2;
}
a = Temp_set - Temp_off;
if(Temp<a)
{
open_temp; //提高温度
}
if(Temp>Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
close_temp;
}
break;
case 6: //Greenhouse Night Heat Mode,day,Generator
if((CO2_concentration>CO2_concentration_set)||(Temp>Temp_max))
{
close_co2;
}
a = CO2_concentration_set - CO2_concentration_off;
if((CO2_concentration<a)&&(Temp<Temp_max))
{
open_co2;
}
a = Temp_set + Temp_off;
if(Temp>a)
{
open_temp; //降低温度
}
if(Temp<Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
open_temp; //降低温度
}
break;
case 7: //Mushroom Mode,day,Generator
if((CO2_concentration>CO2_concentration_set)||(Temp>Temp_max))
{
close_co2;
}
a = CO2_concentration_set - CO2_concentration_off;
if((CO2_concentration<a)&&(Temp<Temp_max))
{
open_co2;
}
a = Temp_set + Temp_off;
if(Temp>a)
{
open_temp; //降低温度
}
if(Temp<Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
open_temp; //降低温度
}
break;
case 8: //Normal Mode,Night,Fuzzy
close_co2; //关闭CO2控制端口
a = Temp_set + Temp_off;
if(Temp>a)
{
open_temp; //降低温度
}
if(Temp<Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
open_temp; //降低温度
}
break;
case 9: //Normal Mode,day,Fuzzy
if((CO2_concentration>CO2_concentration_set)||(Temp>Temp_max))
{
close_co2;
}
a = CO2_concentration_set - CO2_concentration_off;
if((CO2_concentration<a)&&(Temp<Temp_max))
{
open_co2;
}
a = Temp_set + Temp_off;
if(Temp>a)
{
open_temp; //降低温度
}
if(Temp<Temp_set)
{
close_temp;
}
if(Temp>Temp_max)
{
open_temp; //降低温度
}
break;
default:
break;
}
}
void main(void)
{
unsigned char a;
unsigned int b;
extern void Delay(unsigned int n);
delay();
control(a,b);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -