1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 3 基于51单片机的智能水箱控制系统-温度-PH值-水位(仿真+程序+原理图)

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

时间:2019-06-04 01:33:01

相关推荐

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

目录

基于51单片机的智能水箱控制系统1、主要功能2、实验结果3、仿真工程4、原理图5、程序源码6、资源获取

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

1、主要功能

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

2、实验结果

3、仿真工程

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

4、原理图

5、程序源码

/*************************************** Copyright ****************************** File name: // 文件名Author:KevinVersion: //版本号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 intsbit 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++;elsei=0;if(i<pwm)out4=0;elseout4=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.5stime++;else{time=0;Ds18b20ReadTemp();//测温wendu=ds18b20_temp;ph=ADC(1);//PHi=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;elseout1=1;if(ph<lim2)out3=0;elseout3=1;//水位控制if(water>lim3)out2=0;elseout2=1;}TH0=0X3C;TL0=0XB0;}

6、资源获取

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。