019 单片机实现水温控制
                    联系方式 Email: lw510@qq.com      QQ: 497053418       MSN: lw510@qq.com
以下仅为该设计的基本说明介绍,若需要完整的设计和论文,建议您购买本设计.
019 单片机实现水温控制样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
 

本系统开发工具:单片机/汇编
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
 
 
 
 
利用单片机实现水温控制
摘  要
     温度是工业生产中主要的被控参数之一,与之相关的各种温度控制系统广泛应用于冶金、化工、机械、食品等领域。本文中介绍的水温控制系统以 MCS-51型单片机为核心部件,进行温度的采集与控制,达到自动水温控制。我们用数字温度传感器作为温度采集,将采集的温度值一方面和控制电路进行PID调节,另一方面将实际温度送显示器显示,同时通过按键配合调节,型成一套智能化水温控制。通过对系统软件和硬件设计的合理规划,发挥单片机自身集成众多系统级功能单元的优势,在不减少功能的前提下有效降低了硬件成本,系统操控简便。该温控系统具有很高的可靠性和稳定性。
关键词:数字温度传感器     PID调节     
Abstract
    The temperature is in the industrial production one of main accusation parameters, widely applies with it correlation each kind of temperature control system in domains and so on metallurgy, chemical industry, machinery, food。In this article introduced the water temperature control system take the MCS-51 monolithic integrated circuit as the core part, carries on the temperature gathering and the control, achieves the automatic water temperature control。We will use the digital temperature sensor to take temperature gathering, will gather on the one hand the temperature value will carry on the PID adjustment with the control circuit, on the other hand will deliver the actual temperature the monitor to demonstrate, simultaneously through the pressed key coordination adjustment, will become a set of intellectualized water temperature control。Through reasonable plan which designs to the system software and the hardware, Displays the mcu own integration multitudinous system-level function unit the superiority, In did not reduce the function under the premise to reduce the hardware cost effectively, The system holds controls easily, This warm controls the system to have the very high reliability and the stability。
Key word:Digital temperature sensor      PID
 
 
 
 
一、水温控制系统概述
该水温控制器要求被水温为在25℃-60℃之间,同时可以以1℃为步进调节,控制误差±1℃。对于此,我们采用如下方案设计:
用AT89C51作为CPU中心处理器;采用现再流行的数字温度传感器DS18B20作的温度采集,它的测量范55℃--125℃之间,增量值为0.5℃,在1S内将温度传换为数字,同时线性度又好,完全能满足我的要求;单片机结合现场温度与用户设定的目标温度,按照已经编程固化的增量式PID控制算法计算出实时控制量,以此控制量使能光电隔离驱动电路,决定加热电路的工作状态,使加热装置逐步稳定于用户设定的目标值,用可控硅调节输出电压,通过电压的调节达到准确的加温、减温,在此我们采用经典的PID算法进行自动控制,让温度按要求步进;用LED显示器进行实时的温度显示;用“+”、“-”两个按键进温度的步进。图1为整个设计的框图。
 
                  图1系统组成框图
二、详述各单电路的设计
1、供电电路
    本系统以CPU为中心的供电,我们采用线性稳压电路,通过变压器T对220V交流电压进行降压,降压到7V左右,然后进整流、滤波后,有8V的直流电压。最后通过LM7805进行稳压,给整个系统提供一个5V的直流压。图2为电源电路。
 
图2电源电路
2、CPU
     本系统CPU采用AT89C51作为整个系统的协调工作。硬件如图
 
3、数字式温度传感器(DS18B20)
  (1)、DS18B20的简介
