0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STC89C52单片机和DS18B20温度传感器实现温度采集系统的设计

电子设计 来源:电子设计工程 作者:沈斌,杨秀清,占文 2020-08-25 09:23 次阅读

随着现代信息技术的高速发展,数据采集方面的技术也在不断地向前发展,并在信息技术中占有重要地位,是否及时准确采集数据以及数据是何方式采集都成为关注的焦点。随着嵌入式技术的不断发展,各种数据采集系统不断应用于各个领域。温度采集在智能家居工业控制智能农业等方面都应用。本温度采集系统下位机采用STC89C52单片机为主控制器,采用DS18B20温度传感器采集温度,上位机使用VB编写程序,通过串口采集数据,存入Access数据库,并实时在界面上显示温度变化曲线。

1 系统的整体设计

本温度采集系统的总体框图如图1所示,系统下位机即单片机系统采用的是现成的开发板,开发板上自带了DS18B20的温度传感器,开发板也自带了能够维持单片机正常工作的外围电路;上位机用的Microsoft Visual Basic 6.0中文版集成开发环境和Microsoft Office Access 2003数据库开发软件。

基于STC89C52单片机和DS18B20温度传感器实现温度采集系统的设计

2 上位机的设计与实现

上位机设计的主要重难点在于串口从下位机接收到数据和把数据送到数据库里并把数据实时用曲线显示出来。上位机总体设计流程图如图2所示。

从串口接收数据主要采用Mscomm32.ocx控件,在Microsoft Visual Basic 6.0中添加该控件,需要设置COM口(可修改)、波特率(9600)、数据位(8)、停止位(1)、校验位(0)等,通过OnComm()事件驱动方式接收数据。

数据库采用的是Microsoft Office Access 2003,先要建立数据库,建立的数据库如图3所示,有4个字段,分别是编号、温度、采集日期、采集时间,数据类型对应的为自动编号、数字、文本、文本。

在Microsoft Visual Basic 6.0中编程对数据库Access进行操作,首先连接数据源,然后打开数据库并设置相应的数据操作,接着更新数据库,最后关闭数据库,在实际的操作中通过控件Adodc与控件Datagrid连接,以实现数据源与界面显示相联系。

2.1 主要设计步骤

1)先在VB开发环境下新建一个EXE工程,然后再在窗体上安放一些必须的控件,如按钮(Command)控件、文本框(Textbox)等;

2)在添加部件里添加Microsoft conmm control 6.0、Microsoft datagrid control 6.0和Microsoft ADO data control 6.0在这3个控件;

3)在数据库软件中新建数据库,并新建一个表temp;

4)连接数据库Access,并测试是否连接成功;

5)通过Adodc与Datagrid连接起来,实现数据源与界面显示联系起来;

6)通过Command按钮与数据库的查找、删除、修改和添加联系起来,能够实现相应的功能;

7)通过picturebox控件实现绘图的功能;

8)使串口数据与数据库和picturebox控件连接起来。

2.2 上位机程序设计(程序段)

2.2.1 串口处理程序

2.2.2 将数据写到数据库中

3 下位机的设计与实现

3.1 下位机硬件以及原理

温度采集系统下位机采用STC89C52单片机为主控制器,采用DS18B20温度传感器采集温度,硬件电路图如图4所示。

STC89C52单片机具有:

1)它是MCS-51系列单片机的派生产品,在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051兼容均为Pin-to-Pin,使用时容易掌握;

2)高速(最高时钟频率90 MHz)、低功耗、价格低、稳定可靠、应用广泛、通用性强,在系统/在应用可编程(ISP,IAP),不占用户资源。本系统利用STC89C52单片机的1个中断,2个定时器以及P0~P3 4个端口。采用外部11.059 2 MHz晶振,并使用30 pF的电容接地,以提高系统的稳定性和可靠性。

DS18B20具有:1)只要求一个I/O口即可实现通信;2)在DS18B20中的每个器件上都有独一无二的序列号;3)实际应用中不需要外部任何元器件即可实现测温;4)测量温度范围在-55~125℃之间;5)数字温度计的分辨率用户可以从9位到12位选择;6)内部有温度上、下限告警设置。

DS18B20的使用方法:DS18B20采用的是1—Wire总线协议方式,而对单片机STC89C52来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

3.2 软件设计

软件设计重点是把温度采集回来并正确的采集回来的温度通过串口发送出去,软件设计流程图如图5所示。

软件开始初始化各种端口以及定时器、串口等,在判断是否有中断产生,如果接收到X,则开始发送数据,如果接收到字符S,则停止发送数据,否则判断是否到达0.5 s的间隔,如果达到,开始采集温度并将数据发送出去,否则继续判断是否有中断产生。

4 测试结果

图6为本温度采集系统的实际运行的效果图。

5 结论与前景

