基于51单片机的基于模糊控制的水温控制系统设计

 

51基于模糊控制的水温控制系统-LCD1602-KEY-RELAY-固态继电器

本设计由STC89C52单片机电路+数字温度传感器DS18B20电路+按键电路+固态继电器控制电路+LCD1602液晶显示电路+电源电路组成。

1、LCD1602液晶实时显示当前温度值和设置的温度阈值,温度阈值可以通过按键设置。

2、如果温度超过阈值,则继电器断开,如果温度低于阈值,则继电器闭合。

3、采用模糊算法控制。

 

​

#include "1602.h"
#include "delay.h"		 

xdata unsigned char aucMHHi[]={
    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
    0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
   
};

xdata unsigned char aucMHLo[]={
    0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,
    0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E,
    0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9,
    0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
    0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
    0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,
    0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D,
   
};
xdata char temperture[9];

#define SETDOWN 0x01	//设置下限标志
#define SETUP 0x02		//设置上限标志
#define MH_LEN 0x09	 	//模糊运算处理长度
#define MID_PWM 0x05	//pwm对比值
	
sbit key1=P2^0;	//引脚定义
sbit key2=P2^1;
sbit key3=P2^2;
sbit relay=P1^0;

unsigned int setData=25;         //设置值
unsigned char DisFlag=0;	

  

posted @ 2020-12-17 14:04  MCU创新DIY  阅读(219)  评论(0)    收藏  举报