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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

校長杯單片機比賽獲獎作品資料共享:智能盆栽

[復制鏈接]
跳轉到指定樓層
樓主
這是萌新參考很多大神的創意,自己搗鼓出來的一套系統,參加了學校比賽并獲得了獎勵,第一次使用,可能編排的不是很合理。歡迎各位下載參考。

1526812699(1).jpg (458.5 KB, 下載次數: 40)

1526812699(1).jpg

1526812792(1).jpg (145.61 KB, 下載次數: 38)

1526812792(1).jpg

Test-v7.2F.zip

689.18 KB, 下載次數: 16, 下載積分: 黑幣 -5

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2018-5-21 18:06 | 只看該作者
下面是樓主的主程序:
  1. #include  <math.h>
  2. #include  <stdio.h>       
  3. #include  <INTRINS.H>
  4. #include "reg52.h"
  5. #include "lcd.h"
  6. #include "ds18.h"
  7. #include "serc.h"
  8. #include "yl38.h"
  9. #include "bhmc.h"

  10. #ifndef uchar
  11. #define uchar unsigned char
  12. #endif
  13. #ifndef uint
  14. #define uint unsigned int
  15. #endif

  16. sbit ssm=P3^3;                        //測試數據發送引腳,每隔20s反一次
  17. sbit en=P3^2;                        //wifi模塊初始化引腳

  18. uchar as[2][21];
  19. uchar dssz[5];                        //DS18緩存
  20. uchar gysz[6];                        //GY30緩存
  21. uchar ylsz[5];                        //YL38緩存
  22. uchar code ssd[8]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//℃
  23. uchar code lux[8]={0x00,0x10,0x10,0x10,0x15,0x12,0x15,0x00};//lux
  24. uchar timee;                        //時間旗子
  25. static uchar zt;                //步進電機旗子

  26. void Delay1ms(uint c)   //誤差 0us
  27. {
  28.     uchar a,b;
  29.         for (;c>0; c--)
  30.         {
  31.                  for (b=199;b>0;b--)
  32.                  {
  33.                           for(a=1;a>0;a--);
  34.                  }      
  35.         }        
  36. }

  37. void Delay5us()                        //誤差 0ns
  38. {
  39.     _nop_();_nop_();_nop_();_nop_();
  40.     _nop_();_nop_();_nop_();_nop_();
  41.         _nop_();_nop_();_nop_();_nop_();
  42.         _nop_();_nop_();_nop_();_nop_();
  43. }

  44. void main()
  45. {
  46.         uchar j,k;                                                //檢索
  47.         LcdInit();
  48.         YL38Init();
  49.         GY30Init();
  50.         SercInit();                                                //初始化串口
  51.         ssm=0;
  52.         DS18done(dssz);                                        //操作DS18,數據存在dssz數組中
  53.         YL38done(ylsz,50,70);                         //操作YL38,數據存在ylsz數組中,后面第一個為反饋下限,小于其則啟動反饋P2^4,第二個為反饋上限,大于其則關閉反饋
  54.         GY30done(gysz,25000);                                //操作GY30,數據存在gysz數組中,后面跟著反饋限制值,超過則啟動反饋引腳P1^2,同時輸出‘T’
  55.         en=0;
  56.         DS18done(dssz);
  57.         YL38done(ylsz,50,70);
  58.         GY30done(gysz,25000);
  59.         Delay1ms(500);
  60.         en=1;                                                        //重新啟動esp
  61.         DS18done(dssz);
  62.         YL38done(ylsz,50,70);
  63.         GY30done(gysz,25000);                                                                  
  64.         DIYshow(1,ssd,8,1);                                //攝氏度℃
  65.         DIYshow(2,lux,8,2);                                //勒克斯lux
  66.         DisplayOneChar(1,1,'T');                //溫度
  67.         DisplayOneChar(2,1,':');
  68.         DisplayOneChar(10,1,'H');                //濕度
  69.         DisplayOneChar(11,1,':');
  70.         DisplayOneChar(16,1,'%');                //%
  71.         DisplayOneChar(1,2,'L');                //光照  
  72.     DisplayOneChar(2,2,':');
  73.         DisplayOneChar(10,2,'F');                //反饋
  74.         DisplayOneChar(11,2,':');
  75.         DisplayOneChar(12,2,'G');                //光照反饋前綴
  76.         DisplayOneChar(14,2,'S');                //濕度反饋前置
  77.         DisplayOneChar(3,1,dssz[0]);
  78.         DisplayOneChar(4,1,dssz[1]);
  79.         DisplayOneChar(5,1,dssz[2]);
  80.         DisplayOneChar(6,1,dssz[3]);
  81.         DisplayOneChar(7,1,dssz[4]);
  82.         DisplayOneChar(12,1,ylsz[0]);
  83.         DisplayOneChar(13,1,ylsz[1]);
  84.         DisplayOneChar(14,1,ylsz[2]);
  85.         DisplayOneChar(15,1,ylsz[3]);
  86.         DisplayOneChar(15,2,ylsz[4]);        //濕度反饋
  87.         DisplayOneChar(3,2,gysz[0]);
  88.     DisplayOneChar(4,2,gysz[1]);  
  89.     DisplayOneChar(5,2,gysz[2]);
  90.     DisplayOneChar(6,2,gysz[3]);
  91.         DisplayOneChar(7,2,gysz[4]);
  92.         DisplayOneChar(13,2,gysz[5]);        //光照反饋
  93.         DS18done(dssz);
  94.         YL38done(ylsz,50,70);
  95.         GY30done(gysz,50000);
  96.         Delay1ms(10000);               
  97.         SendString("AT+CIPMODE=1\r\n");  
  98.         Delay1ms(1000) ;
  99.         SendString("AT+CIPSTART=\"TCP\",\"tcp.lewei50.com\",9960\r\n");
  100.         Delay1ms(1000);
  101.         SendString("AT+CIPSEND\r\n");
  102.         Delay1ms(1000);
  103.         while(1)
  104.         {                   
  105.                 DS18done(dssz);                               
  106.                 GY30done(gysz,25000);
  107.                 YL38done(ylsz,50,70);
  108.                 DisplayOneChar(3,1,dssz[0]);
  109.                 DisplayOneChar(4,1,dssz[1]);
  110.                 DisplayOneChar(5,1,dssz[2]);
  111.                 DisplayOneChar(6,1,dssz[3]);
  112.                 DisplayOneChar(7,1,dssz[4]);
  113.                 DisplayOneChar(12,1,ylsz[0]);
  114.                 DisplayOneChar(13,1,ylsz[1]);
  115.                 DisplayOneChar(14,1,ylsz[2]);
  116.                 DisplayOneChar(15,1,ylsz[3]);
  117.                 DisplayOneChar(15,2,ylsz[4]);
  118.                 DisplayOneChar(3,2,gysz[0]);
  119.             DisplayOneChar(4,2,gysz[1]);  
  120.             DisplayOneChar(5,2,gysz[2]);
  121.             DisplayOneChar(6,2,gysz[3]);
  122.                 DisplayOneChar(7,2,gysz[4]);
  123.                 DisplayOneChar(13,2,gysz[5]);
  124.                 for(j=0;j<2;j++)                        //檢測是否有手動澆水命令發來單片機端,有就判斷能否啟動YLFB引腳
  125.                 {
  126.                         for(k=0;k<21;k++)
  127.                         {
  128.                                 if(as[j][k]=='r'&& as[j][k-1]=='e' || as[j][k]=='e'&& as[j][k-1]=='t')
  129.                                 {
  130.                                         SendString("{\"method\":\"response\",\"result\":{\"successful\":true,\"message\":\"Done\"}}&^!\r\n");
  131.                                         if(ylsz[0]=='5' || ylsz[0]=='6')                        //檢測當前濕度能否開啟水泵
  132.                                         {
  133.                                                 YLFB=1;
  134.                                         }       
  135.                                 }
  136.                         }
  137.                 }
  138.                 if(zt==0 && gysz[5]=='T' && ylsz[4]=='F')
  139.                 {
  140.                         FG();
  141.                         zt=1;
  142.                 }
  143.                 if(zt==1 && gysz[5]=='F' && ylsz[4]=='F')
  144.                 {
  145.                         RG();
  146.                         zt=0;
  147.                 }
  148.                 if(timee==1)                                //每隔20秒執行一次
  149.                 {
  150.                         SendString("{\"method\": \"update\",\"gatewayNo\": \"01\",\"userkey\": \"f40a5569285c418c9744d8d627a168ed\"}&^!\r\n");
  151.                         SendString("{\"method\":\"upload\",\"data\":[{\"Name\":\"t1\",\"Value\":\"");
  152.                         SendoString(dssz,5);
  153.                         SendString("\"},{\"Name\":\"x1\",\"Value\":\"");
  154.                         SendoString(gysz,5);
  155.                         SendString("\"},{\"Name\":\"h1\",\"Value\":\"");
  156.                         SendoString(ylsz,4);
  157.                         SendString("\"}]}&^!\r\n");
  158.                         timee=0;
  159.                 }
  160.         }
  161. }

  162. void timer() interrupt 1
  163. {
  164.         static uchar time;
  165.         TH0=0X04;                        //50ms初值
  166.         TL0=0X00;
  167.         time++;
  168.         if(time==250)
  169.         {
  170.                 time=0;
  171.                 timee=1;
  172.                 ssm=~ssm;
  173.         }
  174. }

  175. void ser()interrupt 4 //串口中斷
  176. {
  177.         static uchar io;
  178.         static uchar jj;
  179.         TI=0;
  180.         RI=0;
  181.         as[jj][io]=SBUF;
  182.         io++;
  183.         if(io==21)
  184.         {
  185.                 io=0;
  186.                 switch(jj)
  187.                 {
  188.                         case 0:jj=1;break;
  189.                         case 1:jj=0;break;
  190.                 }
  191.         }
  192. }
