摘要:提出了基于AT89S51单片机和数字温度传感器DS18B20组成的多路温度检测系统,介绍了主要元器件的工作原理,详细给出了硬件设计过程和软件程序流程图。此系统稳定性强、检测精准度高、价格低廉,在自动控制领域具有广阔的应用前景。
0 引言
温度检测与控制技术在现阶段的工业、农业和居民日常生活中都具有广泛的应用。精确的温度检测和准确的温度控制是保证各类生产顺利开展以及居民生活方便快捷的基本条件。系统采用AT89S51单片机作为控制器,可靠性高、体积小、价格低廉;采用DS18B20作为多路温度采集的传感器,电路简单、测量精度高、稳定性好。
1 系统总体设计方案
整个多路温度检测系统如图1所示,主要由计算机控制系统(上位机)、单片机测控系统(下位机)、多路温度传感器、功能模块系统等部分组成。本系统在需要对温度监控与测量的地方放置数字温度传感器,通过单总线将若干个温度传感器连接在一起。单片机按照单总线协议对各个传感器进行控制并采集温度信息,同时通过串口与上位机进行通信,同时单片机测控系统还可以增加显示电路部分、按键设置部分、数据存储部分等,可以在现场进行参数的显示与设置。上位机系统通过串口接收下位机上传的数据,通过上位机软件进行实施显示与控制。
2 系统硬件原理设计
2.1 主控电路设计
多路温度检测系统的主控电路采用的是现阶段广泛使用的AF89S51单片机作为核心控制芯片。该芯片为低功耗、高性能的8位单片机,片内有4KB可系统编程的Flash程序存储器,既可使用常规编程器也可在系统编程(ISP),片内有128B数据存储器,兼容标准8051指令系统及引脚,4.0~5.5V工作电压范围,全静态工作模式0Hz~33MHz,有低功耗空闲和掉电工作模式,看门狗及双数据指针。AT89S51单片机包括两个最基本电路:时钟电路与复位电路。本系统通过MAX232芯片与上位机RS-232串口连接。
2.2 显示电路设计
显示电路采用可以采用数码管显示和液晶显示两种方案。数码管显示的特点是显示亮度高、编程操作简单、成本低,但显示信息少、功耗大,如采用动态扫描占用CPU资源多,而液晶显示可以显示更多的信息,同时耗电量低,硬件接口也较为简单,本系统采用液晶显示模式,使用市场上常见的LCD1602液晶,P0口进行数据传输,P2口连接液晶的RS、RW、EN三个引脚。
2.3 按键电路设计
本系统按键采用触点式机械按键,由于其造价低、控制简单,普遍应用于电子产品中。按键与单片机接口采用非编码矩阵键盘,可以通过P1口的8个引脚连接4×4矩阵键盘,方便输入0~9数字以及其它功能键。
2.4 数据存储电路设计
数据存储芯片采用ATMEL公司AT24系列的2线串行EEPROM芯片,它是低功耗CMOS存储器,具有工作电压宽、擦写次数多、写入速度快等特点。存储芯片与单片机相连时,只需占用单片机的两个I/O端口线作为数据线和时钟线,如果只连接一片芯片,只需将地址线接地即可。
2.5 单总线温度传感器
温度传感器采用市场上应用广泛、接口简单的DS18B20温度传感器,其特点是采用单总线的接口方式,与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;测量温度范围宽、测量精度高,DS18B20的测量范围为-55℃~+125℃;多个DS18B20可以并联在一条单线上,实现多点测温;内置A/D转换器,直接输出9~12位被测温度值。本系统所有DS18B20的DQ引脚并连在一个I/O端口上,外接一个4.7~10kΩ的上拉电阻。
系统硬件原理图如图2所示。
3 系统软件程序设计
数字温度传感器DS18B20是采用由一条数据线实现数据双向传输的单总线协议方式。该协议定义了三种通信时序:初始化时序、读时序、写时序。而AT89S51单片机在硬件上并不支持单总线协议,因此必须采用软件方式模拟单总线协议时序来完成与DS18B20间的通信。
3.1 单总线协议
单总线协议的所有时序都是将主机作为主设备,单总线器件作为从设备。每次命令和数据的传输都是从主机主动写时序开始,如果要求单总线器件传输数据,则在进行写命令之后,主机启动读时序完成数据接收。数据和命令的传输都是以低位在先的串行方式进行。
3.1.1 初始化时序
主机首先发出一个480~960μs的低电平脉冲,然后释放总线变为高电平,并在随后的480 μs时间内对总线进行检测,如果有低电平出现,说明总线上有器件已做出应答。若无低电平出现一直都是高电平,说明总线上无器件应答。如图3所示。
3.1.2 写时序
写周期最少为60 μs,最长不超过120 μs。写周期一开始作为主机先把总线拉低1μs表示写周期开始。随后若主机想写0,则继续拉低电平最少60 μs直至写周期结束,然后释放总线为高电平。若主机想写1,在一开始拉低总线电平1 μs后就释放总线为高电平,一直到写周期结束。而作为从机的DS18B20则在检测到总线被拉低后等待15 μs,然后从15 μs到45 μs开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。如图4所示。
3.1.3 读时序
对于读数据操作时序也分为读0时序和读1时序两个过程。读时隙是从主机把单总线拉低之后,在1μs之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。DS18B20在检测到总线被拉低1 μs后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始拉低总线1μs后释放总线,然后在包括前面的拉低总线电平1μs在内的15 μs时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线为高电平则确认为1。完成一个读时序过程,至少需要60 μs才能完成。如图5所示。
3.2 软件程序设计
系统软件设计采用模块化设计方法,采用工程上使用比较普遍的C51语言编写程序。其中,采集温度时要对多个DS18B20进行操作,按照前面所述的操作时序,依照以下步骤对多个温度传感器进行温度采集:初始化;搜索ROM命令;匹配ROM命令;发送温度转换命令;读取温度值;判断是否访问完毕;依次循环。系缔程序流程图如图6所示。
4 结束语
本多路测温仪系统实用性强,能很好地巡回采集多路温度信息,并能及时传送给上位机,具有速度快、精度高、易扩展等优点。此系统所采用的传感器全为数字化芯片,大大简化了结构,降低了成本。本系统可以应用于农业温室大棚,可以实时监测植物生长环境变化,也可以应用于工业车间,测量各部分工作环境温度。结合此系统的设计思路,可以将传感器修改为其它种类的测量器件,采集不同种类的物理量,具有很强的推广价值。