77范文网 - 专业文章范例文档资料分享平台

简易温度控制系统doc

来源:网络收集 时间:2018-10-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

目录

一、要求 .................................................................................... 3 二、摘要 .................................................................................... 4 三、前言 .................................................................................... 5 四、方案分析.................................................................................. 6 五、实现 .................................................................................. 10 六、结论 .................................................................................. 14 七、附录 .................................................................................. 15

一、要求

简易温度控制系统

设计并制作一个简易的单片机温度自动控制系统(见图一)。控制对象为自定。

显示器 设置键盘 电源 可编程 控制器 执行器 恒温箱 220VAC 变送器 温度传感器 图一 恒温箱控制系统 设计要求如下

(1)温度设定范围为40℃~90℃,最小区分度为1℃ (2)用十进制数码显示实际温度。

(3)被控对象温度采用发光二极管以光柱形式和数码形式显示。 (4)温度控制的静态误差≤2℃。 扩充功能:

控制温度可以在一定范围内设定,并能实现自动调整,以保持设定的温度基本保持不变(测量温度时只要求在现场任意设置一个检测点)。

2

二、摘要

本次设计的主要目的是实现对温度的控制,其主要思路是通过温度传感器感应物体的温度,通过数码管显示出来,由于本此设计的温度设定范围是在40度到90度之间,因此如果物体的温度不在这个设定范围内,那么就需要通过加热或降温使物体的温度达到这个范围。另外本次设计设定了键盘,通过键盘输入设定的数,然后通过调温使该物体的温度达到设定的数值。本次设计采用单片机原理,共有温度感应模块、显示模块、键盘输入模块、比较模块四大块。通过温度动态显示,可以显示被测物体的温度,而通过键盘扫描可以求出设定的温度值,通过温度传感器可以感应物体的温度。那么,本次设计所能实现的功能就是可以测定物体的温度并能实现自动调整和手动键盘调整。

3

三、前言

随着社会的发展和科技的进步以及测温仪器在各个领域的应用,智能化是现代温控系统发展的主流方向,特别是今年来,温度控制系统已应用到生活的各个方面,但是温度控制一直是一个未开发的领域,是与人们息息相关的一个问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景和实际意义。

温度是科学技术中最基本的物理量之一。物理、化学、生物等学科都离不开温度,在工业生产等许多领域,温度常常是表征对象和过渡状态的重要物理量。各行各业对温度的要求越来越高,可见温度的测量和控制是非常重要的。

单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用越来越广泛,各种试用于不同场和的温度控制器应运而生。

4

四、方案分析

本次设计主要版块分为温度感应模块,温度显示模块,键盘设定模块以及温度比较模块。

一、方案的选择

1.对于温度感应模块有两种方案:

一种是使用普通温度传感器pt100再结合电压放大器和AD转换器将感应到的温度数值转换为数字量存储在某一单元内。但由于该方案电路繁多,线路冗长,所以舍之不用。 第二种是使用温度传感器18B20感应温度,由于该温度传感器内含AD转换器,因此连接简单,应用方便,故选用该方案。 2.对于温度显示模块有两种方案:

一种是使用静态显示,通过数码管显示被测温度和设定温度。该方案程序简单,但硬件连接复杂,所需元件数量多,不适合设计应用。

第二种是使用动态显示,通过数码管显示被测温度和设定温度。该方案程序复杂,但硬件连接简单,所需元件少,适合设计应用。

3.对于键盘设定模块有两种方案:

一种是使用线反转法,通过矩阵键盘,一次求出行数和列数,然后求出设定的数值。由于该方案不具有扫描功能,因此不适用于一般的键盘程序,而适用于键盘中断程序。

第二种是使用键盘扫描法,通过矩阵键盘,求出设定的数值,由于该方案具有扫描功能,因此在不使用中断的情况下,使用键盘扫描程序是十分恰当的,本次设计采用的是键盘扫描程序。

4.对于温度比较模块,是通过比较程序,直接决定进行升温还是降温。

二、硬件的说明

本次设计硬件用到了单片机89C52、温度传感器18B20、三—八译码器74LS138、驱动74LS245、数码管、矩阵式键盘、灯泡等。

单片机89C52是常用的单片机之一,单片机上有32个P口,其中P0、P1、P2、P3各8个。温度传感器18B20接到单片机的一个P口上,本次设计是P1.3,因为温度传感器18B20可以直接将数据传输给单片机,因此可直接连接。

三八译码器74LS138出线端用于连接驱动74LS245,入线端ABC连接到单片机的P1口上的P1.0、P1.1、P1.2,通过调节P1口上的这三端的值进而控制出线端0到7哪个为低电平。

