建立在单片机和PC串口通信基础上的测温系统设计
电路时,要想使DS18B20 能够进行精确的温度转换,I/0 线必须在转换期间保证供电。由于DS18B20 的工作电流达到了1 mA,所以仅靠5 K 上拉电阻提供电源是不行的,当几只DS18B20 挂在同一根I/0 线上并同时想进行温度转换时,这个问题变得更加尖锐。考虑到本系统只进行单点测量,故采用从VDD 引脚接入一个外部电源的方法。
2.2 主控电路及复位电路
AT89S52 具有多种封装形式,该系统为便于焊接,采用PDIP 封装形式。AT89S52 单片机内资源丰富,为解决该系统的设计提供了多种多样的方案设计,该系统占用AT89S52I/0 端口P1、P2、P3 的部分资源。
2.3 电平转换电路
RS_232 是用正负电压来表示逻辑状态,与TTL 以高低电平表示逻辑状态的规定不同,因此,为了能够同计算机接口或终端的TTL 器件连接,必须在RS_232 与TTL 电路之间进行电平和逻辑关系的变换,实现这种变换的方法可用分立元件,也可以用集成电路芯片。考虑到数据的双向传递性,该系统采用MAX232 芯片,可以完成TTL 到RS_232 双向电平转换。
2.4 显示电路
LCD1602 是常见的液晶显示器,其特点是读写简易,显示精度高,与用动态数码管显示相比其占用资源较少,且显示数据稳定,抗干扰能力强。
2.5 硬件构成总电路图
系统整体硬件电路包括温度采集电路、主控制器电路、电平转换电路和显示电路这四部分,电路如图2 所示。
图2 系统硬件电路总图
3 软件系统设计
3.1 下位机软件设计
下位机程序设计包含三部分:微控制器的初始化、对DS18B20 的访问和对LCD1620 的读写。AT89S52 是该系统的核心部分,控制着温度的转换以及读取温度数值并转化成十进制数以及相应的ASCII 值在1602 上进行显示,通过RS232供PC 机读取温度值。其主要工作流程为:初始化内部部件以达到环境运行要求、初始化DS18B20 以及LCD1602;读取温度值并将采集到的数据进行相应的转化传送到1602 上进行显示;当遇到中断时,进入中断服务函数,检查上位机是否向其请求发送数据。一旦检测到正确的请求即将读取的温度数值按照一定的格式放到缓冲器中,直到数据发送结束,返回中断点继续执行原函数。流程图如图3(a)所示。
3.2 上位机软件设计
为方便进行远程控制可将采集到的温度数据通过RS_232 口传输到控制中心的电脑上,以便实时监测。采用VB6.0[4]作为开发平台,可高效快速地完成软件的开发设计。
采用Viusal Basic 开发串口通信程序主要有两种方法:①使用MSComm 串口控件;②调用Window API 函数。
使用MSComm 串口控件实现通信的方法比调用API 动态链接库函数的方法方便、快捷、而且用编写代码量少的有点,可以大大地提高编程效率和系统设计的稳定性。该部分软件完成窗体的设计,设置Timer 的间隔为300ms,完成MSComm控件的添加,设置其相应的属性,对所得的数据进行分析计算并在窗口中显示。流程图如图3(b)所示。
图3 测温系统程序流程
4 结语
这里项目根据实际需要完成了测温系统的设计和实现。
包括:整体架构设计、下位机底层硬件和软件的具体实现、PC 串口上位机软件设计,较好地达到了预期目的。系统实物图如图4 所示,前后台温度显示如图5(a)、图5(b)所示。
系统充分利用了DS18B20 微型化、低功耗、高性能、抗干扰能力强等优点,将温度数据通过串口传输到上位机进行统一管理,有利于温度数据的保存和查询,节省了人力成本。
该系统可应用于较多的测温场合。更高级的基于嵌入式系统和无线传感网络的测温系统目前也是人们研究的热点。下一步的工作将展开基于反馈控制的温控系统设计。
图4 系统实物
图5 测温结果显示
- 单片机与串行AD转换器TLC0834的接口设计(01-22)
- 单收/单发RS-232接口芯片 ADM101E及其应用(01-25)
- 基于单片机的通用型智能充电器设计(01-06)
- 一种通信用高频开关型整流器监控系统的实现方案(02-13)
- 基于16位单片机的逆变电源系统的设计(05-26)
- 便携式单片机控制液晶显示型心率计(03-12)