时间:2024-09-03
大连计算机职业中专 梁 伟
DS18B20数字温度计提供9至12位的摄氏温度测量,并具有易失性的用户可编程报警功能。DS18B20单总线与中央微处理器进行通信,温度测温范围为-55~+125℃。DS18B20消除外部电源需要,能够直接将温度转化,从数据线导出,可以应用于空调环境控制,建筑物内的温度监控系统和过程监控控制系统,具有微型化、低功耗、高性能等优点。
运用单片机与计算机通信,实现建筑物内温度监控平台包括单片机BST-V51开发板、Keil C51单片机与C语言软件、1602液晶显示模块、DS18B20数字温度计、计算机与VC++ 6.0软件,下面介绍调试方法,分四个步骤。
1602LCD主要技术参数:显示容量:16×2个字符,芯片工作电压:4.5—5.5V,采用标准的16脚带背光接口,内部的控制器共有11条控制指令,1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的,基本操作按照读写操作时序图进行,打开Keil C51单片机软件编写1602LCD初始化函数void lcdInit()、写指令函数void lcdWritComm(uchar comm)、写数据函数void lcdWritData(uchar dat)、1602液晶显示函数void display(int v)等操作代码,启动stc-isp-15xx-v6.85F烧写应用软件,烧写代码,实现1602液晶显示字母和数字。
DS18B20的核心功能是它的直接读数字的温度传感器,温度传感器的精度为0.0625℃,在上电状态下默认的精度为12位。DS18B20启动后保持低功耗等待状态;当需要执行温度测量和AD转换时,总线控制器发出[44h] 温度转换指令,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器RAM中。编写DS 18B20复位函数void dsInit(),温度转换函数void tempChangeCmd(),读RAM温度数据函数void tempReadCmd()等操作代码,实现液晶显示温度如图1所示。
编写单片机串口通信初始化函数void serInit(void),串口通信函数void serComm(char *ptr),打开串口调试助手应用软件,实现STC89C52单片机与PC机串口通信如图所示。
MSComm是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。MSComm 控件常用的属性有,CommPort设置并返回通信端口号; Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位; PortOpen设置并返回通讯端口的状态,也可以打开和关闭端口; Input 从接收缓冲区返回和删除字符; Output 向传输缓冲区写一个字符串等属性。
在计算机打开VC,新建文件,建立工程,工程取名为temperature_dis。打开“Project->Add To Project->Components and Controls->Registered Activex Controls”,然后选择控件:Microsoft Communication Control,version 6.0插入到当前的工程中。
将CMSComm 的相关文件 mscomm.cpp 和 mscomm.h加入到工程中。选择控件工具条中的串口控件,增加OnOn-CommMscomm1() 函数。选择控件工具条中的编辑框控件abl,为编辑框和串口选择关联变量m_tempDat和m_temp-Comm,在OnInitDialog() 函数加入代码。
图1
图2
可视化PC机控制界面能够实时显示建筑物内的当前温度如图2所示。
在单片机组成的温度监控系统中,一般由单片机作为下位机,完成数据采集、状态判别、输出控制温度参数,上位机PC机完成采集数据信息的存储与分析,以实现对温度的实时监控。
[1]郭天祥.数字电子技术基础[M.]电子工业出版社.
[2]BST-V51单片机开发板教程. 深圳市亚博智能科技有限公司.
[3]DS18B20中英文数据手册.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!