历史上的今天

今天是:2024年09月14日(星期六)

正在发生

2020年09月14日 | 空气PM2.5和PM10等测定(51单片机+攀藤PMS5003)

发布者:码字探险 来源: 51hei关键字:空气PM2  PM10  测定  51单片机  攀藤PMS5003 手机看文章 扫描二维码
随时随地手机看文章

攀藤PMS5003主动式传输协议: 

官方推荐的电路:


我的连接方式:




主程序:

/*

  功能说明:

  读取攀藤PMS5003空气质量传感器数据并显示PM2.5和PM10的值。

*/


#include "config.h"

#include "lcd1602.h"


void UART_init()

{

        TMOD = 0x20;          //T1工作模式2  8位自动重装

        TH1 = 0xfd;

        TL1 = 0xfd;              //比特率9600

        TR1 = 1;                  //启动T1定时器

        SM0 = 0;

        SM1 = 1;                 //串口工作方式1 10位异步

        REN = 1;                 //串口读数使能

        ET1 = 0;                 //禁止T1中断

        ES  = 0;                 //禁止串口中断

}


void main()

{

        uint8 i, strf;

        uint8 strDEC[4];                                      //用于LCD显示的字符串

        uint8 tmp[32];                                        //用于保存PMS5003发送的32位数据

        uint16 local_code, check_code;                //校验码相关

        uint16 pm5, pm6;                                   //5和6对应的是PMS5003数据5、6(大气环境下PM2.5和PM10)


        UART_init(); //串口初始化

        LCD1602_init();

        LCD1602_dis_str(0, 0, "PM2.5:");

        LCD1602_dis_str(0, 1, "PM10 :");


        local_code = 0;


        while(1)

        {

                //从第1个字节开始读取32字节数据

                do{

                        while(RI==0); RI = 0;         //等待1帧数据接收完毕,完了会自动置1,软件重新置0接收数据

                        strf = SBUF;

                        if (strf == 0x42) i = 0;         //PMS5003数据串第1个字节为0x42

                        tmp[i] = strf;

                        i++;

                }while(i<32);


                for(i=0; i<30; i++)

                {

                         local_code = local_code + tmp[i];                      //本地校验码

                }

                check_code = ((uint16)tmp[30] << 8) + tmp[31];       //PMS5003发送的校验码

                if (local_code == check_code)

                {

                        pm5 = ((uint16)tmp[12] << 8) + tmp[13];

                        pm6 = ((uint16)tmp[14] << 8) + tmp[15];

                        int2str(pm5, strDEC);

                        LCD1602_dis_str(7, 0, "        ");

                        LCD1602_dis_str(7, 0, strDEC);

                        int2str(pm6, strDEC);

                        LCD1602_dis_str(7, 1, "        ");

                        LCD1602_dis_str(7, 1, strDEC);

                }

                check_code = 0;

                local_code = 0;

        }

}



关键字:空气PM2  PM10  测定  51单片机  攀藤PMS5003 引用地址:空气PM2.5和PM10等测定(51单片机+攀藤PMS5003)

上一篇:单片机模拟空调温度控制器,按键设定温度和控制风力
下一篇:基于51单片机的智能家居控制系统

推荐阅读

自动驾驶在发展的过程中,最大的推动作用来自于算法的进步和避障技术的提升。特别是近年来,经过工程师的努力,具备精确的测距、空间定位与描述、可靠的障碍物检测等独特能力的激光雷达的面世后,自动驾驶的发展开始进入快车道。 早在几年前,有业内人士预测2018-2020年将是自动驾驶技术初步普及元年的时间节点,如今2018年已经到来,然而这项技术的普及...
不可否认,Wi-Fi可以说是现如今人们不可或缺的一部分,无论走到哪里我们都离不开Wi-Fi。在去年10月初,Wi-Fi联盟宣布改变Wi-Fi的命名方式,复杂的命名方式已经不复存在,而Wi-Fi 6将是下一代Wi-Fi标准的名称。而就在Wi-Fi 6刚开始准备普及的时候,科学家们已经开始着手推进Wi-Fi 7了。  据悉,Wi-Fi 6的速度可达到9.6 Gbps,而Wi-Fi 5的速...
最近美国的禁令让中国整个半导体行业都蒙上了一层阴影。而最为要紧的是光刻机的国产化进程。 芯片制造设备比重突出据 Semi 统计,2019 年全球半导体设备市场达 597.4 亿美元,设备投资占晶圆厂整体资本支出的 70%-80%,其中用于芯片制造的设备占半导体设备总支出的 81%。 光刻、刻蚀、薄膜沉积设备三大设备成为推动 28nm 及以下先进工艺发展的主...
9月13日,斯达半导在与投资者互动时表示,公司使用自主IGBT芯片的模块和分立器件已在国内主流光伏逆变器厂家大批量装机应用,预计接下来公司市场份额会持续增加。公开资料显示,斯达半导成立于2005年4月,是一家专业从事功率半导体芯片和模块尤其是IGBT芯片和模块研发、生产和销售服务的国家级高新技术企业,总部位于浙江嘉兴,占地106亩,在上海和欧洲均...

史海拾趣

问答坊 | AI 解惑

献给电子类的大学生---一点心得(转载)

很久没来这里转转,今天发点牢骚吧,本人专职电源,其他系统也做,主要是硬件,软件丢光了. 五年前的10月份开始,我也是一个即将毕业的大学生(二流的),同样在为工作而到处奔波,经过一个月的奔波应聘进入联想深圳研发中心,现在在一家外企做电源FAE.结合大 ...…

查看全部问答∨

发送一个avr资料

上传一个avr库文件…

查看全部问答∨

中断控制广告灯设计

本来是一个八路彩灯的设计,但最后要求使用中断控制奇数灯亮,偶数灯亮,尝试多次还是不成功 大家能不能帮帮忙...           ORG  0000H           LJMP MAIN   ...…

查看全部问答∨

keil uvision软件de使用

我新建了个项目,程序编好了,运行也对,按这种方法做了,KEIL uvision2 ,进去后点击Project,然后点击Options for Target 然后进去后,找到Output,然后对应的Create HEX FILE 选中,就可以输出HEX文件啦。 不知道还怎么做才能生成HEX文件,或者 ...…

查看全部问答∨

U盘 固件程序格式化问题

在开发U盘固件程序的时候,不知道U盘在接收到格式化命令后,该有什么样的动作? 格式化的原理和过程是什么? 谢谢…

查看全部问答∨

为何无线网卡不能得到所有的数据?

就是DDK带的那个ndisprot的例子,我绑定一个有线网卡,在2台机器上都安装ndisprot驱动.一个发送,一个接收,(有线对有线)一切都OK.我发送的是自己填充的包,1024bytes的. 但是如果我绑定到无线网卡上,(无线对无线)同样的发送,但它只能接收59bytes的数据, ...…

查看全部问答∨

【我给XILINX资源中心做贡献】VGA驱动

附件包括:原理图,pcb,文档教程《VGA驱动与实现》,usb下载驱动等。…

查看全部问答∨

编译时提示如下错误,这是什么错误啊?谢谢了

在编译verilog程序是,出现下面的错误,这是什么错误啊???谢谢了&nbsp; 我的工程项目是放在英文目录下的。…

查看全部问答∨

请教各位大虾,函数里面的% !等都什么意思?

函数里面的% !等都什么意思?这个函数Diab编译器可以通过,Green Hills的Multi编译器通不过。应该是PowerPC指令或者汇编指令。asm void MOVE_TO_SPR(unsigned long reg, unsigned long value){% con reg; reg value;!  mtspr reg,v ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved