欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

小型PM2.5環境檢測系統,不說話上圖 附單片機源碼

[復制鏈接]
跳轉到指定樓層
樓主
前幾天做的小東西小型環境檢測系統,能測pm2.5,代碼附上,有需要的自取


主程序:
  1. #include<reg52.h>
  2. #include "delay.h"
  3. #include "LCD12864.h"
  4. #include "PM2_5.h"
  5. #include "BMP180.h"
  6. #include "DHT11.h"
  7. #define uint unsigned int
  8. #define uchar unsigned char

  9. sbit waring=P1^3;
  10. void main()
  11. {
  12.         lcd_init();
  13.         Init_BMP085();
  14.         Init_PM2_5();

  15.         while(1)
  16.         {
  17.         bmp085Convert();
  18.         RH();
  19.         
  20.         lcd_pos(0,0);
  21.         display_string("pm2.5:");
  22.         if(read_pm()>5)
  23.         display_num(read_pm());
  24.         else
  25.         display_num(5);
  26.         display_string("ug/m3");
  27.         display_string("    ");

  28.         lcd_pos(1,0);
  29.         display_string("T:");
  30.         display_num(temperature/10);
  31.         display_string(".");
  32.         display_num(temperature%10);
  33.         display_string("'C");
  34.         display_string("  ");
  35.          
  36.         display_string("H:");
  37.         display_num(RHdataH);
  38.         display_string("%");

  39.         lcd_pos(2,0);
  40.         display_string("pre:");
  41.         display_num(pressure/1000);
  42.     display_string(".");
  43.         display_num(pressure%1000);
  44.         display_string("kpa");

  45.         lcd_pos(3,0);
  46.         display_string("smo:");
  47.         if(read_pm()>200)
  48.         {
  49.                 display_string("High");        
  50.                 waring=0;
  51.         }
  52.         else
  53.         {
  54.                 display_string("low");
  55.                 display_string(" ");
  56.                 waring=1;
  57.         }
  58.         display_string("Al:");        
  59.         display_num(Altitude);
  60.         display_string("m");
  61.         display_string(" ");
  62.         delay_ms(200);
  63.         }

  64.                
  65. }
復制代碼


單片機PM2.5檢測程序:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define K_PM  820
  5. void senddata(uchar dat);
  6. uint read_pm();
  7. uchar cal[7]={0};
  8. //            cal[0]:起始位 0xAA
  9. //            cal[1]:Vout(H)
  10. //            cal[2]:Vout(L)
  11. //            cal[3]:Vref(H)
  12. //            cal[4]:Vref(L)
  13. //            cal[5]:校驗位
  14. //            cal[6]:結束位0xFF


  15. uchar buf;
  16. uchar sum;
  17. int i=0;
  18. float Vo;
  19. void Init_PM2_5()
  20. {
  21.         SCON=0x50;
  22.         PCON=0x00;

  23.         TMOD=0x20;
  24.         EA=1;
  25.         ES=1;
  26.         TL1=0xF4;
  27.         TH1=0xF4;
  28.         TR1=1;        
  29. }

  30. uint read_pm()
  31. {
  32.         return (uint)(K_PM*Vo);
  33. }


  34. void serial() interrupt 4
  35. {
  36.         ES=0;
  37.         RI=0;
  38.         buf=SBUF;
  39.         senddata(buf);
  40.         ES=1;
  41. }


  42. void senddata(uchar dat)
  43. {
  44.         
  45.         if(dat==0xAA)
  46.         {
  47.                 i=0;
  48.                 cal[i]=dat;
  49.         }
  50.         else
  51.         {
  52.                 i=i+1;
  53.                 cal[i]=dat;
  54.                 if(i==6)
  55.                 {
  56.                         sum=cal[1]+cal[2]+cal[3]+cal[4];
  57.                         if(sum==cal[5]&&cal[6]==0xFF)
  58.                         {         
  59.                         
  60.                            
  61. //                                for(i=0;i<=6;i++)
  62. //                                {
  63. //                                        SBUF=cal[i];
  64. //                                        while(!TI);
  65. //                                        TI=0;
  66. //                                }
  67.                                 Vo=(cal[1]*256+cal[2])/1024.0*5;
  68. //                                        SBUF=cal[1];
  69. //                                        while(!TI);
  70. //                                        TI=0;
  71. //
  72. //
  73. //                                        SBUF=cal[2];
  74. //                                        while(!TI);
  75. //                                        TI=0;

  76.                         }
  77.                 }
  78.         }
  79. }


復制代碼



所有資料下載:
小型環境檢測器.zip (88.36 KB, 下載次數: 125)

評分

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

查看全部評分

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

使用道具 舉報

6#
ID:225681 發表于 2019-5-17 13:54 | 只看該作者
沒有電路圖啊,誰給一份電路圖
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
板凳
ID:13282 發表于 2019-5-4 11:00 | 只看該作者
不錯的分享!
回復

使用道具 舉報

沙發
ID:63317 發表于 2019-1-8 16:56 | 只看該作者
謝謝分享資料
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表