5

本次设计用到2个74LS245,它的输出端接数码管,输入端一个接P0口,一个接74LS138,它们分别控制数码管的字型码输出和数码管选择。

矩阵式键盘采用3×3式,分别表示1到9。通过将6个出线端接到P2口上,然后通过P2口控制键盘,键盘的行拉高电阻和5伏电压。

三、软件的说明

对于温度感应模块,调用18B20程序,直接在某一单元存储温度的数值。其中18B20程序见附录。

对于温度显示模块,一共有静态和动态两种显示,静态显示时,各个LED数码管相互独立,公共端接地,每个数码管的8个显示字段控制端分别与一个8位并行输出口相连,只要输出口输出字型码,LED数码管就立即显示出相应的字符,并保持到输出口输出新的字型码。采用静态显示,用较小的电流便可获得较高的亮度,而且占用CPU时间少,编程简单,显示便于检测和控制,但其占用的口线多,硬件电路复杂,成本较高。动态显示时,是各个LED数码管一位一位轮流显示。在硬件电路上,各个数码管的显示字段控制端并联到一起,有一个8位并行输出口控制,各个LED数码管的公共端作为显示位的位选线,由另外的输出口控制,动态显示节省I/O口,硬件电路简单。本次设计采用的是动态显示,实现方法是

温度显示程序的流程图为

求字型码 输出字型码 取显示位置 稳定显示1MS 取缓冲区地址 取下一缓冲区地址 开始 选数码管 求出字型码 输出字型码 6

对于键盘设定模块,键盘是由多个按键组成。它可以分成独立式和矩阵式2种形式。独立式键盘是一组相互独立的按键,他们分别直接与I/O口电路连接,每个按键占用一根输入口线。独立式键盘比较灵活,软件结构简单,但当按键较多时,输入口线浪费较大。因此在应用系统中,按键较多时,一般不采用。矩阵式键盘也称为行列式键盘,用输入和输出口线组成行列结构,按键设置在行和列的交叉点上,按键闭合时,接通输入和输出口线。矩阵式键盘在按键较多时可以节省I/O口线。

本次设计采用矩阵式键盘,并且按键识别的方法是扫描法。在按键识别过程中,依次使行线输出低电平,然后检查列线的输入电平,如果所有列线的输入全为高电平,则该行无按键按下;如果不全为高电平,则被按下的按键在本行,且在输入电平变为低电平的列的交叉点上。

本次设计没有用线反转法是由于本次设计没有用到中断,而没有中断的情况下就要求我们必须不停地扫描键盘,因此线反转法在本次设计中并不是最好的按键识别方法。

键盘程序的流程图为: 、

若有,延时20MS消抖 若释放,延时20MS消抖 开始 置列为输入 若释放,则RET 若无,则RET 有无按键按下? 按键释放? 有无按键、 按下 若没有,则

7

按键释放? 若有,逐行键盘扫描 若没有,扫描完否? 查表求键值 找到按键? 若完,则结束RET 若找到,则取特征码 对于温度比较模块,通过比较传感器温度和键盘温度,然后对被控对象作出调整。由于本次设计采用的加热装置是灯泡,降温装置是自然冷却,因此如果单纯地令传感器温度和键盘温度相等,就会出现灯泡一闪一灭的抖动状态,本次的消抖方略是在设定温度上下各加2度。使最终温度在这个范围内来回波动。

温度比较模块的流程图为

相等,不处理 比较键盘温度和被控对象的温度 两者温度相差2度或以上,作出升温和降温处理 开始 键盘温度与被控对象的温度相差1度,不处理 四、软硬件的总体概述

本次设计的主题思路如下:本次设计的温度控制系统为手动、自动双重输入系统。如果键盘没有按下键值,则系统自动将温度设定在40度到90度。如果键盘输入数据,但数据不在40度到90度的范围之内,那么按没有输入键值处理。如果键盘输入的数据在40度到90度范围内,那么系统会将被控对象的温度控制在设定温度左右,且误差不超过2度。

8

五、实现

本次设计的功能板块分为四块,分别是温度传感器显示功能、键盘输入显示功能、无键盘输入自动调整功能、有键盘输入温度调整功能。 1.温度传感器显示功能

温度传感器18B20能自动感应温度,并且内含AD转换器,能够直接输出一个温度值,并将它存储在单片机某一个单元内。功能如图所示

2.键盘输入显示功能

键盘输入数值,数码管会显示输入的数值。功能如图所示

