基于单片机和PC机的实时温度控制系统设计

发布者:创新脑细胞最新更新时间:2012-05-25 来源: 自动化技术与应用关键字:单片机  PC机  温度控制系统 手机看文章 扫描二维码
随时随地手机看文章

1 引言

温度是日常生活中非常重要的物理量,其测量包括接触式和非接触式两种,前者需要感温元件与被测物体接触,会产生滞后现象,后者则是通过接收被测介质发出的辐射来实现的。实时温度控制系统运用数字温度传感器DS18B20采集温度,单片机作为主控芯片来对温度值进行处理,控制和传输,通过蜂鸣器实现报警功能,运用VB编程制作上位机管理软件。整个系统设计结构简单,连接方便,易于管理,可以应用于人不宜或者不易接触的地方,达到自动读取环境温度,并具有报警功能,节省人力和物力。

2 系统基本原理

系统结构框图如图1所示,数字温度传感器DS18B20将待测介质温度值传递给单片机,单片机对温度值进行处理,当温度超出所设范围(本系统所设温度极限为31℃)则通过报警电路实现报警。通过RS232串口实现PC机与单片机的通信,单片机将采集到的温度值传递给PC机。

基于单片机和PC机的实时温度控制系统设计
     图1 系统结构框图

通过使用Visual Basic中的通信控件MSComm(Microsoft Communication Control),可以在Windows环境下轻松实现串口数据交换,MSComm是Microsoft提供的简化Windows下串行通信编程的ActiveX控件,通过对此控件的属性和事件进行编程,可以方便地发送和接收数据。利用MSComm控件制作上位机软件,可以实时显示环境温度值和提示信息。

3 硬件设计

3.1 单片机控制设计

本设计采用STC公司的STC89C52单片机作为主要控制芯片,此单片机具有4组8位I/O口(DIP-40封装),3个16位定时/计数器,8个中断源,8KB Flash程序存储器,512Byte片内RAM数据存储器,一个全双工串行通信接口。STC单片机性价比高,功能多,抗干扰能力很强,串口编程很方便,保密性很强。

基于单片机和PC机的实时温度控制系统设计
     图2 单片机控制电路idan;lai电路

采用数字温度传感器DS18B20测量环境温度,DS18B20是美国Dallas公司生产的单线数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可以直接将温度值转换为串行数字信号供处理器处理,特别适合多点温度测控系统,每片DS18B20都有惟一的产品号并可存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个DS18B20芯片。从DS18B20读出或写入DS18B20信息仅需要一根端口线,其读写及温度变换功率来源于数据总线,该总线本身也可以将所挂接的DS18B20供电,而无需额外电源。DS18B20能提供9位温度读数,它无需任何外围器件即可方便地构成温度检测系统。如图2所示,只需将DS18B20的第4脚(DQ)和单片机的一个I/O口(P2.2)相连,另外还需接一个上拉电阻即可。单片机通过其I/O口获得温度值,很方便地进行处理, 传输和控制。[page]

报警电路采用蜂鸣器作为报警器件,如图2所示,只需很少的器件,就能实现单片机与蜂鸣器的连接。当与蜂鸣器所连单片机的I/O口输出低电平时,蜂鸣器则能发出声音,系统设计中,当温度超过31℃时,蜂鸣器则发出声音,实现报警功能。

3.2 单片机与PC机接口设计

单片机要和PC机实现串口通信,需要进行电平转换,因为单片机使用的是TTL电平,而PC机串口使用的是RS232电平。运用MAXIM公司生产的MAX232芯片实现TTL电平和RS232电平转换,如图3所示,通过其第11脚和第12脚分别与单片机的第11脚和第10脚连接,通过第13脚,第14脚分别与PC机串口的第2脚,第3脚进行连接,就能实现单片机和PC机的电平转换、连接、和通信。单片机与PC机接口电路原理图如图3所示。

基于单片机和PC机的实时温度控制系统设计
     图3 单片机与PC机串口通信接口电路

4 软件设计

系统单片机程序采用C51进行编程,主要完成对DS18B20的调用中断管理、测量温度值的计算以及单片机与PC机的串口通信。上位机软件采用VBMSComm控件制作,由于C51程序较长,此处只介绍上位机软件编写程序,VB程序如下:

