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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機谷物干燥系統(tǒng)設計 附程序+Proteus仿真圖

[復制鏈接]
跳轉到指定樓層
樓主
ID:541897 發(fā)表于 2019-9-4 21:19 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
自己制作的設計,自己做的一個谷物干燥,里面一些是模擬溫濕度的上升和下降,僅供參考。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


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

  2. #include <intrins.h>

  3. #include <math.h>
  4. #include <stdio.h>
  5. #include <1602.h>
  6. #include <sht11.h>     
  7. #define uchar unsigned char
  8. #define uint  unsigned  int
  9. uint temp,humi;
  10. value humi_val,temp_val;     //定義兩個共同體,一個用于濕度,一個用于溫度
  11. uchar error;                 //用于檢驗是否出現(xiàn)錯誤
  12. uchar date;
  13. uchar checksum;              //CRC
  14. uchar TEMP_data[7];          //用于顯示溫度
  15. uchar HUMI_data[6];          //用于記顯示濕度
  16. uchar presskeynum;    //按鍵次數(shù)變量
  17. uchar code word1[]={" Put in grain:"};
  18. uchar code word2[]={"..........100%"};
  19. uchar code word3[]={" take out grain"};
  20. uchar code word4[]={"  Grain drying"};
  21. sbit k1=P2^0; //放入谷物按鍵
  22. sbit k2=P2^1; //開始干燥按鍵
  23. sbit k3=P2^2; //暫停干燥按鍵
  24. sbit k4=P2^3;// 取出谷物按鍵
  25. sbit led1=P1^4;         //熱風機工作指示燈
  26. sbit led2=P1^5;        //冷風機工作指示燈
  27. sbit motor1=P1^0; //熱風機
  28. sbit motor2=P1^1; //冷風機
  29. sbit P2_6=P2^6;

  30. //********延時函數(shù)*********
  31. void delay(uint z)  //z為毫秒數(shù)

  32. {
  33.      int a,b;
  34.      for(a=z;a>0;a--)
  35.      for(b=120;b>0;b--);
  36. }
  37. void temp_humi()  //z為毫秒數(shù)

  38. {
  39.       GotoXY(0,0);                                       //選擇溫度顯示位置
  40.       Print("Temp:      C");                             //5格空格
  41.       GotoXY(0,1);                                       //選擇濕度顯示位置
  42.       Print("Humi:      %");                            //5格空格                           
  43.       GotoXY(5,0);                                      //設置溫度顯示位置
  44.       TEMP_data[0]=temp/1000+'0';                     //溫度百位
  45.       if (TEMP_data[0]==0x30)
  46.           TEMP_data[0]=0x20;
  47.       TEMP_data[1]=temp%1000/100+'0';                //溫度十位      
  48.       if (TEMP_data[1]==0x30 && TEMP_data[0]!=0x30)
  49.           TEMP_data[1]=0x20;
  50.       TEMP_data[2]=temp%100/10+'0';                   //溫度個位
  51.       TEMP_data[3]=0x2e;                              //小數(shù)點
  52.       TEMP_data[4]=temp%10+'0';                       //溫度小數(shù)點后第一位            
  53.       TEMP_data[5]=0xdf;                              //顯示溫度符號℃
  54.       TEMP_data[6]='\0';
  55.       Print(TEMP_data);                                //輸出溫度               
  56.       GotoXY(5,1);                                    //設置濕度顯示位置
  57.           HUMI_data[0]=humi/1000+'0';                     //濕度百位                           
  58.       if (HUMI_data[0]==0x30)
  59.           HUMI_data[0]=0x20;
  60.       HUMI_data[1]=humi%1000/100+'0';          //濕度十位      
  61.       HUMI_data[2]=humi%100/10+'0';            //濕度個位
  62.       HUMI_data[3]='.' ;                       //小數(shù)點
  63.       HUMI_data[4]=humi%10+'0';                //濕度小數(shù)點后第一位   
  64.       HUMI_data[5]='\0';
  65.       Print(HUMI_data);                         //輸出濕度                                                     
  66. }
  67. void key()
  68. {
  69.      if(presskeynum==2)//開始干燥
  70.      {
  71.          if(k3==0)    // 按下暫停按鍵
  72.          {
  73.             delay(5);
  74.                         while(k3==0);       //加上此句必須松按鍵才處理
  75.                         while(1)
  76.                          {
  77.                            led1=led2=1;
  78.                            motor1=motor2=0;
  79.                            delay(300);
  80.                            if(k3==0)  {while(k3==0); break;}
  81.                          }
  82.          }      
  83.       }
  84.           else
  85.        {
  86.             if(k1==0)//放入谷物                           
  87.           {
  88.              delay(5);
  89.                          presskeynum=1;
  90.              while(k1==0);       //加上此句必須松按鍵才處理
  91.                     LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  92.                    }
  93.                      
  94.                  if(presskeynum==4)//溫濕度檢測
  95.                   {
  96.                    if (k2==0) //調(diào)整按鍵檢測
  97.             {
  98.                delay(5);
  99.                presskeynum=2;
  100.                while(k2==0);         //若一直按下,循環(huán)
  101.             }        
  102.                   }
  103.              if(k4==0)// 取出谷物按鍵
  104.           {
  105.              delay(5);
  106.                          presskeynum=3;
  107.              while(k3==0);       //加上此句必須松按鍵才處理
  108.                     LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  109.            }
  110.         }
  111.    }
  112.       


  113. void main()
  114. {

  115.      k1=k2=k3=k4=1;
  116.          motor1=motor2=0;
  117.          P2_6=0;
  118.      LCD_Initial();    //液晶初始化
  119.      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  120.                   
  121.      while(1)
  122.         {
  123.                      key();
  124.                if(presskeynum==0)                      //初始界面
  125.               {
  126.                                          GotoXY (0,0);
  127.                          Print(word4);   
  128.                }
  129.                      
  130.               if(presskeynum==1)                      //放入谷物時顯示的內(nèi)容
  131.               {
  132.                                         GotoXY (0,0);
  133.                                     Print(word1);
  134.                                         delay(5);
  135.                     GotoXY(2,1);
  136.                     Print_slow(word2);
  137.                                         presskeynum=4;
  138.                                         delay(200);
  139.                                         LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  140.                }

  141. //*****************************************************************************************************
  142.                                           //此處為proteus模擬顯示熱冷風機工作時溫濕度的變化,現(xiàn)實中僅需對溫濕度測量即可
  143. //****************************************************************************************************                          
  144.                           if(presskeynum==2)  //開始干燥時顯示的內(nèi)容
  145.                {
  146.                                         while(temp<820)                 //溫度上限設為82℃
  147.                                         {
  148.                                                   key();
  149.                                           led1=0;
  150.                                           motor1=1;
  151.                                           delay(300);
  152.                                           temp_humi();      
  153.                                           temp+=35;                         //步進單位為3.5℃
  154.                                           humi-=12;                         //步進單位為1.2%
  155.                                           }
  156.                                           if(temp>820)                 //冷風機開始工作
  157.                                           {
  158.                                                   while(humi>200)          //濕度下限設為20%
  159.                                                   {
  160.                                                           delay(500);
  161.                                                          key();
  162.                                                          motor1=0;
  163.                                                          motor2=1;
  164.                                                          led1=1;
  165.                                                          led2=0;
  166.                                                         temp-=35;
  167.                                                         humi-=12;
  168.                                                         temp_humi();   
  169.                                                   }
  170.                                           }                       
  171.                                               motor2=0;
  172.                                            led2=1;
  173.                                            presskeynum=5;                         //跳入空集,加快按鍵按下效果
  174.                }

  175.               if(presskeynum==3)                      //取出谷物時顯示的內(nèi)容
  176.               {
  177.                            delay(100);
  178.                     GotoXY (0,0);
  179.                              Print(word3);
  180.                     delay(5);
  181.                     GotoXY (1,1);
  182.                     Print_slow(word2);
  183.                                         delay(1000);
  184.                                         LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏      
  185.                                         presskeynum=0;                                          //跳轉至初始界面
  186.                }
  187.                            
  188.                            if(presskeynum==4)         //測量溫濕度
  189.              {                                                                  
  190.               error=0;                                           //初始化error=0,即沒有錯誤
  191.              error+=s_measure((unsigned char*)&temp_val.i,&checksum,TEMP); //溫度測量
  192.              error+=s_measure((unsigned char*)&humi_val.i,&checksum,HUMI); //濕度測量
  193.              if(error!=0)
  194.                          s_connectionreset();                 //如果發(fā)生錯誤,系統(tǒng)復位
  195.              else
  196.                  {
  197.                                           humi_val.f=(float)humi_val.i;                   //轉換為浮點數(shù)
  198.                       temp_val.f=(float)temp_val.i;                   //轉換為浮點數(shù)
  199.                       calc_sth10(&humi_val.f,&temp_val.f);            //修正相對濕度及溫度
  200.                       temp=temp_val.f*10;
  201.                       humi=humi_val.f*10;
  202.                                           temp_humi();  //顯示溫濕度                 
  203.                      
  204.                  }  //else
  205.              }  //if
  206.                                                                                             
  207.          }//while
  208. }   //mian
