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

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

    关注

    6001

    文章

    43970

    浏览量

    620771
  • 温度传感器
    +关注

    关注

    48

    文章

    2648

    浏览量

    154291
  • 控制器
    +关注

    关注

    112

    文章

    15214

    浏览量

    171138
收藏 人收藏

    评论

    相关推荐

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

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

    基于STC89C52单片机18B20温度程序

    基于STC89C52单片机18B20温度程序
    发表于 08-20 16:19

    STC89C52单片机DS18B20温度测量系统系统可以保存数据...

    我用STC89C52单片机DS18B20温度测量系统,整个系统可以报警,可以调节报警的上下限
    发表于 03-27 17:48

    基于DS18B20数字温度传感器的设计方案

    数据处理。  4.2 硬件电路  根据系统的控制要求,选择Intel公司的80C52单片机,他包括数字温度传感器的数据
    发表于 11-12 16:30

    基于DS18B20的MOA温度远程监控系统设计

    温度, 就可以判断MOA 的当前工作状态。  论文设计的MOA温度在线监测系统, 以DS18B20温度
    发表于 12-04 15:57

    DS18B20温度传感器实验

    单片机驱动DS18B20温度传感器实现温度的串口打印显示,本实验中STM32基于HAL库开发。本
    发表于 08-18 07:44

    求一种基于51单片机的霍尔测转速表温度检测调速方案

    可以控制电机的启动、停止、正转、反转、加速、减速。2、通过温度传感器DS18B20检测温度。3、通过液晶显示温度、PWM档位值、速度。4、
    发表于 09-07 09:12

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

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

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

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

    利用STC89C52单片机实现脉搏心率远程监测的设计资料分享

    、心率标签:51单片机、LCD1602、LM324、DS18B20题目扩展:心率监测、人体健康监测资料预览效果图:总体资料:原理图:软件设计流程:系统框图:本设计以STC89C52
    发表于 11-19 06:03

    利用DS18B20温度传感器设计智能恒温宠物箱装置

    本课题在设计中力求人性化的智能控制,以中央芯片STC89C52为核心,它是一款高性能、低功耗、高性能CMOS8位微控制单片机启动程序控制智能恒温宠物箱。再加上利用DS18B20
    发表于 12-02 06:37

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

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

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

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

    如何利用STC89C52单片机实现多路温度采集系统的设计?

    如何利用STC89C52单片机实现多路温度采集系统的设计?
    发表于 02-17 06:06

    DS18B20温度测试实验

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