?? 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 + -