多功能环境参数测试仪方案与制作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多功能环境参数测试仪的设计与制作
浙江工贸职业技术学院电子工程系
摘要:多功能环境参数测试仪的设计采用智能化的测量方法实现对环境参数的检测,包括温度、湿度、露点和噪音等四个参数。

论文论述了系统的硬件、软件设计过程及系统的主要功能。

该系统以AT89S52单片机作为主控芯片,采用了具有精度高、成本低、体积小、接口简单等优点的SHT11-P温湿度传感器实现温度与湿度的检测,测量精度可以达到±0.4℃,±3.0%RH;结合温度、湿度,通过数学运算计算出露点;采用电容话筒检测音量,通过信号放大、滤波、检波、A/D 转换、信号比较等过程实现对噪音的检测;采用了内置128×64汉字图形点阵模块显示字母、数字、中文字型及自定义图形,实现四种环境参数值的直观显示。

该系统具有体积小、响应迅速、低能耗等优点,可以适应多种场合的应用。

关键词:AT89S52单片机;温湿度检测;噪音检测;液晶显示
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和电脑时代。

不过,这种电脑,通常是指个人计算机,简称PC机。

它由主机、键盘、显示器等组成。

还有一类计算机,大多数人却不怎么熟悉。

这种计算机就是把智能赋予各种机械装置,这种计算机成为单片微型计算机亦称为微型控制器。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

多功能环境参数测试仪<以下简称系统)就是基于AT89S52单片机而开发出来的。

一、系统的主要功能和特点
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比采用电子或数字电路更加强大。

基于以上因素,我们选用ATMEL的AT89S52单片机,系统的硬件部分包含传感器
元件、测量电路、A/D 转换器、液晶显示器、键盘等。

系统采用SHT11作为温湿度传感器,话筒作为噪音传感器,经测量电路后送入单片机处理。

系统外接128×64液晶显示器,用来显示处理后得到的各种环境参数。

图1 系统的硬件组成框图
二、系统的硬件设计
系统采用SHT11温湿度传感器采集温湿度数据,由电容话筒、运放、电压比较、A/D转换等组成的噪音检测电路,经单片机处理后,最终在ST7920液晶屏上显示温度、湿度、露点及噪音。

系统的硬件组成框图如图1所示。

<一)AT89S52单片机
单片机是指在一块芯片上集成了CPU,RAM,ROM,定时器/计数器,中断控制器,串行口等部件的单片微型计算机,字母简写为MCU。

由于单片机具备体积小,重量轻,性价比高,功能齐全及运算速度较快等优点,使得单片机在测控系统,智能仪表,机电一体化产品,智能接口的各方面具有广泛的应用。

2.AT89S52单片机资源特征
8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬
件复位为止。

<二)SHT11-P温湿度传感器
系统采用的温湿度传感器是SHT11-P,它具有体积小、免校正等特点。

可应用于各种恶劣环境的温湿度测量。

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的电容,以去藕滤波。

单片机与SHT11的接口电路如图3所示。

3.串行接口
串行时钟<SCK):SCK用于微处理器与SHT11的通讯同步。

由于接口包含了安全静态逻辑,因此不存在最小SCK频率。

串行数据<DATA):DATA三态门用于数据的读取。

DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。

数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。

为避免信号冲突,微处理器应驱动DATA在低电平。

需要一个外部的上拉电阻<例如:10kΩ)将信号提拉至高电平。

<三)噪音检测电路
正常情况下,声音强度在30dB以下会感到很悦耳,高于80dB就比较讨厌了。

在家庭环境内的噪声强度约为47dB上下,系统设计了一种噪音信号放大和检测电路和噪声强度的指示电路,并通过A/D转换将噪音信号数字化,由单片机对噪音强度进行识别处理。

1.噪音采集
噪音通过电筒话筒采集,对电容话筒两端变化的电压经LM358放大后由音量调节电位器R6调节后送至检波电路检波,一路由LM358电压跟随电路送至TCL549A/D转换后送由单片机处理,另一路则送给由3个LM324组成的10层电压比较器由发光二极管显示。

每个发光二极管代表约1dB。

噪音采集电路原理图如图4所示。

图4 噪音采集电路原理图
电路共有4部分组成,大致可分为电源稳压、噪音采集、信号检波、电压跟随。

电源稳压部分给后续电路提供稳定的9V电源。

