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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3289|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

求大神解釋一下PM2.5程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:207993 發(fā)表于 2017-6-5 13:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <REGX52.H>         
#include "LCD1602.h"
#include "dht11.c"
#include "BH1750.c"  

float dis_temp;
uint dis_temp1;
uchar ms=0;
bit s0=0;

uchar UART_Upload[9];  // Upload上傳  accord主動(dòng)
uint pm_rateH,pm_rateL,pm_particle,pm_density,pm_URV;//低脈沖率高位。低脈沖率低位, 比率,顆粒,濃度  PM_URV  pm上限值
uchar  accord=0;
void  Multiple_Read_BH1750();      //連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)

void display()
{

   LCD1602_write(0,0x80);
   LCD1602_writebyte("PM2.5:");
   LCD1602_write(1,0x30+pm_density/1000%10);   
   LCD1602_write(1,0x30+pm_density/100%10);   
   LCD1602_write(1,0x30+pm_density/10%10);
    LCD1602_writebyte(".");      
   LCD1602_write(1,0x30+pm_density%10);   
   LCD1602_writebyte("ug/m3");   






   LCD1602_write(0,0xC0);  
   dis_temp1=(uint)(dis_temp);                 
   if(dis_temp1>9999)
   LCD1602_write(1,0x30+dis_temp1/10000);
   else LCD1602_write(1,' ');
   if(dis_temp1>999) LCD1602_write(1,0x30+dis_temp1%10000/1000);
   else LCD1602_write(1,' ');
   if(dis_temp1>99)   LCD1602_write(1,0x30+dis_temp1%1000/100);
   else LCD1602_write(1,' ');
   if(dis_temp1>9)   LCD1602_write(1,0x30+dis_temp1%100/10);
   else LCD1602_write(1,' ');   
   LCD1602_write(1,0x30+dis_temp1%10);
   LCD1602_writebyte("Lx ");         


   LCD1602_write(1,0x30+U8RH_data_H/10%10);   
   LCD1602_write(1,0x30+U8RH_data_H%10);  
   LCD1602_writebyte("% ");         

   LCD1602_write(1,0x30+U8T_data_H/10%10);   
   LCD1602_write(1,0x30+U8T_data_H%10);  
   LCD1602_write(1,0xdf);     
   LCD1602_writebyte("C");   

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

使用道具 舉報(bào)

沙發(fā)
ID:207993 發(fā)表于 2017-6-5 16:15 | 只看該作者
快來個(gè)大神幫幫忙啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:151348 發(fā)表于 2017-6-5 16:43 | 只看該作者
程序似乎不全、、、
回復(fù)

使用道具 舉報(bào)

地板
ID:82765 發(fā)表于 2017-6-5 16:51 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

5#
ID:207993 發(fā)表于 2017-6-5 18:31 | 只看該作者
cjjcjj1 發(fā)表于 2017-6-5 16:51
你好!你的程序里面沒有 PM2.5 的代碼,從頭文件來看,這個(gè)程序是溫濕度和光照度顯示的

#include <REGX52.H>         
#include "LCD1602.h"
#include "dht11.c"
#include "BH1750.c"  

float dis_temp;
uint dis_temp1;
uchar ms=0;
bit s0=0;

uchar UART_Upload[9];  // Upload上傳  accord主動(dòng)
uint pm_rateH,pm_rateL,pm_particle,pm_density,pm_URV;//低脈沖率高位。低脈沖率低位, 比率,顆粒,濃度  PM_URV  pm上限值
uchar  accord=0;
void  Multiple_Read_BH1750();      //連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)

void display()
{
        
   LCD1602_write(0,0x80);
   LCD1602_writebyte("PM2.5:");
   LCD1602_write(1,0x30+pm_density/1000%10);   
   LCD1602_write(1,0x30+pm_density/100%10);   
   LCD1602_write(1,0x30+pm_density/10%10);
    LCD1602_writebyte(".");      
   LCD1602_write(1,0x30+pm_density%10);   
   LCD1602_writebyte("ug/m3");   
                                                               
   



                  
   LCD1602_write(0,0xC0);  
   dis_temp1=(uint)(dis_temp);                 
   if(dis_temp1>9999)
   LCD1602_write(1,0x30+dis_temp1/10000);
   else LCD1602_write(1,' ');
   if(dis_temp1>999) LCD1602_write(1,0x30+dis_temp1%10000/1000);
   else LCD1602_write(1,' ');
   if(dis_temp1>99)   LCD1602_write(1,0x30+dis_temp1%1000/100);
   else LCD1602_write(1,' ');
   if(dis_temp1>9)   LCD1602_write(1,0x30+dis_temp1%100/10);
   else LCD1602_write(1,' ');   
   LCD1602_write(1,0x30+dis_temp1%10);
   LCD1602_writebyte("Lx ");         
   
   
   LCD1602_write(1,0x30+U8RH_data_H/10%10);   
   LCD1602_write(1,0x30+U8RH_data_H%10);  
   LCD1602_writebyte("% ");          
     
   LCD1602_write(1,0x30+U8T_data_H/10%10);   
   LCD1602_write(1,0x30+U8T_data_H%10);  
   LCD1602_write(1,0xdf);     
   LCD1602_writebyte("C");   
   
   
                                
}

void UART_Init(void)
{
T2CON = 0x34;
RCAP2H = 0xFF;
RCAP2L = 0xDC;
TH2 = 0xFF;
TL2 = 0xDC;
TR2 = 1;      
SCON = 0x50;
ES = 1;  
}

void main()
{
    UART_Init();
        Init_BH1750();      //初始化BH1750     
        TMOD=0x01;
        TH0=0x3C;
        TL0=0xb0;
        ET0=1;
        TR0=1;
        EA=1;
          
    LCD1602_cls();
   while(1)
    {
           RH();  
           display();
                  
        }
}







void time0() interrupt 1
{
   TH0=0x3C;
   TL0=0xb0;
   ms++;
   if(ms>=20)
            {
        ms=0;
              Single_Write_BH1750(0x01);   // power on
                Single_Write_BH1750(0x10);   // H- resolution mode
                delay_nms(80);               //延時(shí)180ms
                 Multiple_Read_BH1750();      //連續(xù)讀出數(shù)據(jù),存儲(chǔ)在BUF中
                dis_data=BUF[0];
                dis_data=(dis_data<<8)+BUF[1];//合成數(shù)據(jù),即光照數(shù)據(jù)
                dis_temp=(float)dis_data/1.2;                           

         }
      
     
}


void serial () interrupt 4
{
        uchar temp_pM;
        if(RI==1)
        {
                RI=0;
                UART_Upload[accord]=SBUF; //串口接收一個(gè)數(shù)據(jù)
                accord++;
                if(UART_Upload[0]!=0xff)  //判斷接收到的第一個(gè)數(shù)據(jù)為oxff  數(shù)據(jù)錯(cuò)誤 數(shù)組指針清零
                {
                        accord=0;
                }
                if(UART_Upload[1]!=0x18)//判斷接收到的第2個(gè)為0x18  數(shù)據(jù)錯(cuò)誤 數(shù)組指針清零
                {
                        accord=0;
                }
                if(accord>8)                 //九個(gè)數(shù)據(jù)為一組
                {
                        accord=0; //接收完一組數(shù)據(jù)的標(biāo)志,置0 校驗(yàn)         
                }               
                if(accord==0)                //接收一組數(shù)據(jù)后進(jìn)行一次校驗(yàn)和
                {                                         //校驗(yàn)7為數(shù)據(jù)位的和取反加一等于校驗(yàn)值
                        if((UART_Upload[0]==0xff)&&(UART_Upload[1]=0x18)&&(UART_Upload[2]==0x00))//判斷前三位數(shù)據(jù)是否正確 是進(jìn)行校驗(yàn)
                        {       
                                temp_pM=~(UART_Upload[1]+UART_Upload[2]+UART_Upload[3]+UART_Upload[4]+UART_Upload[5]+UART_Upload[6]+UART_Upload[7])+1;        //校驗(yàn)和
                                  if(temp_pM=UART_Upload[8])
                                {
                                        pm_rateH=UART_Upload[3];
                                        pm_rateL=UART_Upload[4];
                                        pm_density=(UART_Upload[3]*100+UART_Upload[4])*1.014705; //濃度數(shù)據(jù)處理          數(shù)據(jù)擴(kuò)大了十倍
                                        /*我們繪出一個(gè)檢驗(yàn)報(bào)告,比如在345ug/m3的情況下,zph01輸出占空比34%。我們理論認(rèn)為在0-34%對(duì)應(yīng)的0-345ug/m3。他們是 線性比例關(guān)系*/                       
                                }
                        }
       
                }

        }
}
回復(fù)

使用道具 舉報(bào)

6#
ID:170270 發(fā)表于 2017-6-6 13:13 | 只看該作者
從程序看 PM2.5是串口的 接受的數(shù)據(jù)按協(xié)議解析就可以
回復(fù)

使用道具 舉報(bào)

7#
ID:207993 發(fā)表于 2017-6-6 19:51 | 只看該作者
依然是你 發(fā)表于 2017-6-6 13:13
從程序看 PM2.5是串口的 接受的數(shù)據(jù)按協(xié)議解析就可以

那測(cè)量光照的是什么原理  什么中斷啊 求詳解
回復(fù)

使用道具 舉報(bào)

8#
ID:170270 發(fā)表于 2017-6-7 08:58 | 只看該作者
一個(gè)被程序折磨 發(fā)表于 2017-6-6 19:51
那測(cè)量光照的是什么原理  什么中斷啊 求詳解

光照是集成芯片 有特定的通訊協(xié)議
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品亚洲精品国产欧美 | 日韩一区二区三区在线观看 | 国产一区二区三区久久久久久久久 | 一区二区免费视频 | 亚洲精品二三区 | 成人久久久久 | 精品少妇一区二区三区日产乱码 | 在线观看视频91 | 日韩在线中文字幕 | 午夜丰满寂寞少妇精品 | 久久久123 | 午夜在线观看视频 | 蜜桃视频在线观看www社区 | 日韩欧美国产一区二区 | 国产精品久久一区二区三区 | 久久精品免费 | 婷婷色国产偷v国产偷v小说 | 99视频在线看| 欧美性一级 | 精品久久国产老人久久综合 | 亚洲视频www| 91精品国产91久久综合桃花 | 96av麻豆蜜桃一区二区 | 91精品国产综合久久久久久蜜臀 | 大香网伊人 | 国产精品视频一区二区三区不卡 | 日韩在线播放视频 | 毛片视频免费观看 | 成人在线观看亚洲 | 免费一级黄色 | 久草福利| 久久99精品视频 | 九九久久久 | 91麻豆精品国产91久久久久久 | 国产精品大全 | 国产精品久久一区二区三区 | 国产成人免费视频网站高清观看视频 | 亚洲视频免费 | 国产乱码精品一区二区三区中文 | 久久久久国产一区二区三区 | 香蕉视频91 |