摘要
我国现代社会迅速发展,人们也提高了对生活的质量的要求,都想在健康、安逸的环境生活。我国也正在加强生态文明建设,不断减少各种空气污染。PM2.5这种污染物随着雾霾加重被人们数值,由于其颗粒极小,含有高浓度的有毒、有害物质并且具有长时间停留漂浮等特性。尽管近年来雾霾已经大大减少,但对于PM2.5的监测依然不能掉以轻心。
本设计采用STC89C51单片机为控制器件,利用传感器监测大气中颗粒物含量,通过AD转换器将传感器输出信号处理后传给单片机处理,最终LCD显示含量。系统还可以通过按键进行设置上限值,当浓度超过设定值时将会触发报警。结果表明,该PM2.5检测仪电路简单小巧、检测精度高,具有良好的稳定性,具备良好的实用意义。
关键词 STC89C51单片机、空气质量传感器、LCD
1 系统硬件设计
1.1 主控芯片选择
单片机是本PM2.5监测仪设计的核心,负责的是接收传感器传递过来的信息,并且发送命令给执行系统的作用。单片机发明自上个世纪七十年代,自发明之日起,就作为了各项系统的控制核心,其功能一直都在被升级改善。现如今的单片机相对于发明之初,性能在各方面都得到了极大的提升,已经不可与之前同日而语了。现在的单片机已经广泛应用于航空航天、军事、仪器仪表以及各种智能设备上面,一直都是作为中枢大脑的存在,发挥着极其关键的作用。
目前市场上的单片机芯片很多,高中低端能够满足多样化的需求。考虑到功能需求和成本,我们经过多次选择与比较决定采用STC89C51单片机作为主控芯片——这是由于它使用C语言易开发、可在线编程、价格实惠。
2 STC89C51芯片介绍
STC89C51是由STC公司生产的小型控制器,装配了8K的线上编程闪存。STC89C51有8位中央控制器和在线可编程闪存,可以给小型电子应用系统提供核心数据处理。此外,STC89C51 还支持0Hz的静态逻辑操作。单芯片机器在下一次中断和硬件复位之前全部停止动作。 STC89C51单片机主要特性有:
(1)增强型1T 流水线/精简指令集结构8051 CPU。
(2)(5V单片机)/ 2.0V-3.8V
(3)时钟频率0~35MHz,实际工作频率可达48MHz。
(4)用户应用程序空间2K / 4K / 6K / 8K / 10K / 12K字节。
(5)片上集成了512 字节RAM。
(6)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器。可通过串口(P3.0/P3.1)直接下载用户程序。
(7)具有2个16 位定时器/ 计数器。
2.1 STC89C51单片机的最小系统
仅仅靠STC89C51单芯片是无法实现单片机的功能的,因此我们需要设计一个能让单片机运行起来的最小的电路系统,如上图所示。最小单片机系统包含有STC89C51核心控制芯片,电源电路、晶振电路和复位电路等。
(1)电源电路
单片机作为一个电子产品,需要提供能源才能运作,在本设计中由于51单片机的工作电压在4.5~5.5V之间都可以正常工作,所以我采用了USB电源线连接手机充电器插头给系统进行供电。
(2)晶振电路
程序的执行有先后,顺序的不同自然产生的效果不同,这种微操作的时间顺序称作时序。那么谁来控制顺序呢?毫无疑问,是时间。而在单片机中,时间先后的确定视由晶振电路来实现的——晶振电路就相当于单片机中的时钟,因此被称为时钟电路。STC89C51单片机时钟产生方式有两种——内部时钟和外部时钟。本系统中采用内部时钟,尽可能降低单片机系统的功耗——这也符合我们的低功耗设计原则。具体的晶振电路图如图2.1所示。通常晶振电路中的XTAL1和XTAL2,可以选择1.2 MHz到12MHz之间的频率,本设计中采用的12MHz 的石英晶振。我们采用的石英晶振,选取30 pF 的陶瓷电容。
图2.1 晶振电路
2.2 LCD1602显示器简介
LCD1602液晶显示器可以显示字母、数字、符号等。LCD1602液晶屏内含有的HD44780控制器可以提供操作简单,功能强大的指令,包括文字的任意方向移动,闪烁等功能。LCD1602液晶实物图如图2.4所示。
图2.4 液晶实物图
3 系统软件设计
PM2.5监测仪系统的平稳运行内部是需要软件程序控制的,而硬件电路只是具体功能的具体执行者。要执行什么任务、什么时间执行、以什么顺序执行、遇到突发情况如何处理都需要适当的程序逻辑来协调系统的各个硬件组件,并根据PM2.5检测仪系统的工作需要进行工作以实现特定的功能,最终组合成复杂的完整电子秤系统。本节主要设计各个模块的软件程序流程图,有关于电子秤系统的各个硬件组成部分。
3.1 系统函数设计
3.1.1 主函数设计
主函数是程序的入口,该函数必不可少。该函数开头进行初始化,初始化后进去死循环,如果不进入死循环程序运行一次就会退出,如加入死循环就会进行循环达到实时检测。一般都是主函数进行调用子函数,这样既方便阅读也有利于修改。具体流程图如下3.1所示。
图3.1 主函数流程图
3.2 系统软件测试
通过Keil编写程序,生成.HEX文件后通过PL2303下载器下载到单片机中。观察系统运行状态,反复修改调试程序,最终得到一个能够正常实现预期功能的程序。系统调试中遇到的问题有:
(1)向LCD1602液晶发送清屏指令时,未清楚地显示屏幕。
解决方法:查阅LCD1602使用手册,得到清屏的指令的确是0x01和程序上写的完全相同,而显示屏可显示这表明程序发送指令是没有错误,但显示并未清屏。添加40 ms延时,重新下载进程序后发现清屏指令被执行。LCD1602清屏的确需要1.64 ms的执行时间,最终程序采用了4 ms的延时。
(2)开始直接读取GP2Y1050AU0F传感器采集PM2.5时,没有电压输出。
解决方法:查阅手册,得知在控制该传感器采集PM2.5需要先置低电平9.68 ms的低电平,然后置高电平0.32 ms,在0.28 ms是开始采集,整个采集周期为10ms。通过修改程序时序后,传感器正常工作。
4 总结
本次课题设计基于单片机的PM2.5监测系统具有操作简单,原件实物体积小、质量轻,性价比高,智能化程度较高等特点。基于单片机的室内环境监测系统的实现分为硬件设计和软件设计,充分考察了我们所学的专业知识和技能。从选题到设计,从软件编程到硬件制作,经过各种挫折和困难,在自己反复思考、查阅资料和老师同学的帮助下,最终还是基本实现了设计前对该系统所要求实现功能的展现。本次课题虽然初步实现了的需求,但在未来还会有很大的发展空间,例如实现远程通信等,将紧跟时代发展趋势即人居环境智能化,自动化的发展。
由于PM2.5监测仪系统涉及的部分较多如信号采集模块、A/D转换模块、LED1602显示器模块的,因此我们采取分解模块的思路,将复杂的系统功能实现分解成小的功能模块去依次实现。在设计该测试仪的时候,我先是按照检测仪的功能构思出其大致的电路方框图,然后分析各个功能模块。选好各个模块的型号后画出电路原理图,到编写程序,最后进行仿真,这次课题设计才算是完成。但是编程花了很多功夫,因为该设计需要精确到小数点后一位,这给我带来了困难,在同学和老师的帮助下才解决了这个问题。实验结果表明此测试仪实现后有很多好处,比如容易读取、显示明确、电路简单,符合电子仪器仪表的发展趋势,具有良好的市场前景。