《课程设计(论文)单片机水温控制系统设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)单片机水温控制系统设计.doc(39页珍藏版)》请在三一办公上搜索。
1、 数理与信息工程学院课 程 设 计 题 目: 水温控制系统 专 业: 计算机科学与技术(专升本) 班 级: 计本 056 姓 名: 学号: 实验地点:数理与信息工程学院 电子系统设计室指导老师: 成 绩: ( 2006.6 )目 录第1节 引 言 1 1.1 水温控制系统概述 11.2 设计任务与要求 11.3 系统组成 2第2节 系统硬件设计 22.1 系统总体设计框图 22.2 温度采样电路 32.3 温度控制电路 42.4 主机控制部分 42.5 键盘及数字显示部分 52.6 微机控制及图形显示部分 6第3节 系统软件设计 7 3.1 系统主程序设计 73.2 键盘显示程序 8第4节 实
2、际测试 9 4.1 系统测试仪器 94.2 测试方法 94.3 测试结果 9第5节 结束语11参考文献 12附录 13单片机水温控制系统数理与信息工程学院 05计算机专升本 章一娜指导教师:余水宝 张 胜第1节 引 言在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一,在环境恶劣或温度较高等场合,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准。如何更快、更准确的控制所需的温度是温度控制技术的关键。1.1 水温控制系统概述本文介绍的是一个以51单片机为控制核心的水温控制系统,此
3、系统通过人机交互设定控制温度,采用增量型PID算法,通过脉宽调制控制电炉加热,最终实现水温的恒定。该系统具有温度超调量小、调节时间短、静态误差小、测量精确、恒定温度与设定温度偏差小等优点,且控制方便、显示直观、性能稳定、可靠性高。1.2 设计任务与要求系统的基本任务与要求:(1)系统的基本要求:一定量水由电炉加热,要求水温可以在一定范围内由人工设顶,并能在环境温度降低时自动实现调整,以保持设定的温度基本不变。(2)主要性能指标a.温度设定范围:温度设定为4090最小区分度为1;b.控制精度:温度控制的静态误差名1;c.用十进制数码显示实际水温;(3)扩展功能a.具有通信能力,可接收其他数据设备
4、发朱的命令,或将结果传送到其他数据设备;b.采用适当的控制方法;当没定温度或环境温度突变时减小系统的调节时间和超调号c.温度控制的静态误差0.2;d.能自动显示水温随时间变化的曲线。1.3 系统组成本系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。因此,以单片机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用特为实现水温的智能化控制以及提供完善的人机界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑电路中往往是难以或无法实现的。根据设计任务基本要求,本系统应具有以下基本
5、功能:(1)可以进行温度设定,并自动调节水温给定的温度值。(2)可以调整PID控制参数,满足不同控制对象与控制品质要求。(3)可以实时显示给定温度与水温实测值。第2节 系统硬件设计本电路总体设计包括五部分:主机控制部分(89C52)、前向通道(温度采样电路)、后向通道(温度控制电路)、键盘和数字显示部分、微机控制及图形显示。2.1 系统总体设计框图本系统以89c52单片机为核心,采用了温度传感器AD590,A/D采样芯片ADC0804,可控硅MOC3041及PID算法实现对温度的精确控制。系统框图如图2-1图2-1 系统框图2.2 温度采样电路系统的信号采集电路主要由温度传感器(AD590)、
6、基准电压(7812)及A/D转换电路(ADC0804)三部分组成。电路图如图2-2-1 图2-2-1 温度采样电路原理图(1)AD590性能描述 测量范围在-50-+150,满刻度范围误差为0.3,当电源电压在510V之间,稳定度为1时,误差只有0.01 。AD590为电流型传感器温度每变化1其电流变化1uA在35和95时输出电流分别为308.2uA 和368.2uA 。(2)ADC0804性能描述 ADC0804为8bit的一路A/D转换器,其输入电压范围在05v,转换速度小于100us,转换精度0.39。满足系统的要求。(3)电路原理及参数计算 温度采样电路的基本原理是采用电流型温度传感器
7、AD590将温度的变化量转换成电流量,再将电流量转换成电压量通过A/D转换器ADC0804将其转换成数值量交由单片机处理。如图2-2-2 UbUcA图2-2-2图中三端稳压7812作为基准电压,由运放虚短虚断可知运放的反向输入端Ui的电压为零伏。当输出电压为零伏时(即Uo=0v) 列出A点的结点方程如下:. (1) 由于系统控制的水温范围为35-95,所以当输出电压为零伏时AD590的输出电流为308.2uA,因此为了使Ui的电位为零就必须使电流等于电流等于308.2uA, 三端稳压7812的输出电压为12v所以由方程(1)得 . . (2)由方程(2)的取电阻R2=30k , R1=10k的
8、电位器。由方程(2)的取电阻R2=30k , R1=10k的电位器。又由于ADC0804的输入电压范围为05v ,为了提高精度所以令水温为95时ADC0804的输入电压为5v(即Uo=5v)。此时列出A点的结点方程如下: (3)当水温为95时AD590的输出电流为368.2uA。由方程式(3)得R4+R5=83.33k因此取R5=81k , R5=5k的电位器。 2.3 温度控制电路此部分电路主要由光电耦合器MOC3041和双向可控硅BTA12组成。MOC3041光电耦合器的耐压值为400v,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。100电阻与0.01uF电
9、容组成双向可控硅保护电路。控制部分电路图如图(2-3)。图2-32.4 主机控制部分此部分是电路的核心部分,系统的控制采用了单片机89C52。单片机89C52内部有8KB单元的程序存储器及256字节的数据存储器。因此系统不必扩展外部程序存储器和数据存储器这样大大的减少了系统硬件部分。2.5 键盘及数字显示部分在设计键盘/显示电路时,我们使用单片机2051做为电路控制的核心,单片机2051具有一个全双工的串行口采用串口,利用此串行口能够方便的实现系统的控制和显示功能。键盘/显示接口电路如图2-5-1。 图2-5-1 键盘/显示部分电路图2-5-1中单片机2051的P1口接数码管的8只引脚,这样易
10、于对数码管的译码,使数码管能显示设计者所需的各数值、小数点、符号等等。单片机2051的P3.3、P3.4、P3.5接3-8译码器74L138,译码器的输出端直接接八个数码管的控制端和键盘,键盘扫描和显示器扫描同用端口这样能大大的减少单片机的I/O,减少硬件的花费。键盘的接法的差别直接影响到硬件和软件的设计,考虑到单片机2051的端口资源有限,所以我们在设计中将传统的4*4的键盘接成8*2的形式(如图2-5-2),键盘的扫描除了和显示共用的8个端外,另外的两个端直接和2051的P3.2和P3.7相连。图2-5-2键盘接线如图2-5-2的接法已经完全用完了单片机的15个I/O口,有效的利用了单片机
11、的资源。2.6 微机控制及图形显示部分为了使系统具有更好的人机交换界面,在系统设计中我们通过Visual Basic 语言设计了微机控制界面。通过系统与微机的通信大大的提高了系统的各方面性能。其控制界面见图2-6-1图2-6-2由于单片机89C52串行口为TTL电平,而PC机为RS232电平,因此系统采用了MAX232电平转换芯片。由于系统设计了多机通信的功能,即主系统(89C52)和键盘及数字显示部分的通信、主系统(89C52)和PC机 的通信,所以在设计电路时要特别注意多机通信的时序及竞争问题,针对此类问题在设计中我们特地的在两根串行通信线上增加了如图2-6-2的电路:如图2-7由于主机部
12、分发送两个从机都可以接受,因此主机的发送部分(及主机 TXD)不存在竞争问题。而两个从机可能同时向主机发送各类控制信息,因此会存在竞争问题。其实图2-6-2为一个与门电路,图中R1为提升电阻,D1、D2为开关二极管,当pc TXD(或2051 TXD)中有一个为低电平时主机RXD为低电平,同时另一个分机无效,当pc TXD(或2051 TXD)中有一个为高电平时主机RXD为高低电平。图2-6-1微机控制界面如图2-6-1的微机控制界面,具有温度控制及显示的功能。图中左半部分为水温的实测温度和给定温度的数值显示及对主系统(89C52部分)的控制界面,右半部分为水温的实测温度的逐点采样及图形显示,
13、通过此界面可以更直观的显示温度的变化,并且通过对图形的保存能方便的打印出水温的变化曲线。第3节 系统的软件设计本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整或定闹设置程序三大模块。在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模块作介绍。3.1 主程序流程图开机 机系统初始化显示清零,各记数指针清零,设定定时器及中断否是调用相映的中断程序判断是否有中断?PID算法PWM波产生接收及发射串显示数据PC机通信子程序 图3-1主程序流程图各类数值转换子程序主程序流程图如图4-2-1所示,程序主要完成以下的几部分任务:(1)初始化 设定各参数的初始值,设定各中断及定时器。(2)接
14、收/发射 此部分程序主要完成数据的控制及显示,其主要通过89C52单片机的全双工串行口完成和键盘部分的双向通信。(3)PC机通信 此部分完成与微机控制接口RS232的联接及通信的控制。(4)数值转换子程序 由于主程序中用到了很多的数值转换及数值的运算(如十进制转换成十六进制、双字节与单字节的除法运算等等),为了程序调用的方便,特地将其编写成子程序的形式。3.2 键盘显示程序图3-2定水温、显示温度、确定、取消、清零、输出,均为各种子程序,1、2、3、4、5、6代表个子程序的应用程序。开机 机系统初始化显示清零,各记数指针清零否判断是否有键按下?是消除颤抖设定水温显示温度确定单步清零取消输出输出
15、654321 图3-2程序第4节 系统调试与测试结果分析4.1 系统测试仪器:双路跟踪稳压稳流电源DH1718E-5直流稳压电源数字示波器Tektronix TDS1002伟福E6000/L 仿真器多功能数字表GDM-8145数字万用表P4 CPU2.4 内存261.616RAM Haier机。0100温度计、调温电热杯、秒表4.2 测试方法(1)在调温电热杯中放入1升清水,电热杯和控制系统相连,给系统上电,系统进入准备工作状态。(2)用温度计测量及调节水杯中清水,水稳为35,给系统调零。分别设定温度为40、45、50、60、70、75、80、90,观察设定温度和实际温度,并记录数据。填写表4
16、-1。观察水温变化的动态情况,并记温度稳定的时间。填写表4-2。4.3 测试结果(1)给定温度与实测温度的数据对比如表4-1表4-1 误差分析表设定温度()实测温度()绝对误差()相对误差()设定温度()实测温度()绝对误差()相对误差()13535004606111.642404112.435747511.3334544-1-2.276818211.22从表4-1中的数据可知,系统的误差基本稳定在正负1基本满足系统的设计要求。(2)温度稳定和时间的关系设定温度为50,每隔30s记录实测温度如表4-2表4-2 温度稳定速度关系表(设定温度50)测量时间(分)0.5分1分1.5分2.0分2.5分
17、3.5分4.0分实测温度35374043485255测量时间(分)4.5分5.0分5.5分6.0分6.5分实测温度5249515051从表4-2中的数据可知,系统运行5分钟时系统基本达到稳定。由微机逐点采样所的曲线图如图4-1所示50 图4-1 温度变化图结束语本系统结构简单,温度控制灵活、检测准确。增量型PID算法使得温度控制灵活,控制精确,存在的缺点是此系统中的PID的算法只实现了I的积分部分,控制不是非常准确,如果把P,D两部分都加进去,浮点运算也包含进去,就更加完美了,但是这样复杂的程序在单片机中无法实现,需要借助计算机的软件功能,如:C语言等。参考文献1 电子系统设计(第三版)何小艇
18、.浙江大学出版社.2004 2 8051单片机实践与应用 吴金戎.清华大学出版社.20013 模拟电子技术基础简明教程 杨素行.高等教育出版社.19974 电路设计与制版PROTEL99高级应用 赵晶.人民邮电出版社.20005 Visual Basic串行通信工程开发实例导航 许浩. 人民邮电出版社.20037 电子线路设计、实验、测试 谢自美.华中科技大学出版社.2000附 录源程序1 人机键盘显示-FLAG BIT 2AH.0FLAG10 BIT P3.2FLAG11 BIT P3.3FLAG12 BIT P3.4FLAG13 BIT P3.5FLAG14 BIT P3.7GUAN8 E
19、QU 20HGUAN7 EQU 21HGUAN6 EQU 22HGUAN5 EQU 23HGUAN4 EQU 24HGUAN3 EQU 25HGUAN2 EQU 26HGUAN1 EQU 27HSHFTN EQU 28HCOUNT EQU 29H- ORG 00H JMP START ORG 0BH JMP TIMER0 ORG 23H JMP SINT- 主程序 -START : MOV SP,#50H MOV TMOD,#00100001B MOV IE,#10010010B MOV IP,#00010000B MOV SCON,#01010000B ANL PCON,#01111111B
20、 MOV TL1,#0F4H MOV TH1,#0F4H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) MOV GUAN8,#11H ;数码管8 从左向右数 MOV GUAN7,#11H ;数码管7 MOV GUAN6,#11H ;数码管6 MOV GUAN5,#11H ;数码管5 MOV GUAN4,#11H ;数码管4 MOV GUAN3,#11H ;数码管3 MOV GUAN2,#11H ;数码管2 MOV GUAN1,#11H ;数码管1 MOV SHFTN,#00H MOV COUNT,#0 CLR FLAG MOV R5,
21、#4 MOV R6,#0 MOV 2BH,#10 MOV 40H,#3 MOV 30H,#0FFH MOV 31H,#0FFH MOV 32H,#0FFH MOV DPTR,#TABLE SETB TR1- 显示扫描按键扫描 - BEGAN: SETB FLAG14 SETB FLAG13 CLR FLAG12 JNB FLAG11,LOOPPF CALL DISPLAY JMP BEGAN LOOPPF: JB FLAG11,SHAO ;容许按键 CALL DISPLAY SETB FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPPF SHAO: SETB TR0
22、 INC SHFTN MOV COUNT,#1SHAOMIAO: MOV P1,#0FFH CLR FLAG14 ; 8 SETB FLAG13 SETB FLAG12 JNB FLAG10,LOOP JMP NEXTLOOP: JB FLAG10,LOOP1 ;数字7 CALL DISPLAY CLR FLAG14 SETB FLAG13 SETB FLAG12 JMP LOOPLOOP1: MOV R7,#11H INC SHFTN MOV R0,#SHFTN JMP PANDUAN-NEXT: CLR FLAG14 ; 7 CLR FLAG13 SETB FLAG12 JNB FLAG1
23、0,LOOPA JMP NEXT1LOOPA: JB FLAG10,LOOP2 ;数字3 CALL DISPLAY CLR FLAG14 CLR FLAG13 SETB FLAG12 JMP LOOPALOOP2: MOV R7,#29H INC SHFTN MOV R0,#SHFTN JMP PANDUAN-NEXT1: SETB FLAG14 ; 6 SETB FLAG13 SETB FLAG12 JNB FLAG10,LOOPB JNB FLAG11,LOOPPB JMP NEXT2LOOPB: JB FLAG10,LOOP3 ;数字键2 CALL DISPLAY SETB FLAG14
24、 SETB FLAG13 SETB FLAG12 JMP LOOPBLOOPPB: JB FLAG11,CLEAR ;清零键 CALL DISPLAY SETB FLAG14 SETB FLAG13 SETB FLAG12 JMP LOOPPBLOOP3: MOV R7,#7DH INC SHFTN MOV R0,#SHFTN JMP PANDUAN- 清零 -CLEAR: MOV GUAN8,#11H MOV GUAN7,#11H MOV GUAN6,#11H MOV GUAN5,#11H MOV GUAN4,#11H MOV GUAN3,#11H MOV GUAN2,#11H MOV GU
25、AN1,#11H MOV SHFTN,#0 CLR TR0 MOV 30H,#0FFH MOV 31H,#0FFH MOV 32H,#0FFH JMP BEGAN-NEXT2: SETB FLAG14 ; 5 CLR FLAG13 SETB FLAG12 JNB FLAG10,LOOPC JMP NEXT3LOOPC: JB FLAG10,LOOP4 ;数字键6 CALL DISPLAY SETB FLAG14 CLR FLAG13 SETB FLAG12 JMP LOOPCLOOP4: MOV R7,#23H INC SHFTN MOV R0,#SHFTN JMP PANDUANNEXT3:
26、 SETB FLAG14 - SETB FLAG13 CLR FLAG12 JNB FLAG10,LOOPD JNB FLAG11,LOOPPD JMP NEXT4LOOPD: JB FLAG10,LOOP5 ;数字键1 CALL DISPLAY SETB FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPDLOOPPD: JB FLAG11,LOOPP5 ;负键 CALL DISPLAY SETB FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPPDLOOP5: MOV R7,#1DH INC SHFTN MOV R0,#SHFTN JM
27、P PANDUANLOOPP5: MOV GUAN5,#0FDH JMP XIANSHINEXT4: CLR FLAG14 - SETB FLAG13 CLR FLAG12 JNB FLAG10,LOOPE JNB FLAG11,LOOPPE JMP NEXT5LOOPE: JB FLAG10,LOOP6 ;数字键5 CALL DISPLAY CLR FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPELOOPPE: JB FLAG11,LOOPP6 ;数字键9 CALL DISPLAY CLR FLAG14 SETB FLAG13 CLR FLAG12 JMP LO
28、OPPELOOP6: MOV R7,#81H INC SHFTN MOV R0,#SHFTN JMP PANDUANLOOPP6: MOV R7,#09H INC SHFTN MOV R0,#SHFTN JMP PANDUANNEXT5: SETB FLAG14 ;2 CLR FLAG13 CLR FLAG12 JNB FLAG10,LOOPF JMP NEXT6LOOPF: JB FLAG10,LOOP7 ;数字键0 CALL DISPLAY SETB FLAG14 CLR FLAG13 CLR FLAG12 JMP LOOPFLOOP7: MOV R7,#89H INC SHFTN MOV
29、 R0,#SHFTN JMP PANDUANNEXT6: CLR FLAG14 ; 1 CLR FLAG13 CLR FLAG12 JNB FLAG10,LOOPG JNB FLAG11,LOOPPG JMP XIANSHILOOPG: JB FLAG10,LOOP8 ;数字键4 CALL DISPLAY CLR FLAG14 CLR FLAG13 CLR FLAG12 JMP LOOPGLOOPPG: JB FLAG11,LOOPP8 ;数字键8 CALL DISPLAY CLR FLAG14 CLR FLAG13 CLR FLAG12 JMP LOOPPGLOOP8: MOV R7,#4DH INC SHFTN MOV R0,#SHFTN JMP PANDUANLOOPP8: MOV R7,#01H INC SHFTN MOV R0,#SHFTN JMP PANDUAN JMP XIANSHI;PANDUAN:N0: CJNE R0,#2,N1 MOV COUNT,R0 JMP Q1N1: CJNE R0,#3,N2 MOV COUNT,R0