找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2725|回复: 1
收起左侧

单片机水塔控制系统+proteus仿真+keil源程序

[复制链接]
ID:324366 发表于 2018-5-28 10:10 | 显示全部楼层 |阅读模式
单片机水塔控制系统仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
QQ截图20180528083112.png QQ截图20180528083154.png QQ截图20180528083238.png

单片机源程序如下:
  1. #include<reg51.h>
  2. //定义一个数组,使数码管显示的数字和数组元素的下标相等
  3. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
  4.                             0x6d,0x7d,0x07,0x7f,0x6f};
  5. sbit shuiman=P1^0;//水满
  6. sbit sw5=P1^1;//水位5
  7. sbit sw4=P1^2;//水位4
  8. sbit sw3=P1^3;//水位3
  9. sbit sw2=P1^4;//水位2
  10. sbit sw1=P1^5;//水位1
  11. sbit shougong=P1^6;//手工上水
  12. sbit dianji=P1^7;//电机控制位
  13. sbit state=P3^7;//电机工作指示
  14. /*延时程序*/
  15. void delay02s(void)
  16. {
  17.   unsigned char i,j,k;
  18.   for(i=100;i>0;i--)
  19.   for(j=100;j>0;j--)
  20.   for(k=248;k>0;k--);
  21. }
  22. main()
  23. {
  24.         P0=0;
  25.         while(1)
  26.                 {  /*************************传感器是设计的一次只能触发一个传感器单?****************************
  27.               //水满
  28.                         if(shuiman==0&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位6时发生
  29.                         {
  30.                                 dianji=1;//关电机
  31.                                 state=1;//电机工作指示灯熄灭
  32.             P0=table[6];//显示水位深度:6**** 已满
  33.                                 delay02s();//延时一段时间让数码管显示给人以提示:水已满
  34.                         }
  35.                                 //水位5
  36.                         if(shuiman==1&&sw5==0&&sw4==1&&sw3==1&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位5时发生
  37.                         {
  38.                                 P0=table[5];//显示水位深度:5
  39.                         }
  40.                         //水位4
  41.                         if(shuiman==1&&sw5==1&&sw4==0&&sw3==1&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位4时发生
  42.                         {
  43.                                 P0=table[4];//显示水位深度:4
  44.                         }
  45.                         //水位3
  46.                         if(shuiman==1&&sw5==1&&sw4==1&&sw3==0&&sw2==1&&sw1==1)//当唯一的闭合一个传感器单元:水位3时发生
  47.                         {
  48.                                   P0=table[3];//显示水位深度:5
  49.                         }
  50.                         //水位2
  51.               if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==0&&sw1==1)//当唯一的闭合一个传感器单元:水位2时发生
  52.                         {
  53.                                 P0=table[2];//显示水位深度:2
  54.                         }
  55.                         //水位低
  56.                         if(shuiman==1&&sw5==1&&sw4==1&&sw3==1&&sw2==1&&sw1==0)//当唯一的闭合一个传感器单元:水位1时发生
  57.                         {
  58.                                 dianji=0;//开电机
  59.                                 state=0;//电机工作指示灯打开
  60.                         P0=table[1];//显示水位深度:1
  61.                         }
  62.                         //手工上水
  63.                     if(shougong==0)//当按手工上水按钮时发生
  64.                         {  
  65.                       dianji=0;//开电机
  66.                                 state=0;//电机工作指示灯打开
  67.                                 P0=table[0];//显示0表示手工上水已有反应
  68.                                 delay02s();//延时一段时间让数码管显示给人以提示:已开始手工上水
  69.                         }
  70.                
  71.                 }
  72.          
  73. }
复制代码

所有资料51hei提供下载:
单片机水塔控制系统.zip (38.82 KB, 下载次数: 36)

评分

参与人数 2黑币 +10 收起 理由
refus + 5 共享资料的黑币奖励!
JIAJIAN + 5 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:357378 发表于 2018-6-24 11:07 | 显示全部楼层
此分享证明有用
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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