DS18b20 为DALLAS最新单线数字温度传感器。新的“一线器件”体积更小、适用电压更宽、更经济,Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的“DS1820”体积更小、更经济、更灵活。使您可以充分发挥“一线总线”的长处,DS18B20、 DS1822 “一线总线”数字化温度传感器 ,同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为,-55℃——+125℃,在-10℃——+85℃范围内,精度为±0.5℃。DS1822的精度较差为± 2℃ ,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V——5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20可以程序设定9——12位的分辨率,精度为±0.5℃。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
DS18B20的新特性:
适用电压为3V——5V
与DS1820软件略有不同
9——12位分辨率可调
TO-92、SOIC及CSP封装可选
经济型版本无EEPROM
DS18xx传统特性:
测温范围-55℃ —— +125℃
-10℃ to +85℃范围内±0.5℃ ,(DS1822除外)用户可定义的EEPROM,设定的报警温度存在非易失存储器中(DS1822除外) 无需外部元件 “一线总线”特征:独特的电源和信号复合在一起 仅使用一条口线 每个芯片唯一编码,支持联网寻址 简单的网络化的温度感知 零功耗等待
(2)、DS18B20的使用:
A、内部结构
上述,已介绍了其基本的特性,图3所示为DS18B20的内部结构图。
 
图3DS18B20结构框图
与单机的硬件连接,和单片机的P0.0口连接,电源连接到5V电源上,因为它的电源范围为3V——5V,如图4:
 
图4DS18B20的硬件连接
B、温度计算
(1) 、Ds1820用9位存贮温度值,最高位为符号位,下图为18b20的温度存储方式,负温度S=1,正温度S=0。如:
00AAH为+85℃
0032H为+25℃
FF92H为-55℃
 
(2)、Ds18b20用12位存贮温度值,最高位为符号位,下图为18b20的温度存储方式,负温度S=1,正温度S=0,如:
0550H为+85℃
0191H为25.0625℃
FC90H为-55℃
 
     综上,实际测量的温度数值等于,数字温度传感器得到的二进制码转换成相应的十进数,再除以二即为实际温度值。
T实际温度值=((DS18B20)二进制)十进制/2
C、DSl820工作过程及时序
DSl820工作过程中的协议如下:
初始化:RoM操作命令;存储器操作命令;处理数据 。
(1)、初始化
单总线上的所有处理均从初始化开始
(2)、ROM操作品令
总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令
见表一:
表一
指令 代码
Read ROM(读ROM) [33H]
Match ROM(匹配ROM) [55H]
Skip ROM(跳过ROM] [CCH]
Search ROM(搜索ROM) [F0H]
Alarm search(告警搜索) [ECH]

(3)存储器操作命令见表二
表二
指令 代码
Write Scratchpad(写暂存存储器) [4EH]
Read Scratchpad(读暂存存储器) [BEH]
Copy Scratchpad(复制暂存存储器) [48H]
Convert Temperature(温度变换) [44H]
Recall EPROM(重新调出) [B8H]
Read Power supply(读电源) [B4H]
D、时序
主机使用时间隙(time slots)来读写DSl820的数据位和写命令字的位。
(1)初始化
时序见图5,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号)接着在tl时刻释放总线并进入接收状态DSl8B20在检测到总线的上升沿之后等待15-60us接着DS1820在t2时刻发出存在脉冲(低电平持续60-240 us)如图中虚线所示。
 
图5 18B20时序图
以下子程序初始化子程序(晶体为12M)
RESET;
PUSH B      ;保存B寄存器
PUSH A      ;保存A寄存器
MOV A,#4    ;设置循环次数
CLR P0.0     ;发出复位脉冲
MOV B,#250  ;计数250次
DJNZ B,$     ;保持低电平500us
SETB P0.0    ;释放总线
MOV B,#6    ;设置时间常数
CLR  C            ;清存在信号标志
WAITL: JB P0.0,WH       ;若总线释放跳出循环
DJNZ B,WAITL     ;总线低等待
DJNZ ACC,WAITL  ;释放总线等待一段时间
SJMP SHORT
WH:  MOV  B,#111
WH1: ORL  C,P0.0
DJNZ B,WH1        ;存在时间等待
SHORT: POP A
POP B
RET
(2)写时间隙
当主机总线to时刻从高拉至低电平时就产生写时间隙,见图6、图7从to时刻开始15us之内应将所需写的位送到总线上,DSl820在t0后15-60us间对总线采样,若低电平写入的位是0见图6,若高电平写入的位是1见图7,连续写2位间的间隙应大于1us
 
     图6写0的时序
 
   图7 写1的时序