Private Sub Form_Load( ) \' . . . . . . . . 初始化设置
     MSComm1.CommPort = 1 \'……使用Com1口
     MSComm1.Settings = "9600,n,8,1" \'. 设置通讯参数
     MSComm1.InBufferSize = 4 \' 设置接收寄存器等待读取的字符数为4
     MSComm1.RThre shold = 0 \' 初始化为不产生OnComm事件
     MSComm1.PortOpen = True \' .打开串口
     MSComm1.InputLen = 4 \' 设置并返回Input属性从接收缓冲区读取的字符数为4
     MSComm1.InputMode = comInputModeText \' 设置接收方式为文本方式
     Me.Caption = " 实时温度控制系统" \' 设置标题为" 实时温度控制系统"
     End Sub
     Private Sub Command1_Click( ) \'. .自动读取按钮
     Timer1.Enabled = True \' . . . . . . . .开启定时器
     MSComm 1 . RThreshold = 1 \' . . . . . . . . 开启OnComm事件触发
     End Sub
     Private Sub Command2_Click( ) \'. .清空内容按钮
     Timer1.Enabled = False \' . . . . . . . . 关闭定时器
     MSComm1.RThre shold = 0 \' . . . . . . . .停止产生OnComm事件
     Shape1 . FillColor = RGB(255,255,255)
     \' . . . . . . . . 设置信号指示灯的颜色为白色
     Text1. Text = " " \' . . . . . . . .清空文本框1的内容
     Text2. Text = " " \' . . . . . . . .清空文本框2的内容
     Text3. Text = " " \' . . . . . . . .清空文本框3的内容
     End Sub
     Private Sub Command3_Click( ) \'. .关闭窗口按钮
     Unload Me \' . . . . . . . . 卸载窗体
     End Sub
     Private Sub MSComm1_OnComm( ) \'. . . . . .事件触发
     Dim rec As String
     Select Case MSComm1.CommEvent
     Case comEvReceive
     rec = MSComm1. Input
     Text3.Text = rec
     MyResult = (Text3.Text< "31")
     \' . . . . . . . . 判断当前温度是否达到31℃
     If MyResult = False Then \' . . . .达到31℃
     Shape1.FillColor = RGB(255,0 ,0 ) \' . . . . . . . . 信号灯为红色
     Text1 . Text = " 产生报警"\' . . . . . . . . 同时信息提示显示" 产生报警"
     Else \' . . . . . . . . 未达到31℃
     Shape1.FillColor = RGB(0,128,0 ) \' . . . . . . . . 信号灯为绿色
     Text1 . Text = " 温度正常"\' . . . . . . . . 同时信息提示显示" 温度正常"
     End If
     Text3.Te xt = " "
     Text3.Text = rec + "℃"
     MSComm1. InBufferCount = 0 \' 清空接收缓冲区
     End Select
     End Sub
     Private Sub Timer1_Timer()
     Text2 . Text = Now \' . . . . . . . . 设置定时器产生时钟,显示当前时间
     End Sub

5 系统调试

系统实现功能包括,通过下位机(单片机)将DS18B20所测温度值实时传输给上位机(PC机),通过上位机(PC机)监控环境温度,并具有报警功能。

1.在上位机软件中点击"自动读取"按钮实现自动读取当前时间,温度值。当正常温度情况下,信号指示灯为绿色,同时信息提示为"温度正常"。

2.当温度达到所设温度极限时(本系统所设温度极限为31℃) ,信号灯变为红色,信息提示为"产生报警",同时硬件部分的蜂鸣器会报警,如图4所示为产生报警时上位机显示部分。

基于单片机和PC机的实时温度控制系统设计
     图4 产生报警时上位机显示部分

6 结束语

运用能直接得到数字信号的温度传感器DS18B20采集温度,将温度值通过单片机I/O口传递给单片机进行处理,传输和控制,当温度值达到所设温度极限时产生报警,通过串口数据线实现下位机(单片机)与上位机(PC机)通信,并运用VBMSComm控件制作上位机软件,达到实时显示环境温度和提示信息。系统设计连接简单,实现容易,使用方便。

关键字:单片机  PC机  温度控制系统 引用地址:基于单片机和PC机的实时温度控制系统设计

上一篇:基于单片机的空气质量流量显示装置设计
下一篇:基于AT89S52单片机的花卉自动浇灌系统的设计

推荐阅读最新更新时间:2024-03-16 13:00

51单片机驱动16*16点阵显示生日快乐程序
自己亲手做的一个点阵屏 仿真+实物, 送给女朋友的生日礼物 单片机+液晶显示 带仿真文件 妞都狠喜欢这个了,显示生日快乐4个字然后还有心型,还有i love you,全部源码和仿真文件的下载地址是:http://www.51hei.com/bbs/dpj-18851-1.html 下面是部分源码预览: #include at89x51.h #include DS1302.h #define din P3_2 #define load P3_3 #define clk P3_4 #define uchar unsigned char #define uint unsigned int unsigned char code
[单片机]
51<font color='red'>单片机</font>驱动16*16点阵显示生日快乐程序
51单片机串口通信实验电路详解
  51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。   很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。   单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了。而前面学习过的定时器