噪音采集部分由噪音对电容话筒的影响产生电压的变化送入运放反向输入端与同相输入端的电压比较,电位器调节后送至后续电路。

信号检波部分将之前的电压信号去纹波送给后续电路。

电压跟随部分对前面输入的信号进行纹波处理,输出直流电压送至后续噪音指示电路。

2.噪音指示
此部分的工作电源来自前面的稳压后的9V直流电源,LM317构成的三端可调电压给10个串联的分压电阻提供基准电源,3个LM324中的10个运放反相输入端连在一起接前面的信号输入,当信号输入大于某个运放的正输入端的电压时,运放输出低电平信号,发光二极管则发亮。

噪音检测电路图如图5所示。

图5 噪音检测电路原理图
<四)液晶显示电路
系统的显示部分采用了ST7920液晶显示模块。

ST7920点阵LCD控制/驱动IC,可以显示字母、数字符号、中文字型及自定义图块等,可以提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。

所有的功能,包含显示RAM,字型产生器,以及液晶驱动电路和控制器,都包含在一个单芯片里面,只要一个最小的微处理系统,就可以操作LCD控制/驱动IC。

ST7920 的字型ROM 包括8192个16×16点的中文字形以及126个16×8点半宽的字母符号字型,另外绘图显示画面提供一个64×256点的绘图区域<GDRAM)及240点的ICON RAM,可以和文字画面混和显示,而且ST7920内含CGRAM提供4组软件可程序规划的16×16造字功能。

ST7920 具有低功率电源消耗 (2.7V~5.5V> 可以提供电池操作的携带式产品的省电需求。

三、系统的软件设计
在单片机的开发应用中,C语言应用最为广泛,C语言具有模块化的特点,容易阅
读和维护。

同样模块化的特点使其易于移植。

它的几个显著的特点为:程序模块化、
可读性好、效率高、可移植性强、数据处理能力强等。

鉴于以上原因,系统采用C语言开发。

<一)主程序
系统着重了对温湿度的检测,因此在主程序中添加了实时修正,更好的加强温湿度的准确性。

整个程序中有实时向串口发送数据,只要接上串口线联机就能在电脑上查看处理后的温湿度及露点。

主程序流程图如图6所示。

图6主程序流程图
<二)显示程序
将显示程序写成一个头文件,这样就能很好的将函数模块化,其他地方需要用到液晶模块只需包含此头文件即可。

以下对ST7920的串行模式数据传输做详细介绍。

当PSB脚接低电位时,ST7920将进入串行模式,在串行模式下将使用两条数据传输线作串行数据的传送,主控制系统将配合传输同步频率线<SCLK)与接收串行数据线<SID),来达成串行传输的动作。

ST7920的同步频率线<SCLK)具有独立的操作频率,但是当有连续多个指令需要被传送时,指令执行的时间将需要被考虑,必须确实等到前一个指令完全执行完成才能
传送下一笔数据,因为ST7920内部并没有传送/接收缓冲区。

从一个完整的串行传输流程来看,一开始先传输起始字节,它需先接收到五个连续的1<同步位字符串)在起始字节,此时传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位<RW)及暂存器选择位<RS),最后的第八位则为0。

在接收到同步位及RW和RS数据的启始字节后,每一个八位的指令将被分为两个字节接收:较高4位<DB7~DB4)的指令数据将会被放在第一个字节的LSB部分,而较低4位<DB3~DB0)的指令数据则会被放在第二个字节的LSB部分,至于相关的另四位则都为0。

串行传输信号时序如图7所示。

图7 串行模式数据传输时序图
<三)温湿度采集处理程序
用一组“启动传输”时序来表示数据传输的初始化。

它包括:当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;
}
图8 启动传输时序图
图9 通讯复位时序图
如果与SHT11通讯中断,下列信号时序可以复位串口:当DATA 保持高电平时,触发SCK 时钟9次或更多。

在下一次指令前,发送一个“传输启动”时序。

这些时序只复位串口,状态寄存器内容仍然保留。

通讯复位时序如图9所示。