写位子程序(待写位的内容在C中)
WRBIT:
PUSH B ;保存B
MOV B,#28 ;设置时间常数
CLR P0.0 ;写开始
NOP ;1us
NOP ;1us
NOP ;1us
NOP ;1us
N0P ;1us
MOVP0.0,C ;C内容到总线
WDLT: DJNZ B,WDLT;等待56Us
POP B
SETB P0.0 ;释放总线
RET ;返回
写字节子程序(待写内容在A中):
WRBYTB:
PUSH B :保存B
MOV B#8H ;设置写位个数
WLOP: RRC A ;把写的位放到C
ACALL WRBIT ;调写 1位子程序
DJNZ BWLOP ;8位全写完?
POP B
RET
(3)读时间隙
见图8主机总线to时刻从高拉至低电平时,总线只须保持低电平l7ts,之后在t1时刻将总线拉高,产生读时间隙读,时间隙在t1时刻后t2时刻前有效,t z距to为15us也就是说t z时刻前主机必须完成读位,并在t o后的60us一120us内释放总线。
 
图8 读时序
读位子程序(读得的位到C中)
RDBIT:
PUSH B ;保存B
PUSH A ;保存A
MOV B,#23 ;设置时间常数
CLR P1.0 ;读开始图2255的t0时刻
NOP ;1us
NOP ;1us
NOP ;1us
NOP ;1us
SETB Pl.0 ;释放总线
MOV A,P1 ;P1口读到A
MOV C,EOH ;P1.0内容C
NOP ;1us
NOP ;1us
NOP ;1us
NOP ;1us
RDDLT: DJNZ B,RDDLT ;等待46us
SETB P1.0
POP A
POP B
RET
读字节子程序(读到内容放到A中)
RDBYTE:
PUSH B ;保存B
RLOP MOV B,#8H ;设置读位数
ACALL RDBIT ;调读1位子程序
RRC A ;把读到位在C中并依次送给A
DJNZ B,RLOP ;8位读完?
POP B ;恢复B
RET
E、多路测量
每一片DSl820在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中,主机在进入操作程序前必须逐一接入1820用读ROM(33H)命令将该l 8B20的序列号读出并登录。
当主机需要对众多在线18B20的某一个进行操作时首先要发出匹配ROM命令(55H),紧接着主机提供64位序列(包括该18B20的48位序列号)之后的操作,就是针对该18B20的而所谓跳过ROM命令即为之后的操作是对所有18B20的框图中,先有跳过ROM即是启动所有1820进行温度变换之后,通过匹配ROM再逐一地读回每个1820的温度数据 ,在1820组成的测温系统中主机在发出跳过ROM命令之后再发出统一的温度转换启动码44H,就可以实现所有1820的统一转换,再经过1s后就可以用很少的时间去逐一读取这种方式使其T值,往往小于传统方式由于采取公用的放大电路和AD转换器只能逐一转换显然通道数越多这种省时效应就越明显 。
F、实际应用
ds1820序列号获得
;|------------------------------------------------------|
;| 读出ds1820序列号应用程序,P0.0接ds1820 |
;|------------------------------------------------------|
test:
MOV SP,#60H
CLR EA ;使用ds1820一定要禁止任何中断产生
LCALL INT ;初始化ds1820
MOV A,#33H
LCALL WRITE ;送入读ds1820的ROM命令
LCALL READ ;开始读出当前ds1820序列号
MOV 40H,A
LCALL READ
MOV 41H,A
LCALL READ
MOV 42H,A
LCALL READ
MOV 43H,A
LCALL READ
MOV 44H,A
LCALL READ
MOV 45H,A
LCALL READ
MOV 46H,A
LCALL READ
MOV 47H,A
SETB EA
SJMP $
INT: ;初始化ds1820子程序
CLR EA
L0:CLR P0.0 ;ds1820总线为低复位电平
MOV R2,#200
L1:CLR P0.0
DJNZ R2,L1 ;总线复位电平保持400us
SETB P0.0 ;释放ds1820总线
MOV R2,#30
L4:DJNZ R2,L4 ;释放ds1820总线保持60us
CLR C ;清存在信号
ORL C,P0.0
JC L0 ;存在吗?不存在则重新来
MOV R6,#80
L5:ORL C,P0.0
JC L3
DJNZ R6,L5
SJMP L0
L3:MOV R2,#240
L2:DJNZ R2,L2
RET
WRITE: ;向ds1820写操作命令子程序
CLR EA
MOV R3,#8 ;写入ds1820的bit数,一个字节8个bit
WR1:SETB P0.0
MOV R4,#8
RRC A ;把一个字节data(A)分成8个bit环移给 C
CLR P0.0 ;开始写入ds1820总线要处于复位(低)状态
WR2:DJNZ R4,WR2 ;ds1820总线复位保持16us
MOV P0.0,C ;写入一个bit
MOV R4,#20
WR3:DJNZ R4,WR3 ;等待40us
DJNZ R3,WR1 ;写入下一个bit
SETB P0.0 ;重新释放ds1820总线
RET
READ:
CLR EA
MOV R6,#8 ;连续读8个bit
RE1:CLR P0.0 ;读前总线保持为低
MOV R4,#4
NOP
SETB P1.6 ;开始读总线释放
RE2:DJNZ R4,RE2 ;持续8us
MOV C,P0.0 ;从ds1820总线读得一个bit
RRC A ;把读得的位值环移给 A
MOV R5,#30
RE3:DJNZ R5,RE3 ;持续60us
DJNZ R6,RE1 ;读下一个bit
SETB P0.0 ;重新释放ds1820总线
RET
END
4、温度控制电路
  (1)、简述
