历史上的今天
返回首页

历史上的今天

今天是:2024年12月28日(星期六)

2021年12月28日 | 项目实战:51单片机控制的小型PM2.5环境检测系统

2021-12-28 来源:eefocus

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序参考主程序如下:


#include

#include “delay.h”

#include “LCD12864.h”

#include “PM2_5.h”

#include “BMP180.h”

#include “DHT11.h”

#define uint unsigned int

#define uchar unsigned char


sbit waring=P1^3;

void main()

{

lcd_init();

Init_BMP085();

Init_PM2_5();


while(1)

{

bmp085Convert();

RH();


lcd_pos(0,0);

display_string(“pm2.5:”);

if(read_pm()>5)

display_num(read_pm());

else

display_num(5);

display_string(“ug/m3”);

display_string(" ");


lcd_pos(1,0);

display_string(“T:”);

display_num(temperature/10);

display_string(".");

display_num(temperature%10);

display_string("'C");

display_string(" ");


display_string(“H:”);

display_num(RHdataH);

display_string("%");


lcd_pos(2,0);

display_string(“pre:”);

display_num(pressure/1000);

display_string(".");

display_num(pressure%1000);

display_string(“kpa”);


lcd_pos(3,0);

display_string(“smo:”);

if(read_pm()>200)

{

display_string(“High”);

waring=0;

}

else

{

display_string(“low”);

display_string(" “);

waring=1;

}

display_string(“Al:”);

display_num(Altitude);

display_string(“m”);

display_string(” ");

delay_ms(200);

}

}


单片机PM2.5检测程序:


#include

#define uint unsigned int

#define uchar unsigned char

#define K_PM 820

void senddata(uchar dat);

uint read_pm();

uchar cal[7]={0};

// cal[0]:起始位 0xAA

// cal[1]:Vout(H)

// cal[2]:Vout(L)

// cal[3]:Vref(H)

// cal[4]:Vref(L)

// cal[5]:校验位

// cal[6]:结束位0xFF


uchar buf;

uchar sum;

int i=0;

float Vo;

void Init_PM2_5()

{

SCON=0x50;

PCON=0x00;


TMOD=0x20;

EA=1;

ES=1;

TL1=0xF4;

TH1=0xF4;

TR1=1;

}


uint read_pm()

{

return (uint)(K_PM*Vo);

}


void serial() interrupt 4

{

ES=0;

RI=0;

buf=SBUF;

senddata(buf);

ES=1;

}


void senddata(uchar dat)

{

if(dat0xAA)

{

i=0;

cal[i]=dat;

}

else

{

i=i+1;

cal[i]=dat;

if(i6)

{

sum=cal[1]+cal[2]+cal[3]+cal[4];

if(sum==cal[5]&&cal[6]==0xFF)

{

// for(i=0;i<=6;i++)

// {

// SBUF=cal[i];

// while(!TI);

// TI=0;

// }

Vo=(cal[1]256+cal[2])/1024.05;

// SBUF=cal[1];

// while(!TI);

// TI=0;

//

//

// SBUF=cal[2];

// while(!TI);

// TI=0;


}

}

}

}

推荐阅读

史海拾趣

思博科技(Cybermax)公司的发展小趣事

为了确保产品质量和客户满意度,思博科技高度重视质量管理体系建设。公司引进了先进的质量管理理念和工具,建立了完善的质量管理体系。同时,公司还通过了ISO9001质量管理体系认证和多项行业认证。这些认证不仅证明了公司在质量管理方面的实力,还为客户提供了可靠的质量保证。

BILIN公司的发展小趣事

在快速发展的过程中,思博科技始终关注企业文化建设和社会责任。公司倡导“创新、协作、诚信、共赢”的价值观,为员工提供了良好的工作环境和发展机会。同时,思博科技还积极参与社会公益活动,回馈社会。这些举措不仅提升了公司的品牌形象和声誉,还增强了员工的归属感和凝聚力。

Alpha 3 Manufacturing公司的发展小趣事

Alpha 3 Manufacturing公司深知产品质量是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格的把控。同时,公司还引入了先进的生产设备和检测仪器,确保产品的质量和性能达到国际先进水平。此外,公司还定期对生产过程进行审查和改进,不断提高生产效率和产品质量。

Equator Technologies公司的发展小趣事

Equator Technologies公司成立于XX年代初,当时正值数字视频技术飞速发展的时代。公司凭借其在视频DSP(数字信号处理器)领域的独特见解和技术实力,迅速崭露头角。起初,Equator主要聚焦于提供高性能的视频处理解决方案,用于改善电视和其他显示设备的画质。通过不断的技术创新和产品迭代,Equator逐渐在市场中建立了良好的口碑。

ETC公司的发展小趣事

在ETC领域,速通科技积极寻求与行业内其他企业的合作。公司与多家银行、保险公司等金融机构建立了合作关系,共同推广ETC系统的应用。此外,速通科技还积极参与行业标准的制定和修订工作,推动ETC行业的健康发展。通过与行业内其他企业的合作,速通科技实现了共赢发展,共同推动了ETC行业的进步。

安信可(Ai)公司的发展小趣事

在不断创新和突破的过程中,安信可不断推出具有创新性的产品。例如,公司推出的WiFi+BLE蓝牙二合一的Ai-WB1系列模组,凭借其高可靠度、高集成度、应用灵活、高性价比等特点,深受市场欢迎。这款产品不仅为智能设备提供了无线通信连接能力,还广泛应用于工业、商业、消费等各类市场,进一步拓展了安信可的应用领域。

问答坊 | AI 解惑

数字电视标准之争

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 数字电视标准之争:市场说了算 2006-7-20     持续了六年的数字电视地面传输标准之争终于尘埃落定。曾经水火不相容的清华、上交大、广科院三个标准方案最终将以集合各自特色技 ...…

查看全部问答>

电源管理产品供应商 在中国如何开展斗法

据有关市场调研公司公布的报告指出,从1998年到2002年,半导体行业的年复合增长率低于3%。而相对而言,电源管理产品的增长率却远远高于全行业平均水平,IGBT、功率MOSFET和电压调节器分别增长了4.4%、10%和18%。据iSuppli预计,从2002年到2007年,I ...…

查看全部问答>

C51 I2C传输问题

我用89C51访问24C02无反应. 24C02时钟接P1.7,数据接P1.6,A0 A1 A2接地 执行函数:I2C_Write(0xA0,0x01,0);I2C_Read(0xA1,0x01,&c);都直接返回0 24C02.H #ifndef __24C02_H__ #define __24C02_H__ #ifndef uchar #define uchar unsigned char #e ...…

查看全部问答>

PB 上好像有个功能,可以直接运行开发板上的程序(如MediaPlay), 请问在PB什么菜单下?

请问,在WinCE 上如何注册组件(DLL)?(另一个程序要调用这个组件,不注册, 没法调用) PB 上好像有个功能,可以直接运行开发板上的程序(如MediaPlay), 请问在PB什么菜单下?…

查看全部问答>

PLC与单片机

大家好,现在摆在我面前的有两个分支,一个是PLC,一个是单片机,都比较有兴趣,我不知道应该主攻哪个方向。想问的是,就最新的形势来说:1.目前哪个更吃香;2.在未来的几年内呢??…

查看全部问答>

大连某企业急招WinCE开发人员

大连某大型企业招WinCE驱动与应用软件开发人员,采用x86硬件平台. 要求:有搭建WinCE 6.0 x86联机开发环境&系统订制&驱动开发&应用程序开发经历, 熟炼常握C语言和VS2005开发环境. 2008.5.1日以前有效. 另招Linux开发工程师,要求有RTLinux+2410开发 ...…

查看全部问答>

LM3S6432仿真器接口如何设计。

有几款仿真器可以支持LM3S6432处理,我需要支持IAR和KEIL两种开发环境,需要选用什么仿真器。仿真接口如何设计。TI给的demo板只有厂家自己的仿真器接口,没有通用的仿真器接口。…

查看全部问答>

下载程序的问题

我用 JLINK 下载程序,JLINK 提示  flash timeout 我把速度调到3M 就可以写把代码烧到芯片了, 但是有的代码写的不对 不知道是不是我的 JLINK 坏了, 还是有别的原因!…

查看全部问答>

求助

做测量脉宽的实验时,用IAR编译程序,出现如下错误,不知道怎么改,望高手指点  …

查看全部问答>