找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3742|回复: 3
收起左侧

51单片机检测雨水的控制电路 附仿真原理图和C程序

[复制链接]
ID:221505 发表于 2017-7-22 08:37 | 显示全部楼层 |阅读模式
仿真需要自己添加程序,文件包内附带有程序

51单片机 单独雨水检测功能
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
雨滴检测电路图.jpg 0.png

单片机源程序如下:
  1. /*

  2. 编写人:  邓耀荣
  3. 编写日期:2017年7月15日

  4. IO口连接情况

  5. 1        LED1             40
  6. 2        LED2                 39
  7. 3        LED3                         38
  8. 4        LED4                         37
  9. 5        LED5                         36
  10. 6        LED6                         35
  11. 7        LED7                         34
  12. 8   LED8                         33
  13. 9                                 32
  14. 10                                 31
  15. 11                                 30
  16. 12        BB                         29
  17. 13                                 28
  18. 14                                 27
  19. 15                                 26
  20. 16                                 25          继电器控制
  21. 17                                 24          水滴板
  22. 18                                 23
  23. 19                                 22
  24. 20                           21
  25. 此程序实现的功能为水滴检测控制继电器吸合,以断开主水泵的线路,当没有雨水,则延时打开主水泵的线路。
  26. */
  27. #include <reg52.h>
  28. sbit SETA = P2^3;
  29. sbit OT = P2^4;
  30. static unsigned char k = 0;
  31. sbit A1 = P1^0;
  32. sbit B1 = P1^1;
  33. sbit C1 = P1^2;
  34. sbit D1 = P1^3;
  35. sbit E1 = P1^4;
  36. sbit F1 = P1^5;
  37. sbit G1 = P1^6;
  38. sbit H1 = P1^7;
  39. sbit BB = P3^2;


  40. void Delay(unsigned long t)
  41. {
  42. while(--t);
  43. }

  44. void zhuangtai(void)
  45. {
  46.         H1 = 0;Delay(1000);BB = 0;
  47.         G1 = 0;Delay(1000);BB = 1;
  48.         F1 = 0;Delay(1000);BB = 0;
  49.         E1 = 0;Delay(1000);BB = 1;
  50.         D1 = 0;Delay(1000);BB = 0;
  51.         C1 = 0;Delay(1000);BB = 1;
  52.         B1 = 0;Delay(1000);
  53.         A:A1 = 0;Delay(9500);
  54.         A1 = 1;Delay(9500); if(SETA == 0){goto A;}
  55. }
  56. void d110ms(void){
  57.    unsigned char i,j,k;
  58.    for(i=6;i>0;i--)
  59.      for(j=18;j>0;j--)
  60.        for(k=248;k>0;k--);
  61. }

  62. void main (void)
  63. {
  64.         static unsigned char k = 0;
  65.         A1=B1=C1=D1=E1=F1=G1=H1=1;
  66.         OT = 0;
  67.         while(1)
  68.         {
  69.                  if(SETA == 0)
  70.                  {
  71.                          Delay(1000);
  72.                         if(SETA == 0)
  73.                          {
  74.                                     OT = 1;                                  
  75.                                    zhuangtai();
  76.                                    k = 255;
  77.                                    while(!SETA);
  78.                                    A1 = 0;
  79.                          }

  80.                  }
  81.                  if(k>0)
  82.                  {
  83.                          d110ms();
  84.                         k--;
  85.                           if(k == 232){A1 = 1;}
  86.                           if(k == 203){B1 = 1;}
  87.                           if(k == 174){C1 = 1;}
  88.                           if(k == 145){D1 = 1;}
  89.                           if(k == 116){E1 = 1;}
  90.                           if(k == 87) {F1 = 1;}
  91.                           if(k == 58) {G1 = 1;}
  92.                           if(k == 29) {H1 = 1;}
  93. ……………………

  94. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
STC 15F104W 单独雨水检测功能.zip (93.63 KB, 下载次数: 28)
回复

使用道具 举报

ID:221505 发表于 2017-7-22 08:39 | 显示全部楼层
修正一下, 文中用到的单片机是STC89c52RC, 光耦是PC521
回复

使用道具 举报

ID:230101 发表于 2017-8-30 17:02 | 显示全部楼层
下不了
回复

使用道具 举报

ID:396717 发表于 2019-12-3 09:59 | 显示全部楼层
楼主 ,这个能够检测雨量嘛
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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