林国
摘 要:本文以P87C54单片机为主要核心部件,通过对A/D转换、串口通信、键盘设置等模块的软件编程,设计了一个测量精度高、线路简单、操作方便,并能与上位机(计算机)通信的智能型高精度温度仪表。
关键词:单片机串行通信仪表
中图分类号:TN93 文献标识码:A 文章编号:1674-098X(2012)06(a)-0026-02
1引言
模拟的高精度温度仪表存在外围电路复杂、调试烦琐、操作麻烦、无法与上位机通信等缺点。针对上述问题,本文阐述了基于单片机控制的智能高精度仪表的设计方案。该仪表不仅能精确测量温度,对被控对象进行精确的温度控制(控制精度±0.01℃),而且能把测量的温度传送到计算机上处理并且打印,以便使用者分析处理。
2仪表的功能
本仪表采用PT100热电阻测温,测量精度为0.01℃,不仅能精确测量被测系统的温度,而且能数字显示温度大小,具有动态显示、性能温定、控制精度高等特点。概括起来仪表具有如下功能:
(1)采用PT100热电阻测温,测温范围为-100.00~300.00℃,显示值基本误差:±0.2%FS;
(2)具有RS-232串行通信接口,可以和上位机进行通信;
(3)通过轻触按键可以设定温度及一系列控制参数;
(4)双窗口10位数码管动态显示测量温度和设定温度。
3仪表的硬件结构
本仪表主要由Philips P87c54单片机和外围电路及其相应的软件编程构成,如图1所示。
本仪表可分为以下6个模块:A/D模块、显示模块、键盘输入、串口通信模块、输出控制模块、电源模块。
本文主要介绍A/D模块、通信模块(MAX232)及键盘输入。
4关键芯片及技术
4.1 A/D模块
本设计采用了CRYSTAL公司生产的20bitA/D专用芯片CS5513。它是一种低成本、易于使用的Δ-ΣA/D转换器,其内部包括一个4阶Δ-Σ调制器和一个滤波器。CS5513片上自带振荡器。无需外加时钟源。CS5513的基本参数和特点如下:
●Δ-ΣA/D转换器;
线性误差:±0.0015%FS;
无噪声分辨率17位;
●差分模拟输入(双极性);
●参考电压范围为250mV~5V;
●输出字速率为16~326;
●带有片上振荡器;
●可配置成5V单电源和多种双电源;
●采用8脚SOIC塑料封装,可节省设计空间。
原先模拟的高精度仪表数据采集部分使用的是通用的16位双积分式模/数转换器7135,其采集速度慢、外围电路多、线路复杂。现在采用CS5513后,PCB板面積只有原来的五分之一。同时由于是串行接口,因而与单片机的接口非常简单,其采集速度可达到100多Hz,采集精度也进一步提高。
本设计的A/D模块的硬件电路图如图2所示。
J1接PT100传感器,其与R1的分压和R2与R3的分压差分输入到CS5513的Ain+和Ain-。而CS(CS5513的片选)、SDO(串行数据输出)和SCLK(串行时钟输入)接单片机端口。
A/D转换的步骤如(图3),先将CS置0这样就可以对CS5513操作了,此时单片机可以根据SDO当前的电平高低来判断CS5513的工作状态,并读取数据,从图3可以看出CS5513的转换结果读取过程十分简单。
4.2 RS-232串口通信
单片机与计算机之间的双向RS-232通信的目的是把仪表的温度测量值、设定值及其他参数传到上位机(计算机),上位机通过软件接收数据,并进行更进一步的处理。
单片机通过MAX232转换模块与PC机相连,单片机晶振采用11.0592M,使用T2定时器产生波特率,波特率为9600bit/s。数据传送格式为1个起始位0、8个数据位(二进制,最小有效位先发送)、2个停止位1(无校验)。
4.3 键盘设置
模拟表通过电位器来设定温度,操作麻烦。针对这一问题,本仪表在面板上设置了“SET、<、∧、∨”四个按键,用来设定各种参数,并通过键盘接口的编程把各模块联系起来统一工作,使用者操作起来简单明了。
5软件设计
由于本仪表采用单片机控制,所以必须有强大的软件系统支持。本仪表的软件系统由一个主程序和多个子程序组成如图4。
仪表的软件系统总的来说由四大部分组成:
(1)系统的初始化。
包括P87C54芯片本身的初始化,串口、键盘接口、显示模块的初始化。
(2)键盘扫描及键盘功能程序
通过该程序可以修改仪表所有参数,可以达到用户所需的要求。
(3)数据采集、显示部分。
(4)PID计算程序及输出控制程序。
PID 1秒钟计算一次,每次计算出合理的控制量,以便达到精确控制温度。
6结语
本方案设计的高精度温度仪表能满足当今用户对高精度温度仪表的精度、外观、操作等各方面的要求,现已经形成产品并大量应用于工业现场,取得了一定的经济效益。
参考文献
[1] 马忠梅.单片机的C语言应用程序设计.北京航空航天大学出版社,2001.
[2] 潘新民.微型计算机控制技术.人民邮电出版社,1999.