9

3.无键盘输入自动调整功能

在没有键盘输入的情况下,被控对象的温度会被控制在40到90度以内。功能如图所示

10

4.有键盘输入温度调整功能

当有键值输入且键值在40度到90度范围内时,被控对象的温度将被控制到设定温度左右,误差不超过2度。功能如图所示

调试过程中,出现过不少问题,诸如: 1.发现在仿真开始后,数码管不亮 原因:发现继电器用的不好 解决方法:换了一个继电器

2.发现温度传感器的温度并不能有效地显示在数码管上

原因:温度传感器的程序有问题,其中31H和32H单元错写成了#31H和#32H。 解决方法:将31H和32H前面的#号去掉,温度开始正常显示。 3.发现键盘的数字按下后,键盘没有反应。

原因:程序中键盘的按键识别方法是线反转法,键盘的键值所对应的行与列不能有效接通。 解决方法:改用扫描法,键盘有了反应。 4.发现数码管显示的温度在不停地跳动。

11

原因:数码管显示程序中先输出字型码后选显示位置。 解决方法:数码管程序中先选显示位置后输出字型码。 5.在连接外电路灯泡时,发现接好后灯泡不亮。 原因:继电器的开关接线端接错 解决方法:将继电器的接线端接好

6.发现实物中当电灯泡的温度达到设定温度时,灯泡开始一亮一闪不停闪烁。 原因:灯泡的温度不停地升降,导致灯泡不停的抖动

解决方法:在设定的温度上下各加2度,使温度在这个范围内来回波动。

12

六、结论

本次设计的题目是温度控制系统,其主要思想是将温度控制在某一个设定的温度左右,误差不超过2度。本次设计所包含的基本功能如下:当没有键值输入时,被控对象的温度将被设定在40到90度内,来回往复波动。当有按键按下时,如果按键设置的温度不在40到90度内,那么按照没有按键输入来处理。如果按键设置的温度在40到90度内,那么就将物体的温度设定在按键温度左右,且误差不超过2度。

本次设计中不足之处就是温度变化比较慢,可能原因是箱子的密封性不太好,传感器与灯泡距离远等原因。改进方法是换一个密封性好一点的箱子,且箱子不要太大。

本次设计历时3周左右,花费了大量的精力和时间,可以说其中包含了诸多的汗水和付出。通过翻阅书籍和不停地写程序调试,既增长了知识,又增加了经验。其过程中有苦有甜,不足道也。最后感谢老师的指导和同学的帮助。

13

七、附录1原理图

14

附录2元件明细

单片机89C52

温度传感器18B20

驱动74LS245

三线—八线译码器

15

数码管键盘

继电器

16

附录3电路程序

ORG 0000H LJMP STAT ORG 0100H

STAT:CLR EA ;关闭中断 MOV SP,#70H ;开辟栈区 CLR 00H ;DS18B20标志位 SETB P3.3 ;关闭加热 MOV R1,#00H ;清R1 MOV 31H,#00H MOV 32H,#00H

MOV 41H,#00H ;设置键盘设定温度的高位 MOV 42H,#00H ;设置键盘设定温度的低位 MOV 51H,#00H ;设置测量温度高位 MOV 52H,#00H ;设置测量温度低位 MOV 55H,#00H MOV 61H,#00H MOV 62H,#00H

LCALL INIT ;消除上电抖动 BCDH:LCALL LOOP ;测温

LCALL LOW1 ;显示测量温度 LCALL LOW2 ;显示键盘设定温度 LCALL KEYB ;扫描键盘 LCALL LOW1 ;显示测量温度 LCALL LOW2 ;显示键盘设定温度 LCALL COMP ;比较温度 LJMP BCDH ;返回 键盘程序:

KEYB:MOV P2,#00011111B ;置输入为1,输出为0

17

MOV A,P2 ;读P2口的引脚状态 ANL A,#00011111B XRL A,#00011111B

JZ NOKEY ;判断有无按键按下 ACALL DL20MS ;延时20MS消抖 ANL A,#00011111B ;重读键盘 XRL A,#00011111B

JZ NOKEY ;再次判断有无按键按下 MOV R2,#11101111B ;行扫描初始值,从第一行开始 SCAN: MOV A,R2 MOV P2,A MOV A,P2 ANL A,#00001111B

MOV R3,A ;取列线的引脚状态 CJNE A,#00001111B,KEYP ;有键按下 MOV A,R2

RL A ;产生下次的行线输出 MOV R2,A XRL A,#11111110B

