3、基于51单片机的智能水箱控制系统-温度-PH值-水位(仿真+程序+原理图)

基于51单片机的智能水箱控制系统

1、主要功能

51单片机检测水箱内温度,ph值;使用pid算法控制温度到设置值;普通控制ph值到设定值;温度低,启动加热;PH值过高,启动进水;PH值过低,启动进料。水位过高,启动放水。
在这里插入图片描述

2、实验结果

在这里插入图片描述

3、仿真工程

方案验证仿真软件使用的是Proteus仿真文件,Proteus软件版本为8.8;如需下载软件,可以在公众号后台回复:Proteus
在这里插入图片描述

4、原理图

在这里插入图片描述

5、程序源码

在这里插入图片描述

/**
  ************************************* Copyright ****************************** 
  File name: // 文件名
  Author:Kevin
  Version: //版本号
  Description: // 用于详细说明此程序文件完成的主要功能
  Others: // 其它内容的说明
  Log: // 公众号:Kevin的学习站
  ******************************************************************************
 */

#include "reg51.h"
#include "lcd1602.h"
#include "Ds18b20.h"
#include "ADC0832.h"
#include"pid_pwm.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^2;//按钮
sbit k2=P3^3;
sbit k3=P3^4;
sbit k4=P3^5;
sbit k5=P3^6;
sbit k6=P3^7;
sbit out1=P2^4;//输出控制
sbit out2=P2^5;
sbit out3=P2^6;
sbit out4=P2^7;

uchar time=0,mode=0;//系统变量
uchar wendu=0,ph=0,water=0;//温度,pH值,水位
uchar lim1=25,lim2=7,lim3=100;//阀值
uchar disp1[]="T:000 P:00 H:000";
uchar disp2[]="  000   00   000";
uchar pwm=0;
//主函数
void main()
{
	uchar i=0;
	init_1602();
	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//PWM输出
		if(i<99)
		 	i++;
		else
			i=0;
		if(i<pwm)
			out4=0;
		else
			out4=1;
		//按键检测
		if(!k1)
		{
			if(lim1<120)
				lim1++;
			while(!k1);
		}
		if(!k2)
		{
			if(lim1>0)
				lim1--;
			while(!k2);
		}
		if(!k3)
		{
			if(lim2<14)
				lim2++;
			while(!k3);
		}
		if(!k4)
		{
			if(lim2>0)
				lim2--;
			while(!k4);
		}
		if(!k5)
		{
			if(lim3<127)
				lim3++;
			while(!k5);
		}
		if(!k6)
		{
			if(lim3>0)
				lim3--;
			while(!k6);
		}
	}
}
//定时器中断
void Timer0() interrupt 1
{
	uint i=0;
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		Ds18b20ReadTemp();//测温
		wendu=ds18b20_temp;
		ph=ADC(1);//PH
		i=ph;
		ph=i*14/127;
		water=ADC(2);//水位
		//显示
		disp1[2]=wendu/100+0x30;
		disp1[3]=wendu%100/10+0x30;
		disp1[4]=wendu%10+0x30;
		disp1[8]=ph/10+0x30;
		disp1[9]=ph%10+0x30;
		disp1[13]=water/100+0x30;
		disp1[14]=water%100/10+0x30;
		disp1[15]=water%10+0x30;
		write_string(1,0,disp1);
		disp2[2]=lim1/100+0x30;
		disp2[3]=lim1%100/10+0x30;
		disp2[4]=lim1%10+0x30;
		disp2[8]=lim2/10+0x30;
		disp2[9]=lim2%10+0x30;
		disp2[13]=lim3/100+0x30;
		disp2[14]=lim3%100/10+0x30;
		disp2[15]=lim3%10+0x30;
		write_string(2,0,disp2);
		//PID控制
		pwm=PID(lim1,wendu);
		//PH值控制
		if(ph>lim2)
			out1=0;
		else
			out1=1;
		if(ph<lim2)
			out3=0;
		else
			out3=1;
		//水位控制
		if(water>lim3)
			out2=0;
		else
			out2=1;
	}
	TH0=0X3C;
	TL0=0XB0;
}

6、资源获取

在这里插入图片描述

项目的仿真和程序工程已经放在下面公众号里面,可以关注公众号:Kevin的学习站,输入关键字:“智能水箱”,就可以获取啦!创作不易,但您的点赞、关注、收藏就是对我最大的鼓励!
在这里插入图片描述

单片机系统设计的目的是应用单片机控制技术,以8051单片机为核心控制庆丰热电公司的800立方米的水箱水位,并实现了报警和手动、自动切换功能。该系统操作方便、性能良好,比较符合电厂生产用水系统控制的需要。本文还详细的给出了相关的硬件框图和软件流程图,并编制了该汇编语言程序。   目前,8051单片机在工业检测领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,以增强人机对话的功能。89C51是Intel公司生产的一种单片机,在一小块芯片上集成了一个微型计算机的各个组成部分。每一个单片机包括:一个8位的微型处理器CPU;一个256K的片内数据存储器RAM;片内程序存储器ROM;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个部分通过内部总线相连接。下面简单介绍下其各个部分的功能。   中央处理器CPU是单片微型计算机的指挥、执行中心,由它读人用户程序,并逐条执行指令,它是由8位算术/逻辑运算部件(简称ALu)、定时/控制部件,若干寄存器A、B、B5w、5P以及16位程序计数器(Pc)和数据指针寄存器(DM)等主要部件组成。算术逻辑单元的硬件结构与典型微型机相似。它具有对8位信息进行 、-、x、/ 四则运算和逻辑与、或、异或、取反、清“0”等运算,并具有判跳、转移、数据传送等功能,此外还提供存放中间结果及常用数据寄存器。控制器部件是由指令寄存器、程序计数器Pc、定时与控制电路等组成的。指令寄存器中存放指令代码。   枷执行指令时,从程序存储器中取来经译码器译码后,根据不同指令由定时与控制电路发出相应的控制信号,送到存储器、运算器或I/o接口电路,完成指令功能。程序计数器Pc 程序计数器Pc用来存放下一条将要执行的指令,共16位.可对以K字节的程序存储器直接寻址c指令执行结束后,Pc计数器自动增加,指向下一条要执行的指令地址。   CPU功能,总的来说是以不同的方式,执行各种指令。不同的指令其功自略异。有的指令涉及到枷各寄存器之间的关系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的则与外部器件如外部程序存储器发生联系。事实上,cRJ是通过复杂的时序电路完成不同的指令功能。所谓cRJ的时序是指控制器控照指今功能发出一系列在时间上有一定次序的信号,控制和启动一部分逻辑电路,完成某种操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin的学习站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值