基于51单片机的温湿度检测器设计

更新时间:2024-03-20 作者:用户投稿原创标记本站原创 点赞:23640 浏览:107291

【摘 要】温湿度的测量在仓库管理、生产制造、气象观测、科学研究以及生活中被广泛应用,本文给出了一种基于MCS-51单片机的温湿度检测器的设计方法.设计不但能实现通过LCD1602实现温湿度显示,还能通过RS-485总线进行远程数据通信.

【关 键 词】单片机;温湿度;RS-485总线

TemperatureandhumiditydetectordesignbasedonSCM

DUYu-ping

(SuzhouCollegeofInformationTechnologyWujiang215200,Jiangsu)

Abstract:Temperatureandhumiditymeasurementwasusedextensivelyinwarehousemanagement,manufacturing,meteorologicalobservation,andscientificresearch,ThispaperpresentsamethodoftemperatureandhumiditydetectordesignbasedonMCS-51single-chipmicroputer,ThedesignnotonlycanbeachievedthroughtherealizationofLCD1602displayingtemperatureandhumidity,butalsothroughtheRS485bustotheremotedatamunication.


Keywords:SCM;Temperatureandhumidity;RS-485Bus

1.引言

在传统的模拟式温湿度传感器设计中,一般需要设计信号调理电路并需要经过复杂的校准和标定过程,受环境影响较大,参数容易发生偏移,因此精度难以保证,且在线性度、重复性、互换性、一致性等方面不如人意.因此设计具有精度高、稳定性好、成本低、功耗低的温湿度检测系统非常重要.为此采用数字化高精度温度传感器SHT10结合单片机控制技术,从而克服了传统温湿度检测系统需要复杂的校准过程和精度低的缺点.

2.系统设计原理与框图

如图1所示,温湿度探测头一般包括温湿度检测、温湿度显示,为能适应与无人值守环境,系统中还包括远程通信以及温湿度探测头地址编码模块.本设计方案中温湿度检测采用数字温湿度传感器SHT10,其温度检测范围-400C~123.80C,湿度检测范围在0~100%RH,以AT89C51单片机为控制核心,对温湿度传感器实时读取内部参数,测量结果不仅通过本地液晶LM016L(LCD1602)显示,而且通过RS485总线将采集数据传送到远程怎么写作器,以便进一步对数据分析、存档、处理,各探测头地址通过拨码开关设置完成.

3.温湿度采集控制

系统温湿度检测采用SHT10单片数字温湿度集成传感器,该传感器由1个电容式聚合体测湿元件和1个能隙式测温元件组成,并与1个14位A/D转换器以及1个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低、反应快、抗干扰能力强等优点.SHT10单片机控制电路如图2所示,SHT10的供电电压为2.4V~5.5V.传感器上电后,要等待11ms,从“休眠”状态恢复.在此期间不发送任何指令.电源引脚(VDD和GND)之间可增加1个100nF的电容器,用于去耦滤波.SCK引脚是MCU与SHTIO之问通信的同步时钟,由于接口包含了全静态逻辑,因此没有最小时钟频率.DATA引脚是1个三态门,用于MCU与SHT10之间的数据传输.DATA的状态在串行时钟SCK的下降沿之后发生改变,在SCK的上升沿有效.在数据传输期间,当SCK为高电平时,DATA数据线上必须保持稳定状态.为避免数据发生冲突,MCU应该驱动DATA使其处于低电平状态,而外部接1个上拉电阻将信号拉至高电平.

SHT10传感器的通讯主要包括传感器硬件启动、启动传输、命令传输.传感器硬件启动要求传感器通电时上电速率不能低于1V/ms.通电后传感器需要11ms进入休眠状态,在此之前不允许对传感器发送任何命令.对SHT10传感器命令操作主要有温度测量、湿度测量、读状态寄存器、写状态寄存器、软复位等,如表1所示,命令命令包括3个地址位(仅支持“000”)和5个命令位),首先要对传感器发送“启动传输时序”,来完成数据传输的初始化,然后传送相关命令数据,SHT10接收到命令后,内部控制器要等待测量结束,SHT10通过下拉DATA至低电平并进入空闲模式,表示测量的结束.控制器再次触发SCK时钟,对数据进行读取,接着传输2个字节的测量数据和1个字节的CRC奇偶校验(可选择读取).MCU需要通过下拉DATA为低电平,以确认每个字节.所有的数据从MSB开始,右值有效,在收到CRC的确认位之后,表明通讯结束.如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持ACK位为高电平来结束本次通信,SHT10自动转入休眠模式.

4.LCD1602液晶显示控制

LCD1602为字符型液晶显示器,是一种专门用于显示字母、数字、符号等点阵式LCD,其显示容量为16×2个字符,1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2所示.

其中VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度.RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器.R/W为读写信号线,高电平时进行读操作,低电平时进行写操作.当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据.E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令.与单片机接口如图3所示.

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文检测名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”.LCD1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的,内部的控制器共有11条控制指令,如表3所示.

5.RS485远程通信电路设计

温湿度检测器所测数据通过RS485总线远程传送至怎么写作器端,RS485采用平衡发送和差分接收,因此具有抑制共模干扰的能力.加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复.RS485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制.如图4所示,本设计通过SN75LBC184芯片实现RS485总线驱动,为防止受雷击等高压干扰,总线分别接VD1、VD2、VD3、VD4稳压管.为了防止总线中其他分机的通信受到影响,在SN75LBC184的信号输出端串联了2个20的电阻R1和R2,这一本机的硬件故障就不会使整个总线的通信受影响,为消除通信过程中信号反射造成信号干扰,需要在总线比两端连接120Ω终端精密电阻.为防止总线将外部干扰或

高压信号引入控制器造成整个检测器损坏,SN75LBC184与单片机接口间采用高速光耦TLP521进行物理隔离.

6.系统软件设计

温湿度检测探头软件设计主是实现温湿度检测、温湿度显示、以及远程数据通信等.其中温湿度检测和显示安排在主程序中实现,数据通信程序有串行中断怎么写作程序完成;如图5所示,在执行主程序前首先完成初始化工作,初始化主要包括对温湿度传感器复位、LCD1602初始化以及串口相关初始化(波特率初始化、串口工作方式初始化、串口中断设置),然后主要进行温湿度测量、计算和显示.

温湿度检测头采用RS485总线实现多机数据通信,为1主多从模式,其中主机为远程怎么写作器、从机为各温湿度检测头,如图6所示,通信时由主机依次向各探测头发送地址帧,各从机收到地址数据后与本机地址相比较,相等则向怎么写作器传送本机温湿度参数,不相等则直接结束通信.数据传输过程中采用累加和校验,发送数据时将各被发送数据相加并取反后作为最后一字节传送,怎么写作器接收数据时将各收到数据相加,并将和与FFH,相等表示接收真确,不相等表示数据传输有误,则重新发送地址帧要求对方重新发送数据.

7.结束语

基于51单片机的温湿度检测器具有精度高、量程宽、灵敏度高、体积小、功耗低,结合RS485总线远程通信的优点,系统结构简单、开发成本低、抗干扰能力强、性能稳,体现了较高的性价比.

感器SHT10的原理及应用[J].单片机与嵌入式系统应用,2009.4.

[3]高志国.基于RS-485总线可靠性研究[J].石油化工自动化,2011.4.

[4]隋清江.基于PROTEUS的LCD1602接口设计与仿真[J].微计算机信息,2010.7.

作者简介:杜豫平(1961—),1982年7月毕业于上海交通大学电子工程系,研究方向:通信技术、单片机技术应用.