1、基于单片机空气质量检测仪设计摘 要随着我国经济的发展,人民生活水平的提高,人们对环境问题及健康问题日益重视,室内空气品质(IAQ)状况受到越来越多的关注。人的一生中有三分之二的时间是在居室内度过的。本文研究的室内便携式智能空气品质监测仪是以室内空气中有毒有害气体的监测监控为背景,是以STC工公司的一款8位超低功耗单片机STC90C51为控制核心,能够实现对室内温度,湿度,VOC气体的实时采集处理、显示、报警等功能。仪器采用锂电池供电,具有良好的便携性和通用性,并且使用LCD1602点阵式液晶屏显示菜单,有良好的人机对话界面。同时设计了声光报警系统,实现在参数超标时及时的报警。室内智能空气品质监
2、测仪体积小,功耗低,操作简单,适合应用于家庭和社区的医疗健康保健,能够实时知道室内空气的质量。关 键 词:STC90C51,室内空气品质,LCD显示,温湿度,VOC气体 目 录前 言1第1章本课题的主要研究内容、方法及总体设计31.1 课题设计的内容31.2课题设计的方法3 1. 3总体方案的设计第2章 空气质量检测仪的硬件设计52.1 空气质量检测仪系统简介52.1.1 系统硬件结构及原理52.2 STC90C51单片机简介52.2.1STC90C51主要性能参数:62.2.2时钟电路模块72.2.3复位电路模块72.3传感器的选用82.3.1气体传感器82.3.2温湿度传感器102.4模数
3、转换电路设计162.5声光报警电路设计182.6液晶显示电路设计182.6.1LCD1602的基本参数及引脚功能192.6.2LCD1602的指令说明及时序202.6.31602LCD的RAM地址映射及标准字库表232.6.4LCD1602的一般初始化过程242.7按键电路设计252.8电路电源设计252.9本章小结26第3章 空气质量检测仪的软件设计273.1 系统软件设计思路273.1.1 编程语言的选择273.1.2 软件功能需求273.2软件模块设计283.2.1主程序模块283.2.2AD转换模块303.2.3液晶显示模块303.2.4声光报警模块303.2.5按键模块303.3本章
4、小结31第4章 仿真调试324.1系统硬件调试324.1.1 常见的硬件故障324.1.2硬件调试方法324.2 系统软件调试334.3本章小结34结 论351主要结论352展望35参考文献37附录39附录一39附录二40 前 言一、课题研究的目的及意义空气质量的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。来自固定和流动污染源的人为污染物排放大小是影响空气质量的最主要因素之一。空气质量检测种类包括装修污染、办公室内空气检测、作业场所有害物质检测、食堂油烟检测、锅炉大气及工业窑炉检测及工厂排放工业废气检测。当今,人类正面临“煤烟污染”、“光化学烟雾污染”之后,又出现了“室内空
5、气污染”为主的第三次环境污染。美国专家检测发现,在室内空气中存在500多种挥发性有机物,其中致癌物质就有20多种,致病病毒200多种。危害较大的主要有:氡、甲醛、苯、氨以及酯、三氯乙烯等。大量触目惊心的事实证实,室内空气污染已成为危害人类健康的“隐形杀手”,也成为全世界各国共同关注的问题。据统计,全球近一半的人处于室内空气污染中,室内环境污染已经引起35.7%的呼吸道疾病,22%的慢性肺病和15%的气管炎、支气管炎和肺癌。本课题主要研究设计基于量化检测的“空气质量检测仪”系统,此系统旨在实现室内空气温度、湿度、有害气体的预警监测,有利于进行全方位的评价室内空气质量,为人类营造一个健康的室内生存
6、空间。空气质量检测仪体积小,功耗低,操作简单,适合应用于家庭和社区的医疗健康保健,能够实时知道室内空气的质量。二、国内外的研究状况气体传感器测定甲醛成为近年来甲醛检测研究的新热点。早在1983年,压电类甲醛传感器就已问世。这种传感器可以不需要对样品进行任何处理就可以测定,但易受水分子的影响而使晶体震动频率发生漂移,故基本无实用性。为适应室内空气甲醛现场快速检测的要求,目前已开发出不少甲醛快速测定仪,这些仪器可直接在现场测定甲醛浓度,操作方便,适用于室内和公共场所空气中甲醛浓度的现场测定,也适用于环境测试舱法测定木质板材中的甲醛释放量。但这些仪器的工作原理、响应性能、适应范围等都不同。在测试甲醛
7、、苯等害气体方面,国外比较出名的有:美国ESC公司生产的Z一300甲醛检测仪、英国PPM公司生产的PPM-400甲醛检测仪;国内的有:江苏安普电子工程有限公司生产的400型甲醛分析仪、北京宾达绿创科技有限公司生产的甲醛测定仪抑一308等。这些仪器可实现对有害气体的检测功能,适用于专业检测机构或实验研究机构。准确测定甲醛、苯、氨等有害气体的设备昂贵(如英国PPM公司生产的PPM400甲醛仪约两万多元),测定时间较长,每隔一段时间就需进行重新标定,需要专业人员进行操作,很难连续测定;目前国内外产品的设计差异主要集中在监测传感器和控制单片机芯片的选用,操作方面国外的产品操作界面方便,功能加完备。 第
8、1章 本课题的主要研究内容、方法及总体设计1.1 课题设计的内容 以单片机为核心,选择合适的传感器,实现对空气质量的检测。1.2课题设计的方法 查阅相关资料,应用电脑软件进行仿真、调试,制作硬件设备,在实际环境中测试并进行修改、调试,直至达到课题要求。1.3总体方案设计 本设计集VOC气体及温湿度监测,显示与报警于一体,利用MCU进行数据采集保证了前台数据的及时、准确,有利于进行全方位的评价。仪器采用锂电池供电,具有良好的便携性和通用性,并且使用LCD点阵式液晶屏显示菜单,有良好的人机对话界面。1.3.1系统框图主控制器气体传感器电源数字式温湿度传感器AD转换输入键盘声光报警显示模块图1-1
9、系统总框图1.3.2功能设定(1) 显示部分采用LCD1602显示屏,循环显示各项测量值的上下限及实际浓度、实际温度、湿度。并在按键选择情况下连续显示一个测量值的变化。(2) 当有害气体浓度超出安全范围时进行声光报警。(3) 按键操作可进行测量值范围的调整,及手动和自动测量的转换。 第2章 空气质量检测仪的硬件设计2.1 空气质量检测仪系统简介基于STC90C51的室内便携式智能空气质量监测仪是以室内空气中有毒有害气体的监测监控为背景,能够实现对室内温度,湿度,VOC气体的实时采集处理、显示、报警等功能。仪器采用锂电池供电,具有良好的便携性和通用性,并且使用LCD点阵式液晶屏显示菜单,有良好的
10、人机对话界面。同时设计了声光报警系统,实现在参数超标时及时的报警。室内智能空气品质监测仪体积小,功耗低,操作简单,适合应用于家庭和社区的医疗健康保健,能够实时知道室内空气的质量。2.1.1 系统硬件结构及原理本文研究的室内便携式智能空气品质监测仪是以STC工公司的一款8位超低功耗单片机STC90C51为控制核心。室内空气中有害气体通过传感器输出一个与气体浓度相对应的电压信号,该信号经过A/D转换电路按一定得采样频率将模拟信号转换为数字信号送入单片机进行数据采集以便进行显示处理,温湿传感器直接与单片机相连。单片机对采样值进行数字处理后驱动液晶显示器分别显示出被测室内空气中的VOC气体浓度值及温湿
11、度。若被测室内空气中VOC气体的浓度有超过国家标准或设定的危险值或温湿度超出设定范围时报警电路对应的发出声光报警信号。2.2 STC90C51单片机简介随着计算机技术的发展,单片机因具有集成度高、体积小、速度快、价格低等特点而在许多领域如过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到广泛应用,从而使这些领域的技术水平、自动化程度大大提高。根据上述几方面及本课题的实际情况,单片机型号的选择主要从以下两点考虑:一是要有较强的抗干扰能力。由于一般室内电子电器产品比较多,这对单片机的干扰较大,所以应采用抗干扰性能较好的单片机机型。二是要有较高的性价比。由于高度的通用性和出色
12、的稳定性,本系统采用宏晶公司产的低功耗,高性能CMOS 8位单片机的STC90C51作为控制器。片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,可提供许多高性价比的应用场合,可灵活应用于各种控制领域。2.2.1STC90C51主要性能参数:1、 与MCS.51产品指令系统完全兼容2、 4k字节在系统编程(ISP)Flash闪速存储器3、 1000次擦写周期4、 4.0-5.5V的工作电压范围5、
13、全境态工作模式:0Hz-33MHz6、 三级程序加密锁7、 1288字节内部RAM8、 32个可编程IO口线9、 2个16位定时器计数器10、6个中断源11、全双工串行UART通道12、低功耗空闲和掉电模式13、中断可从空闲模唤醒系统14、看门狗(wDT)及双数据指针15、掉电标识和快速编程特性16、灵活的在线系统编程STC90C51芯片管脚如图2-1。 图2-1 STC90C51引脚布置2.2.2时钟电路模块时钟电路由一个晶体振荡器12MHZ和两个30pF的瓷片电容组成。时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时
14、序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。其电路如图2-2所示:图2-2 时钟电路模块2.2.3复位电路模块复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这状态开始工作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位电路以重新启动。本设计采用的是按键复位电路。其电路如图2-3所示:图2-3 复位电路模块2.3传感器的选用2.3.1气体传感器1气体传感器基础知识按照气敏特性来分,气体传感器主要分为:半导体型、电化学型、固体电解质型、接触燃烧型、光化学型等气体传感器,又以前两种最为普
15、遍。 (1)半导体型气体传感器的优缺点半导体气体传感器具有成本低廉、制造简单、灵敏度高、响应速度快、寿命长、对湿度敏感低和电路简单等优点。不足之处是必须在高温下工作、对气体或气味的选择性差、元件参数分散、稳定性不理想、功率高等方面。(2)半导体传感器需要加热的原因半导体传感器是利用一种金属氧化物薄膜制成的阻抗器件,其电阻随着气体含量不同而变化。气体分子在薄膜表面进行还原反应以引起传感器电导率的变化。为了消除气体分子达到初始状态就必须发生一次氧化反应。传感器内的加热器可以加速氧化过程,这也是为什么有些低端传感器总是不稳定,其原因就是没有加热或加热电压过低导致温度太低反应不充分。(3)电化学气体传
16、感器的工作原理电化学气体传感器是通过监测电流来监测气体的浓度,分为不需供电的原电池式以及需要供电的可控电位电解式,目前可以监测许多有毒气体和氧气,后者还能监测血液中的氧浓度。电化学传感器的主要优点是气体的高灵敏度以及良好的选择性。不足之处是有寿命的限制一般为两年。(4)半导体传感器和电化学传感器的区别半导体传感器因其简单低价已经得到广泛应用,但是又因为它的选择性差和稳定性不理想目前还只是在民用级别使用。而电化学传感器因其良好的选择性和高灵敏度被广泛应用在几乎所有工业场合。(5)固态电解质气体传感器顾名思义,固态电解质就是以固体离子导电为电解质的化学电池。它介于半导体和电化学之间。选择性,灵敏度
17、高于半导体而寿命又长于电化学,所以也得到了很多的应用,不足之处就是响应时间过长。(6)接触燃烧式气体传感器接触燃烧式气体传感器只能测量可燃气体。又分为直接接触燃烧式和催化接触燃烧式,原理是气敏材料在通电状态下,可燃气体在表面或者在催化剂作用下燃烧,由于燃烧使气敏材料温度升高从而电阻发生变化。后者因为催化剂的关系具有广普特性应用更广。(7)光学式气体传感器光学式气体传感器主要包括红外吸收型、光谱吸收型、荧光型等等,主要以红外吸收型为主。由于不同气体对红外波吸收程度不同,通过测量红外吸收波长来监测气体。目前因为它的结构关系一般造价颇高。基于本文的实时要求和性价比等方面的原因,本系统选用电化学传感器
18、中的定电位电解式气体传感器。本设计针对VOC气体选用能够侦测0.1ppm以上的气体的空气质量VOC气体浓度传感器MS1100用于检测空气中的甲醛、苯、二甲苯等检测空气中的甲醛、苯、二甲苯等多种有机挥发成分,具有极高的灵敏度和稳定性,体积小巧。实物如图2-4,使用时的连接电路如图2-5。 图2-4 VOC传感器实物图 图2-5 VOC传感器接线图2.3.2温湿度传感器温湿度传感器是指能将温度量和湿度量转换成容易被测量处理的电信号的设备或装置。温湿度传感器一般是测量温度量和相对湿度量。鉴于测量温湿度的范围不大,精度要求不高故采用数字温湿度传感器DHT11。实物如图2-6。图2-6 DHT11实物图
19、具有的特性:相对湿度和温度测量、全部校准,数字输出、卓越的长期稳定性、无需额外部件、超长的信号传输距离、超低能耗、4引脚安装、完全互换。DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用
20、这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。应用领域:暖通空调、测试及检测设备、汽车、数据记录器、消费品、自动控制、气象站、家电、湿度调节器、医疗、除湿器。传感器信息见表2-1。表2-1 DHT11传感器信息型号测量范围测湿精度测温精度分辨力封装DHT112090RH 0505RH214针单排直插1、传感器性能说明见表2-2。表2-2 传感器性能说明参数条件MinTypMax单位湿度分辨率111%RH16Bit重复性
21、1%RH精度254%RH0505%RH互换性可完全互换量程范围03090%RH252090%RH502080%RH响应时间1/e(63%)25,1m/s 空气61015S迟滞1%RH长期稳定性典型值1%RH/yr温度分辨率111161616Bit重复性1精度12量程范围050响应时间1/e(63%)630S2、 接口说明 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻接线方式如图2-7。图2-7 典型接线电路3、电源引脚DHT11的供电电压为35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增
22、加一个100nF 的电容,用以去耦滤波。4、串行接口 (单线双向)DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式
23、转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集,采集数据后转换到低速模式。操作时序如图2-9,总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,
24、可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。图2-9 操作时序总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1。格式见下面图示,如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图2-10所示图2-10 数字0信号表示方法数字1信号表示方法如图2-11所示图2-11 数字1信号表示方法5.温度影响气体的相对湿度,在很
25、大程度上依赖于温度。因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导,DHT11与印刷电路板其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。7.5光线长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。6.配线注意事项DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。7.DHT11引脚说明见表2-4。表2-4 引脚说明Pin名称注释1VDD供电 35.5VDC2DATA串行数据,单总线3NC空脚,请悬空4GND接地,
26、电源负极本设计采用的为DHT11模块,原理图为图2-13:图2-13 DHT11模块接线图2.4模数转换电路设计气体传感器出来的信号是模拟信号,而微处理器STC90C51只能处理数字信号,故需要对模拟信号信号进行转换,将其转换为处理器能识别的数字信号,由于测试电路出来的模拟电压变化范围在05V,故选择性价比比较合适的ADC0809进行模数转换。其管脚定义如图2-14所示。图2-14 ADC0809管脚示意图ADC0809各脚功能如表2-5:表2-5 ADC0809各脚功能引脚功能介绍D7-D0IN0-IN78位数字量输出引脚8位模拟量输入引脚VCC+5V工作电压REF(+)参考电压正端REF(
27、-)参考电压负端STARTA/D转换启动信号输入端ALE地址锁存允许信号输入端EOC转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平OE输出允许控制端,用以打开三态数据输出锁存器。CLK时钟信号输入端(一般为500KHz)。A、B、C地址输入线ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。ADC0809的时序接口为51系列单片机的标准总线接口,操作方便,如同对存储器或I/O操作一样,A/D转换精度为8比特,满足本课题要求。输入的模拟电压为05V,一次A
28、/D转换时间为100S。ADC0809与单片机及VOC传感器的接线方式如图2-15:图2-15 ADC0809接线原理图2.5声光报警电路设计为了使本系统对室内空气品质的监测更为直观,采用了如图2-16由2个发光二极管和一个蜂鸣器构成的声光报警电路。其中VOC气体含量超标时双灯闪烁蜂鸣器报警,温度超标时D1灯亮蜂鸣器报警,湿度超标时D2灯亮蜂鸣器报警。图2-16 声光报警电路2.6液晶显示电路设计本课题所要显示的数据一共有6个,分别是有毒气体的浓度和室内的温度、湿度的范围和测量值,故选用2行16个字符的LCD1602作为显示模块,满足显示要求。液晶显示模块具有体积小、功耗低、显示内容丰富等特点
29、,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图2-17:图2-17 1602字符型液晶显示器实物图2.6.1LCD1602的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图2-18所示:图2-18 1602LCD尺寸图1602L
30、CD主要技术参数:显示容量:16x2个字符芯片工作电压:4.5V5.5V工作电流:2.0Ma(5V)模块儿最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(有背光)接口,各引脚说明如表2-6所示:表2-6 1602引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接+5
31、V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:PS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,夜景模块执行命令。第714脚:D0D7为八位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.
32、6.2LCD1602的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表2-7所示:表2-7 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容160
33、2液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指
34、令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序如表2-8:表2-8 基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R
35、/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无读写操作时序如图2-19和2-20所示:图2-19 读操作时序图2-20 写操作时序2.6.31602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-21是1602的内部显示地址。图2-21 1602LCD内部显示地址第二行第一个字符的地址是40H,写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是:01000000B
36、(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。2.6.4LCD1602的一般初始化过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信
37、号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置LCD1602的具体接线路图如图2-22所示。图2-22 LCD1602接线电路图2.7按键电路设计考虑到整个测量系统中不同环境对气体浓度及温湿度范围要求不同,故设置了按键功能,用于实现测量范围的调整,参考单片机引脚使用情况,共设置五个独立按键如图2-23,实现功能为设定键可进行设定的进入与退出,同时可实现三种范围的切换,另设左右移位键、上下调值键各两个,与此同时考虑到用户可能需要在一定时间内连续测量一种量,故设计了上调键的第二功能:当只有上调键按下时完成显示的自
38、动与手动的切换以实现良好的人机对话。图2-23 按键电路2.8电路电源设计本设计采用集成稳压器7805,C29、C30分别为输入端和输出端滤波电容,D1为续流二极管。当输出电流较大时,7805应配上散热板。电源电路如图2-24所示:图2-24 电源电路2.9硬件设计小结本章首先介绍了便携式室内空气质量监测仪的硬件结构以及系统功能,该仪器以8位单片机STC90C51作为控制核心,设计并构建了系统的硬件平台,完成了有毒气体浓度信号的采集转换电路、液晶显示电路、声光报警电路等的设计。该仪器能够实现有毒气体浓度信号和温湿度信号采集与显示及超标声光报警等功能。本章重点介绍了信号采集模拟电路和以主控制器为
39、中心的数字电路的设计与工作原理。首先讨论了有毒气体采集模块中传感器选择问题,最后讨论了系统的外围接口电路模块,包括液晶显示,声光报警等,实现了各外围接口电路模块与STC90C51的硬件接口设计。这一章比较具体的说明了系统硬件设计的内容,通过模块化的设计思想,把一个复杂的单片机系统按照功能划分成一个个单独的电路模型,分别进行设计,最后在集成到一起。这种方法对于设计复杂的单片机系统很有效。大大提高系统设计的效率与质量。 第3章 空气质量检测仪的软件设计3.1 系统软件设计思路3.1.1 编程语言的选择在系统硬件电路确定以后,其主要功能的实现将依赖于软件来实现。对同一硬件电路,配以不同的软件,它所实
40、现的功能也就不同,其设计软件基本要求:1.可靠性。可靠性是软件设计的重要指标,具有较强的抗干扰能力。2.易理解性、易维护性。编制的软件要求易阅读,容易发现和纠正错误,容易修改和补充。3.实时性。系统能够及时响应外部事件的发生并能及时做出处理结果。4.准确性。保证系统进行计算数据的精度。目前存在有4种编程语言支持单片机,即汇编语言、PL/M51语言、C语言和BASI语言。其中汇编语言和C语言应用的较多,汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。结合本系统的特点,这里选用了功能强、效率高的C语言。C语言主要有以下特点:用C语言编制的程序效率高,占用存储空间小,运行速度快。C语言能写
41、出最优化程序,且能反映出计算机的实际运行情况。C语言能直接与存储器、接口电路打交道,也能申请中断。具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。3.1.2 软件功能需求室内空气质量检测仪系统软件主要由温湿传感器采集模块、AD转换模块、人机接口模块、声光报警模块、核心控制器模块构成,各模块功能概述如表3-1所示。 表3-1 各功能模块功能描述功能模块功能描述温湿传感器采集模块对室内温湿度测点进行实时监测AD转换模块1.完成信号采样2.完成与核心处理器间的数据传输核心控制器模块1.系统时基分配2.人机接口控制3.各模块协调
42、工作人机接口模块1.按键控制2.动态信息显示根据软件设计的基本要求,采取了如下的措施:1.程序模块化。软件设计中包含有:主程序模块、显示模块、DHT11传感器检测函数、A/D数据转换子模块、声光报警模块、数据转换模块、按键函数。2.软件设计采用C语言编程。3.中断响应外部事件,提高了系统的实时处理事件能力。4.软、硬件抗干扰。软件抗干扰措施提高了系统的可靠性。以下就对一些主要模块进行详细的阐述。3.2软件模块设计3.2.1主程序模块软件要实现的主要功能是实现对传感器信号的数据采集,然后进行数据的计算、分析、送液晶进行显示及报警功能。程序开始时,对系统进行初始化,包括单片机的各寄存器、RAM、定
43、时器装载初值、中断设置及各模块初始化等。完成初始化后,CPU等待传感器传入信号及AD转换结束,从而完成当前监测参数的正确显示。3.2.2AD转换模块AD完成转换需要一定的时间,AD应用中我们可以有两种方法来:1.中断查询法,AD完成模数转换后会向中断输出端输出一个中断请求信号,告诉CPU转换已经完成,CPU可以读取数据。2.延时等待法,设定一定的时间让CPU处于等待状态,此时间足够AD完成转换,过了等待时间CPU再去读取数据。综合考虑各方面的因素,本研究采用第一种方法:延时等待法。所用的芯片为AD0809,根据所需的要求。3.2.3液晶显示模块本设计所用的显示器件为1602液晶面板,该液晶能显
44、示32个字符,满足显示要求。1602液晶与CPU是并口通信,由单片机的P2.5、P2.6、P2.7引脚来控制1602的读写数据命令功能,单片机P0口传输数据到1602进行显示。系统上电LCD初始化,液晶显示首先需要要按照时序给定显示地址,然后传送数据。上电后液晶显示开始循环显示三个被测量的范围和测量结果。3.2.4声光报警模块声音报警采用的是蜂鸣器,光报警是通过6个发光二极管来显示,3个绿色和三个红色的,当毒气含量没超标时显示绿色,超标时显示红色并启动蜂鸣器,报警子程序执行之前,设定的报警阈值存放在两个变量中,传感器输入AD转换值后,调用比较程序,小于阈值则执行显示程序,若大于阈值进行声光报警。3.2.5按键模块本设计设定按键功能为调整测量数据的安全范围并可进行手动和自动的切换考虑到实现按键功能所用按键数目不多及单片机引脚数量决定选用五个独立式按键,其中设定键用于进入和退