久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5671|回復: 1
打印 上一主題 下一主題
收起左側

水塔自動送水工程 帶單片機源碼 實物

[復制鏈接]
跳轉到指定樓層
樓主
固態繼電器需要接在 接觸器 上控制,否則水泵功率太大會燒壞繼電器。

電路板的實物圖:


單片機源程序源碼如下:
  1. #include<reg52.h>

  2. #define uint unsigned int
  3. #define uchar unsigned char


  4. sbit key3=P2^1;                                         //澆地(一直開)
  5. //sbit key3=P3^6;                                         //澆地(一直開)
  6. sbit key2=P3^7;                                               //自動檢測,定時送水
  7. //sbit key2=P3^5;                                               //自動檢測,定時送水
  8. sbit zd=P3^2;                                          //        外部中斷(水滿保護)

  9. sbit jdq=P1^5;                                    //固態繼電器
  10. //sbit jdq=P1^0;                                    //固態繼電器


  11. sbit key1=P2^5;                                         //LED燈 開關
  12. //sbit key1=P3^1;                                         //LED燈 開關
  13. sbit hm=P0^5;                                         //蜂鳴器
  14. //sbit hm=P2^0;                                         //蜂鳴器
  15. sbit led=P0^7;                                         // LED燈
  16. //sbit led=P1^3;                                         // LED燈
  17. sbit ir=P3^3;                                         //遙控接收        (控制LED燈)


  18. uint num,numt0 ;                                                //全局變量

  19. /*****延時子函數 *****/
  20. void delayms(uint xms)
  21. {
  22.         uint i,j;
  23.         for(i=xms;i>0;i--)
  24.                 for(j=110;j>0;j--);
  25. }


  26. void jias()
  27. {
  28.         if(num==6000)                                //設置澆菜后進中斷  延時時間 5 分鐘,防止管道還沒接回水塔的水路(澆地、水塔二選一接)
  29.         {
  30.                 num=0;
  31.                 jdq=0;
  32.                 hm=1;
  33.                 delayms(200);
  34.                 hm=0;
  35.                 TR0=0;
  36.         }
  37.         if(numt0==3600)                                //設置延時時間 3 分鐘
  38.         {
  39.                 numt0=0;
  40.              jdq=0;
  41.                 hm=0;
  42.                 TR0=1;                                        //設置滿缸后延時5分鐘等待下一次
  43.                    TR1=0;
  44.         
  45.         }
  46. }



  47. void di()
  48. {
  49.         hm=1;
  50.         delayms(1000);
  51.         hm=0;
  52.         delayms(1000);
  53. }  

  54. /*****獨立按鍵檢測 *****/

  55. void keyscan()
  56. {
  57.          
  58.                  /***按鍵控制 電燈亮滅***/
  59.         if(key1==0)                                        //按鍵“1”按下
  60.         {                                                        //去抖延時
  61.                 delayms(10);                        //再次檢測按鍵“1” 按下
  62.                 if(key1==0)
  63.                 {        
  64.                                 led=~led;                          // LED燈亮滅 (每按一次取反)
  65.                                 while(!key1);                   //等待 開關松開               


  66.                 }
  67.                  
  68.         }

  69.            /***一直開繼電器(澆菜使用)***/

  70.                         if(key2==0)                          //檢測按鍵“2”
  71.                          {
  72.                                 delayms(10);
  73.                                 if(key2==0)
  74.                         {               
  75.                                         jdq=1;                         //        開繼電器
  76.                                    // delayms(100);                                  解決有時不閉合,轟鳴器響,中斷 1 工作,(這里加延時改善---造成繼電器不閉合,待分析原因)                        
  77.                                         di();
  78.                                         while(!key2);         //等待 開關松開
  79.                                         delayms(10);
  80.                                         while(!key2);         //等待 開關松開
  81.                                         jdq=0;                  //        關閉繼電器  
  82.                                         TR0=1;                                 //        啟動定時器 0
  83.                                 }                        
  84.                         }                           

  85.                  
  86.                   
  87.     /***自動檢測水位控制上水,開定時器到達時間,默認水滿停電***/
  88.                            
  89.                                  
  90.                 if(TR0==0)
  91.                 {
  92.                         if(key3==0)                               //檢測按鍵“3”
  93.                          {
  94.                                 delayms(10);
  95.                                 if(key3==0)
  96.                                 {                        
  97.                                     jdq=1;                                //        開繼電器        
  98.                                         TR1=1;                                //        啟動定時器 1        
  99.                                         hm=1;                                                                  
  100.             //        while(!key3);        這里如果檢測松手,如果沒抽水,key2開關一直沒松開,就一直等待松手,程序就死在這里
  101.                                 }
  102.                         }
  103.                 }               
  104.         
  105. }
  106. /***** 初始化函數 ******/
  107. void init()
  108. {

  109.         TMOD=0x11;
  110.         TH0=(65536-45872)/256;
  111.         TL0=(65536-45872)%256;

  112.          TH1=(65536-45872)/256;
  113.         TL1=(65536-45872)%256;

  114.         EA=1;                                           //  開總中斷
  115.            EX0=1;                                           //  開外中斷 0
  116.         ET0=1;                                           //  開定時器 0
  117.         ET1=1;                                           //  開定時器 1
  118.                                                                                           
  119.         TR0=0;
  120.         TR1=0;
  121.         jdq=0;
  122.         hm=0;
  123.         led=0;                                                
  124. }



  125. void main()
  126. {
  127.         init();
  128.         while(1)
  129.         {
  130.         
  131.                 keyscan();
  132.                 jias();

  133.         }
  134. }


  135. /**** 檢測水漫過水箱 外部中斷子函數 ****/
  136. void exter1() interrupt 0
  137. {
  138.         jdq=0;
  139.         TR0=0;
  140.         TR1=0;
  141.         while(zd==0)
  142.         {
  143.                 hm=1;
  144.                 delayms(1000);
  145.                 hm=0;
  146.                 delayms(90000);
  147.         }
  148. }

  149. ……………………

  150. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
自動送水.2.rar (36.95 KB, 下載次數: 48)


評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:96682 發表于 2017-6-9 23:54 | 只看該作者
LZ,古董級接觸器和電線很多年沒見到了,沒個完整的電路圖人家不好入手啊!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美福利视频 | 毛片久久久 | 天天草天天射 | 日韩成人在线观看 | 色网在线看 | 中文字幕第7页 | 91精品一区二区三区久久久久 | 在线播放国产一区二区三区 | 51ⅴ精品国产91久久久久久 | 精产国产伦理一二三区 | 污片在线免费观看 | 巨大黑人极品videos精品 | 国产乱精品一区二区三区 | 欧美视频精品 | 久久久久久电影 | 国产高清在线 | 欧美一区二区三区久久精品 | 日韩成人在线一区 | 色一阁| 国产精品久久久久婷婷二区次 | 午夜精品一区二区三区在线播放 | 在线国产视频 | 久久精品一区二区三区四区 | 日本在线观看网址 | 午夜精品一区二区三区在线视 | 国产在线精品一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 韩国精品在线 | 久久精品免费 | 久久国产日韩欧美 | 久久久国产一区二区三区 | 亚洲精品欧美一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 久久国产视频网站 | av中文字幕网 | 91久久久久久久久久久久久 | 欧美福利专区 | 亚洲一区久久 | 成年人免费网站 | 久久高清| 成人久久18免费网站麻豆 |