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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機溫室控制系統(tǒng)(源代碼和仿真)

[復制鏈接]
跳轉到指定樓層
樓主
ID:258375 發(fā)表于 2017-12-7 01:02 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
溫室控制仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg52.h>
  2. #include"sht10.h"
  3. #include"ds1302.h"
  4. #include"lcd1602.h"
  5. unsigned char TempBuffer[4];
  6. unsigned char humBuffer[4];
  7. unsigned char set[4];
  8. unsigned char set_temp=20,set_hum=20;
  9. unsigned char mode=6;
  10. //unsigned char Key3_val=0;
  11. sbit JIARE=P2^5;//定義加熱 降溫 加濕 干燥四個端口
  12. sbit JIANGWEN=P2^4;
  13. sbit JIASHI=P2^6;
  14. sbit GANZAO=P2^7;

  15. sbit JIARE_FLAG=P1^5;//定義模式標志位
  16. sbit JIANGWEN_FLAG=P1^6;
  17. sbit JIASHI_FLAG=P1^7;
  18. sbit GANZAO_FLAG=P3^6;
  19. sbit ZIDONG_FLAG=P3^7;

  20. sbit KEY0=P3^2;//定義按鍵
  21. sbit KEY1=P3^3;
  22. sbit KEY2=P3^4;
  23. void delay_ms(unsigned char k)//延時k ms
  24. {
  25.         unsigned char i,j;
  26.         for(i=0;i<k;i++)
  27.         for(j=0;j<110;j++);
  28. }
  29. //INT 數(shù)據(jù)轉字符串
  30. /*t為int型數(shù)據(jù)用n個字節(jié)存放*/
  31. void IntToStr(unsigned int t, unsigned char *str, unsigned char n)
  32. {
  33.         unsigned char a[5]; char i, j;                                         
  34.         a[0]=(t/10000)%10;                    
  35.         a[1]=(t/1000)%10;                                             
  36.         a[2]=(t/100)%10;                                             
  37.         a[3]=(t/10)%10;                                               
  38.         a[4]=(t/1)%10;                                                
  39.                                                       
  40.         for(i=0; i<5; i++)                        
  41.                 a[i]=a[i]+'0';                                            
  42.         for(i=0; a[i]=='0' && i<=3; i++);                             
  43.         for(j=5-n; j<i; j++)                              
  44.                 { *str=' ';  str++; }                                    
  45.         for(; i<5; i++)                                               
  46.                 { *str=a[i]; str++; }               
  47.         *str='\0';
  48. }
  49. void Int_init(void)//初始化外部中斷
  50. {
  51.         IT0=1;
  52.         EX0=1;
  53.         IT1=1;
  54.         EX1=1;
  55.         PX1=1;
  56.         EA=1;
  57. }
  58. void TH_set(void)//顯示設定的溫濕度
  59. {
  60.    GotoXY(6,1);
  61.          IntToStr(set_temp,&set[0],2);
  62.          Print(set);
  63.          GotoXY(10,1);
  64.          IntToStr(set_hum,&set[0],2);
  65.          Print(set);
  66.          GotoXY(15,1);
  67.          IntToStr(mode,&set[0],1);
  68.          Print(set);
  69. }
  70. void Key2Scan(void)//按鍵掃描
  71. {
  72.         static unsigned char key_status=1;
  73.   if(key_status&&(KEY2==0))
  74.         {
  75.                 delay_ms(5);
  76.                 if(KEY2==0)
  77.                 { key_status=0;
  78.                         if(mode==6){set_temp--;if(set_temp<16)set_temp++;}
  79.                         else if(mode==7){set_hum--;if(set_hum<20)set_hum++;}
  80.     }
  81.         }else if(KEY2)key_status=1;
  82. }
  83. void LED_show_mode(void)//模式指示燈顯示
  84. {
  85.                 if(mode==1){JIARE_FLAG=0;JIANGWEN_FLAG=1;JIASHI_FLAG=1;GANZAO_FLAG=1;ZIDONG_FLAG=1;}
  86.                 else if(mode==2){JIARE_FLAG=1;JIANGWEN_FLAG=0;JIASHI_FLAG=1;GANZAO_FLAG=1;ZIDONG_FLAG=1;}
  87.                 else if(mode==3){JIARE_FLAG=1;JIANGWEN_FLAG=1;JIASHI_FLAG=0;GANZAO_FLAG=1;ZIDONG_FLAG=1;}
  88.                 else if(mode==4){JIARE_FLAG=1;JIANGWEN_FLAG=1;JIASHI_FLAG=1;GANZAO_FLAG=0;ZIDONG_FLAG=1;}
  89.                 else if(mode==5){JIARE_FLAG=1;JIANGWEN_FLAG=1;JIASHI_FLAG=1;GANZAO_FLAG=1;ZIDONG_FLAG=0;}
  90.     else if(mode==6){JIARE_FLAG=1;JIANGWEN_FLAG=1;JIASHI_FLAG=1;GANZAO_FLAG=1;ZIDONG_FLAG=1;}
  91.     else if(mode==7){JIARE_FLAG=1;JIANGWEN_FLAG=1;JIASHI_FLAG=1;GANZAO_FLAG=1;ZIDONG_FLAG=1;}
  92. }
  93. void ModeNot5_handler(void)//模式1到4的處理函數(shù)
  94. {
  95.         if(mode==1){JIARE=1;JIANGWEN=0;JIASHI=0;GANZAO=0;}
  96.         else if(mode==2){JIARE=0;JIANGWEN=1;JIASHI=0;GANZAO=0;}
  97.         else if(mode==3){JIARE=0;JIANGWEN=0;JIASHI=1;GANZAO=0;}
  98.         else if(mode==4){JIARE=0;JIANGWEN=0;JIASHI=0;GANZAO=1;}
  99. //  else if(mode==6){JIARE=0;JIANGWEN=0;JIASHI=0;GANZAO=0;}
  100. //  else if(mode==7){JIARE=0;JIANGWEN=0;JIASHI=0;GANZAO=0;}
  101. }
  102. void Mode5handler(void)//模式5到7的處理函數(shù)
  103. {

  104.     if(mode>=5)
  105.                 {

  106.                          if(shidu>set_hum){JIASHI=0;GANZAO=1;}
  107.                          else if(shidu<set_hum){JIASHI=1;GANZAO=0;}
  108.                          else if(shidu==set_hum){JIASHI=0;GANZAO=0;}
  109.                         
  110.                          if(wendu>set_temp){JIARE=0;JIANGWEN=1;}
  111.                          else if(wendu<set_temp){JIARE=1;JIANGWEN=0;}
  112.                          else if(wendu==set_temp){JIARE=0;JIANGWEN=0;}
  113.     }
  114. }
  115. void main()
  116. {
  117.          JIARE=JIANGWEN=JIASHI=GANZAO=0;
  118.          Int_init();
  119.           LCD_Initial();
  120.          s_connectionreset();//sht10的初始化
  121.          GotoXY(0,0);
  122.          Print("Real:T:   R:  %");
  123.          GotoXY(0,1);
  124.          Print("Set:T:  R:  %M: ");
  125.          TH_set();
  126.          while(1)
  127.          {
  128.                  
  129.            Get_TH();//獲取溫濕度
  130.                  GotoXY(7,0);
  131.            IntToStr(wendu,&TempBuffer[0],2);
  132.                  Print(TempBuffer);
  133.                  GotoXY(12,0);
  134.            IntToStr(shidu,&humBuffer[0],2);
  135.                  Print(humBuffer);
  136.                         
  137.                  TH_set();
  138.                   LED_show_mode();
  139.                   ModeNot5_handler();
  140.                   Mode5handler();
  141.                   Key2Scan();
  142.          }
  143. ……………………

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

所有資料51hei提供下載:
智能溫室控制系統(tǒng).rar (193.99 KB, 下載次數(shù): 132)
動態(tài)圖片演示.rar (8.41 MB, 下載次數(shù): 82)
proteus8鏈接:
游客,本帖隱藏的內(nèi)容需要積分高于 10 才可瀏覽,您當前積分為 0



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

使用道具 舉報

沙發(fā)
ID:295989 發(fā)表于 2018-6-4 17:30 | 只看該作者
鏈接掛掉了
回復

使用道具 舉報

板凳
ID:438324 發(fā)表于 2018-12-28 10:27 | 只看該作者
我打不開仿真,顯示PDS.EXE停止工作
回復

使用道具 舉報

地板
ID:313557 發(fā)表于 2019-1-16 12:55 | 只看該作者
樓主鏈接沒了
回復

使用道具 舉報

5#
ID:358467 發(fā)表于 2019-4-30 14:22 | 只看該作者
原理圖打不開是怎么回事呀 我今天剛買的
回復

使用道具 舉報

6#
ID:661538 發(fā)表于 2020-4-27 11:42 | 只看該作者
連接沒了
回復

使用道具 舉報

7#
ID:712167 發(fā)表于 2020-5-25 22:50 | 只看該作者
哥,你這里面的DS1302代碼是多余的吧
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一二区视频 | 亚洲日韩中文字幕 | 午夜成人在线视频 | 黄色av网站在线观看 | 免费黄色日本 | 亚洲国产成人精品女人久久久 | 伊人久久大香线 | 日韩波多野结衣 | 国产日韩免费观看 | 久久极品 | 久久婷婷av | 人人干人人干人人 | 男女视频在线免费观看 | 看毛片网站 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 精品国产99| 97超碰在线免费 | 国产一二三区电影 | 激情91| 国产精品色 | 国产亚洲精品美女久久久久久久久久 | 久久精品欧美一区二区三区麻豆 | 日韩一区二区三区在线 | 视频一区二区在线观看 | 欧美理伦片在线播放 | 亚洲精品自在在线观看 | 精品久久国产 | 久久久久久久电影 | 欧美午夜精品久久久久久浪潮 | 精品一区二区三区在线观看国产 | 蜜桃av一区二区三区 | 精品欧美在线观看 | 国产一级片在线观看视频 | 久久亚洲国产精品 | 亚洲日本成人 | 久久久久久国产精品久久 | 欧美激情a∨在线视频播放 成人免费共享视频 | 国产一区二区三区四区 | 成人免费在线视频 | 日韩免费电影 | 国产精品久久久久久久久久久久久久 |