新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 带语音功能的温湿度测量仪设计

带语音功能的温湿度测量仪设计

作者:时间:2012-10-08来源:网络收藏

引言

本文引用地址:http://www.eepw.com.cn/article/176141.htm

温度和湿度是标定环境不可缺少的参数,在蔬菜大棚、粮食仓库等许多场合,对温、湿度的要求非常严格,因此对环境温、湿度参数的实时检测提出了更高的要求,测试系统[1]在工业生产和日常生活中的应用也越来越广泛。本文介绍的利用凌阳16位单片机SPCE061A作为控制中心,配合电容式湿度传感器HS1101和一线制数字温度传感器DS18B20采集数据,具有实时显示和提示

1、系统工作原理及硬件

1.1 系统基本构成

主要包括两个部分:温度测量和湿度测量。其基本构成如图1所示。该系统利用凌阳16位单片机SPCE061A作为系统的控制中心,采用电容式湿度传感器HS1101和一线制数字温度传感器DS18B20,将测量到的温度值和湿度值送入单片机中,经过数据处理后,进行实时显示,并通过按键控制测量结果的播放。

带语音功能的温湿度测量仪设计  www.21ic.com

1.2 SPCE061A单片机

SPCE061A单片机是凌阳公司以16位微处理器μ’NSPTM为核心生产的一种16位微控制器,其时钟频率范围为0.32MHZ~49.125MHZ,具有较高的处理速度,能快捷的处理各种复杂的数字信号,它内置2K的RAM和32K的内存FLASH,具有14个中断源,32位可编程的并行I/O口,两个16位可编程定时器/计数器,7通道10位A/D转换器和单通道声音A/D转换器,双通道10位D/A转换器和可编程音频处理,具有较强的处理[2]。

1.3 温度测量

温度传感器选择DALLAS公司生产的一线制数字温度传感器DS18B20,它具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。

由于DS18B20只有一个串行通信接口,与单片机的连接电路非常简单,只需和单片机的一个I/O端口连接即可,本系统选择了IOB7端口,其连接电路图如图2所示。DS18B20的I/O口属于漏极开路输出,外接上拉电阻后常态下呈高电平。该器件内含寄生电源,其供电方式可以选择寄生电源方式,也可以选用外部电源[3]。为方便起见,采用外部电源供电。

带语音功能的温湿度测量仪设计  www.21ic.com

1.4 湿度测量

湿度是指空气中水蒸气的含量,其表示方法有绝对湿度、相对湿度、露点等。日常生活中所指的湿度是相对湿度,即空气中所含水蒸气量(水蒸气压)与其相同情况下饱和水蒸气量(饱和水蒸气压)的百分比,用%RH表示[3]。

电容式湿度传感器HS1101具有检测速度快、高精度、高可靠性、长期稳定性和使用方便、体积小等特点,适用于一些对精度要求不高的场合。在不同的相对湿度中传感器的电容值不同,单片机不能直接读电容值,需要外接测量电路。电容式传感器的测量电路有电压输出式和频率输出式两种,考虑到单片机内有两个定时/计数器,测量频率比较方便,选用频率输出测量电路,如图3所示。采用555定时器和湿度传感器HS1101以及一些电阻构成多谐振荡器电路,产生的振荡频率由下式计算。

由湿度传感器HS1101的工作原理知道,测得的频率值与相对湿度值有关,关系如下式:

其中, 为25℃,55%RH时电路的参考频率。

带语音功能的温湿度测量仪设计  www.21ic.com

1.5 显示及键盘

系统采用液晶显示模块RT12864M显示温度值和湿度值,该模块有并行和串行两种连接方式,考虑到传输速率,令PSB端接高电平,使用8位并行口进行指令/数据传输。并行口DB0~DB7与单片机的IOA0~IOA7相连接,使能端E与IOB6连接,指令/数据选择端与IOB4连接,读/写选择端与IOB5连接,另外每个端口都需要外接上拉电阻,如图4所示。单片机通过IOB4~IOB6对显示模块进行控制,按照液晶显示模块的读写时序编程,使显示模块正常显示温度值和湿度值。

带语音功能的温湿度测量仪设计  www.21ic.com

系统的语音提示利用按键来控制,连接电路简单,按键一端接上拉电阻,另一端与单片机IOB3相连,按下键时,IOB3端口输入为高电平。

2、系统软件

凌阳单片机支持C语言与汇编语言之间的相互调用,为提高程序的可读性与移植性,同时也便于调试,采用模块化的方法编写程序。系统软件包括主程序、温度测量子程序、湿度测量子程序、键盘扫描子程序、中断子程序、语音播放子程序。在主程序中依次调用这些子程序,实现系统功能,主程序流程图见图5。

在主程序中,首先要对单片机端口进行初始化,将IOA端口设置为高电平输出,IOB端口设置为低电平输出。然后分别调用测量温度子程序和测量湿度子程序,完成测量和显示大约需要1秒钟的时间,然后再扫描键盘,判断是否进行语音播放。因为单片机内的看门狗计数器每0.75s的时间内会使系统自动复位,为防止该情况发生,需要在0.75s内将看门狗清零。

温度测量子程序首先对DS18B20初始化,如果计算机检测到单总线上有DS18B20器件存在,就发出跳过ROM命令(CCH)。当该命令被成功执行后,主机发出温度转换命令(44H)。延时一段时间,待转换结束后,再重新初始化,跳过ROM命令,然后主机发出读存储器命令(BEH),得到温度数据。为了缩短传感器数据的转换时间,将传感器的分辨率改为9位(出厂时默认分辨率为12位),这样温度转换时间97.5ms,精度0.5℃。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