找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4691|回复: 8
打印 上一主题 下一主题
收起左侧

基于单片机的水塔水位控制系统仿真设计(proteus仿真)

  [复制链接]
跳转到指定楼层
楼主
系统程序如下
#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(shuiman==0&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位6时发生
                        {
                                dianji=1;//关电机
                                state=1;//电机工作指示灯熄灭
            P0=table[6];//显示水位深度:6**** 已满
                                delay02s();//延时一段时间让数码管显示给人以提示:水已满
                        }
                                //水位5
                        if(shuiman==1&&sw5==0&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位5时发生
                        {
                                P0=table[5];//显示水位深度:5
                        }
                        //水位4
                        if(shuiman==1&&sw5==1&&sw4==0&&sw3==1&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位4时发生
                        {
                                P0=table[4];//显示水位深度:4
                        }
                        //水位3
                        if(shuiman==1&&sw5==1&&sw4==1&&sw3==0&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位3时发生
                        {
                                  P0=table[3];//显示水位深度:5
                        }
                        //水位2
              if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==0&&sw1==1)//当唯一的闭合一个传感器单元:水位2时发生
                        {
                                P0=table[2];//显示水位深度:2
                        }
                        //水位低
                        if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==0)//当唯一的闭合一个传感器单元:水位1时发生
                        {
                                dianji=0;//开电机
                                state=0;//电机工作指示灯打开
                        P0=table[1];//显示水位深度:1
                        }
                        //手工上水
                    if(shougong==0)//当按手工上水按钮时发生
                        {  
                      dianji=0;//开电机
                                state=0;//电机工作指示灯打开
                                P0=table[0];//显示0表示手工上水已有反应
                                delay02s();//延时一段时间让数码管显示给人以提示:已开始手工上水
                        }
               
                }
         
}


33.png (62.5 KB, 下载次数: 134)

33.png

单片机水塔控制系统.7z

69.57 KB, 下载次数: 114, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:770645 发表于 2020-6-11 10:28 | 只看该作者
感谢楼主
回复

使用道具 举报

板凳
ID:292518 发表于 2021-8-6 10:49 | 只看该作者
这个单片机,有好多空的针脚用不到,能不能一些少针脚的单片机?比如:?
回复

使用道具 举报

地板
ID:292518 发表于 2021-8-6 10:54 | 只看该作者
数码管是共阳管?还是共阴管?
回复

使用道具 举报

5#
ID:472504 发表于 2021-8-20 08:59 | 只看该作者
long2018 发表于 2021-8-6 10:54
数码管是共阳管?还是共阴管?

看电路图不是很明显吗?
回复

使用道具 举报

6#
ID:822775 发表于 2021-10-14 09:50 | 只看该作者
代码是没有问题的,就是个可以怎么修改一下成为那种水位自动检测的,然后自动上水啊,而且电机工作的方式没看懂,加水的时候能不能显示水位自动显示往上加????
回复

使用道具 举报

7#
ID:982180 发表于 2021-11-18 16:08 | 只看该作者
这个程序我复制到keil编译为啥显示main.c(73): error C300: unterminated comment
main.c(73): error C141: syntax error near ''   能解答一下吗? 谢谢
回复

使用道具 举报

8#
ID:1073903 发表于 2023-5-22 20:32 | 只看该作者
程序不全,编译有错哎,能发一下完整的程序吗?
回复

使用道具 举报

9#
ID:262 发表于 2023-5-23 02:24 | 只看该作者
yyyyyll 发表于 2023-5-22 20:32
程序不全,编译有错哎,能发一下完整的程序吗?

差一个大括号 你重新下载
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表