编辑: ZCYTheFirst | 2019-10-17 |
编写控制系统主程序流程图、A/D 转换子程序流程 图.以AT89C51 单片机为核心的温度测量温度检测与控制,简化了传统常规仪表的电子线路, 增加了功能,提高了温度检测准确性和控制可靠性. 关键词:AT89C51 单片机;
温度检测;
硬件结构;
主程序;
A/D 转换 中图分类号:TP368 文献标识码:B 文章编号:1009-0134(2009)09-0046-05 收稿日期:2009-01-06 作者简介:周小燕(1970 -) ,女,讲师,从事计算机、工业自动控制教学科研工作.
0 引言 化工合成对温度检测与控制要求较高, 是化工 合成工艺的关键环节. 对化工合成装置的温度进行 检测,并按工艺要求,控制最高加热温度;
在升温 阶段,控制合成温度以每小时15℃的速率上升;
加 入触媒以后的温度采用恒值控制:前期为370℃, 中 期为 380℃,后期为 390℃;
控制精度为± 3℃;
最 高温度连续三次达到 400℃时发出报警信号.显示 检测温度值;
每半小时打印一次最高温度值及检测 时间;
留有扩充余地,以实现多回路控制.
1 温度检测控制系统硬件结构 本系统的硬件电路由温度检测、 信号放大、 A/D 转换、 AT89C51单片机、 功率放大及执行电路、 打印、 显示及报警电路等部分组成. 选用AT89C51单片机作 为主控机, 采用带有死区的PID控制算法, 当温度在 给定的死区范围内时,不予调节;
超出给定范围时, 由单片机按照运算结果, 驱动步进电机, 调节加热装 置,以控制合成温度.系统硬件结构如图1 所示. 1.1 温度信号输入通道 温度信号输入通道由温度传感器、信号放大、 A/D转换等电路组成. 1) 温度传感器:温度传感器采用铂电阻.这 类材料具有性能稳定、 抗干扰能力强和测量精度高 等优点.测温元件Rt 和电阻元件组成桥式电路,将 由于温度变化所引起的铂电阻的阻值变化转化成电 压信号送入放大器.由于铂电阻安装在测量现场, 通过长线接入控制台,为了减小引线电阻的影响, 采用三线式接线法.因而,外界温度变化对连接导 线电阻r的影响在桥式电路中被相互抵消了. 2) 信号放大电路:信号放大电路由单芯片集 成精密放大器 AD522 组成.该电路共有
14 脚,其中IN+和IN-为信号差动输入端,
2、 14脚之间外接 电阻 Rc,用于调整放大倍数,
4、6 脚为调零端,13 脚为数据屏蔽端,12 脚为测量端,11 脚为参考端, 这两端间的电位差即为加到后级A/D转换器的输入 信号电压.使用时,测量端与输出端(7脚)在外部 相连接为放大后的输出信号. 将信号地与放大器的电 源地 (9脚) 相连接, 为放大器的偏置电流提供通路. 3) A/D转换电路:采用ICL7109组成A/D转换 电路,ICL7109 是INTEL 公司的产品.ICL7109 采 用双积分式工作原理,转换速率不高,但可满足本 系统对采样速率的要求. 因芯片具有较强的抗干扰 特性,对于保证系统的检测与控制精度,是非常有 利的.ICL7109 的分辨率为
12 位;
转换速率为 7.5 图1温度检测控制系统 第31 卷第9期2009-09 【47】 次/秒 (时钟为3.58MHz) ;
转换后以12位二进制码 输出.A/D转换器直接与单片机P1口、P0口相连, 转换后的
12 位数据直接由 P0 口输入而存入片内 RAM 中.12位数据需分两次读入,MCS-51 的P1.
0、 P1.
1、P1.2 分别与 A/D 转换器的运行 / 保持输入端 (RUN/HOLD) 、 字节使能端 (HBEH、 HBEL) 以及 A/D转换器的状态输出端 (STATUS) 相连接, 片选 端(CE/LOAD) 与P2.2相连, 在片选和字节使能信 号的控制下可以直接读取转换后的数据. 1.2 控制温度设定电路 采用 AT89C51 的P1.7~P1.4 设置
4 个开关 K4~K1 分别表示降温控制开关、设置控温的后期、 中期、前期开关.当K1合上为0时,表示设置控制 温度为 370℃(触媒使用的前期温度) ;
K2 合上时, 设置控制温度为380℃ (触媒使用的中期) , K3合上 时,设置控制温度为390℃(触媒使用的后期) ;
K4 合上时,停止加热,系统进入降温过程.通过软件 检测 P1.7~P1.4 的状态,发现某开关合上,则设置 对应的控制温度,并转入相应的工作过程. 1) 功率放大及执行电路: 由于步进电机具有快 速启停、精确步进以及直接接受数字量的特点等, 本系统采用步进电机作为执行元件. 控制系统采用 步进电机作为执行元件, 其作用是将计算机送出的 电脉冲信号转换为相应的机械位移, 它具有以下主 要特点: (1)步距值不受各种干扰因素的影响,转 子运动的速度主要取决于电脉冲信号的频率, 而转 子的总位移量取决于总脉冲的个数;
(2)误差不会 长期积累,转子每转动一圈积累误差为零;
(3)反 应性能好.启动、停车、反转及其他任何运动方式 的改变都在少数脉冲内完成. 在一定的频率范围内 运行时,任何运行方式都不会丢失一步. 2)执行控制系统的组成:如图3 所示.步进电 机的控制系统主要由步进电机控制器、 功率放大器 及步进电机组成. 步进控制器包括环形脉冲分配器、 控制逻辑及正反转控制门组成, 其作用是把输入脉 冲信号按一定顺序进行分配, 再通过功率放大送入 步进电机绕组,以驱动步进电机转动. 图3步进电机控制系统方框图 3)步进电机的工作原理及分配方式:进电机的 种类较多,如单相、双相、三相、四相、五相及六 相等多种类型.本设计采用三相反应式步进电机. 该电机的步距角为 1.5°,最大静力距为 50kg・cm, 最高空载启动频率为 550步/秒. 三相步进电机有 A、B、C三个绕组,按一定规 律循环给三个绕组供电, 就能使它按要求的规律运 转,其工作原理如图
4 所示.图中的脉冲发生器按 要求产生一定频率的脉冲信号, 通过脉冲分配器产 生一定规律的电脉冲输出给驱动器, 以驱动步进电 机运转.此部分可由计算机或单片机作为主控机. 而脉冲分配器可以使用编程I/O接口. 图4三相步进电机工作原理框图 步进电机脉冲分配方式及通电顺序如下: 图2信号检测放大及 A/D 转换电路 【48】 第31 卷第9期2009-09 脉冲分配器每给出一组脉冲,步进电机走一 步,转一个角度.单片机通过程序随时改变脉冲分 配方式和输出脉冲的频率,因此能灵活、方便地控 制步进电机的转速和旋转方向. 步进电机的控制部 分由单片机和
8155 并行接口完成,8155 的A口PA0~PA2 分别作步进电机的三相控制端口.步进 电机驱动电路部分采用光电耦合将单片机系统与步 进电机驱动电路隔离,以增强系统抗干扰能力,并 能防止当三极管损坏时电机驱动电路的高压对单片 机的安全造成的威胁. 可根据步进电机的电流选用 合适的大功率的三极管VT, 以完成功率放大及电机 驱动任务.二极管 VD 为保护元件,为断流时的电 机绕组提供低阻搞续流回路, 把集电极电位钳制在 电源电压,防止过高的反向电压击穿三极管. 为了及时记录合成装置的温度和检测时间, 选 用微型打印机 TP?P-40 作为记录打印装置.选用 AT89C51内部定时器, 每隔半小时启动TP?P-40打 印一次,TP?P-40 打印机通过8155与单片机相连. 为了能随机显示检测的温长值,选用一片
8155 作为LED 数码管的接口.步进电机、打印驱动电路 如图 5. 图5步进电机、打印驱动电路图
2 温度检测控制系统软件设计 2.1 系统软件功能 1)检测开关 K
1、K
2、K
3、K4 的状态,设定 温度控制值, 并将控制系统转入相应的加热或降温 阶段;
2) 启动A/D转换, 连续读取5次转换结果, 经 滤波和非线性校正处理之后, 作为一次温度检测信 号,并显示检测的温度值;
3) 进行PID运算, 按照运算结果, 驱动步进电 机以调节温度;
4) 每隔半小时, 由定时器产生中断申请, 在中 断服务程序中启动打印机, 打印记录温度值及检测 时;
5)若发现温度超限时,发出报警信号. 2.2 温度检测与控制主程序 主程序功能:完成系统初始化操作;
判断温度 是否超限, 如果超限则转报警处理, 如果未超限则读 入K
1、K
2、K
3、K4状态,并根据其输入状态, 散转 执行相应的功能子程序.主程序流程图如图6所示. 图6主程序流程图如 2.3 主要的子程序流程图 1)PID 运算子程序:取出温度给定值与测量 第31 卷第9期2009-09 【49】 值, 计算出偏差信号e(k), 将e(k)与设定的死区值比 较,如果 e(k)未超出死区范围,则本次输出调节量 为0,返回检测程序;
如果 e(k)超出死区范围,则计 算出p(k)=PP (k)+PI (k)+PD (k)的调节输出值. 2)步进电机驱动程序:本系统选用三相步进电 机,采用三相六拍工作方式,各绕组供电的步进信 号由8155的A口控制, 其转动方向及通电顺序字见 表1. 表1步进电机转动方向及通电顺序字 根据步进电机的转向与工作时绕组通电顺序变 化规律,可以在
8155 的RAM 中设置步进电机的控 制字表,如表1所示,表头地址为TAB0,表尾地址 为TAB7. 显然,驱动信号从TAB0开始控制通电顺 序, 电机为正转;
若从TAB7开始控制通电顺序, 则 电机为反转. 步进电机的转速由脉冲信号的周期 T决定.脉 冲信号的周期由CPU通过延时程序或定时器/计数 器的定时时间来确定. 系统中的三相绕组由8155的A口控制是,程序中的延时时间为
10 电机的转速 为:n =60/(N* T)转/分 式中N-电机转动一周应输出的控制字节数. 采 用三相六拍工作时, 步距角为1.5°, 则有:N=360 °/ 1.5 °=240,即转一周要输出
240 个字节控制字.设 旋转角度与输出控制字节数M的关系为M=α/1.5 °, 只要把 M 保存在字节计数器里,每输出一个字节, 步进电机转动一步, 同时将字节计数器减1, 当字节 计数器为
0 时,步进电机转动了 M 步,对应的角度 为α. 图7所示为驱动步进电机转动一步的子程序流 程图.入口条件 DPTR 中已存放步进电机的控制字 表的地址,设正转时 R5 置为 01H,R6 为FAH;
反 转时置 R5 为FFH,R6 为06H.调用本程序前应已 对8155 进行了初始化,每输出一个字节后延时 100ms. 设置R
5、 R6是为了保证步进电机按两种不 同顺序改变控制字表的地址指针, 以完成正转或反 转操作.步进电机驱动程序流程图如图
8 所示.调 用该程序前应将步进电机的转动步数和方向标志存 放在 R4R3寄存器中,符号为1表示反转,为0表示 正转,其绝对值代表转动步数. 图7电机转动一步的子程序流程图 图8步进电机驱动程序流程图 3) A/D转换子程序. 该子程序由单片机的P2.2 启动 A/D 转换,根据 ICL7109的STATUS的状态判 断转换是否完成, 若A/D转换完成, 将芯片置为保 持状态(HOLD 信息有效) .然后,分两次由 P0 口 读入转换后的
12 位数据存入单片机内部 R0 指示的 RAM 单元中.连续采集5次,再经中值滤波及线性 化程序段处理,得出一次温度检测值.该程序只对 【下转第
68 页】 【68】 第31 卷第9期2009-09 MOV 21H, A MOV 21H.7, C MOV 23H, #00H MOV 23H.2, C MOV 23H.3, C MOV A, 23H XRL 21H, A DJNZ R1, CRC1 RET CRC1: MOV A, 22H RR A MOV 22H, A LJMP CRC2
6 结论 本文论述DS18B20的单点测温方法和多点测温 方法,重点阐述了 DS18B20 的CRC 冗余校验计算 方法及具体软件编程.在测量精度高、实时性强的 地方,必须考虑CRC冗余校验, 可大大提高测量精 度和测量效果. 利用本算法和程序有效地解决了某 智能小区远程测温中存在的精度不高、 实时性差的 问题. 参考文献: [1] Http//pdfserv.maxim-ic.com/arpdf/DS18B20.PDF 2002. [2] 郭天祥.51 单片机 C 语言教程[M].北京:电子工业出版社, 2009. [3] 赵建领,薛园园.
51 单片机开发与应用技术详解[M]. 北京: 电子工业出版社,2009. [4] 江志红.51 单片机技术与应用系统开发案例精选[M].北京: 清华大学出版社,2008. 应一个温度检测点, 未涉及对其他检测点和参量的 巡回检测问题. 图9所示为A/D转换子程序流程图. 图9A/D 转换子程序流程图
3 结论 AT89C51单片机具有高可靠性、 控制方便........