AT98C51对温度的控制是通过双向可控硅实现的。如图9所示,双向可控硅管和加热丝串接在交流220V、50Hz市电回路。在给定周期T内,8031只要改变可控硅管的接通时间即可改变加热丝的功率,以达到调节温度的目的。
       可控硅接通时间可以通过可控硅控制极上触发脉冲控制。该触发脉冲由AT89C51用软件在P2.0引脚上产生,在过零同步脉冲同步后经光电耦合管和驱动器输出送到可控硅的控制极上。
 
图9温度控制电路
  过零检测采用INT0中断方式进行,电路如10所示。
 
                  图10、过零检测电路
(2)、 温度控制的算法和程序框图
      A、温度控制原理:
目前温度控制系统中的控制算法多为PID算法,但PID算法由于微分作用导致高频干扰大,易引起超调,参数调整也麻烦,同时考虑到水温控制系统本身有一个大滞后的特点,故本系统选用了目前国际上较流行的从能量控制的观点出发,引入模糊控制思想而提出的变参数控制算法控制。 控制系统在其特性或参数发生变动时仍可使品质指标保持不变的性能。鲁棒性是英文robustness一词的音译,也可意译为稳健性。鲁棒性原是统计学中的一个专门术语,70年代初开始在控制理论的研究中流行起来,用以表征控制系统对特性或参数摄动的不敏感性。在实际问题中,系统特性或参数的挠动常常是不可避免的。产生变动的原因主要有两个方面,一个是由于量测的不精确使特性或参数的实际值会偏离它的设计值(标称值),另一个是系统运行过程中受环境因素的影响而引起特性或参数的缓慢漂移。因此,鲁棒性已成为控制理论中的一个重要的研究课题,也是一切类型的控制系统的设计中所必需考虑的一个基本问题。对鲁棒性的研究主要限于线性定常控制系统,所涉及的领域包括稳定性、无静差性、适应控制等。鲁棒性问题与控制系统的相对稳定性和不变性原理有着密切的联系,内部原理的建立则对鲁棒性问题的研究起了重要的推动作用。
模糊控制算法的基本原理可采用解析式描述为:
u=k*e + (1-k)*c;
其中,e, c, k为经过量化和模糊化的控制变量,相应的参量分别为温差(当前温度和目标温度的差值)、温差变化率及控制量(当前温度与上一个时刻温度的差值)、k为调整因子。
其基本思想是通过调整k的大小,可改变对差量和差量变化率的不同加权程度.在实际系统中,系统在不同的状态下,对控制规则中的差量e和差量变化率c有不同的要求.如差量较大时,控制系统的主要任务是减小温差,此时对差量加权应该大些;当差量较小时,控制系统的主要任务是使系统尽快稳定,减小超调,此时要求在控制规则中差量变化率加权大些。
基于这个思想,我组提出了模糊温度控制方法,在规定的时间内,根据不同的温差和目标温度来改变加热时间与休息时间的占控比,从而达到控制的目的。
算法通过软件实现,此算法使系统能自行控制加热程度,使系统具有无超调和恒温精度高,具有稳定性好,控制参数对系统的依赖性弱等优点 。
本设计中,我们通过P2.0口输出一个占空比可调的方波去触发双向可控硅,如果50HZ市电一个周期T=20ms,半个周期即为10ms,触发脉冲就是改变这10ms的宽度。只要改变可控制触发端的脉冲宽度如图11的时间T,就可以改变加热端的电压发生变化,从而使功率发生变化,导制水温的改变。我利用单片机的定时器(T0)来这完成个任务。将目标温度和温度传感器采集回来的温度进行PID调理,进而达到模糊控制。

 
图11控制信号图