通讯复位程序s_connectionreset<)如下:
void s_connectionreset(void>
{
unsigned char i ;
DATA=1;SCK=0;
for(i=0;i<9;i++>
{SCK=1;SCK=0;}
s_transstart(>;
}
图10 RH 测量时序图 测量时,发送一组测量命令<00000101表示相对湿度RH ,00000011表示温度T )后,控制器要等待测量结束。

这个过程需要大约20/80/320ms ,分别对应8/12/14bit 测量。

确切的时间随内部晶振速度,最多可能有-30%的变化。

SHT11通过下拉DATA 至低电平并进入空闲模式,表示测量的结束。

控制器在再次触发SCK 时钟前,必须等待这个“数据备妥”信号来读出数据。

检测数据可以先被存储,这样控制器可以继续执
行其他任务在需要时再读出数据。

接着传输2个字节的测量数据和1个字节的CRC奇偶校验。

单片机需要通过下拉DATA低电平,以确认每个字节。

所有的数据从MSB开始,右值有效<例如:对于12bit数据,从第5个SCK时钟算做MSB;而对于8bit数据,首字节则无意义)。

在测量和通讯结束后,SHT11自动转入休眠模式。

下面做RH测量时序举例:“0000’1001’0011’0001”=2353=75.79%,RH测量时序图如图10所示。

<四)露点计算处理程序
露点是一个特殊的温度值,是空气保持某一定湿度必须达到的最低温度。

当空气的温度低于露点时,空气容纳不了过多的水分,这些水分会变成雾、露水或霜。

露点可以根据当前相对湿度值和温度值计算得出,具体的计算公式如下:
LogEW=0.66077+7.5×T/(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>;
dew_point = (logEx - 0.66077>*237.3/(0.66077+7.5-logEx>;
return dew_point;}
<五)噪音采集处理程序
对于噪音检测电路的误差较高,加上没有精确的噪音计进行对比,在程序中只进行了简单的修正,加上噪音的突变性及测量的延时,在显示部分也不能很好的实时显示。

对噪音采集电路采集到的信号要经A/D转换处理后才能使用。

unsigned char TLC549ADC(void>{
unsigned char z;
AD_CLK=0;AD_DAT=1;AD_CS =0;
for(z=0;z<8;z++>
{AD_CLK=1;_nop_(>;_nop_(>;ADCdata<<=1;ADbit=AD_DAT;AD_CLK=0;
_nop_(>; }
AD_CLK=1;AD_CS =1;return(ADCdata>;}
TLC549在读出前一次数据后,马上进行电压采样,ADC转换,转换完后就进入
HOLD模式,直到再次读取数据时,芯片才会进行下一次A/D转换。

也就是说,本次读出的数据是前一次的转换值,读操作后就启动一次转换,一次转换所用的时间最长为17μS,芯片没有转换结束信号输出。

TLC549_ADC转换程序,读取前一次转换值并返回,然后再启动一次ADC转换。

把程序写入“TCL549ADC.h”,需要用时,调用一下就可以了。

四、结束语
毕业设计是各专业学生培养的最后一个综合性、创造性的教案实践环节,是对学生在校期间所学基础理论、专业知识和实践技能的全面总结,是对学生综合能力和素质的全面检验,也是对学生毕业和职业资格认定的重要依据。

通过这次毕业设计,把大学三年学到的知识从头到尾连贯起来,正所谓“温故而知新”,经过这几个星期的设计与制作,从知其然提升到知其所以然。

在明确的分工下,不仅加强了对程序的开发能力,而且极大的加强了电路的设计与排故能力。

在老师的指导和帮助及小组的共同努力下,较好的完成了本次毕业设计。

参考文献
[1] 赵景波,薛苹等.Protel2004电路设计应用范例[M].清华大学出版社,2006.
[2] 周立功等.单片机实验与实践指导书[M].北京航空航天大学出版社,2004.
[3] 余威明.单片机原理及应用工程式教程[M],浙江工贸职业技术学院,2008.
[4] 龚运新.单片机C语言开发技术[M].北京清华大学出版社,2006.10.
[5] 刘文涛.单片机语言C51典型应用设计[M].北京人民邮电出版社,2005.10.
[6] 沈红卫.基于单片机的智能系统设计与实现[M].电子工业出版社,2005.1.
[7] 胡宴如.模拟电子技术<第2版)[M].高等教育出版社,1993.11.
[8] 武昌俊.自动检测技术[M].机械工业出版社,2007.7.
[9] 谭浩强.C语言程序设计[M].清华大学出版社,2000.1.
[10] 谭浩强.C语言程序设计题解及上机指导[M].清华大学出版社,2000.11.
[11] 电子系.数字电子技术基础实验指导书[M].浙江工贸职业技术学院,2008.
个人资料整理仅限学习使用多功能环境参数测试仪实物图。

相关文档
最新文档