復制代碼

所有資料51hei提供下載:
谷物干燥.rar (104.32 KB, 下載次數(shù): 29)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:700941 發(fā)表于 2020-4-25 13:21 來自觸屏版 | 只看該作者
有些文檔嗎?想?yún)⒖家幌拢?/td>
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久香蕉网 | 国产精品一区二 | 亚洲精品v日韩精品 | 欧美日韩亚洲国产综合 | 日韩一区二区免费视频 | 欧美激情区 | 亚洲一区二区中文字幕 | 国产精品久久久久久久久久久免费看 | 一区二区三区四区免费在线观看 | 日本激情视频在线播放 | 欧美无乱码久久久免费午夜一区 | 免费激情网站 | 亚洲国产激情 | 国家aaa的一级看片 h片在线看 | 精一区二区| 久久国产精品一区二区三区 | 黄毛片| 久久性色| 久久国产精品久久国产精品 | 欧美三级三级三级爽爽爽 | 亚洲免费网址 | 成人在线免费观看视频 | 国产日韩欧美 | 黄色日本片 | 国产精品日本一区二区在线播放 | 91免费看片 | 精品免费视频一区二区 | 国产精品久久久久久久 | 午夜影院网站 | 9999精品视频 | 久久专区 | 午夜日韩 | 国产精品久久久久无码av | 欧美.com| 成人av免费 | 欧美黄色片 | 欧产日产国产精品视频 | 欧美第一页 | 国产999精品久久久久久 | 日韩一级黄色毛片 | av免费网站在线 |