[单片机]
51<font color='red'>单片机</font>串口通信实验电路详解
基于AVR单片机的轮胎内径测量系统设计
轮胎模具用于成型轮胎,其加工质量对轮胎的生产非常重要。为了生产出好的轮胎,必须对轮胎模具加工质量提出高的要求。传统的加工质量检测法主要是靠百分表,人为采集数据后分析得出加工质量报告。这种办法的局限性是需要操作者有一定的工作经验,而且取样过程人为控制,精度受到一定影响。近几年来,轮胎模具工业随着轮胎的大量需求而得到了快速发展,传统的检测方法不能满足市场需求。光栅尺是一种数字位移测量设备,测量范围可达几十米,测量精确在微米级;激光测距仪是一种非接触测量设备,可以对不规则表面的目标位移进行测量,但是测量距离较小。将大范同的光栅尺和非接触测量的激光测距仪结合起来就可以实现对不规则面的目标距离进行测量。将光栅尺读头与激光测距仪固定在机械横梁
[单片机]
基于AVR<font color='red'>单片机</font>的轮胎内径测量系统设计
单片机(AT89C51)的串行通信实验
实验一(将一个简单的字符串输出到单片机中): 实验目的: 实现输出“201805021123 YEYUEHNG ” 用VIRTUAL TERMINAL显示出来 实验一-----电路图: 实验图比较的简单明了,主要要注意的就是单片机的晶振要设置为11.0592MHz,不然不会出现预想的结果,如下图设置: 实验一-----代码段: #include reg51.h unsigned char code str = 201805021123 YEYUEHNG ; //定义一个发送的数据 //函数的功能是:向PC端发送一个字节数据 void send(unsigned char dat) {
[单片机]
<font color='red'>单片机</font>(AT89C51)的串行通信实验
单片机在平衡能力静态测试及动态训练中应用方案
1. 引言 人类的平衡能力是人能够进行各种运动的基础,人的站立、坐卧、行走都需要有平衡能力。一旦人的平衡能力有障碍,则人的行动能力就受制约,给学习、生活带来极大的不便。在现代化的社会,人口老龄化问题突出,老年人因某种疾病而导致脑损伤引起平衡能力降低,行动能力受阻。因此,在临床治疗中,需要一种能对平衡功能检验的设备。我校在上海瑞金医院的协作下,在分析了国际、国内有关资料的基础上,应用先进的计算机控制技术研制成功了多功能的人体平衡康复仪。使用该仪器可以客观、定量地进行平衡功能的测试、分析和训练,可以地进行平衡能力的静态测试和动态训练。为临床研究提供了有效的手段。 2.仪器功能 ·仪器的测量范围:10---360kg ·重心位置
[单片机]
<font color='red'>单片机</font>在平衡能力静态测试及动态训练中应用方案
曦华科技:汽车MCU发展新趋势
4月20日,曦华科技上海研发中心内,一场以“东曦既驾,水木清华”为主题的媒体交流活动正如火如荼举办。曦华科技联合创始人、CTO白颂荣及首席市场营销官兼MCU事业部总经理杨斌,从产业、团队、产品及未来规划等维度全方位解锁曦华科技的快速成长密码。 曦华科技在过去5年里一直以技术和产品为核心,不断深入耕耘,全资子公司水木蓝鲸也是国内首批通过车规级认证的MCU设计公司。在交流会上,曦华科技MCU事业部总经理杨斌介绍道:“2020年曦华科技开始布局汽车MCU产业,时逢新能源汽车市场爆发,车载电气系统智能化和模块化,为产业打开千亿级车载半导体市场增长空间;同时自主芯片研发的大背景下也为国产汽车芯片带来了绝佳的市场机遇。‘’ 曦华科技在
[汽车电子]
曦华科技:汽车<font color='red'>MCU</font>发展新趋势
PIC单片机入门_定时器/计数器TMR0详解与实例
1.前言: PIC 系列单片机内部配备有数量不等的定时器/计数器模块:例如PIC17CX系列和PIC18CX系列都都配置了4个定时器/计数器模块;而PIC16F87X系列都配置了3个定时器/计数器模块,分别记为TMR0、TMR1和TMR2。 TMR0、TMR1和TMR2在电路上均不相同,而且用途也各有所异,但是三者也存在许多共同之处。这里主要介绍的是TMR0,TMRl和TMR2将在后面介绍。 其实定时器都是一个由时钟信号触发的递增的计数器;都是从预先设定的初始值开始累计,在累计数超过最大值,或者超过预先设定的值时便产生溢出,并同时会建立一个相应的溢出标志(即中断标志位)。 2.TMR0的特性 ①核心部分是一个8位宽
[单片机]
基于8051F350单片机实现温度采集监控系统的应用方案
1 引言 温度是生产过程和科学试验中普遍且重要的物理参数。在工业生产中,为了高效生产,必须对生产过程中的主要参数,如温度、压力、流量、速度等进行有效控制。其中温度控制在生产过程中占有相当大的比例。准确地测量和有效地控制温度是优质、高产、低耗和安全生产的主要条件。 2 系统概述 整个温度控制系统主要由计算机控制系统(上位机)、单片机测控系统(下位机)、温度传感器组、功率加热系统等部分组成。系统采用了模块化的设计思想,组建方式灵活,并可利用多块单片机测控系统组合的方法增加测量点,具有良好的扩展性。系统结构框图如图1所示。 温度测量采用高精度的温度传感器PT100获得物体当前温度,经过低功耗、低输入失调电压、线性好的OP07A进
[单片机]
基于8051F350<font color='red'>单片机</font>实现<font color='red'>温度</font>采集监控系统的应用方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved