找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机水塔源程序

[复制链接]
跳转到指定楼层
楼主
ID:213296 发表于 2017-6-21 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下载:
代码.docx (11.88 KB, 下载次数: 5)

  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. }

复制代码

水塔仿真文件下载地址:http://www.51hei.com/bbs/dpj-56456-1.html


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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