匿堕霍雯霆堕垂亟圜
文章编号:1008-0570(2007)10-1--0071-03
单片机开发与应用
基于LabVIEW的单片机温度测控系统设计
Single Ch『p Microcomputer Temperature Measurement and Control System Based on
LabVIEw
(1,燕山大学;2.河北大学)肖金壮1张伟1王洪瑞2魏会然1
XIAO JINZHUANG ZHANG WEI WANG HONGRUI WEl HUIRAN
摘要:利用LabVIEW开发环境设计Pc土住机的监控界面,上住机通过串行口与89(;51单片机通信,从而实现对过程参数的
测量和控制。该测控系统谩计简单.简化了系统硬件结构,并且易于修改,具有很好的可扩展性。
关键词:串行通信:温度测控系统:单片机
文献标识码:A
中图分类号**TP368.1
Abstract:By using I.abVIEW development environment.a PC—based supervisory interface is designed.The PC communlcattm with the
89C51 Si峭e Chip Micnmomputer via serial communication,then the prvcess p㈣r can be∞qllired and controlled姆the PC.
This illeas啪ent and control system讧dI叩le tO design;it simplifies the h8Idware architecture and is convenient to be modified,it
also h good extensibility.
Key words:Serial Communication。Temperature Measurement and Control System.S血ole Chip Microcomputer
些模块之前,需安装光盘上的vISA驱动程序;也可从NI的网
站免费下载最新VISA驱动程序。下面介绍一下最常用的串行
通信模块:
1)VISA Configure‰d Port。,
用于初始化所选择的串行口。其中VISA础籼e name用
于选择所用到的串行口。PC机中常用到的串口号分别用CoMl
和cOM2表示。How control用于设置握手方式。buffer size用于
设置缓冲区的大小。Baud late,data bits,stop b“R p=_ity分别用
于设置串行通信的波特率,数据位长度,停止位长度.校验方式。
2)V融Write。
用于将write buffer中的字符写劲ⅥSA resource name指定
的串行接口中。
31VISA Read。
从VIsA嗍uIce name指定的串行接口中读取规定字节数
的数据,并将这些数据传递给read buffer。Byte count用于设置
要读取的字节数。‘
4)VISA Close。
用于关闭VISA resotlrce name指定的串行口.让出串行口
的使用权。
2,2 I丑bVIEW程序设计
l引言
,
虚拟仪器技术已经在测试测量以及工业控制领域得到广泛
的应用。通过利用NI(National lnstrumen协1公司提供的ⅢIEw
软件和相关硬件,可以方便快捷的设计出所需的测控系统,但其
提供的硬件大都比较昂贵。
这里设计的系统组成框图如图1所示。上位机Pc通过自
带的串行口,和单片机进行通信。在此基础上,使用hbv正w
8.0设计上位机监控界面。实现对被控温度的测量和控制。从而
降低了系统的硬件成本。
下位机采用891351单片机。单片机外围电路将采集到的温
度信息传给单片机,单片机再将其传到上位机。上位机根据从
单片机得到的数据.完成被控量的显示和控箭。
,
为了实现PC机和单片机的串行通信.还需设计一个电平
转换电路,这里使用的核心芯片是MAX232cPE。
圈1系统组成框图
2上位机软件设计
,上位机采用LabVIEW编程,【丑bvIEw是专业的侧控软件。
通过使用LabVIEW可以缩短测控系统的设计时间,而且设计出
的系统界面美观,便于修改,易于扩展。
2.1 I曲vIEw串行通信功能模块介绍
在LabVIEW功能面板的InstrumentYO-->Serial目录下。
包含串行通信所需的集成模块。利用这些模块,可以非常方便
的设计出基于串行通信的测控系统。需要注意的是,在使用这
肖金壮:讲师博士研究生
基金项目;河北省自然科学基金资助项[](F200400260)
图2上位机监控界面
@_自舯邮局订冁82.946 360,%/g:-一71—
˝
•
‰
˚
单片机开发与应用
中文核心期刊‘微计算机信患)(嵌入式与SOC)2007年第23卷第10-2期
系统主监控界面如图2所示。用到的控件包括:控件面板
上]/0子面板中的VIsAResom悦控件;Array,Matrlx&Cluster
子面板的Azray控件;Numedc子面板下的Numeric Control控
件:Boolean子面板下的Round LED控件;Graph于面板下的
WaveformChm拦件。‘
其中端口选择用于设置用到的串行口。温度设定用来设置
期望的温度值。波形图控件用于显示采集到的温度值。这里系
统所能达到的最高温度为230℃左右.因此围中波形图控件的
最大量程设置为250℃。
口』&L—型
H渊。耥:i
一甲一.
:虱j
.
固l
:国 :
擎
圈
}咖 l|
团 厦圃珏拄£琶壁墨塞I
L_‘增科
图3上位机程序框图1
二国1 l№划 i
固!
蔺
●
。
l
i口选择
J露盈
吨囡
田匝蝴§堙{&墨l
l匡垡例
图4上位机程序框图2
图5单片机程序框图
因串行通信中传递的是字符串类型的数据.因此需要将以
数字量形式存在的温度设定值转化为字符串格式。才能写人
VIsA Write:这里采用Byte Anay To String功能模块实现这一功
能。同样的,需要将从VISA Read读取的字符串信息转换成数
字量。然后才能在波形图控件上显示:可采用String To Byte
Array功能模块实现这一转换。
框图中的Wair Until Next ms Multiple模块用于设置系统
串行通信的控制周期.其输人端子millisecondmultiple用于给
定需要等待的毫秒敷。这里给出的设定值为1000.即等待1秒
篙
的时间。
3单片机程序设计
这里选用的是89C51单片机.采用c语言编程。
5l系列单片机自身具有垒双工的异步通信接口,可方便的
实现串行通信。通过软件编程,它可以做通用异步接收和发送
器UARTrUniversal Asynchronous Received Transmitter)用.也可
作为同步移位寄存器用。其帧格式可有8位、10位和11位,并
能设置各种波特率。在实用上灵活方便。
系统的程序框图如图3和图4所示。其中串行通信的主要
主程序框图如图5所示。其中temp中保存的是采集到的实
用握手信号o.
参数设置如下:波特率为1250,数据位8位,停止位1位,不采
际温度。set_temp中保存的是上位机传给单片机的温度设定值。
系统初始化阶段。。令单片机的定时器Tl工作于定时方式
程序开始首先利用VISA c加矗gIl∞serial Port模块对串行 2.用于产生串行通信所需的波特率。串行口工作在方式1.为
10位异步通信方式.即每帧数据由1十起始位,8个数据位.1
口进行初始化。然后判断开始,暂停采集按钮是否按下,如果处
于按下状态,则执行Case语句的Tme分支程序;否则执行Case 个停止位构成。
语句的False分支程序a
令51单片机的定时器T0工作于定时器模式,用于产生指
在True分支程序里,首先利用VISAw五te模块将温度设定 定的控制周期。在TO的中断程序里,首先将采集到的温度信息
值传给单片机,然后用VISARead模块接受单片机传递过来的 保存到全局变量temp中,然后再根据上位机给出的期望温度值
温度信息,并将其显示在波形图控件上。在False分支程序中,Bel—t嘲p.计算出温度的偏差E。在此基础上,可选用PID等控制
则不进行任何操作。
算法给出控制量C,进而对温度进行实时控制。
一72—360.'L/年邮局订阗号:82-946
˝
•
‰
˚
匿重匿塑雯塑塑烫垦萋雪
单片机与上位机串行通信的中断程序如下:
∞由10 interrupt4
{
坦RI—1)
{
砌--0;
龅/t temp=SBUF.
SBUF-memp;
while(TI----0);
TI--"0;
}
)
。
4结论
本文利用ⅢlEW设计了一个温度测控系统,可以在上位
机Pc上完成被控温度的显示与控制。比较详细的介绍了上位
机和单片机程序的缩写过程。借助于hbvIEW还可以通过简单
的设置.将采集到的温度数据保存到指定的文件中。LabVIEW
具有强大的网络通信功能。可以方便的实现远程控制。相信
ⅢⅢW将在涮控领域得到更广泛的应用。
本文作者创新点:使用I丑bⅧW软件设计上位机监控界
面.与Visual c++等开发软件相比。使用LabVIEW软件可更加
方便的设计出美观的监控界面.并缩短系统的开发周期。在本
文设计的系统中.上位机Pc通过串行口与单片机进行通信,不
但实现了对工业现场温度信息的采集,而且实现了对现场温度
的实时、远程控制。
参考文献
[1]李群芳,黄建,单片微型计算机与接口技术.北京:电子工业出
版社,2001
口1魏晨阳,朱健强.基于LabVIEW和声卡的数据采集系统Ⅱ]微计
算机信息.2005.1:45—46;
【3]刘君华等.虚拟仪器图形化编程语言LabVIEW教程.西安电
子科技大学出版社.20[)1
作者简介:肖金壮(1976-】,男,汉族,讲师,燕山大学博士研究生,
研究方向为机器人智能控制、工业测控系统;张伟(1982一).男,
汉族.燕山大学硕士研究生。研究方向为嵌入式潞控系统,机
器人容错控制;王洪瑞(1956一),男,汉族,燕山大学教授,博士生
导师.研究方向为机器人系统控制及轧钢机控制;魏会然
(1982一),女,汉族.燕山大学硬士研究生,研究方向为模型辨
识、机器人故障诊断。
Biography:Xiso JiI曲11aIlg(1976一)'male,lmtnwtor,Doctor.
Research field:intelleetmd robot contr01.industriel proce明∞n—
sol system.
(066004河北省秦皇岛燕山大学电气工程学院)肖金壮张伟
魏会然
(071002河北省保定市河北大学电子信息工程学院)王洪瑞
(Institute of Eleca'ieni Engineering,Yanshaa University,Qtn.
huangdao Hebei伽帆China)Xiao JinZhuang面Ⅲ喀Wd
单片机开发与应用
通讯地由12:(071002河北省河北大学电信学院自动化累)
肖金壮
(收稿日期:2007.8.23)(修稿日期:2007.9.25)
(上接第34页),
指令
Ⅲ+CMos=l
AT4CMGS--"对方号码’’
表2 MC35模块AT指令
应答
功能
OK
OK
模块状态查询
短消息文本镬式
准备发送短消息
在>提示符下输入短消息内容“11tL●z
0K
发送短消息
在switch语句中,根据模块当前状态值来完成不同的操作。
但无论进行何种操作。都需要先根据数据输入缓冲区中的应答
数据进行判断,若应答正确(符合上表),则继续下一步骤,否则,
设定程序结束标志为1,显示错误信息.从回调函数返回。因此.
任何不正确的应答信息,都会结束整个程序的执行.我们可以根
据系统提示的错误信息判断是哪个步骤出错.比如模块状态不
正常、短信发送来成功等。
5结论
本文的创新之处在于提供了一种方便快捷的曦^式Linux
下串行通信设备程序开发方法.该方法利用串行接口驱动函数
库libc鹪l,以YO事件驱动设备的数据采集。多串口数据采集能
够异步并发。异步事件驱动的架构可以提高系统并发处理性能.
程序能够执行多个异步操作而不调用阻塞线程。降低系统开销。
同时采用了开放式的体系架构。硬件平台基本不受限制。通过
Linux的移植.就可以运行在其他平台。而嵌人式系统加GSM模
块的系统组成非常适合于偏远地区或移动的数据采集系统中.
根据系统的需要.还可以充分利用模块的GPRS功能.宴现高速
的数据采集。
参考文献
。
【11程全.李向东.基于GSM模块与AT98C51的接口设计及应用.
Ⅱ】微计算机信息,2006:9-2:293-295
田威尔金森.阿兰.并行程序设计∞帆槭工业出版社.2905年5月
【3】孙琼.嵌入式Linux应用程序开发详解.人民邮电出版社.2006
年7月
【4](Technical Product Information MC35)
作者简介:抄泉(1974--),女(蒙古族),内蒙古通辽人.上海应用技
术学院机电分院讲师,硕士研究生。主要从事过程控制、嵌入式
系统方面的研究。
Biography:Sha Ql∞(1974一)'female(Mongolia).Tonglino
Mogolia,prelector in school of mechanical and automation of
Shanghai institute 0f teeknalogy.master’{degree.My mseereh
aI髓is aJaout pious8 eontro|and embedded system.
(200235上海上海应用技术学院)沙皇
(Shanghai Institute of Teclmology,200235)Sha Quan
,
,
WeiHniRan
(college of Electronic and Information En咖eering,Hebd U-
nlversity,Baodlng He喇们'1002,C'hiaa)War噻HongRud(收稿日期:20∞903×修稿日期:2007.10.25)
@m_邮局订阗号.82-945 360元,年,73—
通讯地址:(20u02上海上海古美路675弄19号1202童1
沙泉
匝亟遁圃
˝
•
‰
˚