基于AT89s51和DS18B20的多路测温仪系统设计
提出了基于AT89S51单片机和数字温度传感器DS18B20组成的多路温度检测系统,介绍了主要元器件的工作原理,详细给出了硬件设计过程和软件程序流程图。此系统稳定性强、检测精准度高、价格低廉,在自动控制领域具有广阔的应用前景。
0引言
温度检测与控制技术在现阶段的工业、农业和居民日常生活中都具有广泛的应用。精确的温度检测和准确的温度控制是保证各类生产顺利开展以及居民生活方便快捷的基本条件。系统采用AT89S51单片机作为控制器,可靠性高、体积小、价格低廉;采用DS18B20作为多路温度采集的传感器,电路简单、测量精度高、稳定性好。
1系统总体设计方案
整个多路温度检测系统如图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所示。
图2 多路测温仪系统硬件原理图
3系统软件程序设计
数字温度传感器DS18B20是采用由一条数据线实现数据双向传输的单总线协议方式。该协议定义了三种通信时序:初始化时序、读时序、写时序。而AT89S51单片机在硬件上并不支持单总线协议,因此必须采用软件方式模拟单总线协议时序来完成与DS18B20间的通信。
3.1单总线协议
单总线协议的所有时序都是将主机作为主设备,单总线器件作为从设备。每次命令和数据的传输都是从主机主动写时序开始,如果要求单总线器件传输数据,则在进行写命令之后,主机启动读时序完成数据接收。数据和命令的传输都是以低位在先的串行方式进行。
3.1.1初始化时序
主机首先发出一个480~960μs的低电平脉冲,然后释放总线变为高电平,并在随后的480μs时间内对总线进行检测,如果有低电平出现,说明总线上有器件已做出应答。若无低电平出现一直都是高电平,说明总线上无器件应答。如图3所示。
图3 初始化时序
3.1.2写时序
写周期最少为60μs,最长不超过120μs.写周期一
- AT89S51单片机实验系统的开发与应用(06-21)
- 基于单片机数控直流稳压电源的设计与实现(09-08)
- 基于AT89S51单片机的角度测量仪的设计(07-11)
- AT89S51与AT89C2051单片机引脚介绍(12-03)
- 自制AT89S51编程器(12-03)
- AT89S51与AT89C2051单片机介绍(11-26)