C:控制流程图,图12为控制程序框图:
u=k X e + (1-k) X c;
e:目标温度与当前温度之差;
c:当前温度与上一次温度之差;
k:调整因子。
下表为调整因子K在不同温度域之间的调整参量:
温度T 20℃-30℃ 30℃-40℃ 40℃-50℃ 50℃-60℃
k 0.3847 0.4686 0.5289 0.6585

    图12温度控制流程图
5、显示电路
显示用数码管显示电路,将采集到的数据直接送到数码管上显示,达到实时显示的效果。用P1口作为段码输出,用P0.3、P0.4、P0.5、P0.6,作为位码输出。此数码管采用共阳极四位一体,温度显示可以为四位,主要是便于电路升级。电路如图13。
 
图13显示电路
6、键盘处理电路
键盘处理,用单片机的P0.1、P0.2实现,当按下按键,该端口为0,用单片机检测该端口的值就能叛断有无按键按下,当P0.1按下时,就实现温度加1℃,当P0.2按下时,就实现温度减1℃功能。
电路结构如图12:
 
                    图12 按键电路结构
三、程序框图及代码
    说明:本设计程序分成四个程序块,温度测量程序、显示程序、按键处理程序,输出控制程序。其中温度采集我们用定时器T1,定时中断采集;输出控制部分,采交流电过零中断,用PID调节,改变定时器T0的参数,达到模糊控制。下面我们给出温度采集和控制部的程序代码。显示和按键处理,化码较简单,在此略。
 
(1)温度转换和读取
;|----------------------------------------------------|
;| 获取单个ds1820转化的温度值的应用程序,P0.0接ds18B20 |
;|---------------------------------------------------|
;工作寄存器R6为读取温度的高字节,R7为读出温度的底节。
;个出口也可以修改,我们在显示时候,要将这个测得的值进行调整
;才能正确显示实测温度。
TEMP:
019 单片机实现水温控制
 

关闭窗口

与本站联系的时候,为了提高效率,请告诉本站您需要的设计编号与题目。如:001VBAC人事管理系统
编码说明:001VBAC人事管理系统,其中001VBAC 为该毕业设计的编号,VB代表开发语言,AC代表数据库(ACCESS)
版权所有:510计算机论文网:http://www.lw510.com/程序制作:510论文
Email: LW510@QQ.COM  QQ: 497053418   MSN: LW510@QQ.COM