本温度采集系统通过单片机能够采集到DS18B20温度传感器采集到的数据,并用串口实时的传送到上位机;上位机有实时接收数据的能力,并将实时接收到的数据存入Access数据库里;能够实时地把温度曲线显示到界面上;数据库具有编号、日期、时间以及温度4个属性;数据库具有查找、修改、删除、添加以及查找首记录、下一条记录、上一条记录和末记录的功能;能够记录开始时间、结束时间和时间差;显示当前时间和日期。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632796
  • 温度传感器
    +关注

    关注

    48

    文章

    2912

    浏览量

    155869
  • 控制器
    +关注

    关注

    112

    文章

    16191

    浏览量

    177358
收藏 人收藏

    评论

    相关推荐

    STC89C52+DS18B20实现环境温度检测(数码管显示温度)

    本项目选择STC89C52单片机DS18B20数字温度传感器,通过读取传感器输出的
    的头像 发表于 06-05 09:26 2737次阅读
    <b class='flag-5'>STC89C52+DS18B20</b><b class='flag-5'>实现</b>环境<b class='flag-5'>温度</b>检测(数码管显示<b class='flag-5'>温度</b>)

    采用DS18B20温度传感器测温并用数码管实时显示

    系统STC89C52单片机+DS18B20温度传感器+数码管+风扇+按键+电源构成。具体功能:
    发表于 09-08 06:18

    STC89C52单片机+DS18B20温度传感器实现温度控制恒温箱设计

    STC89C52单片机+DS18B20温度传感器+LCD1602液晶显示屏+5V继电器+5V风扇+加热膜+按键+蜂鸣器+电源构成具体功能:
    发表于 11-10 08:59

    如何制作一个基于STC89C52单片机温度采集系统

    DS18B20无线测温所做的工作主要包括:1.利用DS18B20 温度传感器采集温度;2.制作一
    发表于 12-02 08:48

    怎样通过STC89C52单片机温度芯片DS18B20通信

    主要是通过STC89C52单片机温度芯片DS18B20通信,让LCD1602来显示温度,其电路原理图如下:注意:
    发表于 12-07 07:22

    基于PCDS18B20温度采集系统

    本文简要介绍了温度传感器DS18B20 的特性及工作原理,给出了DS18B20单片机单片机
    发表于 09-10 16:20 161次下载

    基于DS18B20与JHD12232D的智能温度测控设计

    基于STC单片机的智能温度测控系统,是以STC89C51单片机为控制
    发表于 08-15 10:02 139次下载
    基于<b class='flag-5'>DS18B20</b>与JHD12232D的智能<b class='flag-5'>温度</b>测控<b class='flag-5'>器</b>设计

    DS18B20温度显示报警控制设计

    本文设计了一种基于AT89C51 单片机DS18B20温度控制系统。该设计通过AT89S52
    发表于 12-17 00:24 696次下载
    <b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>显示报警控制设计

    DS18B20温度测试实验

    基于单片机STC89C52DS18B20数字温度计,测量实时温度
    发表于 12-31 14:36 10次下载

    基于STC89C52_ds18B20_DS1302的C语言程序

    温度计时,基于STC89C52 ds18B20 DS1302的C语言程序
    发表于 06-21 16:27 39次下载

    使用单片机DS18B20单线数字温度传感器设计温度采集和无线传输系统

    单片机属于一种微控制,在很多领域都有广泛的应用。根据地震前兆水温观测的实际工作需要,设计了一种基于单片机温度采集与无线传输
    发表于 08-31 17:42 17次下载
    使用<b class='flag-5'>单片机</b>和<b class='flag-5'>DS18B20</b>单线数字<b class='flag-5'>温度</b><b class='flag-5'>传感器</b>设计<b class='flag-5'>温度</b><b class='flag-5'>采集</b>和无线传输<b class='flag-5'>系统</b>

    单片机】辉光管时钟系列<四>温度芯片DS18B20显示

    主要是通过STC89C52单片机温度芯片DS18B20通信,让LCD1602来显示温度,其电路原理图如下: 注意:
    发表于 11-24 20:36 10次下载
    【<b class='flag-5'>单片机</b>】辉光管时钟系列<四><b class='flag-5'>温度</b>芯片<b class='flag-5'>DS18B20</b>显示

    DS18B20温度传感器的数字温度计设计案例

    本设计采用的主控芯片是ATMEL公司的AT89S52单片机,数字温度传感器是DALLAS公司的DS18B20。本设计用数字
    发表于 05-09 16:02 53次下载

    基于51单片机DS18B20温度传感器例程源代码

    基于51单片机DS18B20温度传感器例程源代码
    发表于 05-12 16:12 4次下载

    基于51单片机DS18B20温度传感器例程源代码

    基于51单片机DS18B20温度传感器例程源代码
    发表于 05-18 09:56 8次下载