微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AT89S51和DS18B20的多路测温仪设计

基于AT89S51和DS18B20的多路测温仪设计

时间:05-13 来源:互联网 点击:

摘要:提出了基于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表示写周期开始。随后若主机

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top