基于51单片机液位控制系统仿真设计(proteus仿真)
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于51单片机液位控制系统仿真设计(proteus仿真)相关的知识,希望对你有一定的参考价值。
基于51单片机液位控制系统仿真设计(proteus仿真)
Proteus
仿真STC98C52
、1位共阴是数码管、液位传感器(常开型)
功能讲解
当水位低于
1
时,自动启动电机,加水,当水位达到6
时,自动停止;当水位没有达到6
时,可以手动启动电机加水,直到水位达到6
,才会停止加水。
实例代码
#include <STC89C5xRC.H>
unsigned char code table[]= {0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f
};//共阴数码管
sbit shuiman=P1^0;//水满
sbit sw5=P1^1;//水位5
sbit sw4=P1^2;//水位4
sbit sw3=P1^3;//水位3
sbit sw2=P1^4;//水位2
sbit sw1=P1^5;//水位1
/*液位指示灯*/
sbit level1=P2^1;
sbit level2=P2^2;
sbit level3=P2^3;
sbit level4=P2^4;
sbit level5=P2^5;
sbit level6=P2^6;
sbit shougong=P1^6;//手工上水
sbit dianji=P1^7;//电机控制位
sbit state=P3^7;//电机工作指示
/*延时程序*/
//毫秒级延时
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z; x>>0; x--)
for(y=110; y>>0; y--);
}
main()
{
P0=0;
P2=0xff;
P1=0xff;
while(1)
{ /*************************常开型触发传感器****************************/
//水满
if(shuiman==0)//当水位6时发生,立即停机
{
dianji=1;//关电机
state=1;//电机工作指示灯熄灭
P2=0xBF;
P0=table[6];//显示水位深度:6**** 已满
delay(3000);//延时一段时间让数码管显示给人以提示:水已满
}
//水位5
if(shuiman==1&&sw5==0)//当水位5时发生
{
P0=table[5];//显示水位深度:5
P2 =0xDF;
}
//水位4
if(shuiman==1&&sw5==1&&sw4==0)//当水位4时发生
{
P0=table[4];//显示水位深度:4
P2=0xEF;
}
//水位3
if(shuiman==1&&sw5==1&&sw4==1&&sw3==0)//当水位3时发生
{
P0=table[3];//显示水位深度:5
P2=0xF7;
}
//水位2
if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==0)//当水位2时发生
{
P0=table[2];//显示水位深度:2
P2=0xFB;
}
//水位低
if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//当水位1时发生
{
dianji=0;//开电机
state=0;//电机工作指示灯打开
P0=table[1];//显示水位深度:1
P2=0xFD;
}
//手工上水(水位没有满的情况下才可以启动)
if(shougong==0)//当按手工上水按钮时发生
{
if(shuiman==1){//判断液位是否满
dianji=0;//开电机
state=0;//电机工作指示灯打开
// P0=table[0];//显示0表示手工上水已有反应
delay(2000);//延时一段时间让数码管显示给人以提示:已开始手工上水
}
}
}
}
以上是关于基于51单片机液位控制系统仿真设计(proteus仿真)的主要内容,如果未能解决你的问题,请参考以下文章
基于51单片机的病床呼叫系统proteus仿真设计(仿真+源码+报告)
基于单片机家庭防盗报警系统设计基于51单片机的智能照明控制系统基于单片机电子琴音乐盒电路仿真系统基于单片机超声波液位测量仪系统设计