设计课题
学院名称 :
专业班级 :
:
学 号 :
基于单片机的水温控制系统设计 物理工程学院 电信一班
1
摘要:
本系统以ATC51,ATC2051单片机为核心,主要包括传感器温度采集,A/D模/数转换,按扭操作,单片机控制,数码管数字显示等部分。本系统采用PID算法实现温度控制功能,通过串行通信完成两片单片机信息的交互而实现温度设定、控制和显示。本设计还可以通过串口与上位机(电脑)连接,实现电脑控制。系统设计有体积小、交互性强等优点。为了实现高精度的水温控制,本单片机系统采用PID算法控制和PWM脉宽调制相结合的技术,通过控制双向可控硅改变电炉和电源的接通、断开,从而改变水温加热时间的方法来实现对水温的控制。本系统由键盘显示和温度控制两个模块组成,通过模块间的通信完成温度设定、实温显示、水温升降等功能。具有电路结构简单、程序简短、系统可靠性高、操作简便等特点。
2
1 引言
目前市场上太阳能热水器的控制系统大多存在功能单一、操作复杂、控制不方便等问题,很多控制器只具有温度和水位显示功能,不具有温度控制功能.即使热水器具有辅助加热功能。也可能由于加热时间不能控制而产生过烧,从而浪费电能。本文设计的太阳能热水器控制系统以MCS-51单片机为检测控制中心单元,采用DSl2887实时时钟,不仅实现了时间、温度和水位三种参数实时显示功能,而且具有时间设定、温度设定与控制功能。控制系统可以根据天气情况利用辅助加热装置(电加热器)使蓄水箱内的水温达到预先设定的温度,从而达到24小时供应热水的目的。实际应用结果表明,该控制器和以往显示仪相比具有性价比高、温度控制与显示精度高、使用方便和性能稳定等优点,提高了我国太阳能应用领域控制水平,具有可观的经济效益和社会效益。 水温控制系统的基本要求的要求如下:
1.一升水由1kw的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。 2.主要性能指标
a. 温度设定范围:30-90℃,最小区分度为1℃。 b. 控制精度:温度控制的静态误差≤1℃。 c. 用十进制数码显示实际水温。 d. 能打印实测水温值。 3.扩展功能
a. 具有通信能力,可接受其他数据设备发来的命令,或将结果传送到其他
3
数据设备。
b. 采用适当的控制方法实现当设定温度与环境温度突变时,减小系统的调节时间和超调量。
c. 温度控制的静态误差≤1℃。 d. 能自动显示水温随时间变化的曲线。
2 总体方案设计
2.1总体方案的确定 2.1.1 控制方法选择
由于水温控制系统的控制对象具有热存储能力大,惯性也较大的特点。水在容器内的流动或热量传递都存在一定的阻力,因而可以归于具有纯滞后的一阶大惯性环节。一般来说,热过程大多具有较大的滞后,它对任何信号的响应都会推迟一段时间,使输出与输入之间产生相移。对于这样一些存在大的滞后特性的过渡过程控制,一般来说可以采用以下几种控制方案: (1)输出开关量控制:
对于惯性较大的过程可以简单地采用输出开关量控制的方法。这种方法通过比较给定值与被控参数的偏差来控制输出的状态:开关或者通断,因此控制过程十分简单,也容易实现。但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易硬气反馈回路产生振荡,对自动控制系统会产生十分不利的影响,甚至会因为输出开关的频繁动作而不能满足系统对控制精度的要求。因此,这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。 (2)比例控制(P控制)
比例控制的特点是控制器的输出与偏差成比例,输出量的大小与偏差之间有对应关系。当负荷变化时,抗干扰能力强,过渡时间短,但过
4
程终了存在余差。因此它适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。使用时还应注意经过一段时间后需将累积误差消除。 a. 比例积分控制(PI控制)
由于比例积分控制的特点是控制器的输出与偏差的积分成比例,积分的作用使得过渡过程结束时无余差,但系统的稳定性降低。虽然加大比例度可以使稳定性提高,但又使过渡时间加长。因此,PI控制适用于滞后较小、负荷变化不大、被控量不允许有余差的控制系统,它是工程上使用最多、应用最广的一种控制方法。 b. 比例积分加微分控制(PID控制)
比例积分加微分控制的特点是微分的作用使控制器的输出与偏差变化的速度成正比例,它对克服对象的容量滞后有显著的效果。在比例基础上加上微分作用,使稳定性提高,再加上积分作用,可以消除余差。因此,PID控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。
结合本例题设计任务与要求,由于水温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。但从以上对控制方法的分析来看,PID控制方法最适合本例采用。另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。因此本系统可以采用PID的控制方式,以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。
2.1.2 系统组成
就控制器本身而言,控制电路可以采用急经典控制理论和常规模拟控制系统实现水温的自动团结。但随着计算机与超大规模集成电路的迅速发展,以现代控制理论和计算机为基础,采用数字控制、显示、A/D与D/A转换,配额后执行器与控制阀构成的计算机控制系统,在过程控制过程中得到越来越广泛的应用。
由于本例是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、
5
信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。因此,应以单片微型计算机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用也为实现水温的智能化控制以及提供完善的人机交互界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑道路中往往是难以实现或无法实现的。所以,本例采用以单片机为核心的直接数字控制系统(DDC)。
2.2 硬件方案论证
系统的硬件接El电路包括:控制器实时时钟接口电路、蓄水箱温度和水位检测 接口电路、设定键和串行显示接口电路、看门狗和复位接El电路以及继电器输出接口电路等。
2.2.1 单片机系统选择
方案一:
8031芯片内部无ROM,需要外扩程序存储器,由此造成电路焊接的困难,况且使用8031还需要另外购买其他的芯片,如A/D转换及定时/计数器(PWM)等芯片,从而造成成本较高,性价比低。 方案二:
C51芯片内部有ROM,且片内ROM全部采用Flash ROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容,但是其不具备ISP在线编程技术, 需把程序编写好以后再放到编程器中烧写,才可以进行硬件电路的调试,倘若程序编写出现问题,调试电路就比较麻烦,而且其芯片内存也只有4KB。 方案三:
ATC2051、ATC51单片机是最常用的单片机,是一种低损耗、高性能、CMOS八位微处理器。ATC2051与MCS-51系列的单片机在指令系统和引脚上完全兼容,而且能使系统具有许多MCS-51系列产品没有的功能,功能强、灵活性高而且价格低廉。ATS51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低了系统成本。只要程序长度小于4K,四个I/O口
6
全部提供给拥护。系统运行中需要存放的中间变量较少,可不必再扩充外部RAM。
经比较应采用此方案。
2.2.2 温度测量模块选择
方案一:用热敏电阻:通过电阻的变化来获得电压的变化,起价格虽然便宜但是精度不是很高。对于一个精度要求高的系统不宜采用。
方案二:用A/D590:通过AD590温度传感器采集温度,由于AD590是电流传感器,经过电阻转换为电压。虽然价格较高但是精度高。 经比较,我们选择方案二
2.2.3 数据接口的选择
在串行通信时,要求通信双方都采用一个标准接口,是不同的设备可以方便地连接起来进行通信。当前流行的接口有:RS-232-C和RS-485。 方案一:
RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输速率为每秒50,75,100,150,300,600,1200,2400,4800,9600,19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容。例如,采用1 50pF/m的通信电缆时,最大通信距离为l 5m。传输距离短的另一原因是RS一232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。 方案二:
RS-485总线,通信距离为几十米到上千米时,因此长距离要求时被广泛采用。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS一485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。故本系统
7
采用RS-485接口。
3 系统硬件设计
3.1系统框图
传 感 器 电 炉
图3-1 单片机控制系统原理框图
信号 放大 A/D 单 片 机 基 本 系 统 键 盘 显 示 功 率 放 大 8
3.2 键盘显示电路
本模块以ATC2051单片机为核心,利用138译码器对显示器动态扫描及作为键盘的扫描线,采用此方法大大简化了硬件,充分的利用了单片机的资源,这也是本设计的巧妙所在。可同过键盘来设置温度,并显示在数码管上,并通过串口发送出去,另外检测到温度通过串口接收进来,并显示在相应的数码管上键盘的扫描输入与显示器的扫描输出由单片机控制,但考虑到键盘与接口需要较多的I/O口线,如果直接由单片机控制,一方面必须扩充系统I/O口,另一方面,键盘与LED显示的扫描处理占用大量机时,增加软件编程负担。为此在组成系统人机对话通道时采用了可编程的键盘。显示接口芯片8051,由8051负责键盘扫描、消抖处理和显示输出工作。根据认为的要求,8051键盘被设计为2*8行,扫描线有SL0~SL8经译码输出,接入键盘列线,查询RL0~RL1提供,采用键盘扫描法对16个按键进行读取状态。使用行列式,把这16个按键分为82,采用74LS138对8行键盘轮流扫描,再通过P3.2和P3.7这2列读进来,从而判断按键是否按下。电路如图3所示。 键盘的系统框图如下:
9
键盘显示图一
键盘显示图二
3.3系统温度控制 3.3.1前向通道:
以ATC51单片机为控制核心,采集到温度,经放大,AD转换后送单片机处理,再通过串行口发送到显示模块因为考虑到PID运算时需要调用浮点数运算程序库,程序需要占用很大的存储空间,8051内部的能满足此要求,所以不需要扩展外部ROM,系统中运行中需要存放的中间变量只有给定温度和实测,PID运算中间结果及输出结果等十几个变量.因而8051片内的RAM能够满足要求,可不必再扩展。
3.3.2 后向通道:
后向通道是实现控制型号输出的通道,单片机系统产生的控制信号经过功率
10
放大器的放大控制电炉的输入功率,以实现水温的控制的目的.根据系统的总误差要求,后向通道的控制精度也要应控制在0.83%之内.
4 系统软件设计
系统软件由主程序、键盘扫描、LED显示、串行口中断组成。由于本模块就进行键盘与显示任务,且键盘扫描与LED扫描是用同个74LS138来完成,可以将程序精简,即把键盘和显示的程序合在一起放在主程序里。
(1)初始化。设定可编程芯片的工作方式,对内存中的工作参数区进行初始化,显示系统初始状态。
(2)读温度程序. 通过DS18B20的侧温.
(3)调用PID算法子程序通过键盘模块发送过来的数据,即给定值,和测量值进行计算,输出PWM波.对电炉的水温度进行控制. (4)返回
4.1定时中断服务程序
采样定时由定时器o的定时操作完成,定时器o的定时初值时间由PID的运算结果控制。程序流程如下图所示:
11
开始 初始化 P3.3、P3.4、P3.5=000 N P130H P3.7=0? Y 消抖 等待按键放N 延时 P3.2=0? Y N Flaga=1? Y Flagb=1? 消抖 等待按键放Flaga=1 N Y 32H ‘0’ Flagb0 31H ‘0’ Flagb 1 P3.3、P3.4、P3.5=001 P131H 延时 ………… P3.3、P3.4、P3.5=010 …………. P3.3、P3.4、P3.5=101 …………. P3.3、P3.4、P3.5=110 …………. P3.3、P3.4、P3.5=011 …………. P3.3、P3.4、P3.5=111 …………. P3.3、P3.4、P3.5=100 …………. 12
4.2脉宽调制输出子程序
入口 脉宽标志位是高电平? N Y P0.0输出高电平 脉宽标志位清0 P0.0输出低电平 把脉宽标志位置1 返回 13
4.3 系统控制总程序
初始化 调用水温检测子程序 调用脉宽子程序 调用PID算法子程序 返回 开起定时器 Y 初始化 定时时间到? PID子程序 T1=T1+K(Ek-E(K-1)) N 定时时间到 N Y 调读温度子程序 Y 设置温度大于实测温度 N 设置温度减实际温度 实际温度减设置温度 5 参数计算 系统调试包括硬件调试和软件调试。按+键设定温度值加一;按-键设定温度值减一;按设温键,可任意设置温度,输入相应的数值,按确定键即可,按取消键则返回前一次设置的值;按初始键则返回刚一开机的状态。软件的调试府在仿标志位为1 真器提供的单步、断点、跟踪等功能的支持下对各子程序分别进行调试.将调试调PWM子程序 调PID子程序 差值放30H 调发送子程序 置标志位 清标志位 完的工程序连接起来再调试.逐步扩大调试范围。 PWM占空比到上限 PWM占空低到下限 占空比加上14 差值 占空比减去差值
5.1 系统各模块设计及参数计算 5.1.1 温度采集部分及转换部分
我们使用AD590来采集外界的温度。AD590是美国模拟器件公司生产的单片集成两端感温电流源。
它的主要特性如下:
1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:mA/K式中: —流过器件(AD590)的电流,单位为mA; T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。 4、输出电阻为710MW。
5、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
由于AD590采集的输出数据是模拟量—电流,而且很小,不易测量,所以我们要将电流量转换成电压量,这样有利于后面的放大及D/A转换。我们改用一个固定电阻(9.1k或10k)和一个电位器(1K)串接的方法,这样可以通过调节电位器使得每路输出电压基本一致。如以0℃为参考值则应使其电压输出为2.73V;如以25℃为参考值,则应使其电压输出为2.98V.
15
5.1.2 传感器输出信号放大电路部分
由于取得的电压量很小,我们选用LM324做为运放,以为其内部带有四个运放,可以使得运放部分在电路版上不占用太大的体积。我们用了其内部的三个运放。第一级运放我们做成射级跟随器的形式,起到阻抗匹配的作用。第二级运放设计为反相比例求和电路,根据反相比例求和电路公式,我们设计了如下图的电路,U=-((10/10)*U1+10/(20+R)),其中U为第二级输出电压,R为50k的电位器。可以通过调节电位器使得输出电压达到要求。设0℃时,第二级的输出为2.73-2.73=0V,而25℃时,第二级的输出为2.73-2.98= -0.25V(反相)(零位调整)。第三级运放设计为反相比例放大电路,我们设计为将第二级的输出电压放大5倍。所以我们选用了10k和50k的电阻来实现。
5.1.3 模数转换电路部分
这部分最初想用ADC0809的,但为了配合使用CD4051,我们最终选择了ADC0804。ADC0804的规格及引脚图 ·8位CMOS逐次逼近型的A/D转换器 ·三态锁定输出 ·存取时间:135μs; ·分辨率:8位; ·转换时间:100μs; ·总误差:±1LSB;
·工作温度:ADC0804LCN——0℃~+70℃; ·ADC0804LCD—— -40℃~+85℃; 引脚图及说明如图所示:
16
/CS:芯片选择信号。
/RD:外部读取转换结果的控制脚输出信号。/RD为高时,DB0~DB7处于高阻
抗;/RD为低时,数字数据才会输出。
/WR:用来启动转换的控制输入,相当于ADC的转换开始(/CS=0时),当/WR
由高变为低时,转换器被清除;当/WR回到高时,转换正式开始。 CLK IN, CLK R:时钟输入或接振荡元件(R,C),频率约在100kHz~1460kHz,
如果使用RC电路则其振荡频率为1/(1.1RC).
/INTR:中断请求信号输出,低电平动作。
VIN(+)、VIN(-):差动模拟电压输入。输入单端正电压时,VIN(-)接地;而
差动输入时,直接加入VIN(+)、VIN(-)。
AGND,DGND:模拟信号及数字信号的接地。 VREF:辅助参考电压。 DB0~DB7:8位的数字输出。
VCC:电源供应以及作为电路的参考电压。
众所周知, 精度是数据采集系统的重要指标, 模数转换器的量化误差是影响系统精度的主要因素,A/D转换器的位数越多, 其量化误差越小, 一个M 位的A/D 转换器的量化误差可表示为:
式中V ref为模数转换器的参考基准电压。设A/D 转换电路的模拟输入电压为Vi, 则经A/D 转换后的相对误差表示为:
17
(2)上式表明, 当模数转换器的位数选定后, 其相对误差D与其模拟输入电压V i 成反比。因此只有将输入信号V i 预放大到接近参考电压V ref, 才能充分发挥A/D
转换器位数的效能, 减小量化误差, 提高系统数据采集精度。此即为引入前置放大器的目的之所在。逐步逼近式A/D的转换公式:
UxNNUr,、Ux为输入电压、N为输出值 (1-1) Ure2n2nUx (1-2) e当选定参考电压和A/D位数时,e为常数,由误差传递公式得:
NUx,Ux是输入绝对误差 (1-3) NUx由式(1-3)知:当输入电压越大,A/D转换的相对误差越小,当然输入电压不能大于A/D最大转换电压。因此为了减少A/D转换误差,对输入信号进行放大。
5.1.4 ADC0804芯片外围电路的设计
a.19脚的CLKR端接一个10k的电阻和150PF的电容,根据公式f=1/(1.1RC),可算得时钟输入频率为0.6兆左右。
b.9脚:选择470k的电阻、5k的电位器和2.7伏的稳压管来调节芯片的相对电压。本电路中应调节电位器使得9脚电压为2 .56伏。 c.1、7、8脚接地
d.6脚接运放的输出端,采集收集到的信号,经过A/D转换最后输出8位2 进制数,这样就可以送到单片机里进行处理了。
5.1.5 数值处理部分及显示部分
数值处理部分:我们采用8051芯片,其内部自带程序存储器。其外接12兆的晶振来给起供应震荡频率。9脚接一个10μF的电解电容再接地,来实现复位功能。/RD和/WR分别与ADC0804的/RD和/WR相连,实现数据的读写控制。
18
P2.4脚与ADC0804的/INTR相接,可以通过编程来判断该脚的高低来得知A/D转换是否完成。P1.4~P1.7及P2.7口分别外接一个4.7k的电阻接至三极管的C端,来控制三极管的通断,来控制5个数码管的亮暗。P2.0~P2.2口分别与ADC0804的9、10、11脚来控制选择的路数。
显示部分:用7447芯片与8051的P1.0~P1.3口相连,7447芯片可将8051转换好的8421BCD码转换成7段码送到数码管显示。数码管选用共阳的,因此在其Vcc端要外接一个三极管(9013),通过控制三极管给数码管供电,来控制数码管的通断。
5.1.6 PID算法的介绍
在模拟系统中,PID算法的表达式: 1de(t)P(t)KP[e(t)e(t)dtT]D(1)式中: TIdt P(t)——调节器的输出信号:
e(t)——调节器的偏差信号,它等于测量值与给定值之差; KP——调节器的比例系数; TI——调节器的积分时间; TD——调节器的微分时间。
5.1.7 A/D转换模块
由于系统对信号采集的速度要求不高,故可以采用价格低的8位逐次逼近式A/D转换器ADC0804,该转换器转换速度为100us,转换精度为0.39%,对应误差为0.2340C。故采用AD0804,ADC0804是8位模数转化电路,它能把模拟电压值转化为8位二进制码,其转化公式如下:DX=VIN*256/VREF 我们这里设置VREF 等于5V(因为这里悬空没接,查资料可知其为5V),则DX 所对应的值就是八位二进制码的十进制值,具体转化表如下: 温度值 ADCin(V) 0C 2C 4C 8C 0 0.156 0.313 0.625 DX 0 1 2 3 十六进温度值 ADCin制编码 (V) 00H 07H 0AH 20H 30C 35C 40C 45C 19
DX 8 9 A B 十六进制编码 78H 8BH A0H B4H 2.344 2.734 3.125 3.516
10C 15C 20C 25C 0.781 1.172 1.560 1.953 4 5 6 7 27H 3CH 4FH 63H 50C 55C 60C C 3.906 4.297 4.688 5.000 C D E F C7H DCH F0H FFH A/D转换器时钟电路参数计算ADC0804片内有时钟电路,其振荡频率可按下式计算: fclk≈1/1.1RC
式中R和C分别是CLK_R和CLK_IN两端外接一对地电阻、电容的阻容值。其典型应用参数为R=10KΩ,C=150PF。此时fclk≈0kHz,A/D转换时间约为103≈μs。A/D转换器的INTR与C51的P1.0相连,单片机以查询方式获取A/D转换器转换完毕的信息。
5.1.8、控制模块
由于用单片机来控制双向晶闸管,而晶闸管阳极和阴极间所接的是220V的交流电压,故本电路在中间加了一个光电耦合器件,使低压区和高压区隔离开。光电耦合器件采用的是MOC3041,其耐压值为400V,可以满足本设计的要求。而光电耦合器件的工作电流较大,因此前面需加放大电路,采用的是小功率硅三极管9012可满足要求,另外为了保护光电耦合器件需在高压侧接一个大功率电阻。双向晶闸管的选取:由于负载是1KW的电炉,用于控制负载输入功率的双向晶闸管应能满足负载对工作电压、电流的要求。 工作电压峰值可按下式计算: Vp=220Χ1.414=313(V) 工作电流峰值可按下式计算:
Ip=1000/220Χ1.414=6.43(A)
20
因此,为满足应用要求并适当留有余地,双向晶闸管可选用BAT12-600,该器件可承受的最大反向电压为600V,最大电流为12A,为了保护双向晶闸管还可在其旁边加一保护电路(即缓冲电路),因为双向晶闸管在开通和关断的瞬间du/dt的变化率较大,开关损耗很大,因此加上阻容电路,利用储能元件对能量进行缓冲,从而达到保护的目的,具体电路如图2所示。
由于本电路采用PID控制,程序较长,约为2.8K左右,因此选用比较熟悉ATC51单片机,其容量为4K,可以满足设计的要求。
复位电路的参数选择:本设计晶振用的是12M,则机器周期为1us,要使单片机复位需持续2个机器周期的高电平。可按下式计算:
RC≧2us
为了使单片机能够可靠地上电自动复位,选取R=8.2KΩ,C=10uF。
6 系统硬件与软件调试
温系统经温度传感器和信号放大器产生0~5V的模拟电压信号送入A/D转换器的输入端,A/D转换器将模拟量转换为数字量通过系统总线送入单片机进行运算处理。
硬件电路的调试应依次对单片机基本系统、前向通道和后向通道分别进行调试。调试时可利用仿真器对各接口地址进行读写操作,静态地测试电路各部分的连接是否正确;对于动态过程(如中断响应、脉宽调制输出等)可以编写简短的调试程序配合硬件电路的调试。
6.1 单片机基本系统调试
(a)晶振电路
将仿真器晶扳开关打到外部,如果仿真器出现死机现象,说明用户系统晶振电路有问题,此时应用示波器观察单片机时钟信号,或输入端是否振荡信或检查品振电路各器件参数。
21
(b)复位电路
按下复位按钮应使系统处于复位状态,否则用用表检查复位电路各点信号和器件参数。 (2)LED显示电路
本电路采用8个共阴的数码管动态显示,前4个为设定温度,后4个为实测温度。动态扫描时采用74LS138对这8个数码管轮流扫描,进行位控,而P1口是进行段控信号的控制,为了增加数码管的亮度,共阴端有三极管来驱动它的电流。电路如图6所示。 (3)键盘接口电路
本电路采用键盘扫描法对16个按键进行读取状态。使用行列式,把这16个按键分为82,采用74LS138对8行键盘轮流扫描,再通过P3.2和P3.7这2列读进来,从而判断按键是否按下 (4)前向通道调试比较简单 (5)后向通道调试 (a)静态调试
用仿真器在p0.0上输出高电平,双向可控硅导通.电炉开始加热;在P0.0上输出低电平.双向可控硅截止,电炉停止加热。如果输出不正常,应按信号输出顺序分别捡查P0.0、光电耦合器输入端、光电耦合器输出端及双向可控硅两端的电压情况。 (b)动态调试
编写简短调试程序,在P0.0上周期性地输出一定占空比的脉宽调制波形,用示被器观察电炉两端电压输入波形和通断比例。改变输出波形占空比,电炉两端电压输入的通断比也应有相应改变。 (6) 传感器电路部分
温度传感器种类较多。热电偶由于热电势较小,因而灵敏度较低;热敏电阻由于非线性而影响精度;铂电阻温度传感器由于成本高,在一般小系统中很少使
22
用。AD590是美国Analog Devices公司生产的二端式集成温度传感器,具有体积小、重量轻、线性度好、性能稳定等一系列优点。它的测温范围为-50~+155C,满刻度误差为0.3C,当电源电压在5~10V之间,稳定度为1%,误差只有0.01C,完全适用于本设计对水温测量的要求。另外AD590是温度——电流传感器,对于提高系统抗干扰能力也有很大帮助,因此本设计选用AD590作为温度传感器。其输出电流I与温度的关系可用下式表示:
或
式中:I—输出电流,单位A
KT—标定因子,AD590的标定因子为1A/C; TK—开氏温度。 TC—摄氏温度。
可见,当温度为摄氏0C时,输出电流为273.2A。
放大器电阻计算:由于我的测量定为+C~+C,根据这一测量范围要求,信号转换电路应将+C~+C温度转换为0~5V的电压信号,根据以上分析可知AD590在0C和C时输出电流分别为273.2uA和337.2uA,因此R1、RS、R2、RS2阻值可按下式计算:
R1+RS1=12V/273.2UA=43.9KΩ 取R1=40KΩ,RS1=5KΩ。
R2+RS2=5V/UA=78.1KΩ 取R2=68KΩ,RS2=12KΩ。
综上所述,在上述6部分都没有问题后,就可以进行下一步了,即软件调试。
23
6.2 软件调试
软件的调试府在仿真器提供的单步、断点、跟踪等功能的支持下对各子程序分别进行调试.将调试完的工程序连接起来再调试.逐步扩大调试范围。调试的过程一般是:
a测试程序输入条件或设定程序输入条件; b以单步、断点或跟踪方式运行程序; c检查程序运行结果;
d运行结果不正确时查找原因。修改程序,重复上述过程。 (7) 注意: A.输入抗干扰 a、键盘
按键在按下与抬起时都会有10~20ms的抖动毛刺出现,在读取键值时可先延时,再进行采样,在本设计中我是调用了一段显示子程序,和同学的电路相比,效果非常明显。 b.AD转换器
由于外界的干扰,AD采样后的数据会有较大误差,为了提高准确度,可采用输入分区抗干扰法,对模拟信号进行初步的处理,降低外界干扰的破坏性,当然再配合多数平均法处理效果更加。 B.输出抗干扰
一般来说,单片机的低电平驱动能力远高于高电平的驱动能力,可以用上拉电阻的方法来平衡单片机的端口驱动能力,以提高整体的抗干扰能力。因此本设计中只要涉及输出控制都是采用低电平驱动。
24
7 CPU软件抗干扰
7.1 看门狗设计
单片机最易受干扰的是内部计数器PC的值。在受强干扰的时,PC值改变,改变后的值又是随机的,为一不确定值。因此,对系统内核CPU进行R软件抗干扰显得尤为重要,本设计采用的是看门狗设计。
这样, 就可以进行总体调试了。把编写好的程序放在电脑里,使用伟福仿真器来仿真,看看8个数码管显示的数据是否正确,按下按键后能否在数码管上显示设定的值,反复的调试、修改程序,使达到预期的效果。
看门狗(Watchdog)电路是嵌入式系统需要的抗干扰措施之一。本文用X25045芯片设计了一种新的看门狗电路,具有体积小、占用I/O口线少和编程方便的特点,可广泛应用于仪器仪表和各种工控系统中。系统在运行时,通常都会遇到各种各样的现场干扰,抗干扰能力是衡量工控系统性能的一个重要指标。看门狗(Watchdog)电路是自行监测系统运行的重要保证,几乎所有的工控系统都包含看门狗电路。在8096系列单片机和增强型8051系列单片机中,该系统已经做在芯片内部,用户只要用软件开放它就可以,使用很方便。但目前工控系统仍在使用廉价的普通型8051系列单片机,则看门狗电路必须由用户自己建立。 看门狗电路一般有软件看门狗和硬件看门狗两种。软件看门狗不需外接硬件电路,但系统需要出让一个定时器资源,这在许多系统中很难办到,而且若系统软件运行不正常,可能导致看门狗系统也瘫痪。硬件看门狗是真正意义上的“程序运行监视器”,如计数型的看门狗电路通常由555多谐振荡器、计数器以及一些电阻、电容等组成,分立元件组成的系统电路较为复杂,运行不够可靠。 X25045芯片简介
X25045是美国Xicor公司的生产的标准化8脚集成电路,它将EEPROM、看门狗定时器、电压监控三种功能组合在单个芯片之内,大大简化了硬件设计,提高
25
了系统的可靠性,减少了对印制电路板的空间要求,降低了成本和系统功耗,是一种理想的单片机外围芯片。X25045引脚如图1所示。
图5-1 X25045引脚图
其引脚功能如下。 CS:片选择输入;
SO:串行输出,数据由此引脚逐位输出;
SI:串行输入,数据或命令由此引脚逐位写入X25045;
SCK:串行时钟输入,其上升沿将数据或命令写入,下降沿将数据输出; WP:写保护输入。当它低电平时,写操作被禁止; Vss:地; Vcc:电源电压; RESET:复位输出。
X25045在读写操作之前,需要先向它发出指令,指令名及指令格式如表1所示。
表1 X25045指令及其含义 X25045看门狗电路设计及编程
X25045硬件连接图如图2所示。X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。在看门狗定时器预置的时间内若没有总线活动,则X25045将从RESET输出一个高电平信号,经过微分电路C2、R3输出一个正脉冲,使CPU复位。图2电路中,CPU的复位信号共有3个:上电复位(C1、R2),
26
人工复位(S、R1、R2)和Watchdog复位(C2、R3),通过或门综合后加到RESET端。C2、R3的时间常数不必太大,有数百微秒即可,因为这时CPU的振荡器已经在工作。
图5-2X25045看门狗电路硬件连接图
看门狗定时器的预置时间是通过X25045的状态寄存器的相应位来设定的。如表2所示,X25045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。
8 测试方法和测试结果
8.1 系统测试仪器及设备
双路跟踪稳压稳流电源DH1718E-5 直流稳压电源
数字示波器Tektronix TDS1002 伟福E6000/L 仿真器 多功能数字表GDM-8145 数字万用表
0~100℃温度计、调温电热杯、秒表
8.2 测试方法
由于系统不完善,我采用的是分步调试的方法,步骤如下:
(1)在水杯中存放1L净水,放置在1KW的电炉上,打开控制电源,系统进入
27
准备工作状态。
(2)先调零,先将OP07的2、3脚短路,然后调节滑动变阻器,使六脚输出为0。
(3)在改变温度使温度为35℃时输出为0V,温度为95℃时输出为5V。在65℃时为2.5V。
(4)在结合软件进行水温控制,假如设定温度为88℃,而实际温度为55℃,那么就加热使水问到达88℃,此时水炉会自动断电,当水温低与88℃,水炉有会自动加热实现控制的作用。
(5)然后在双机通讯,用键盘设定温度,结合软件加以控制。
8.3 测试结果
(1)测量温度与给定温度的相应值如表1所示 表 1 给定温实测温相对误差 度(℃) 度(℃) 1 2 3
上表用温度计标定测温系统。分别是水温稳定在35℃、45℃、55℃、65℃、75℃、85℃,观察系统测量温度值和实际温度值,尽量校准系统使测量误差在1℃以内。记录测量数据填入表1。
由上表可以看出,实测温度和给定温度之间的绝对温度超出了±1℃之间,由于系统显示数值没有小数部分,所测结果只能以度来衡量,其实际误差是稍大于±1℃的,测量结果不是很满足系统误差的要求。这也是这个系统设置不全的一方面。可以是调0的过程中由于调不到0,我把反馈电阻R18给换了,我第一次换的是20K的虽然能调到但波动很大,后来我又换了一个10K的,那波动就小了很多,也能调到要求的范围了。但我觉得还是有问题,这个问题是我到现在还没解决的,在设计的过程中有些电阻是自己去估计取出来的,有些还是很有问题的,我认为这是导致误差的主要原因。因此我认为可以通过改变电路中一些电阻
28
给定温实测温相对误差 度(℃) 度(℃) 35 45 55 35 43 53 0 -3.22% 2.82% 4 5 6 65 75 85 63 73 83 2.52% -2.33% 2.18%
或电容的阻值来得到改善。
注意,在测量的过程中,也就是在使用AD590传感器的时候,为了避免器件一被测液体的直接接触,应将传感器装入保护套管中,或将器件用硬质乙烯树脂等材料密封,以避免被测液体对传感器的腐蚀和对测量精度产生影响。
总结
根据设计要求,调试完成的系统应作全面的指标测试。测试过程如下: a.通过键盘输人水温给定值,输入范围能满足40一90C区分度为1 C的要求。
b.运行水温控制系统,观察水温变化情况.测量水温静态误差,该误差应能满足要求。
c.在给定突变或环境温度突变的情况下,观察系统的调节时间和超调量,并能根据需要改变系统控制参数,实现不同的控制品质要求。
通过这次实验, 了解了传感器A/D590的特性和其应用。也收获了很多关于单片机相互通信的知识。特别是对PID算法有了一定的了解。在整个系统的制作过程中,温度的采样遇到了很大的困难,电阻值没有调准。还有在PCB板的制作过程中预先没有设置好线条的粗细,在加220V电压的线路中,线条应该加粗,防止相互之间的干扰.
29
附录 系统硬件总原理图
30
以上就是整个电路的框图, 将前述各单元电路连接起来,就可构成完整的系统硬件电路图。
31
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务
