200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 单片机水塔控制系统 PROTEUS 和51单片机教程(附仿真文件+源代码)

单片机水塔控制系统 PROTEUS 和51单片机教程(附仿真文件+源代码)

时间:2022-09-01 19:41:17

相关推荐

单片机水塔控制系统 PROTEUS 和51单片机教程(附仿真文件+源代码)

单片机水塔控制系统 PROTEUS 和51单片机教程

功能:单片机智能控制水塔系统,实时检测水塔水位,并能实时显示,自动控制继电器和电机使水位保持在黑水瓶

仿真图如下所示

程序参考C语言源代码如下:

#include<reg51.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 shougong=P1^6;//手工上水

sbit dianji=P1^7;//电机控制位

sbit state=P3^7;//电机工作指示

/延时程序/

void delay02s(void)

{

unsigned char i,j,k;

for(i=100;i>0;i–)

for(j=100;j>0;j–)

for(k=248;k>0;k–);

}

main()

{

P0=0;

while(1)

{ /传感器是设计的一次只能触发一个传感器单?***

//水满

if(shuiman0&&sw51&&sw41&&sw31&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位6时发生

{

dianji=1;//关电机

state=1;//电机工作指示灯熄灭

P0=table[6];//显示水位深度:6**** 已满

delay02s();//延时一段时间让数码管显示给人以提示:水已满

}

//水位5

if(shuiman1&&sw50&&sw41&&sw31&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位5时发生

{

P0=table[5];//显示水位深度:5

}

//水位4

if(shuiman1&&sw51&&sw40&&sw31&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位4时发生

{

P0=table[4];//显示水位深度:4

}

//水位3

if(shuiman1&&sw51&&sw41&&sw30&&sw21&&sw11)//当唯一的闭合一个传感器单元:水位3时发生

{

P0=table[3];//显示水位深度:5

}

//水位2

if(shuiman1&&sw51&&sw41&&sw31&&sw20&&sw11)//当唯一的闭合一个传感器单元:水位2时发生

{

P0=table[2];//显示水位深度:2

}

//水位低

if(shuiman1&&sw51&&sw41&&sw31&&sw21&&sw10)//当唯一的闭合一个传感器单元:水位1时发生

{

dianji=0;//开电机

state=0;//电机工作指示灯打开

P0=table[1];//显示水位深度:1

}

//手工上水

if(shougong==0)//当按手工上水按钮时发生

{

dianji=0;//开电机

state=0;//电机工作指示灯打开

P0=table[0];//显示0表示手工上水已有反应

delay02s();//延时一段时间让数码管显示给人以提示:已开始手工上水

}

}

}

最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,

如果需要 程序完整源代码和 设计文件,请在下方留言或者私信我,看到后会第一时间回复。

谢谢!

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