復制代碼
回復

使用道具 舉報

板凳
ID:70490 發表于 2018-5-21 21:03 | 只看該作者
很有意思,加個太陽能電池板就更好了。
回復

使用道具 舉報

地板
ID:183659 發表于 2018-5-22 00:21 來自觸屏版 | 只看該作者
厲害了樓主
回復

使用道具 舉報

5#
ID:183659 發表于 2018-5-22 00:31 來自觸屏版 | 只看該作者
怎么沒有電路圖呢
回復

使用道具 舉報

6#
ID:332241 發表于 2018-7-9 16:29 | 只看該作者
資源出問題了!有沒有搞錯
回復

使用道具 舉報

7#
ID:379452 發表于 2018-11-9 10:49 | 只看該作者
太強大了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩专区 | 91国内精品久久 | 成人免费视频播放 | 欧美日韩在线综合 | 久久久久无码国产精品一区 | 亚洲第一天堂 | 黑人巨大精品 | 91精产国品一二三区 | 亚洲成人精品一区 | 国产精品性做久久久久久 | 色综合久久天天综合网 | 国产精品美女一区二区 | 国产精品美女久久久久久久久久久 | 国产日韩欧美激情 | 日韩欧美在线视频 | 美女黄网 | 欧美一区二区三区在线看 | 国产精品视频网 | 免费亚洲成人 | 久久久蜜桃一区二区人 | 狠狠躁18三区二区一区 | 911网站大全在线观看 | 欧美日韩中文在线 | 国产日韩精品视频 | 成人区一区二区三区 | 久久久久久久久久久久91 | 国产精品日韩欧美一区二区三区 | 综合色站导航 | 日韩精品在线一区 | av中文网| 欧美a级网站 | 久久青视频 | 99久久99| 国产香蕉视频在线播放 | 日韩成人在线播放 | 成人性视频免费网站 | 成人福利在线观看 | 成人精品影院 | 成人欧美一区二区三区黑人孕妇 | 欧美成人猛片aaaaaaa | 欧美bondage紧缚视频 |