基于Proteus的温湿度监测系统仿真实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Proteus的温湿度监测系统仿真实现
作者:程伟顾国良刘于海陈江
来源:《电子世界》2012年第20期
【摘要】介绍了温湿度传感器SHT7x的工作原理、通信协议和使用方法,给出温湿度监测系统的程序流程.在Proteus仿真平台上以SHT7x和单片机为核心,为节约了输入输出口线,选择MAXIM公司的多功能串行LED显示驱动器MAX7219驱动8位LED显示器,实现了温湿度监测系统的设计,给出了仿真结果.这种仿真实现对于工业控制领域中的计算机控制系统的设计有很好的参考价值。
【关键词】Proteus;温湿度;SHT7X;单片机;测量
Simulation Realization of Temperature and Humidity Measurement System Based on Proteus
Cheng Wei,Gu Guoliang,Liu Yuhai,Chen Jiang
(Yancheng City electronic equipment factory,Yancheng Jiangsu,224051)
Abstract:This paper introduces the principle and communication protocl of temperature and humidity sensor SHT7x,and describes the usage of it.The program flow is piven.On the simulation platform of Proteus,the system’s core is the microprocessor a nd SHT7x.In order to usie fewer I/O ports,a serially interfaced,8-Digit LED display drivers MAX7219 was selected to drive 8 LEDs.The temperature and humidity measurement system was realized and the simulation result was displayed based proteus software.This realization of simulation is worthy of the design of industrial computer control systems.
Keywords:Proteus;Temperature and humidity;SHT7x;MCU;Measurement
1.引言
温湿度物理量的测量在工农业生产和日常生活的很多领域应用非常广泛。
过去的温度与湿度测量,采用比较多的是DS18B20、热敏电阻和湿敏电阻等传感器,通过ADC转换输送给控制器,很难适合一些精度要求比较高及外围电路要求简单的领域。
另外,传统的温湿度测量仪开发大部分是先按照系统的要求设计出原理图,画出PCB电路板,制作电路板和焊接元器件,然后进行软件编程,通过多次的硬件和软件调试,最后把调试好的程序固化到程序存储器。
这一系列的过程中,如果调试发现问题,需要修改硬件,并重新制板。
调试过程中的误操作会导致重要元器件损坏,需要重新购买,在时间和成本上都带来了很多问题[1-3]。
英国Labcenter Electronics公司推出的Proteus ISIS,可仿真很多复杂电路,也可以用于单片机应用系统的开发,为电子产品的开发大大节约了硬件成本和调试周期[4-5]。
本文用Pr
oteus软件作为设计仿真平台,以SHT7x和单片机芯片为核心设计温湿度测量系统,选择MAXIM公司的多功能串行LED显示驱动器MAX7219,温湿度显示在8位LED显示器上。
本系统节约了I/O口线,没有使用单片机的P0口,可以在此基础上开发和环境温湿度相关的控制系统。
实际电路验证了仿真的硬件和软件的正确性,本文的方法可使计算机控制系统设计效率得到很大的提高。
2.SHT7x简介
SHT7x(包括SHT71、和SHT75)是属于瑞士Sensirion公司温湿度传感器家族中的插针型封装系列。
该传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。
传感器采用专利的CMOSens®技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上与14位的ADC转换器以及串行接口电路实现无缝连接。
该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。
它的每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在内存中,用于内部的信号校准。
两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。
微小的体积、极低的功耗,使SHT7x成为各类系统应用的首选[6]。
其引脚如图1所示。
2.1 电源引脚(VDD,GND)
SHT7x的供电电压范围为2.4-5.5V,建议供电电压为3.3V。
电源引脚(VDD,GND)之间有一个100nF的滤波电容,已经封装在SHT7x的背面。
2.2 串行时钟输入(SCK)
SCK用于微处理器与SHT7x之间的通讯同步。
由于接口包含了完全静态逻辑,因而不存在最小SCK频率。
2.3 串行数据(DATA)
DATA引脚为三态结构,用于读取传感器数据。
当向传感器发送命令时,DATA在SCK 上升沿有效且在SCK高电平时必须保持稳定。
DATA在SCK下降沿之后改变。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(如10kΩ)将信号提拉至高电平。
3.系统硬件设计
如图2所示,系统以SHT7x和单片机为核心进行设计,温湿度显示在8位LED液晶显示器上。
单片机采用通用的AT89S52,选择MAXIM公司的多功能串行LED显示驱动器
MAX7219。
MAX7219仅使用3线串行接口传送数据,可直接与单片机接口,使用者可以方便地修改其内部参数以实现多位LED显示,它可同时驱动8位共阴极LED,通信方式为串行数
据方式,节约了I/O口线。
8位LED显示器的前4位用于显示温度,后3位显示湿度值。
按键s1用于设定报警模式,s2用于增加报警值,s3减小报警值,D2为报警灯,D3为加湿指示灯,D4为加热指示灯。
4.微处理器与传感器通讯
4.1 启动传感器
选择供电电压后将传感器通电,上电速率不能低于1V/ms。
通电后传感器需要11ms进入休眠状态,在此之前不允许对传感器发送任何命令。
4.2 发送命令
用一组“启动传输”时序来完成数据传输的初始化。
它包括:当SCK时钟高电平时,DATA 翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。
(见图3)
后续命令包含三个地址位,目前只支持000和五个命令位,参见表1。
SHT7x会以下述方式表示已正确地接收到指令:在第8个SCK时钟的下降沿之后,将DATA下拉为低电平。
在第9个SCK时钟的下降沿之后,释放DATA。
4.3 温湿度测量
发布一组测量命令(“00000101”表示相对湿度RH,“00000011”表示温度T)后,控制器要等待测量结束。
这个过程需要大约20/80/320ms,分别对应8/12/14bit测量。
确切的时间随内部晶振速度,最多可能有-30%的变化。
SHT7x通过下拉DATA至低电平并进入空闲模式,表示测量的结束。
控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。
检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。
接着传输2个字节的测量数据和1个字节的CRC奇偶校验(可选择读取)。
uC需要通过下拉DATA为低电平,以确认每个字节。
所有的数据从MSB开始,右值有效。
例如对于12bit 数据,从第5个SCK时钟起算作MSB;而对于8bit数据,首字节则无意义。
在收到CRC的确认位之后,表明通讯结束。
如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保在测量和通讯结束后,SHT7x自动转入休眠模式。
4.4 通讯复位时序
如果与传感器通讯中断,可通过下列信号时序复位:当DATA保持高电平时,触发SCK 时钟9次或更多,参阅图4。
接着发送一个“传输启动”时序。
这些时序只复位串口,状态寄存器内容仍然保留。
5.标度变换
5.1 湿度线性补偿和温度补偿
SHT7x可通过DATA数据总线直接输出数字量湿度值。
该湿度值称为“相对湿度”,需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。
由于相对湿度数字输出特性呈一定的非线性,因此为了补偿湿度传感器的非线性,可按下式修正湿度值:
式中:为经过线性补偿后的湿度值,为相对湿度测量值,、、为线性补偿系数,取值如表2所示。
由于温度对湿度的影响十分明显,而实际温度和测试参考温度25℃有所不同,所以对线性补偿后的湿度值进行温度补偿很有必要。
补偿公式如下:
式中:为经过线性补偿和温度补偿后的湿度值,为测试湿度值时的温度(℃),和为温度补偿系数,取值如下表所示。
5.2 温度值输出
由于SHT7x是采用PTAT能隙材料制成的温度敏感元件,因而具有很好的线性输出。
实际温度值可由下式算得:
式中:d1和d2为特定系数,d1的取值与SHT11工作电压有关,d2的取值则与SHT11内部A/D转换器采用的分辨率有关,其对应关系分别如表4和表5所列。
本温湿度监测系统的显示结果如图5所示。
前4位显示温度值,后3位显示湿度值。
6.系统流程图
系统设定每次测得的数据要和设定值进行比较,如果在允许的范围内,则程序进行下一步操作,如果不满足要求,则应报警并将此刻的数据值显示出来,其程序流程图如图。
7.结语
本文讨论的温湿度监测系统采用了SHT7x,它集温度传感器和湿度传感器于一体,采用SHT7x进行温湿度实时监测的系统具有精度高、成本低、体积小、接口简单等优点。
本设计选择MAXIM公司的多功能串行LED显示驱动器MAX7219。
MAX7219仅使用3线串行接口传送数据,可直接与单片机接口,使用者可以方便地修改其内部参数以实现多位LED显示,它可同时驱动8位共阴极LED,通信方式为串行数据方式,节约了I/O口线。
采用的Proteus仿真平台不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
目前国内Proteus的推广范围不断扩大,已受到单片机爱好
者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。
以此为基础我们可以开发和环境温湿度相关的计算机控制系统,提高设计效率。
参考文献
[1]薛玲,孙曼,张志会.基于单片机AT89S51的温湿度控制仪[J].化工自动化及仪表,2010,37(7):66-69.
[2]李俊,张晓东.基于单片机的温湿度检测与控制系统研究[J].微计算机信息,2008,24(6):116-118.
[3]姜连祥,许培培.温湿度传感器SHT11的感测系统设计[J].单片机及嵌入式系统应用,2007(4):49-51.
[4]袁易君,刘建平,王啸.基于Proteus的高精度存储式温室温湿度测量仪[J].农机化研究,2008(10):68-70.
[5]冯梅琳,王芸,温家旺.基于Proteus的温湿度数据采集系统设计与仿真[J].仪表技术,2010(2):12-15.
[6]SENSIRION Co.Ltd.SHT1x/SHT7x Humidity & Temperature Sensor[OL].http:
//.2010.。