JNZ SCAN ;扫描完否,未完继续 NOKEY:MOV R5,#0FFH ;无按键按下 RET

KEYP:MOV A,R2 ;取行扫描值 ANL A,#11110000B ;计算行特征码 ORL A,R3 ;计算按键特征码 MOV R4,A ;按键特征码暂存在R4中 MOV R5,#00H ;设置按键键值初始值 MOV DPTR,#KEY_TAB ;特征码表首地址 CALV:MOV A,R5 ;计算按键键值 MOVC A,@A+DPTR

18

XRL A,R4 JZ FIXED INC R5 SJMP CALV

FIXED:MOV A,P2 ;判断键值是否释放 ANL A,#1FH XRL A,#1FH JNZ FIXED

ACALL DL20MS MOV A,P2 ANL A,#1FH XRL A,#1FH JNZ FIXED INC R5

CJNE R1,#1,TURN MOV A,R5 MOV 42H,A INC R1 RET

TURN:CJNE R1,#2,RNUO MOV A,R5 MOV 41H,A MOV 42H,#00H DEC R1 RET

RNUO:MOV A,R5 MOV 41H,A MOV 42H,#00H INC R1 RET

;延时消抖 ;判断是否是第二次按键

;若是第二次按键,则将数存在42H中,且R1加1 ;若不是第二次按键,则判断是否是第三次按键 ;若是第三次按键,则将数存在41H中,42H清0 且R1减1 41H中,42H清0 且R1加1 19

;若是第一次按键,则数存在 比较程序:

COMP:MOV A,41H ;判断是否有键按下, 若有,跳到NEXT CJNE A,#00H,NEXT

SGD: MOV A,51H ; 无键按下时,判断是否在40到90度范围 CJNE A,#4,GOOD 内 MOV A,52H CJNE A,#00H,HUP

CLR P3.3 RET

GOOD:JC NEQ MOV A,51H

CJNE A,#9,HUP SETB P3.3 RET

NEQ: CLR P3.3 RET

HUP: RET NEXT:MOV A,41H CJNE A,#4,KJH DRT: MOV A,41H CJNE A,51H,RO MOV A,42H CJNE A,52H,RO

RET KJH: JC QDS MOV A,41H

CJNE A,#9,DRT MOV A,42H CJNE A,#00H,QDS

LJMP DRT

40度,则加热 ;判断温度是否大于40度,若小于,则跳转 ;判断温度是否小于90度,若小于,则跳转 ;温度刚好为90度,关闭加热 ;启动加热 ;结束

;当有键按下时,判断键值是否在40到90 度范围内

;若在范围内,则比较键盘设定温度和测量温度;键盘设定温度和测量温度相同,不处理 ;判断设定温度是否大于40度,若小于,跳转 ;判断设定温度是否小于90度,若小于,跳转 ;等于90度,则跳转到DRT

20

;若温度刚好在

DJNZ R0,TSR2

LJMP TSR4 ;延时

TSR3:SETB 00H ;置标志位,表示DS18B20存在 LJMP TSR5

TSR4:CLR 00H ;清标志位,表示DS18B20不存在 LJMP TSR7

TSR5:MOV R0,#6BH TSR6:DJNZ R0,TSR6 TSR7:SETB P1.3 RET

WR: MOV R2,#8 CLR C WR1: CLR P1.3 MOV R3,#6 DJNZ R3,$ RRC A MOV P1.3,C MOV R3,#23 DJNZ R3,$ SETB P1.3 NOP

DJNZ R2,WR1 SETB P1.3 RET

READ:MOV R4,#2 MOV R0,#32H RE00:MOV R2,#8 RE01:CLR C SETB P1.3 NOP

;200us

;复位成功,时序要求延时一段时间 ;写18B20程序 ;读18B20程序,读高位和地位 ;低位存入32H,高位存入31H 26

NOP CLR P1.3 NOP NOP NOP SETB P1.3 MOV R3,#7 DJNZ R3,$ MOV C,P1.3 MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV @R0,A DEC R0 DJNZ R4,RE00 RET

CONV:MOV R7,#04 RED0:CLR C MOV A,31H RRC A MOV 31H,A MOV A,32H RRC A MOV 32H,A DJNZ R7,RED0 RET

OBCD:MOV A,32H MOV B,#100 DIV AB

10进制27

;将温度转换为 MOV R3,A MOV A,#10 XCH A,B DIV AB

MOV 51H,A ;高位存在51H MOV 52H,B ;低位存在52H RET

28

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库简易温度控制系统doc在线全文阅读。

简易温度控制系统doc.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/236516.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: