1、浙江工贸职业技术学院 电子工程系 毕业设计 (论文 ) 1 多功能环境参数测试仪的设计与制作 摘要: 多功能环境参数测试仪的设计采用智能化的测量方法实现对环境参数的检测,包括温度、湿度、露点和噪音等四个参数。论文论述了系统的硬件、软件设计过程及系统的主要功能。该系统以 AT89S52 单片机作为主控芯片,采用了具有精度高、成本低、体积小、接口简单等优点的 SHT11-P温湿度传感器实现温度与湿度的检测,测量精度可以达到 0.4, 3.0%RH;结合温度、湿度,通过数学运算计算出露点;采用电容话筒检测音量,通过信号放大、滤波、检波、 A/D 转换、信号比较等过程实现对噪音 的检测;采用了内置 1
2、28 64 汉字图形点阵模块显示字母、数字、中文字型及自定义图形,实现四种环境参数值的直观显示。该系统具有 体积小、响应迅速 、低能耗等优点, 可以适应多种场合的应用。 关键词 : AT89S52 单片机;温湿度检测;噪音检测;液晶显示 多功能环境参数测试仪的设计与制作 2 二十世纪跨越了三个 “ 电 ” 的时代,即电气时代、电子时代和电脑时代。不过,这种电脑,通常是指个人计算机,简称 PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种 机械装置,这种计算机成为 单片微型计算机亦称为微型控制器 。顾名思义,这种计算机的最小系统只用了一片集成
3、电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的 “ 肚子 ” 里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。 多功能环境参数测试仪(以下简称系统)就是基于 AT89S52 单片机而开发出来的。 一、系统的主要功能和特点 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中 ,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器
4、仪表数字化、智能化、微型化,且功能比采用电子或数字电路更加强大。 基于以上因素,我们选用 ATMEL的 AT89S52 单片机,系统的硬件部分包含传感器元件、测量电路、 A/D 转换器、液晶显示器、键盘等。系统采用 SHT11作为温湿度传感器,话筒作为噪音传感器,经测量电路后送入单片机处理。系统外接 128 64 液晶显示器,用来显示处理后得到的各种环境参数。 图 1 系统的硬件组成框图 二、 系统的硬件设计 5V电源 AT89S52 单片机 温湿度传感器 SHT11-P 液晶显示 ST7920 12V电源 电容话筒 噪音指示 电路 运放电路 检波电路 A/D转换 电路 浙江工贸职业技术学院
5、电子工程系 毕业设计 (论文 ) 3 系统采用 SHT11温湿度传感器采集温湿度数据,由电容话筒、运放、电压比较、 A/D转换等组成的噪音检测电路,经单片机处理后,最终在 ST7920 液晶屏上显示温度、湿度、露点及噪音。系统的硬件组成框图如图 1所示。 (一) AT89S52 单片机 单片机是指在一块芯片上集成了 CPU, RAM, ROM,定时器 /计数器,中断控制器,串行口等部件的单片微型计算机,字母简写为 MCU。 由于单片机具备体积小,重量轻,性价比高,功能齐全及运算速 度较快等优点,使得单片机在测控系统,智能仪表,机电一体化产品,智能接口的各方面具有广泛的应用。 2 AT89S52
6、 单片机资源特征 8k字节 Flash, 256 字节 RAM, 32位 I/O 口线,看门狗定时器, 2个数据指针,三个 16位定时器 /计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52可降至 0Hz静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下, CPU停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM内容被保存,振荡器被冻结,单片机一切工作 停止,直到下一个中断或硬件复位为止。 (二) SHT11-P 温湿度传感器 系统采用的温湿度传感器是 SHT11-P,它具有体积小、免校正等特点。可应用于各种恶劣
7、环境的温湿度测量。 1技术参数及特点 湿度: 0 100%RH;温度 :-40 +123.8;精度: 3.0%RH; 0.4;响应时间:4s;低功耗;可完全浸没。 SHT11温湿度传感器实物图如图 2所示。 图 2 温湿度传感器实物图 图 3单片机与 SHT11的接口电路 2电源引脚 SHT11的供电电压为 2.4 5.5V。传感器上电后,要等待 11ms以越过“休眠”状态。在此期间无需发送任何指令。电源引脚( VDD, GND)之间可增加一个 100nF 的电容,以图 2 单片机引脚图 多功能环境参数测试仪的设计与制作 4 去藕滤波。单片机与 SHT11 的接口电路如图 3所示。 3串行接口
8、 串行时钟( SCK): SCK用于微处理器与 SHT11 的通讯同步。由于接口包含了安全静态逻辑,因此不存在最小 SCK频率。 串行数据( DATA): DATA三态门用于数据的读取。 DATA在 SCK时钟下降沿之后改变状态,并仅在 SCK时钟上升沿有效。数 据传输期间,在 SCK时钟高电平时, DATA必须保持稳定。为避免信号冲突,微处理器应驱动 DATA 在低电平。需要一个外部的上拉电阻(例如: 10k)将信号提拉至高电平。 (三)噪音检测电路 正常情况下,声音强度在 30dB以下会感到很悦耳,高于 80dB就比较讨厌了。在家庭环境内的噪声强度约为 47dB上下,系统设计了一种噪音信号
9、放大和检测电路和噪声强度的指示电路,并通过 A/D转换将噪音信号数字化,由单片机对噪音强度进行识别处理。 1噪音采集 噪音通过电筒话筒采集,对电容话筒两端变化的电压经 LM358放大后由音量调 节电位器 R6调节后送至检波电路检波,一路由 LM358 电压跟随电路送至 TCL549A/D 转换后送由单片机处理,另一路则送给由 3个 LM324组成的 10层电压比较器由发光二极管显示。每个发光二极管代表约 1dB。噪音采集电路 原理图如图 4 所示。 浙江工贸职业技术学院 电子工程系 毕业设计 (论文 ) 5 图 4 噪音采集电路原理图 电路共有 4部分组成,大致可分为电源稳压、噪音采集、信号检
10、波、电压跟随。电源稳压部分给后续电路提供稳定的 9V电源。噪音采集部分由噪音对电容话筒的影响产生电压的变化送入运放反向输入端与同相输入端的电压比较,电位器调节后送至后续电路。信号检波部分将之前 的电压信号去纹波送给后续电路。电压跟随部分对前面输入的信号进行纹波处理,输出直流电压送至后续噪音指示电路。 2噪音指示 此部分的工作电源来自前面的稳压后的 9V 直流电源, LM317 构成的三端可调电压给 10 个串联的分压电阻提供基准电源, 3 个 LM324 中的 10 个运放反相输入端连在一起接前面的信号输入,当信号输入大于某个运放的正输入端的电压时,运放输出低电平信号,发光二极管则发亮。噪音检
11、测电路图如图 5 所示。 多功能环境参数测试仪的设计与制作 6 图 5 噪音检测电路原理图 (四)液晶显示电路 系统的显示部分采用了 ST7920液晶显示模块。 ST7920点阵 LCD控制 /驱动 IC,可以显示字母、数字符号、中文字型及自定义图块等,可以提供三种控制接口,分别是 8位微处理器接口, 4位微处理器接口及串行接口。所有的功能,包含显示 RAM,字型产生器,以及液晶驱动电路和控制器,都包含在一个单芯片里面,只要一个最小的微处理系统,就可以操作 LCD 控制 /驱动 IC。 ST7920 的字型 ROM 包括 8192个 16 16点的中文字形以及 126个 16 8点半宽的字母符
12、号字型,另外绘图显示画面提供一个 64 256点的绘图区域( GDRAM)及 240点的 ICON RAM,可以和文字画 面混和显示,而且 ST7920内含 CGRAM提供 4组软件可程序规划的 16 16造字功能。 ST7920 具有低功率电源消耗 (2.7V 5.5V) 可以提供电池操作的携带式产品的省电需求。 三 、 系统的软件设计 在单片机的开发应用中, C语言应用最为广泛, C语言具有模块化的特点,容易阅读和维护。同样模块化的特点使其易于移植。它的几个显著的特点为:程序模块化、可浙江工贸职业技术学院 电子工程系 毕业设计 (论文 ) 7 读性好、效率高、可移植性强、数据处理能力强等。
13、 鉴于以上原因,系统采用 C语言开发。 (一)主程序 系统着重了对温湿度的检测,因此在主程序中添加了实时修正,更好 的加强温湿度的准确性。 整个程序中有实时向串口发送数据,只要接上串口线联机就能在电脑上查看处理后的温湿度及露点。主程序流程图如图 6所示。 图 6 主程序流程图 (二)显示程序 将显示程序写成一个头文件,这样就能很好的将函数模块化,其他地方需要用到液晶模块只需包含此头文件即可。 以下对 ST7920的 串行模式数据传输 做详细介绍。 当 PSB脚接低电位时, ST7920将进入串行模式,在串行模式下将使用两条数据传输线作串行数据的传送,主控制系统将配合传输同步频率 线( SCLK
14、)与接收串行数据线( SID),来达成串行传输的动作。 ST7920的同步频率线( SCLK)具有独立的操作频率,但是当有连续多个指令需要被传送时,指令执行的时间将需要被考虑,必须确实等到前一个指令完全执行完成才能传调用初始化程序 通讯复位 液晶初始化 显示开机画面 开始 error! =0 Y 强制数据转换 读取温湿度 计算温度、湿度、露点 发送温度、湿度、露点 调用噪音处理程序 调用显示程序 显示四种参数及单位 N 等待约 0.8s 避免使 SHT11过热 多功能环境参数测试仪的设计与制作 8 送下一笔数据,因为 ST7920内部并没有传送 /接收缓冲区。从一个完整的串行传输流程来看,一开
15、始先传输起始字节,它需先接收到五个连续的 1(同步位字符串)在起始字节,此时传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位( RW)及暂存器选择位( RS),最后的第八位则 为 0。 在接收到同步位及 RW和 RS数据的启始字节后,每一个八位的指令将被分为两个字节接收:较高 4位( DB7DB4)的指令数据将会被放在第一个字节的 LSB部分,而较低 4位( DB3DB0)的指令数据则会被放在第二个字节的 LSB部分,至于相关的另四位则都为 0。 串行传输信号时序如图 7所示。 图 7 串行模式数据传输时序 图 (三)温湿度采集处理程序 用一组“启动传输”时序来表示
16、数据传输的初始化。它包括:当 SCK 时钟高电平时DATA翻转为低电平,紧接着 SCK变为低电平,随后是在 SCK时钟高电平时 DATA翻转为高 电平,启动传输的时序如图 8所示。启动传输程序 s_transstart()如下: void s_transstart(void) DATA=1; SCK=0; _nop_(); SCK=1; _nop_(); DATA=0; _nop_(); SCK=0; _nop_(); _nop_(); _nop_(); SCK=1; _nop_(); DATA=1; _nop_(); SCK=0; 如果与 SHT11通讯中断,下列信号时序可以复位串口:当 D
17、ATA保持高电平时,触浙江工贸职业技术学院 电子工程系 毕业设计 (论文 ) 9 图 8 启动传输 时序 图 图 9 通讯复位 时序 图 发 SCK时钟 9次或更多。在下一次 指令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。通讯复位时序如图 9所示。 通讯复位程序 s_connectionreset()如下:void s_connectionreset(void) unsigned char i; DATA=1; SCK=0; for(i=0; i9; i+) SCK=1; SCK=0; s_transstart(); 多功能环境参数测试仪的设计与制作 10 图
18、10 RH测量 时序 图 测量时,发送一组测量命令( 00000101 表示相对湿度 RH, 00000011 表示温度 T)后,控制器要等待测量结束。这个过程需要大约 20/80/320ms,分别对应8/12/14bit测量。确切的时间随内部晶振速度,最多可能有 -30%的变化。 SHT11通过下拉 DATA至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其他任务在需要时再读出数据。接着传输 2个字节的测量数据和 1个字节的 CRC奇偶校验。单片机需要通过下拉 DATA 低电平,以确认每
19、个字 节。所有的数据从 MSB开始,右值有效(例如:对于 12bit 数据,从第 5个 SCK时钟算做 MSB;而对于 8bit数据,首字节则无意义)。在测量和通讯结束后, SHT11自动转入休眠模式。 下面做 RH测量 时序 举例:“ 0000 1001 0011 0001” =2353=75.79%, RH测量时序图如图 10 所示。 (四)露点计算处理程序 露点是一个特殊的温度值,是空气保持某一定湿度必须达到的最低温度。当空气的温度低于露点时,空气容纳不了过多的水分,这些水分会变成雾、露水或霜。露点可以根据当前相对湿度值和温度值计算得出, 具体的计算公式如下: LogEW=0.66077+7.5T (237.3+T)+log10(SORH)-2 Dp=(0.66077-logEW)237.3) (logEW-8.16077) 式中: T为当前温度值, SORH为相对湿度值, Dp为露点。 float calc_dewpoint(float h,float t) float logEx, dew_point; logEx=0.66077+7.5*t/(237.3+t)+(log10(h)-2);