自动控制鱼缸电路图.doc
文本预览下载声明
附 录
1.电路图
2.程序代码
#include reg52.h
#include delay.h
#include ds18b20.h
#include LCD1602.h
#include ds1302.h
sfr T2MOD = 0xC9;
sbit Heat = P0^4;
sbit IN1=P0^3;
sbit IN2=P3^5;
sbit IN3=P3^6;
sbit IN4=P3^7;
sbit LED1=P3^2;
sbit LED2=P3^3;
//水温控制相关参量
int tempval = 0;
float tmp_new=0;
float tmp_old=0;
uchar tmp_set1 = 30;
uchar tmp_set2 = 35;
float tmp_set = 50;
float Ctrl_P = 0.8;
float PWM = 0;
float cnt=0;
//喂食、光照、氧循环相关参量
uint FeedInterval=30;//喂食间隔时间
uint FeedTime=10;//喂食时间
uint OxygenInterval=30;
uint OxygenTime=10;
uint LightInterval=30;
uint LightTime=10;
uint FeedInterval_cnt;
uint FeedTime_cnt;
uint OxygenInterval_cnt;
uint OxygenTime_cnt;
uint LightInterval_cnt;
uint LightTime_cnt;
uchar Time_cnt=0;
//设定参数相关变量
uchar SetTimeFlg=0;
uchar SetTempFlg=0;
uchar SetFeedFlg=0;
uchar SetOxygenFlg=0;
uchar SetLightFlg=0;
uchar FeedFlg=0;
uchar OxygenFlg=0;
uchar LightFlg=0;
uchar data_zancun=0;
uchar TestNum=0;
void Init_timer(void)
{
RCAP2H=(65536-38400)/256;
RCAP2L=(65536-38400)%256;
TH2=RCAP2H;
TL2=RCAP2L;
T2CON=0;
T2MOD=0;
ET2=1;
TR2=1;
EA=1;
}
void Zhengzhuan(void)
{
uchar i;
for(i=0;i128;i++)
{
IN1=0;IN2=1;IN3=1;IN4=1;
delay1ms(1);
IN1=0;IN2=0;IN3=1;IN4=1;
delay1ms(1);
IN1=1;IN2=0;IN3=1;IN4=1;
delay1ms(1);
IN1=1;IN2=0;IN3=0;IN4=1;
delay1ms(1);
IN1=1;IN2=1;IN3=0;IN4=1;
delay1ms(1);
IN1=1;IN2=1;IN3=0;IN4=0;
delay1ms(1);
IN1=1;IN2=1;IN3=1;IN4=0;
delay1ms(1);
IN1=0;IN2=1;IN3=1;IN4=0;
delay1ms(1);
}
}
void Fanzhuan(void)
{
uchar i;
for(i=0;i128;i++)
{
IN1=0;IN2=1;IN3=1;IN4=0;
delay1ms(1);
IN1=1;IN2=1;IN3=1;IN4=0;
delay1ms(1);
IN1=1;IN2=1;IN3=0;IN4=0;
delay1ms(1);
IN1=1;IN2=1;IN3=0;IN4=1;
delay1ms(1);
IN1=1;IN2=0;IN3=0;IN4=1;
delay1ms(1);
IN1=1;IN2=0;IN3=1;IN4=1;
delay1ms(1);
IN1=0;IN2=0;IN3=1;IN4=1;
delay1ms(1);
IN1=0;IN2=1;IN3=1;IN4=1;
delay1ms(1);
}
}
void PageClear(void)
{
uchar i;
write_com(0x80);
for(i=0;i16;i++)
write_data( );
write_com(0xc0);
for(i=0;i16;i++)
write
显示全部