毕业设计(论 文)中图分类号:TP272基于单片机的恒温控制器的设计专 业 名 称 : 电气自动化 学 生 姓 名 : 周翔 导 师 姓 名 : 陈钦铭xx 大学机电工程系 2012 年 11 月中图分类号:TP272 UDC:密级: 单位代码:基于单片机的恒温控制器的设计Microcontroller-based temperature controller design姓 专 导名 业 师周翔 电气自动化 陈钦铭学 职制 称3年 自动控制 工程师研究方向 论文答辩日期论文提交日期焦作大学机电工程系焦作大学机电系毕业设计摘要摘要随着越来越多高新科技的推广与普及,温度测控已成为工业生产中的关键技 术之一。恒温控制主要是用来控制温度,它为农业研究、生物技术测试提供所需 要的各种环境模拟条件,因此恒温控制技术有着很广泛的用途。恒温控制系统其 关键技术为保持环境温度的恒定,本设计采用 ATMEL 公司的 AT89C52 单片机作 为控制核心,通过编程控制 LED 八段数码管完成对温度的显示,采用 DALLAS 公 司的 DS18B20 数字温度传感器来完成温度的采集,并和设定温度进行比较,根据 比较的结果来控制加热电阻和风机的动作与否,从而完成从 25℃到 99℃范围内的 恒温控制。关键词:恒温控制; AT89C52; DS18B20;LED 数码管I焦作大学机电系毕业设计摘要AbstractAs more and more promotion and popularization of high technology, temperature measurement and control in industrial production has become one of the key. Temperature control is mainly used to control the temperature, it is for agricultural research, biotechnology testing to provide the required environmental simulation conditions, so temperature control technology has a very wide range of uses. Temperature control system to maintain its key technologies of constant ambient temperature, the design uses ATMEL Corporation AT89C52 microcontroller as the control core, eight out by programming the control LED digital temperature display to complete, using the company's DS18B20 DALLAS digital temperature sensor to complete the temperature collection, and set the temperature and compare the results compared to control according to the heating resistor and the fan action or not, so as to achieve the purpose of controlling the temperature from 25℃ to 99℃.Keywords: temperature controller; AT89C52; DS18B20; LED digital tubeII焦作大学机电系毕业设计目录目 录第 1 章 引言 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 1 ) 第 2 章 系统的基本构成及方案论证„„„„„„„„„„„„„„„„„„„„„„ ( 2 ) 2.1 系统的基本构成„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 2 ) 2.2 方案的论证„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 2 ) 2.2.1 控制核心的选择„„„„„„„„„„„„„„„„„„„„„„„„„„„( 2 ) 2.2.2 温度采集装置的选择„„„„„„„„„„„„„„„„„„„„„„„„„( 3 ) 2.2.3 显示模块的选择„„„„„„„„„„„„„„„„„„„„„„„„„„„( 4 ) 2.2.4 加热模块及降温模块的选择„„„„„„„„„„„„„„„„„„„„„„( 4 ) 第3章 3.1 硬件电路设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 7 )系统主要元器件简介„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 7 )3.1.1 AT89C52 单片机简介„„„„„„„„„„„„„„„„„„„„„„„„„( 7 ) 3.1.2 DS18B20 单线数字温度传感器简介„„„„„„„„„„„„„„„„„„„( 9 ) 3.1.3 八段 LED 数码管„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 9 ) 3.1.4 74HC138 译码器„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 10 ) 3.1.5 光电耦合器 OPTOTRIAC„„„„„„„„„„„„„„„„„„„„„„„ ( 11 ) 3.2 各功能模块的电路设计„„„„„„„„„„„„„„„„„„„„„„„„„( 12 ) 3.2.1 复位电路及时钟电路的设计„„„„„„„„„„„„„„„„„„„„„„( 12 ) 3.2.2 键盘接口电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„( 13 ) 3.2.3 温度采集电路设计„„„„„„„„„„„„„„„„„„„„„„„„„„( 14 ) 3.2.4 数码管显示电路设计„„„„„„„„„„„„„„„„„„„„„„„„„( 15 ) 3.2.5 加热电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„„„( 17 ) 3.2.6 降温电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„„„( 18 ) 3.2.7 掉电保护电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„( 18 ) 3.2.8 主电源电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„„( 20 ) 第 4 章 系统软件设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 21 ) 4.1 应用的相关软件„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 21 ) 4.1.1 Protel 99SE„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 21 ) 4.1.2 KEIL 8051 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 22 ) 4.2 系统程序的设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 23 ) 4.2.1 程序结构„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 23 ) 4.2.2 主程序流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 23 ) 4.2.3 温度传感器驱动模块程序„„„„„„„„„„„„„„„„„„„„„„„( 24 )III焦作大学机电系毕业设计目录第 5 章 系统调试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1 系统性能测试及分析„„„„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1. 1 测试系统的温度控制精度„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1. 2 误差分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1. 3 结果分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 软件调试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 .1 传感器 DS18B20 温度采集部分调试„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 .2 键盘及数码管显示部分调试 „„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 .3 加热模块及降温模块的调试„„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.3 硬件调试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 29 ) 5.3 .1 传感器 DS18B20 温度采集部分调试„„„„„„„„„„„„„„„„„„„( 29 ) 5.3 .2 加热模块及降温模块的调试„„„„„„„„„„„„„„„„„„„„„„( 29 ) 5.3 .3 键盘及数码管显示部分调试„„„„„„„„„„„„„„„„„„„„„„( 29 ) 总 结„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 31 ) 参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 32 ) 附录Ⅰ„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 33 ) 附录Ⅱ„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 34 ) 致谢„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 42 )IV焦作大学机电系毕业设计第 1 章 引言第1章引 言随着新技术的不断开发与应用,温度是工业控制中主要的被控参数之一,特 别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展 和广泛的应用。单片机具有处理能力强、运行速度快、功耗低等优点,应用在温 度测量与控制方面,控制简单方便,测量范围广,精度较高。单片机可用于空气 温度控制系统的数据处理,这包括控制执行器的输出、将被测温度送到显示模块 显示、接收从人机通道输入的信号等。 DS18B20 是美国 DALLAS 半导体公司继 DS1820 之后最新推出的一种改进型 智能温度传感器。 与传统的热敏电阻相比, 使用 DS18B20 可使系统结构更趋简单, 可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820 有了 很大的改进,给用户带来了更方便的使用和更令人满意的效果。 本文设计了一种基于 AT89C52 单片机的控制和 DS18B20 测试装置, 能对环境 温度进行测量,并能根据温度给定值给出调节量,控制执行机构,实现调节环境 温度的目的。空气温度在我们的环境影响很大的,因而空气温度不论是对于我们 的生活还是工业生产都有着重要的意义。在早期对温度温控制的要求主要是在化 工、冶炼生产上,比如在大棚蔬菜空气温度控制就对大棚农业生产有不可替代的 作用,现在随着新技术的不断开发与应用,用单片机和相关的电子器件构成的空 气温控制系统在控制精度以及各项参数上有空前的提高,控制的领域也有很大的 扩展,目前以单片机为核心的空气温控制系统得到了广泛应用。正因如此,对空 气温度的控制到处可见,比如说特定温度实验室,空调,减少温室效应影响以及 工业化农业的要求等都需要空气温度控制。在生产中,一些现代化生产车间里, 尤其是在化工厂里,某些产品加工需要在一定的温度下才能进行。随着电子技术 的不断发展,温控制系统设计的方法越来越多也越来越完善。1焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证第2章系统的基本构成及方案论证2.1 系统的基本构成本设计的整体思路是:利用 DS18B20 温度传感器直接输出数字温度信号给单 片机 AT89C52 进行处理,在六位 LED 数码管上显示当前环境温度值以及预设温度 值。温度低于预设值启动加热电阻进行加热,若温度过高则启动风扇降温直到预 设温度值停止。结构框图如下:温度采集 (DS18B20)键盘电路双向可控 硅加热电阻AT89C52晶振继电器直流电机 (风扇)温度显示图 2-1 系统构成框图2.2 方案论证2.2.1 控制方案的选择对于温度控制的方法也有很多:如单片机控制、PLC 控制、模拟 PID 调节器和 数字 PID 调节器等等。而 PID 调节器的算法复杂,其成本也相对较高。 方案一:利用单片机实现恒温控制2焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证利用单片机实现温度恒定的控制, 系统主要包括现场温度采集、 实时温度显示、 加热控制参数设置、加热电路控制输出、报警装置和系统核心 STC89C52 单片机作 为微处理器。温度采集电路以数字形式将现场温度传至单片机,单片机结合现场 温度与用户设定的目标温度,按照已经编程固化的算法计算出实时控制量。以此 控制量控制场效应管开通和关断,决定加热电路的工作状态,使温度逐步稳定于 用户设定的目标值。在温度达到设定的目标温度后,由于冷却温度降低,单片机 通过检测到的温度与设置的目标温度比较,作出相应的控制开启加热片。 方案二:利用 PLC 实现恒温控制 这用恒温控制, 采用 PLC 控制实现电热丝加热全通、间断导通和全断加热的自 控式方式,来达到温度的恒定。智能型电偶温度表将置于被测对象中,热电偶的 传感器信号与恒定温度的给定电压进行比较,生成温差,自适应恒温控制电路根 据差值大小控制电路的断开。 对于方案二,采用的 PLC 实现恒温控制,由于其 PLC 成本高,且 PLC 外围系 统配置复杂,不利于我们的设计。由于数字调节和运算量大,相反对于 STC89C52 单片机只要选择合适的参数对于温度的控制精度往往能达到比较好的效果。 对于方案一,采用单片机实现恒温控制,该方案成本低,可靠性高,抗干扰 性强,对于系统动态性能与稳定性要求不是很高的场合时非常合适的。采用高精 度的温度传感器:数字温度传感器 DS18B20。这种数字温度传感器是 DALLAS 公司 生产的单总线。相比之下,单片机控温电路就比较简单。 综合各方面的意见,本设计采用 AT89C52 单片机来实现温度的控制。2.2.2 温度采集装置的选择温度传感器可由以下两种方案可供选择: 方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于 温度变化引起热敏电阻的变化、进而导致的输出电压变化的微弱电压变化信号, 再用 AD 转换芯片 ADC0809 将模拟信号转化为数字信号输入单片机处理。 方案二:采用数字式集成温度传感器 DS18B20 作为感测温度的核心元件,直 接输出数字温度信号给单片机处理。 对于方案一,采用热敏电阻有价格便宜,元件易购的优点,但热敏电阻对温 度的细微变化不敏感,在信号采集、放大、转换过程中还会产生失真和误差,并 且由于热敏电阻的 R-T 关系的非线性,其本身电阻对温度的变化存在较大误差, 虽然可以通过一定电路予以纠正,但不仅将使电路复杂程度降低,而且在人体所3焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证处环境温度变化过程中难以检测到小的温度变化。不能达到恒温箱对温度的控制 要求,故该方案不适合本系统。 对于方案二,由于数字式集成温度传感器 DS18B20 的高度集成化,大大降低 了外接放大转化等电路的误差因数,温度误差很小,并且由于其感测温度的原理 与上述方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部 转化成数字量直接输出,简化了系统程序设计,又由于改传感器采用先进的单总 线技术,与单片机的接口变得非常简洁,抗干扰能力高。所以本系统采用方案二。2.2.3 显示模块的选择方案一:采用六位共阳数码管显示温度,动态扫描显示方式。 方案二:采用液晶显示屏 LCD 显示温度。 对于方案一,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗 极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地 方是扫描显示方式是使六个 LED 逐个点亮,因此会有闪烁,但是人眼的视觉暂留 时间为 20MS,当数码管扫描周期小于这个时间时人眼会感觉不到闪烁,因此可以 通过增大扫描频率来消除闪烁感。 对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字 符甚至图形的优点, 这是 LED 数码管无法比拟的。 但是液晶显示模板块价格昂贵, 驱动程序复杂,从简单实用的原则考虑,本系统采用方案一。2.2.4加热模块及降温模块的选择方案一:采用了几个电阻分压的方式来给加热电路提供不同电压,使用电子 负载电路进行加热,控制电子输入端的电压控制加热的速度。当设置温度大于实 际温度 5 度时,换取 1v 电压加热,当设置温度小于实际温度 5 度时,换取 0.5v 电 压加热,当设置温度等于空气温度,关闭加热,换取 0v 电压加热。当温度高于 1 度时进行降温处理,在设计制作过程中,我们使用了一个 5v 驱动的散热风扇,当 实际温度高于设置温度 1 度时用于散热,当温度低于设定温度 1 度时,开启加热 设备,关闭风扇。如图 2-2 所示4焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证图 2-2电阻分压式加热电路方案二:采用脉冲宽度调制的方法,利用光耦合器来控制电阻丝和直流电机 的电流通断。单片机系统输出控温信号,输出高电平时,经反相器变为 0 信号, 使双向可控硅导通,信号灯亮,电阻丝通电加热;输出低电平时,双向可控硅断 开,信号灯灭,电阻丝断电。脉冲宽度 T1 与周期 T 的比值为 P,它反映了系统的 输出空置量 P=95%为输出上限,P=5%为输出下限。加热电路原理图参见图 3-10 , 单片机 I/O 口 P0.6 输出信号经过光电耦合器,通过这种方式控制双向可控硅的门 极,从而控制电阻丝的平均加热功率,达到精确加热的目的。降温模块采用采用 直流电机作为降温装置,通过控制继电器的吸合与断开,来控制直流电机的通断, 从而达到散热降温的目的。当环境温度超过预设温度开启降温风扇,当环境温度 低于预设温度 5 度以上通过脉宽调制采用大功率加热(即设定 P 值为 95%) ,当环 境温度低于预设温度 1 度时,采用小功率加热(即设定 P 值为 5%) 。 对于方案一,采用继电器控制,使用继电器可以通过较高的电压和电流,在5焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。通 过单片机控制继电器开关来确定输入电子负载端的电压和风扇的开关,虽然在第 一次加热的余温很高但是在多次风扇与功率电阻加热与降温的协调下达到恒温的 要求,在程序上选用适当的控制算法,可以达到设计指标的效果。但是由于电路 设计过于复杂,且通讯端口占用较多、成本较高。 对于方案二,采用 PWM 脉宽调制的方法,通过控制光耦合器的通断时间的 不同来进行加热,从而达到精确控温的效果,加热和降温电路只占用 2 个 I/O 口, 这样不仅简化了输出通道电路,提高了电路抗干扰能力,而且成本比较低。所以 本系统采用方案二作为温度控制方案。6焦作大学机电系毕业设计第 3 章 系统硬件电路设计第3章硬件电路设计本系统主要部件包括 AT89C52 单片机、DS18B20 温度传感器、四位 LED 数码 管、直流电机、光电耦合器、发热电阻丝。辅助元件包括电阻、晶振、电源、按 键、拨码开关等。3.1 系统主要元器件简介3.1.1 AT89C52 单片机简介图 3-1 AT89C52 单片机实物及引脚示意图VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程 序数据存储 器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入 口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收 输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作 输入,P1 口被 外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和 校验时,P1 口作为第八位地址接收。7焦作大学机电系毕业设计第 3 章 系统硬件电路设计P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输 出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻 拉高,且作为 输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部 上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存 储器进行存取 时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外 部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下所示: 各口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期以上的高 电平时间。 ALE/PROG: 当访问外部存储器时, 地址锁存允许的输出电平用于锁存地址的 地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以 不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外 部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时, 将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号 将不出现。 EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储(0000H-FFFFH) , 不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当8焦作大学机电系毕业设计第 3 章 系统硬件电路设计/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于 施加 12V 编程电源(VPP) 。3.1.2DS18B20 单线数字温度传感器简介DS18B20 温度传感是由 DALLAS(达拉斯)公司生产,见图 3—2 。它的体积 超小,硬件开消低,抗干扰能力强,精度高。DS18B20 的主要特征: 全数字温度 转换及输出, 先进的单总线数据通信, 最高 12 位分辨率,精度可达土 0.5 摄 氏度, 2 位分辨率时的最大工作周期为 750 毫秒, 可选择寄生工作方式, 检 测温度范围为–55°C ~+125°C (–67°F ~+257°F) 内置 EEPROM,限温报警功 能, 64 位光刻 ROM,内置产品序列号,方便多机挂接。 多样封装形式,适应不 同硬件系统。 DS18B20 内部结构主要由 4 部分:64 位 ROM、温度传感器、非挥发的温度报警 触发器 TH 和 TL、配置寄存器。其管脚有三个端,其中 DQ 为数字信号端,GND 为 电源地,VDD 为电源输入端。图 3-2温度传感器封装形式及引脚说明3.1.3八段 LED 数码管本系统选用六位 LED 数码管作为温度显示。LED 又称为数码管,它主要由 8 段发光二极管组成的不同组合,可以显示 a~g 为数字和字符显示段,dp 段为小数 点显示,通过 a~g 为 7 个发光段的不同组合,可以显示 0~9 和 A~F 共 16 个数 字和字母。 LED 可以分为共阴极和共阳极两种结构, 如图 3-3 (a)和图 3-3(b) 所示。 共阴极结构即把 8 个发光二极管阴极连在一起。这种装入数码管中显示字形的数 据称字形码,又称段选码。9焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-3LED 数码管结构图共阳极段码 显示字符 共阴极段码 共阳极段码 共阴极段码 显示字符 0 1 2 3 4 5 6 7 3fH 06H 5bH 4fH 66H 6dH 7dH 07H C0H F9H A4H B0H 99H 92H 82H F8H表 3.18 9 A B C D E F七段 LED 的段选码表7fH 6fH 77H 7fH 39H 3fH 79H 71H80H 90H 88H 83H C6H A1H 86H 8EH一个共阴极数码管经反相器后接至单片机的电路,要想显示数字“7”须 a、b、 c 这 3 个显示段发光 (即这 3 个字段为底电平) 只要在 P1 接口输入 11111000 (07) 即可。里 07 即为数字 7 的段选码。字形与段选码的关系见表 3.1 所示。3.1.474HC138 译码器74HC138 是一款高速 CMOS 器件, 74HC138 引脚兼容低功耗肖特基 TTL (LSTTL) 系列。如图 3-4 所示, 74HC138 译码器可接受 3 位二进制加权地址输入(A0, A1 和 A2) ,并当使能时,提供 8 个互斥的低有效输出(Y0 至 Y7) 。74HC138 特有 3 个 使能输入端:两个低有效(E1 和 E2)和一个高有效(E3) 。除非 E1 和 E2 置低且10焦作大学机电系毕业设计第 3 章 系统硬件电路设计E3 置高,否则 74HC138 将保持所有输出为高。利用这种复合使能特性,仅需 4 片 74HC138 芯片和 1 个反相器,即可轻松实现并行扩展,组合成为一个 1-32(5 线到 32 线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入 端作为选通端,则 74HC138 亦可充当一个 8 输出多路分配器,未使用的使能输入 端必须保持绑定在各自合适的高有效或低有效状态。 74HC138 其特性是复合使能输入,轻松实现扩展 兼容 JEDEC 标准 no.7A 存储 器芯片译码选择的理想选择 低有效互斥输出 ESD 保护 HBMEIA/JESD22-A114-C 超 过 2000 V MM EIA/JESD22-A115-A 超过 200 V 温度范围 -40~+85 ℃ -40~+125 ℃ 多路分配功能。图 3-74HC138 封装图 3-474HC138 译码器3.1.5光电耦合器 OPTOTRIAC光耦合器(optical coupler,英文缩写为 OC)亦称光电隔离器或光电耦合器, 简称光耦。它是以光为媒介来传输电信号的器件,通常把发光器(红外线发光二极 管 LED)与 受光器(光敏半导体管)封装在同一管壳内。当输入端加电信号时发 光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电 —光—电” 转换。以光为媒介把输入端信号耦合到输出端的光电耦合器,由于它 具有体积小、寿命长、无触点,抗干扰能力强,输出和输入之间绝缘,单向传输信号 等优点,在 数字电路上获得广泛的应用。11焦作大学机电系毕业设计第 3 章 系统硬件电路设计本系统采用 OPTOTRIAC 型号光电耦合器(见图 3-5) ,该光耦合器的主要优点 是单向传输信号,输入端与输出端完全实现了电气隔离,抗干扰能力强,使用寿命 长,传输效率高。它广泛用于电平转换、信号隔离、级间隔离、开关电路、远距离 信号传输、脉冲放大、固态继电器 (SSR)、仪器仪表、通信设备及微机接口中。图 3-5 光电耦合器 OPTOTRIAC3.23.2.1各功能模块的电路设计复位电路及时钟电路的设计本系统采用按键复位电路,该电路除了具有上电复位功能以外,若要复位, 只需按图 3-6 中 RESET 键,此时电源 VCC 经电阻 R1、R2 分压,在 RST 端产生一个 复位高电平,即可完成复位。时钟电路对单片机系统而言是必需的。由于单片机 内部是由各种各样的数字逻辑器件(如触发器寄存器存储器等)构成,这些数字器 件的工作必须按时间顺序完成,这种时间顺序就称为时序。时钟电路就是提供单 片机内部各种操作的时间基准的电路,没有时钟电路单片机就无法工作。此次设 计中, 我们采用由内部方式产生时钟的方法形成时钟电路, 11.0592MHz 的晶振, 由 两个 33pF 的电容构成。12焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-6 复位电路及时钟电路3.2.2键盘接口电路的设计键盘采用 5 个独立按键, 见图 3-7, K2, OK,SET 分别与单片机的 P0.0、 K1, K3, P0.1 和 P0.2、P0.3、INT0 口及 10K 上拉电阻相连,另一端接地,当任一按键按下 时,取低电平有效。系统上电后,按下 SET(设置键)使系统产生中断,调用中断服 务程序,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。 其中按 K1 键为温度的十位设置键,每按下一次,系统对最初设定值十位加一,直 到 9 后,又会从 0 开始累加;按键 K2 为温度的个位设置键,用法与十位设定按键 相同;K3 键为温度小数位设置键,用法与十位设置键相同;OK 为确定键,当预设 温度设定后按 OK 键确认,系统进入温度控制状态。13焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-7键盘接口电路3.2.3温度采集电路设计DS18B20 测量温度采用了特有的温度测量技术,其测量电路如下图所示。它 是通过计数时钟周期来实现的。低温系数振荡器输出的时钟信号通过由高温度系 数振荡产生的门周期而被计数,计数器补预置在与-55℃相对应的一个基权值。如 果计数器在高温度系数振荡周期结束前计数到零,表示测量的温度值高于-55℃, 被预置在-55℃的温度寄存器的值就增加 1℃,然后重复这个过程,直到高温度系 数振荡周期结束为止。这时温度寄存器中的值就是被测温度值,这个值以 16 位形 式存放在便笺式存储器中,此温度值可由主机通过发存储器读命令而读出,读取 时低位在前,高位在后。斜率累加器用于补偿温度振荡器的抛物线特性。 DS18B20 在使用时,一般都采用单片机来实现数据采集。只须将 DS18B20 信 号线与单片机 1 位 I/O 线相连, 且单片机的 1 位 I/O 线可挂接多个 DS18B20, 就可 实现单点或多点温度检测。 在本系统中中将 DS18B20 接在 P3.5 口实现温度的采集。 其与单片机的连接如图 3-8。14焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-8温度采集电路3.2.4数码管显示电路设计由于本系统实现 25.0℃—99.9℃范围内的温度的控制,所以选用 6 位共阳极 数码管作为显示模块,1、2、3 位数码管为环境温度,4、5、6 位为预设温度,它 和单片机硬件的接口电如图 3-5 所示。15焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-9显示模块电路数码管的 A、B、C、D、E、F、G 和 DP 分别与单片机的 P2.0——P2.7 相连。 而四位数码管的位则通过 74HC138 译码器来选通。74HC138 是一个 3-8 译码器。 74HC138 的 A、B、C 与单片机的 P1.5、P1.6、P1.7 相连通,我们可以通过程序控 制 P1.5、P1.6、P1.7 的输出进而控制 3-8 译码器的输出,从而达到选位的目的。其 选通情况如表 3.2.。P1.7 P1.6 P1.5 000 001 010 011 100 101 C BA 000 001 010 011 100 101 选位情况 Y0 输出高电平即第 1 位被选中 Y1 输出高电平即第 2 位被选中 Y2 输出高电平即第 3 位被选中 Y3 输出高电平即第 4 位被选中 Y3 输出高电平即第 5 位被选中 Y3 输出高电平即第 6 位被选中表 3.2 数码管选位情况表本设计中为了的四位数码管,前三位(即第 1、2、3 位)设计为显示温度传 感器所采集到的环境温度,后三位(第 4、5、6 位)设计为所设定的温度,即我16焦作大学机电系毕业设计第 3 章 系统硬件电路设计们所要达到的温度显示。3.2.5加热电路的设计本设计采用交流电源对电阻进行加热,另外采用光电隔离开关来控制加热电 阻的加热与否,能够有效的进行电源的隔离,增大了电路的抗干扰能力。考虑到 加热系统有较大的热惯性,本系统采用脉冲宽度调制的方法,单片机系统输出控 温信号,输出高电平时,经反相器变为 0 信号,使双向可控硅导通,信号灯亮, 电阻丝通电加热;输出低电平时,双向可控硅断开,信号灯灭,电阻丝断电。脉 冲宽度 T1 与周期 T 的比值为 P,它反映了系统的输出空置量 P=95%为输出上限, P=5%为输出下限。加热电路原理图如图 3-10 所示,单片机 I/O 口 P0.6 输出信号 经过光电耦合器,通过这种方式控制双向可控硅的门极,从而控制电阻丝的平均 加热功率,这样简化了输出通道电路,提高了电路抗干扰能力。另外在系统比较 人性化设计的就是电阻加热过程中加热信号指示灯会点亮,系统告知是在加热过 程中。图 3-10加热电路3.2.6降温电路的设计17焦作大学机电系毕业设计第 3 章 系统硬件电路设计由图 3-11 可以知道本设计是由一个继电器来控制降温风扇的, 我们采用的是 HRS1H 型号的 5V 继电器,通过单片机 I/O 口 P0.7 输出信号来控制导通与否,而由 于单片机的输出电流小的原因,需要一个驱动电路来实现控制继电器的导通,由 于采用 NPN 电路需要加上拉电阻且存在上位 5V 的原因容易烧坏三极管,于是我们 采用 PNP8085 的三极管作为继电器的驱动电路。当温度图中 CON2 接降温风扇。图 3-11 降温电路3.2.7掉电保护电路的设计单片机在工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里 的数据,冲掉前期工作的所有信息。为了在突然掉电时能够保持数据存储器的数 据,保证单片机系统稳定、可靠地工作,数据信息处理的安全,虽然单片机主电 源里又大容量滤波电容器,当掉电时,单片机靠贮存在电容里的能量,一般只能 维持半个周期(10ms)左右。为此,要求一旦市电发生瞬间断电时,必须要有一 种电源能在小于 10ms 的时间内重新送电,确保单片机系统正常运行。为了保证单 片机在主电压失去时仍然能够保持运行,人们就利用干电池对单片机系统继续进18焦作大学机电系毕业设计第 3 章 系统硬件电路设计行供电。 本设计采用能够充放电的电池作为备用电源,在主电源正常供电时,需要由 主电源对其进行充电;当主电源失去时,又由电池放电以保持单片机系统的运行。 图 3-12 为本系统的掉电保护电路。图 3-12掉电保护电路当主电源正常时,单片机由 VCC 5V 电源供电,此时,VCC5V 电源通过 D1 和 R1 ,对保护用电池进行充电,以保证电池电量的充足。当主电源失去时,放电路 径为:电池通过 R1+R2 ,对单片机供电端口进行供电,供电电流通过 R1+R2 之 后, 会有压降, 到达单片机的 VCC 端口时, 电压就会比 3.6 V 低, 一般会在 2V—2.5 V 左右,令单片机仍然工作于正常供电状态。19焦作大学机电系毕业设计第 3 章 系统硬件电路设计3.2.8主电源电路的设计本系统的直流稳压电源采用通常的桥式全波整流、电容滤波、三端固定输出 的集成稳压器件进行设计,并且所有的集成稳压芯片均装有充分裕量的散热片。 220V 交流电经过变压器、桥式全波整流、电容滤波、三端固定输出的集成稳压器 件之后输出 5V 直流电压,系统的供电电源电路如图 3-13 所示。图 3-13主电源电路20焦作大学机电系毕业设计第 4 章 系统软件设计第4章4.14.1.1系统软件设计应用的相关软件Protel 99SEProtel 99SE 是 Prokl Technology 公司开发的基于 Windows 环境下的电路板设 计软件。该软件功能强大,人机界面友好,易学易用,仍然是大中院校电学专业 必学课程,同时也是业界人士首选的电路板设计工具。 Protel 99SE 由两大部分组成:电路原理图设计(Advanced Schematic)和多层 印刷电路板设 计(Advanced PCB)。其中 Advanced Schematic 由两部分组成:电 路图编辑器(Schematic)和 元件库编辑器(Schematic Library) 。 在设计中我们要用到 Protel 99SE 进行原理图设计。 如图 4-1 为软件使用界面。图 4-1Protel 99se 界面21焦作大学机电系毕业设计第 4 章 系统软件设计4.1.2KEIL 8051Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开 发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优 势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具, Windows 全 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在 开发大型软件时更能体现高级语言的优势。本设计中使用 KEIL 软件进行系统程序 编辑,软件使用界面如图 4-2图 4-2Keil 使用界面22焦作大学机电系毕业设计第 4 章 系统软件设计4.2系统程序的设计4.2.1 程序结构整个系统的程序设计是由主程序和各个子程序构成,主程序调用了 6 个子程 序,分别是数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继 电器控制程序、加热控制程序。 键盘扫描及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。 温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 降温控制程序:控制继电器的通断,继而控制风扇动作。 加热控制程序:控制光耦合器的通断时间,精确加热。4.2.2 系统程序流程图23焦作大学机电系毕业设计第 4 章 系统软件设计开始读取 DS18B20 温度子 程序程序初始化 数码管显示程序 中断服务程序比较温度读取 DS18B20 温度子程序 测得温度=预设温度? 是数码管显示程序键盘扫描子程序否是否有键 按下? 是 按键处理否测得温度>预设温度?是 降温控制 程序 测得温度设置预设温度加热控制程 序图 4-3 系统程序流程图4.2.3 温度传感器驱动模块程序单片机控制 DS18B20 完成温度转换必须经过三个步骤:每次读写之前都要对 DS18B20 进行复位,复位成功后再发送一条 ROM 指令,最后发送 RAM 指令,这 样才能对 DS18B20 进行预定的操作。复位要求单片机将数据线下拉 500us,然后24焦作大学机电系毕业设计第 4 章 系统软件设计释放, DS18B20 收到信号后等待 16~60us 左右, 再发出 60~240us 的存在低脉冲, CPU 收到此信号表示复位成功。 本系统对 DS18B20 的操作分为 3 个步骤:初始化、ROM 命令和 DS18B20 功 能命令。单片机要与 DS18B20 通信,首先 DS18B20 初始化,复位 DS18B20,然 后单片机等待 DS18B20 的应答脉冲。一旦单片机检测到应答脉冲,便发起跳过 ROM 匹配操作命令。成功执行了 ROM 操作命令后,就可以使用内存操作命令, 启动温度转换,延时一段时间后,等待温度转换完成。再发起跳过 ROM 匹配操作 命令, 然后读暂存器, 将转换结果读出, 并转为显示码, 送到数码管显示。 DS18B20 模块程序流程图如图 4-3 所示。 ROM 命令完成单片机与总线上的某一 DS18B20 建立联系,有搜寻 ROM、读DS18B20 复位跳过 ROM 匹配启动温度转换DS18B20 复位跳过 ROM 匹配读取温度温度处理 图 4-4 DS18B20 模块流程图ROM、 匹配 ROM、 忽略 ROM、 报警查找等命令。 这里, 单片机只连接 1 个 DS18B20, 因此只使用读 ROM 命令来读取 DS18B20 的 48 位 ID 号。 DS18B20 功能命令在该步骤中完成温度转换、写暂存寄存器、读暂存寄存器、 拷贝暂存寄存器、装载暂存器寄存器、读供电模式命令[16]。本系统不用温度报警25焦作大学机电系毕业设计第 4 章 系统软件设计功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度 转化的结果。 所以, 本系统对 DS18B20 进行的操作主要包括两个子过程: 1) ( 读取 DS18B20 的序列号。主机首先发一复位脉冲,等收到返回的存在脉冲后,发出搜索器件的 序列号命令,读取 DS18B20 的序列号; (2)启动 DS18B20 作温度转换并读取温度 值。主机在收到返回的存在脉冲后,发出跳过器件的序列号命令,跟着发出温度 转换命令,再次复位并收到返回的存在脉冲后,发送 DS18B20 的序列号,读出数 据。26焦作大学机电系毕业设计第 5 章 系统调试第5章5.1 系统性能测试及分析系统调试本设计恒温控制系统是基于单片机的而设计,它能够实现显示当前温度和预 设温度,并能根据用户设定的温度进行自动的控温。此系统工作稳定性好,控制 精度高,软件采用模块化结构,提高了通用性,利用精确的脉宽调制加热使超调 量大大降低,很大程度上提高了系统的性能。5.1.1测试系统的温度控制精度为了验证温控系统的控制精度,我们将温度计和温控系统温度传感器探头放 入相同温度的水中,选定若干不同的温度点,记录下标准温度计显示的温度和温 控系统显示的温度并进行比较。通过设定不同的温度值,使加热器加热,待温度 稳定时记录各温度点的温度计数据和温控系统的显示值。其记录数据如下表 5.1:温度计读数和温控系统显示的温度(℃) 设定温度值 系统显示温度 差值 25.0 25.5 0.5 28.0 27.7 0.3 35.0 34.4 -0.6 45.0 45.1 0.1 55.0 54.1 -0.9 75.0 74.9 -0.1 87.0 86.1 -0.9 91.0 91.2 0.2表 5.1 温度计读数和温控系统显示的温度根据实验测得数据可以看出,系统测得温度与实际温度存在一定的误差,误差范 围在±1℃之内,基本达到预期目标。5.1.2误差分析本系统的主要误差来源于以下几个方面: (1)由于实验所用测量工具(如温度计)本身精度以及所带来的视觉误差, 加上温度变化惯性较大,动态测量时准确控制测量精度略有难度。 (2)由于风扇采用的是继电器直接控制,没有进行调速控制,所以在继电器 断开后风扇由于惯性还会转动,可能使温度降低过快,导致温度差值为负值。 (3)另一方面可能是由于软件设计上的缺陷,可能是温度传感器测得的温度 由于延时时间过长,而没有及时的将温度数据发送到数码管显示,从而导致的误 差。27焦作大学机电系毕业设计第 5 章 系统调试5.1.3结果分析根据实验数据可知,本系统静态误差方面可以达到 0.18℃的误差,总体控制 精度方面大约 0.45℃,在读数正确方面与标准温度计的读数误差为 1.5%,对一般 的工业生产完全可以采用本设计。该系统具有较小的超调值,超调值大约为 0.83% 左右。虽然超调为不利结果,但另一方面却减小了系统的调节时间。从其数据表 可以看出该系统为稳定系统。5.2软件调试5.2.1 传感器 DS18B20 温度采集部分调试本系统采用数字式集成温度传感器 DS18B20,由于该温度传感器的高度集成 化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制温 度的精度和系统的稳定提供了可能。软件设计采用 P3.5 口为数字温度输入口,但 是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。通过软 件设计,实现了对环境温度的连续检测,经过试验程序验证,温度传感器检测温 度效果良好。5.2.2 键盘及数码管显示部分调试程序的键盘接口采用 P0 口,数码管显示采用 P2 口控制 LED 的段选码,P1 口 的 P1.5、P1.6、P1.7 三个位由 74HC138 译码,这样大大节省了系统 I/O 口资源。 系统中只需要六个 LED,所以选择了译码后六位来控制 LED 的位码,通过程序的设 计,1、2、3 位数码管为环境温度,4、5、6 位数码管为预设温度。 通过实验程序,实现了按键的功能,并有较好的去抖动效果,也能根据需要 调节按键时间;LED 采用动态显示,所以实验程序中不能允许有较长的延时,程序 实现了 LED 显示很好的显示效果。5.2.3 加热模块及降温模块的调试系统软件设置 P0.6 口、P0.7 口分别作为加热模块的控制端和降温模块的控 制端,加热模块通过程序设计输出不同的 PWM 波形,来控制光电耦合器的通断时 间的不同,从而得到不同的占空比来控制电阻丝的加热功率,以实现精确加温。 当外界温度高于设置温度时,电阻不加热或停止加热,系统将调用降温程序启动28焦作大学机电系毕业设计第 5 章 系统调试降温模块进行降温;当外界温度低于设置温度时,主程序调用加热子程序进行加 热,且外界温度与设置温度的差值越大,输出的平均加热功率增大,加热速度越 快,即占空比增加。5.3 硬件调试5.3.1 传感器 DS18B20 温度采集部分调试将 DS18B20 芯片接在系统板对应的 P3.5 口,通过插针在对应系统板的右下侧 三口即为对应的 VCC、P3.5 和 GND,可将芯片直接插在该插针上,因此即为方便。 系统调试中为验证 DS18B20 是否能在系统板上工作,将手心靠拢或者捏住芯片, 即可发现 LED 显示的前两位温度也迅速升高,验证了 DS18B20 能在系统板上工作。 由于 DS18B20 为 3 个引脚,因此在调试过程中因注意其各个引脚的对应位置,以 免将其接反而是芯片不能工作甚至烧毁芯片。5.3.2键盘及数码管显示部分调试系统按键部分实现了以下功能:按下 K1 键,数码管的显示温度值十位增一; 按下 K2 键,数码管的显示温度值个位增一;按下 K3 键,数码管的小数位温度增 一。每一位温度值在增到 9 之后又会回到 0 重新增加。调试过程中出现了当按键 时间过长时,设置的温度值不是增一或者减一,而是增加后减少几个值,出现这 种情况的主要元因可能是按键的去抖动延时时间过长造成,改进方法为将对应的 按键去抖动延时时间适量增加,但也不应过长,否则将出现按键无效的情形。 系统显示部分实现了以下功能:LED 显示的前三实现了环境温度部分的连续 显示,LED 的后三能根据按键的调整显示所需要的设计温度。且 LED 的显示效果很 好,很稳定。5.3.3加热模块及降温模块的调试在加热模块的设计中重在软件设计,外围的驱动电路只是将送来的 PWM 信 号放大从而驱动电阻工作。系统软件设置在 P0.6 口输出使光耦合器导通的 PWM 占空比,当环境温度低于设置温度时,电阻开始加热,若此时用低于环境温度的 冰块靠近测温芯片 DS18B20 时,用一数字温度计靠近加热电阻测量其温度,发现 电阻温度迅速上升,并越来越高,当达到一定值时,发现电阻温度不再升高;将 冷源离开测温芯片 DS18B20 时,发现温度开始下降,直到预设温度时不在下降, 若将设置温度低到环境温度以下,发现电阻温度又开始升高。调试过程中最初采 用继电器控制加热电阻曾出现了很多问题,数次发现继电器吸合后,电阻开始加29焦作大学机电系毕业设计第 5 章 系统调试热,但是温度到达预设温度之后却延迟比较长的时间才断开,猜测可能是受电源 干扰的问题,最终只有光电耦合器能够精确的控制加热电阻的通电与断开,从而 精确的控制温度的恒定。 降温模块中,系统设置单片机 P0.7 口作为降温控制端口,系统采用的直流电 机为 12V 的额定电压, 而该驱动电路在采用单片机电源时的输出电压最高不过 5V, 因此在调试过程中只采用了原有的 5V 直流电机来调试, 但是由于单片机输出电流 小,当采用 NPN 型三极管作为驱动电路时,调试过程中总会烧坏三极管,最终我 们采用 PNP8085 型三极管作为继电器的驱动电路,并进行该模块的多次调试,发 现电机转速不高,但是运转正常。30焦作大学机电系毕业设计总结总 结本次设计采用了汇编语言编程方式,实现了温度的测量与控制,设计方案采 用了单总线型数字式的温度传感器,不仅提高了温度的采集精度,且节约了单片 机的口线资源。DS18B20 简单快速的测温后,经单片机准确的温度分析后,驱动 光耦合器进行电阻加热或驱动继电器进行风扇降温的控制,从而实现精确的恒温 控制。方案还使用光电耦合器作加热控制器件,使设计简单化,且可靠性强。在 控制精度方面,本设计采用 PWM 脉宽调制,由加热控制端输出不同的 PWM 脉冲 来控制加热电阻通电时间,精确的控制电阻的加热功率,来提高温度的控制精度。 通过该温控系统可以实现 0℃~99.9℃范围内温度控制,在经过多次系统测试和误 差校正后,系统的温度控制精度和测试精度达到了 1℃的设计指标。在软件方面采 用模块化编程,思路清晰,使程序简洁、可移植性强。 但是在设计工作完成后,重新思考整个设计方案,发现其中有很多值得改进 的地方,本设计虽然采用了当前市场最先进的电子器件,使电路设计简单,但设 计方案不是最佳。本系统虽然具有较小的超调量,但加大了调节时间。特别是控 制加热和降温两个模块,在不改变温控空间体积的情况下,为减小调节时间,可 以实行在加热快达到设定温度时开启风扇来减小热惯性对温度的影响的措施。在 控制精度上可采用先进的数字 PID 控制算法,对加热时间进行控制,提高控制精 度。还可以改进控制系统,使能同 PC 联机通信,以利用 OC 的图像处理功能打印 显示温度曲线。89C52 串行口为 TTL 电平,PC 串行口为 RS232 电平,使用一片 MAX232 作为电平转换驱动。 随着日新月异的高新科技的推广与普及,温控系统将在各个领域的应用范围 越来越广泛。相对众多加热系统,恒温控制器以其对温度的精确测量、快速控制 等优点,必将在未来的生产生活中得到更加美好的发展前景。31焦作大学机电系毕业设计参考文献参考文献[1] 刘守义、 杨宏丽、 王静霞. 单片机应用技术(第二版).西安电子科技大 学出版社,2007. [2] 王兆安 、黄俊 .电力电子学 (第四版) 北京:机械工业出版社,2001.[3] 王廷才.电力电子技术.高等教育出版社.2007. [4] 李群林.基于多路传感器的温湿度检测系统[J]. 中国仪器仪表,2006(11) , 38—40. [5] 张永生、林春方.电子设计自动化(第二版).上海交通大学出版社,2008,25 —91. [6] 耿长清.单片机应用技术[M].北京:化学工业出版社.2002(7). [7] 催东剑.多点恒温自动控制系统设计[J].电工技术. 2003,7;59—60. [8] 唐程山.电子技术基础.北京:高等教育出版社,2001(7). [9] 祁和义、 孙杰.监测与传感器应用技术.北京: 高等教育出版社, 2009 (8) ,113 —128.32焦作大学机电系毕业设计附录附录附录Ⅰ:电路总图33焦作大学机电系毕业设计附录附录Ⅱ:汇编语言程序设计软件代码ORG 0000H BEGIN: LJMP INIT ORG 0003H ; INT0 ORG 000BH ; T0 INT ORG 0013H; 1NT1 ORG 001BH ; T1 INT ORG 0023H ; SPORT INT ORG 002BH ; T2 INT ORG 0030H ;============================================ INIT: MOV SP, #60H MOV P0, #00FH MOV P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV 4AH, #25 ;============================================ MAIN: NOP LCALL GET_TEMPER LCALL DISP LCALL KEYSCAN LCALL GO AJMP MAIN ;============================================ GET_TEMPER: SETB P3.5 LCALL RST18B20 JB 00H, DSS2 RET DSS2: MOV A, #0CCH LCALL WR18B20 MOV A, #44H LCALL WR18B20 LCALL RST18B20 MOV A, #0CCH LCALL WR18B20 MOV A, #0BEH34焦作大学机电系毕业设计附录LCALL WR18B20 LCALL RE18B20 RET RST18B20: SETB P3.5 NOP CLR P3.5 MOV R0, #06BH MOV R1, #03H DSR1: DJNZ R0, DSR1 MOV R0, #6BH DJNZ R1, DSR1 SETB P3.5 NOP NOP NOP MOV R0, #25H DSR2: JNB P3.5, DSR3 DJNZ R0, DSR2 LJMP DSR4 DSR3: SETB 00H LJMP DSR5 DSR4: CLR 00H LJMP DSR7 DSR5: MOV R0, #06BH DSR6: DJNZ R0, DSR6 DSR7: SETB P3.5 RET ;---------------------------WR18B20: MOV R2, #8 CLR C WR1: CLR P3.5 MOV R3, #6 DJNZ R3, $ RRC A MOV P3.5, C MOV R3, #23 DJNZ R3, $ SETB P3.5 NOP DJNZ R2, WR1 SETB P3.5 RET35焦作大学机电系毕业设计附录;------------------------RE18B20: SETB RS0 MOV R4, #2 MOV R0, #36H RE00: MOV R5, #8 RE01: CLR C SETB P3.5 NOP NOP CLR P3.5 NOP NOP NOP SETB P3.5 MOV R6, #07 RE10: DJNZ R6, RE10 MOV C, P3.5 MOV R6, #20 RE20: DJNZ R6, RE20 RRC A DJNZ R5, RE01 MOV @R0, A DEC R0 DJNZ R4, RE00 CLR RS0 NOP RET ;----------------------------DISP: MOV A, 35H ANL A, #0FH MOV 40H, A MOV A, 36H SWAP A ANL A, #0FH MOV 41H, A MOV A, 40H SWAP A ORL A, 41H MOV 41H, A MOV B, #10 DIV AB MOV 52H, A MOV 51H, B36焦作大学机电系毕业设计附录MOV MOV DIV MOV MOV MOV MOV MOVC CPL MOV CLR CLR CLR LCALL MOV MOV MOV MOVC CPL MOV SETB CLR CLR LCALL MOV MOV MOV MOVC CPL MOV CLR SETB CLR LCALL MOV MOV MOV MOVC CPL MOVA, 4AH B, #10 AB 54H, A 53H, B A, 52H DPTR, #SGTB A,@A+DPTR A P2, A P1.5 P1.6 P1.7 YS4722U P1, #80H A, 51H DPTR, #SGTB A,@A+DPTR A P2, A P1.5 P1.6 P1.7 YS4722U P1,#80H A, 54H DPTR, #SGTB A,@A+DPTR A P2, A P1.5 P1.6 P1.7 YS4722U P1, #80H A, 53H DPTR, #SGTB A,@A+DPTR A P2, A37焦作大学机电系毕业设计附录SETB SETB CLR LCALL MOVP1.5 P1.6 P1.7 YS4722U P1,#80HRET ;--------------------------------KEYSCAN : NOP JB P0.0, KEY1 LCALL DELAY60 JB P0.0, KEY1 SETB P3.0 CLR P3.1 SETB P3.2 CLR P3.3 LJMP KEY1 KEY1: JB P0.1, KEY2 LCALL DELAY60 JB P0.1, KEY2 CLR P3.0 SETB P3.1 CLR P3.2 SETB P3.3 LJMP KEY2 KEY2: JB P0.2, KEY3 LCALL DELAY60 JB P0.2, KEY3 CLR P3.0 CLR P3.1 CLR P3.2 CLR P3.3 LJMP KEY3 KEY3: JB P0.3 , OK LCALL DELAY1 JB P1.3, OK INC 4AH SETB P0.3 OK: JB P0.4, KEYSOUT LCALL DELAY1 JB P1.4, KEYSOUT DEC 4AH; ADD SPEED38焦作大学机电系毕业设计附录SETB P0.4 KEYSOUT: RET ;-------------------------------GO: NOP MOV A, 41H SUBB A, 4AH JZ LOOP3 JC LOOP3 MOV B, 30H MOV A, 41H MOV 30H, A SUBB A, B MOV R0, A JC LOOP3 JNC LOOP4 LOOP3: SETB P3.0 CLR P3.1 LCALL L1 CLR P3.0 CLR P3.1 LCALL L1 RET LOOP4: SETB P3.0 CLR P3.1 ADD A, #20 ADD A, R0 MOV R7, A DJNZ R7, L1 CLR P3.0 CLR P3.0 LCALL L1 RET L1: LCALL DELAY3 LCALL DELAY3 LCALL DELAY3 LCALL DELAY3 RET L: RET ;----------------------------DELAY1: PUSH PSW MOV PSW, #00H MOV R2, #0FH39焦作大学机电系毕业设计附录MOV R3, 0FFH W1: MOV R4, 0FAH W2: DJNZ R4, W2 DJNZ R3, W1 POP PSW RET DELAY2: PUSH PSW MOV PSW, #00H MOV R3, #6 W3: MOV R4, #0FAH W4: DJNZ R4, W4 DJNZ R3, W3 POP PSW RET ;--------------------------------SGTB: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH ;--------------------------------YS4722U: Y4: MOV R4, #005H Y3: MOV R5, #0FFH DJNZ R5, $ DJNZ R4, Y3 RET DELAY3: PUSH PSW MOV PSW, #00H MOV B, #50 MOV A, R0 MUL AB MOV R3, A MOV A, #20H ADD A, R3 MOV R5, A W7: MOV R4, #0FAH W8: DJNZ R4, W8 DJNZ R5, W7 POP PSW RET DELAY60: PUSH PSW MOV PSW, #00H MOV R3, #06 W60MS: MOV R4, #0FAH40焦作大学机电系毕业设计附录W50US1: DJNZ DJNZ POP RETR4, W50US1 R3, W60MS PSW41焦作大学机电系毕业设计致谢致 谢在论文的设计过程中,我查阅了许多有关恒温控制系统设计方面的文献资料, 使我对恒温控制的设计和使用有了更深的认识。从论文选题到完成论文,杨庆祥 老师付出了大量的时间和心血,在设计过程中,杨老师从多方面进行指导,不断 对论文提出修改意见。在此,我要由衷地感谢杨老师!同时,我也要感谢给予我 帮助的同学,在不懂的环节为我努力探讨。论文的完成,不仅是我大学三年知识 积累的体现,而且也是机电学院所有老师悉心教导的结果,感谢他们让我掌握了 一定的专业知识,专业技能和一些为人处世的道理。最后还要感激父母,是他们 给我学习的机会,并且在学业期间给我大力支持和为我付出!42
毕业设计(论 文)中图分类号:TP272基于单片机的恒温控制器的设计专 业 名 称 : 电气自动化 学 生 姓 名 : 周翔 导 师 姓 名 : 陈钦铭xx 大学机电工程系 2012 年 11 月中图分类号:TP272 UDC:密级: 单位代码:基于单片机的恒温控制器的设计Microcontroller-based temperature controller design姓 专 导名 业 师周翔 电气自动化 陈钦铭学 职制 称3年 自动控制 工程师研究方向 论文答辩日期论文提交日期焦作大学机电工程系焦作大学机电系毕业设计摘要摘要随着越来越多高新科技的推广与普及,温度测控已成为工业生产中的关键技 术之一。恒温控制主要是用来控制温度,它为农业研究、生物技术测试提供所需 要的各种环境模拟条件,因此恒温控制技术有着很广泛的用途。恒温控制系统其 关键技术为保持环境温度的恒定,本设计采用 ATMEL 公司的 AT89C52 单片机作 为控制核心,通过编程控制 LED 八段数码管完成对温度的显示,采用 DALLAS 公 司的 DS18B20 数字温度传感器来完成温度的采集,并和设定温度进行比较,根据 比较的结果来控制加热电阻和风机的动作与否,从而完成从 25℃到 99℃范围内的 恒温控制。关键词:恒温控制; AT89C52; DS18B20;LED 数码管I焦作大学机电系毕业设计摘要AbstractAs more and more promotion and popularization of high technology, temperature measurement and control in industrial production has become one of the key. Temperature control is mainly used to control the temperature, it is for agricultural research, biotechnology testing to provide the required environmental simulation conditions, so temperature control technology has a very wide range of uses. Temperature control system to maintain its key technologies of constant ambient temperature, the design uses ATMEL Corporation AT89C52 microcontroller as the control core, eight out by programming the control LED digital temperature display to complete, using the company's DS18B20 DALLAS digital temperature sensor to complete the temperature collection, and set the temperature and compare the results compared to control according to the heating resistor and the fan action or not, so as to achieve the purpose of controlling the temperature from 25℃ to 99℃.Keywords: temperature controller; AT89C52; DS18B20; LED digital tubeII焦作大学机电系毕业设计目录目 录第 1 章 引言 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 1 ) 第 2 章 系统的基本构成及方案论证„„„„„„„„„„„„„„„„„„„„„„ ( 2 ) 2.1 系统的基本构成„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 2 ) 2.2 方案的论证„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 2 ) 2.2.1 控制核心的选择„„„„„„„„„„„„„„„„„„„„„„„„„„„( 2 ) 2.2.2 温度采集装置的选择„„„„„„„„„„„„„„„„„„„„„„„„„( 3 ) 2.2.3 显示模块的选择„„„„„„„„„„„„„„„„„„„„„„„„„„„( 4 ) 2.2.4 加热模块及降温模块的选择„„„„„„„„„„„„„„„„„„„„„„( 4 ) 第3章 3.1 硬件电路设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 7 )系统主要元器件简介„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 7 )3.1.1 AT89C52 单片机简介„„„„„„„„„„„„„„„„„„„„„„„„„( 7 ) 3.1.2 DS18B20 单线数字温度传感器简介„„„„„„„„„„„„„„„„„„„( 9 ) 3.1.3 八段 LED 数码管„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 9 ) 3.1.4 74HC138 译码器„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 10 ) 3.1.5 光电耦合器 OPTOTRIAC„„„„„„„„„„„„„„„„„„„„„„„ ( 11 ) 3.2 各功能模块的电路设计„„„„„„„„„„„„„„„„„„„„„„„„„( 12 ) 3.2.1 复位电路及时钟电路的设计„„„„„„„„„„„„„„„„„„„„„„( 12 ) 3.2.2 键盘接口电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„( 13 ) 3.2.3 温度采集电路设计„„„„„„„„„„„„„„„„„„„„„„„„„„( 14 ) 3.2.4 数码管显示电路设计„„„„„„„„„„„„„„„„„„„„„„„„„( 15 ) 3.2.5 加热电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„„„( 17 ) 3.2.6 降温电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„„„( 18 ) 3.2.7 掉电保护电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„( 18 ) 3.2.8 主电源电路的设计„„„„„„„„„„„„„„„„„„„„„„„„„„( 20 ) 第 4 章 系统软件设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 21 ) 4.1 应用的相关软件„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 21 ) 4.1.1 Protel 99SE„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 21 ) 4.1.2 KEIL 8051 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 22 ) 4.2 系统程序的设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 23 ) 4.2.1 程序结构„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 23 ) 4.2.2 主程序流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 23 ) 4.2.3 温度传感器驱动模块程序„„„„„„„„„„„„„„„„„„„„„„„( 24 )III焦作大学机电系毕业设计目录第 5 章 系统调试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1 系统性能测试及分析„„„„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1. 1 测试系统的温度控制精度„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1. 2 误差分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 27 ) 5.1. 3 结果分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 软件调试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 .1 传感器 DS18B20 温度采集部分调试„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 .2 键盘及数码管显示部分调试 „„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.2 .3 加热模块及降温模块的调试„„„„„„„„„„„„„„„„„„„„„„( 28 ) 5.3 硬件调试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 29 ) 5.3 .1 传感器 DS18B20 温度采集部分调试„„„„„„„„„„„„„„„„„„„( 29 ) 5.3 .2 加热模块及降温模块的调试„„„„„„„„„„„„„„„„„„„„„„( 29 ) 5.3 .3 键盘及数码管显示部分调试„„„„„„„„„„„„„„„„„„„„„„( 29 ) 总 结„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„( 31 ) 参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 32 ) 附录Ⅰ„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 33 ) 附录Ⅱ„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 34 ) 致谢„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ ( 42 )IV焦作大学机电系毕业设计第 1 章 引言第1章引 言随着新技术的不断开发与应用,温度是工业控制中主要的被控参数之一,特 别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展 和广泛的应用。单片机具有处理能力强、运行速度快、功耗低等优点,应用在温 度测量与控制方面,控制简单方便,测量范围广,精度较高。单片机可用于空气 温度控制系统的数据处理,这包括控制执行器的输出、将被测温度送到显示模块 显示、接收从人机通道输入的信号等。 DS18B20 是美国 DALLAS 半导体公司继 DS1820 之后最新推出的一种改进型 智能温度传感器。 与传统的热敏电阻相比, 使用 DS18B20 可使系统结构更趋简单, 可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820 有了 很大的改进,给用户带来了更方便的使用和更令人满意的效果。 本文设计了一种基于 AT89C52 单片机的控制和 DS18B20 测试装置, 能对环境 温度进行测量,并能根据温度给定值给出调节量,控制执行机构,实现调节环境 温度的目的。空气温度在我们的环境影响很大的,因而空气温度不论是对于我们 的生活还是工业生产都有着重要的意义。在早期对温度温控制的要求主要是在化 工、冶炼生产上,比如在大棚蔬菜空气温度控制就对大棚农业生产有不可替代的 作用,现在随着新技术的不断开发与应用,用单片机和相关的电子器件构成的空 气温控制系统在控制精度以及各项参数上有空前的提高,控制的领域也有很大的 扩展,目前以单片机为核心的空气温控制系统得到了广泛应用。正因如此,对空 气温度的控制到处可见,比如说特定温度实验室,空调,减少温室效应影响以及 工业化农业的要求等都需要空气温度控制。在生产中,一些现代化生产车间里, 尤其是在化工厂里,某些产品加工需要在一定的温度下才能进行。随着电子技术 的不断发展,温控制系统设计的方法越来越多也越来越完善。1焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证第2章系统的基本构成及方案论证2.1 系统的基本构成本设计的整体思路是:利用 DS18B20 温度传感器直接输出数字温度信号给单 片机 AT89C52 进行处理,在六位 LED 数码管上显示当前环境温度值以及预设温度 值。温度低于预设值启动加热电阻进行加热,若温度过高则启动风扇降温直到预 设温度值停止。结构框图如下:温度采集 (DS18B20)键盘电路双向可控 硅加热电阻AT89C52晶振继电器直流电机 (风扇)温度显示图 2-1 系统构成框图2.2 方案论证2.2.1 控制方案的选择对于温度控制的方法也有很多:如单片机控制、PLC 控制、模拟 PID 调节器和 数字 PID 调节器等等。而 PID 调节器的算法复杂,其成本也相对较高。 方案一:利用单片机实现恒温控制2焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证利用单片机实现温度恒定的控制, 系统主要包括现场温度采集、 实时温度显示、 加热控制参数设置、加热电路控制输出、报警装置和系统核心 STC89C52 单片机作 为微处理器。温度采集电路以数字形式将现场温度传至单片机,单片机结合现场 温度与用户设定的目标温度,按照已经编程固化的算法计算出实时控制量。以此 控制量控制场效应管开通和关断,决定加热电路的工作状态,使温度逐步稳定于 用户设定的目标值。在温度达到设定的目标温度后,由于冷却温度降低,单片机 通过检测到的温度与设置的目标温度比较,作出相应的控制开启加热片。 方案二:利用 PLC 实现恒温控制 这用恒温控制, 采用 PLC 控制实现电热丝加热全通、间断导通和全断加热的自 控式方式,来达到温度的恒定。智能型电偶温度表将置于被测对象中,热电偶的 传感器信号与恒定温度的给定电压进行比较,生成温差,自适应恒温控制电路根 据差值大小控制电路的断开。 对于方案二,采用的 PLC 实现恒温控制,由于其 PLC 成本高,且 PLC 外围系 统配置复杂,不利于我们的设计。由于数字调节和运算量大,相反对于 STC89C52 单片机只要选择合适的参数对于温度的控制精度往往能达到比较好的效果。 对于方案一,采用单片机实现恒温控制,该方案成本低,可靠性高,抗干扰 性强,对于系统动态性能与稳定性要求不是很高的场合时非常合适的。采用高精 度的温度传感器:数字温度传感器 DS18B20。这种数字温度传感器是 DALLAS 公司 生产的单总线。相比之下,单片机控温电路就比较简单。 综合各方面的意见,本设计采用 AT89C52 单片机来实现温度的控制。2.2.2 温度采集装置的选择温度传感器可由以下两种方案可供选择: 方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于 温度变化引起热敏电阻的变化、进而导致的输出电压变化的微弱电压变化信号, 再用 AD 转换芯片 ADC0809 将模拟信号转化为数字信号输入单片机处理。 方案二:采用数字式集成温度传感器 DS18B20 作为感测温度的核心元件,直 接输出数字温度信号给单片机处理。 对于方案一,采用热敏电阻有价格便宜,元件易购的优点,但热敏电阻对温 度的细微变化不敏感,在信号采集、放大、转换过程中还会产生失真和误差,并 且由于热敏电阻的 R-T 关系的非线性,其本身电阻对温度的变化存在较大误差, 虽然可以通过一定电路予以纠正,但不仅将使电路复杂程度降低,而且在人体所3焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证处环境温度变化过程中难以检测到小的温度变化。不能达到恒温箱对温度的控制 要求,故该方案不适合本系统。 对于方案二,由于数字式集成温度传感器 DS18B20 的高度集成化,大大降低 了外接放大转化等电路的误差因数,温度误差很小,并且由于其感测温度的原理 与上述方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部 转化成数字量直接输出,简化了系统程序设计,又由于改传感器采用先进的单总 线技术,与单片机的接口变得非常简洁,抗干扰能力高。所以本系统采用方案二。2.2.3 显示模块的选择方案一:采用六位共阳数码管显示温度,动态扫描显示方式。 方案二:采用液晶显示屏 LCD 显示温度。 对于方案一,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗 极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地 方是扫描显示方式是使六个 LED 逐个点亮,因此会有闪烁,但是人眼的视觉暂留 时间为 20MS,当数码管扫描周期小于这个时间时人眼会感觉不到闪烁,因此可以 通过增大扫描频率来消除闪烁感。 对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字 符甚至图形的优点, 这是 LED 数码管无法比拟的。 但是液晶显示模板块价格昂贵, 驱动程序复杂,从简单实用的原则考虑,本系统采用方案一。2.2.4加热模块及降温模块的选择方案一:采用了几个电阻分压的方式来给加热电路提供不同电压,使用电子 负载电路进行加热,控制电子输入端的电压控制加热的速度。当设置温度大于实 际温度 5 度时,换取 1v 电压加热,当设置温度小于实际温度 5 度时,换取 0.5v 电 压加热,当设置温度等于空气温度,关闭加热,换取 0v 电压加热。当温度高于 1 度时进行降温处理,在设计制作过程中,我们使用了一个 5v 驱动的散热风扇,当 实际温度高于设置温度 1 度时用于散热,当温度低于设定温度 1 度时,开启加热 设备,关闭风扇。如图 2-2 所示4焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证图 2-2电阻分压式加热电路方案二:采用脉冲宽度调制的方法,利用光耦合器来控制电阻丝和直流电机 的电流通断。单片机系统输出控温信号,输出高电平时,经反相器变为 0 信号, 使双向可控硅导通,信号灯亮,电阻丝通电加热;输出低电平时,双向可控硅断 开,信号灯灭,电阻丝断电。脉冲宽度 T1 与周期 T 的比值为 P,它反映了系统的 输出空置量 P=95%为输出上限,P=5%为输出下限。加热电路原理图参见图 3-10 , 单片机 I/O 口 P0.6 输出信号经过光电耦合器,通过这种方式控制双向可控硅的门 极,从而控制电阻丝的平均加热功率,达到精确加热的目的。降温模块采用采用 直流电机作为降温装置,通过控制继电器的吸合与断开,来控制直流电机的通断, 从而达到散热降温的目的。当环境温度超过预设温度开启降温风扇,当环境温度 低于预设温度 5 度以上通过脉宽调制采用大功率加热(即设定 P 值为 95%) ,当环 境温度低于预设温度 1 度时,采用小功率加热(即设定 P 值为 5%) 。 对于方案一,采用继电器控制,使用继电器可以通过较高的电压和电流,在5焦作大学机电系毕业设计第 2 章 系统的基本构成及方案论证正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。通 过单片机控制继电器开关来确定输入电子负载端的电压和风扇的开关,虽然在第 一次加热的余温很高但是在多次风扇与功率电阻加热与降温的协调下达到恒温的 要求,在程序上选用适当的控制算法,可以达到设计指标的效果。但是由于电路 设计过于复杂,且通讯端口占用较多、成本较高。 对于方案二,采用 PWM 脉宽调制的方法,通过控制光耦合器的通断时间的 不同来进行加热,从而达到精确控温的效果,加热和降温电路只占用 2 个 I/O 口, 这样不仅简化了输出通道电路,提高了电路抗干扰能力,而且成本比较低。所以 本系统采用方案二作为温度控制方案。6焦作大学机电系毕业设计第 3 章 系统硬件电路设计第3章硬件电路设计本系统主要部件包括 AT89C52 单片机、DS18B20 温度传感器、四位 LED 数码 管、直流电机、光电耦合器、发热电阻丝。辅助元件包括电阻、晶振、电源、按 键、拨码开关等。3.1 系统主要元器件简介3.1.1 AT89C52 单片机简介图 3-1 AT89C52 单片机实物及引脚示意图VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程 序数据存储 器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入 口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收 输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作 输入,P1 口被 外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和 校验时,P1 口作为第八位地址接收。7焦作大学机电系毕业设计第 3 章 系统硬件电路设计P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输 出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻 拉高,且作为 输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部 上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存 储器进行存取 时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外 部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下所示: 各口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期以上的高 电平时间。 ALE/PROG: 当访问外部存储器时, 地址锁存允许的输出电平用于锁存地址的 地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以 不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外 部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时, 将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号 将不出现。 EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储(0000H-FFFFH) , 不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当8焦作大学机电系毕业设计第 3 章 系统硬件电路设计/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于 施加 12V 编程电源(VPP) 。3.1.2DS18B20 单线数字温度传感器简介DS18B20 温度传感是由 DALLAS(达拉斯)公司生产,见图 3—2 。它的体积 超小,硬件开消低,抗干扰能力强,精度高。DS18B20 的主要特征: 全数字温度 转换及输出, 先进的单总线数据通信, 最高 12 位分辨率,精度可达土 0.5 摄 氏度, 2 位分辨率时的最大工作周期为 750 毫秒, 可选择寄生工作方式, 检 测温度范围为–55°C ~+125°C (–67°F ~+257°F) 内置 EEPROM,限温报警功 能, 64 位光刻 ROM,内置产品序列号,方便多机挂接。 多样封装形式,适应不 同硬件系统。 DS18B20 内部结构主要由 4 部分:64 位 ROM、温度传感器、非挥发的温度报警 触发器 TH 和 TL、配置寄存器。其管脚有三个端,其中 DQ 为数字信号端,GND 为 电源地,VDD 为电源输入端。图 3-2温度传感器封装形式及引脚说明3.1.3八段 LED 数码管本系统选用六位 LED 数码管作为温度显示。LED 又称为数码管,它主要由 8 段发光二极管组成的不同组合,可以显示 a~g 为数字和字符显示段,dp 段为小数 点显示,通过 a~g 为 7 个发光段的不同组合,可以显示 0~9 和 A~F 共 16 个数 字和字母。 LED 可以分为共阴极和共阳极两种结构, 如图 3-3 (a)和图 3-3(b) 所示。 共阴极结构即把 8 个发光二极管阴极连在一起。这种装入数码管中显示字形的数 据称字形码,又称段选码。9焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-3LED 数码管结构图共阳极段码 显示字符 共阴极段码 共阳极段码 共阴极段码 显示字符 0 1 2 3 4 5 6 7 3fH 06H 5bH 4fH 66H 6dH 7dH 07H C0H F9H A4H B0H 99H 92H 82H F8H表 3.18 9 A B C D E F七段 LED 的段选码表7fH 6fH 77H 7fH 39H 3fH 79H 71H80H 90H 88H 83H C6H A1H 86H 8EH一个共阴极数码管经反相器后接至单片机的电路,要想显示数字“7”须 a、b、 c 这 3 个显示段发光 (即这 3 个字段为底电平) 只要在 P1 接口输入 11111000 (07) 即可。里 07 即为数字 7 的段选码。字形与段选码的关系见表 3.1 所示。3.1.474HC138 译码器74HC138 是一款高速 CMOS 器件, 74HC138 引脚兼容低功耗肖特基 TTL (LSTTL) 系列。如图 3-4 所示, 74HC138 译码器可接受 3 位二进制加权地址输入(A0, A1 和 A2) ,并当使能时,提供 8 个互斥的低有效输出(Y0 至 Y7) 。74HC138 特有 3 个 使能输入端:两个低有效(E1 和 E2)和一个高有效(E3) 。除非 E1 和 E2 置低且10焦作大学机电系毕业设计第 3 章 系统硬件电路设计E3 置高,否则 74HC138 将保持所有输出为高。利用这种复合使能特性,仅需 4 片 74HC138 芯片和 1 个反相器,即可轻松实现并行扩展,组合成为一个 1-32(5 线到 32 线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入 端作为选通端,则 74HC138 亦可充当一个 8 输出多路分配器,未使用的使能输入 端必须保持绑定在各自合适的高有效或低有效状态。 74HC138 其特性是复合使能输入,轻松实现扩展 兼容 JEDEC 标准 no.7A 存储 器芯片译码选择的理想选择 低有效互斥输出 ESD 保护 HBMEIA/JESD22-A114-C 超 过 2000 V MM EIA/JESD22-A115-A 超过 200 V 温度范围 -40~+85 ℃ -40~+125 ℃ 多路分配功能。图 3-74HC138 封装图 3-474HC138 译码器3.1.5光电耦合器 OPTOTRIAC光耦合器(optical coupler,英文缩写为 OC)亦称光电隔离器或光电耦合器, 简称光耦。它是以光为媒介来传输电信号的器件,通常把发光器(红外线发光二极 管 LED)与 受光器(光敏半导体管)封装在同一管壳内。当输入端加电信号时发 光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电 —光—电” 转换。以光为媒介把输入端信号耦合到输出端的光电耦合器,由于它 具有体积小、寿命长、无触点,抗干扰能力强,输出和输入之间绝缘,单向传输信号 等优点,在 数字电路上获得广泛的应用。11焦作大学机电系毕业设计第 3 章 系统硬件电路设计本系统采用 OPTOTRIAC 型号光电耦合器(见图 3-5) ,该光耦合器的主要优点 是单向传输信号,输入端与输出端完全实现了电气隔离,抗干扰能力强,使用寿命 长,传输效率高。它广泛用于电平转换、信号隔离、级间隔离、开关电路、远距离 信号传输、脉冲放大、固态继电器 (SSR)、仪器仪表、通信设备及微机接口中。图 3-5 光电耦合器 OPTOTRIAC3.23.2.1各功能模块的电路设计复位电路及时钟电路的设计本系统采用按键复位电路,该电路除了具有上电复位功能以外,若要复位, 只需按图 3-6 中 RESET 键,此时电源 VCC 经电阻 R1、R2 分压,在 RST 端产生一个 复位高电平,即可完成复位。时钟电路对单片机系统而言是必需的。由于单片机 内部是由各种各样的数字逻辑器件(如触发器寄存器存储器等)构成,这些数字器 件的工作必须按时间顺序完成,这种时间顺序就称为时序。时钟电路就是提供单 片机内部各种操作的时间基准的电路,没有时钟电路单片机就无法工作。此次设 计中, 我们采用由内部方式产生时钟的方法形成时钟电路, 11.0592MHz 的晶振, 由 两个 33pF 的电容构成。12焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-6 复位电路及时钟电路3.2.2键盘接口电路的设计键盘采用 5 个独立按键, 见图 3-7, K2, OK,SET 分别与单片机的 P0.0、 K1, K3, P0.1 和 P0.2、P0.3、INT0 口及 10K 上拉电阻相连,另一端接地,当任一按键按下 时,取低电平有效。系统上电后,按下 SET(设置键)使系统产生中断,调用中断服 务程序,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。 其中按 K1 键为温度的十位设置键,每按下一次,系统对最初设定值十位加一,直 到 9 后,又会从 0 开始累加;按键 K2 为温度的个位设置键,用法与十位设定按键 相同;K3 键为温度小数位设置键,用法与十位设置键相同;OK 为确定键,当预设 温度设定后按 OK 键确认,系统进入温度控制状态。13焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-7键盘接口电路3.2.3温度采集电路设计DS18B20 测量温度采用了特有的温度测量技术,其测量电路如下图所示。它 是通过计数时钟周期来实现的。低温系数振荡器输出的时钟信号通过由高温度系 数振荡产生的门周期而被计数,计数器补预置在与-55℃相对应的一个基权值。如 果计数器在高温度系数振荡周期结束前计数到零,表示测量的温度值高于-55℃, 被预置在-55℃的温度寄存器的值就增加 1℃,然后重复这个过程,直到高温度系 数振荡周期结束为止。这时温度寄存器中的值就是被测温度值,这个值以 16 位形 式存放在便笺式存储器中,此温度值可由主机通过发存储器读命令而读出,读取 时低位在前,高位在后。斜率累加器用于补偿温度振荡器的抛物线特性。 DS18B20 在使用时,一般都采用单片机来实现数据采集。只须将 DS18B20 信 号线与单片机 1 位 I/O 线相连, 且单片机的 1 位 I/O 线可挂接多个 DS18B20, 就可 实现单点或多点温度检测。 在本系统中中将 DS18B20 接在 P3.5 口实现温度的采集。 其与单片机的连接如图 3-8。14焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-8温度采集电路3.2.4数码管显示电路设计由于本系统实现 25.0℃—99.9℃范围内的温度的控制,所以选用 6 位共阳极 数码管作为显示模块,1、2、3 位数码管为环境温度,4、5、6 位为预设温度,它 和单片机硬件的接口电如图 3-5 所示。15焦作大学机电系毕业设计第 3 章 系统硬件电路设计图 3-9显示模块电路数码管的 A、B、C、D、E、F、G 和 DP 分别与单片机的 P2.0——P2.7 相连。 而四位数码管的位则通过 74HC138 译码器来选通。74HC138 是一个 3-8 译码器。 74HC138 的 A、B、C 与单片机的 P1.5、P1.6、P1.7 相连通,我们可以通过程序控 制 P1.5、P1.6、P1.7 的输出进而控制 3-8 译码器的输出,从而达到选位的目的。其 选通情况如表 3.2.。P1.7 P1.6 P1.5 000 001 010 011 100 101 C BA 000 001 010 011 100 101 选位情况 Y0 输出高电平即第 1 位被选中 Y1 输出高电平即第 2 位被选中 Y2 输出高电平即第 3 位被选中 Y3 输出高电平即第 4 位被选中 Y3 输出高电平即第 5 位被选中 Y3 输出高电平即第 6 位被选中表 3.2 数码管选位情况表本设计中为了的四位数码管,前三位(即第 1、2、3 位)设计为显示温度传 感器所采集到的环境温度,后三位(第 4、5、6 位)设计为所设定的温度,即我16焦作大学机电系毕业设计第 3 章 系统硬件电路设计们所要达到的温度显示。3.2.5加热电路的设计本设计采用交流电源对电阻进行加热,另外采用光电隔离开关来控制加热电 阻的加热与否,能够有效的进行电源的隔离,增大了电路的抗干扰能力。考虑到 加热系统有较大的热惯性,本系统采用脉冲宽度调制的方法,单片机系统输出控 温信号,输出高电平时,经反相器变为 0 信号,使双向可控硅导通,信号灯亮, 电阻丝通电加热;输出低电平时,双向可控硅断开,信号灯灭,电阻丝断电。脉 冲宽度 T1 与周期 T 的比值为 P,它反映了系统的输出空置量 P=95%为输出上限, P=5%为输出下限。加热电路原理图如图 3-10 所示,单片机 I/O 口 P0.6 输出信号 经过光电耦合器,通过这种方式控制双向可控硅的门极,从而控制电阻丝的平均 加热功率,这样简化了输出通道电路,提高了电路抗干扰能力。另外在系统比较 人性化设计的就是电阻加热过程中加热信号指示灯会点亮,系统告知是在加热过 程中。图 3-10加热电路3.2.6降温电路的设计17焦作大学机电系毕业设计第 3 章 系统硬件电路设计由图 3-11 可以知道本设计是由一个继电器来控制降温风扇的, 我们采用的是 HRS1H 型号的 5V 继电器,通过单片机 I/O 口 P0.7 输出信号来控制导通与否,而由 于单片机的输出电流小的原因,需要一个驱动电路来实现控制继电器的导通,由 于采用 NPN 电路需要加上拉电阻且存在上位 5V 的原因容易烧坏三极管,于是我们 采用 PNP8085 的三极管作为继电器的驱动电路。当温度图中 CON2 接降温风扇。图 3-11 降温电路3.2.7掉电保护电路的设计单片机在工作时,因某种原因造成突然掉电,将会丢失数据存储器(RAM)里 的数据,冲掉前期工作的所有信息。为了在突然掉电时能够保持数据存储器的数 据,保证单片机系统稳定、可靠地工作,数据信息处理的安全,虽然单片机主电 源里又大容量滤波电容器,当掉电时,单片机靠贮存在电容里的能量,一般只能 维持半个周期(10ms)左右。为此,要求一旦市电发生瞬间断电时,必须要有一 种电源能在小于 10ms 的时间内重新送电,确保单片机系统正常运行。为了保证单 片机在主电压失去时仍然能够保持运行,人们就利用干电池对单片机系统继续进18焦作大学机电系毕业设计第 3 章 系统硬件电路设计行供电。 本设计采用能够充放电的电池作为备用电源,在主电源正常供电时,需要由 主电源对其进行充电;当主电源失去时,又由电池放电以保持单片机系统的运行。 图 3-12 为本系统的掉电保护电路。图 3-12掉电保护电路当主电源正常时,单片机由 VCC 5V 电源供电,此时,VCC5V 电源通过 D1 和 R1 ,对保护用电池进行充电,以保证电池电量的充足。当主电源失去时,放电路 径为:电池通过 R1+R2 ,对单片机供电端口进行供电,供电电流通过 R1+R2 之 后, 会有压降, 到达单片机的 VCC 端口时, 电压就会比 3.6 V 低, 一般会在 2V—2.5 V 左右,令单片机仍然工作于正常供电状态。19焦作大学机电系毕业设计第 3 章 系统硬件电路设计3.2.8主电源电路的设计本系统的直流稳压电源采用通常的桥式全波整流、电容滤波、三端固定输出 的集成稳压器件进行设计,并且所有的集成稳压芯片均装有充分裕量的散热片。 220V 交流电经过变压器、桥式全波整流、电容滤波、三端固定输出的集成稳压器 件之后输出 5V 直流电压,系统的供电电源电路如图 3-13 所示。图 3-13主电源电路20焦作大学机电系毕业设计第 4 章 系统软件设计第4章4.14.1.1系统软件设计应用的相关软件Protel 99SEProtel 99SE 是 Prokl Technology 公司开发的基于 Windows 环境下的电路板设 计软件。该软件功能强大,人机界面友好,易学易用,仍然是大中院校电学专业 必学课程,同时也是业界人士首选的电路板设计工具。 Protel 99SE 由两大部分组成:电路原理图设计(Advanced Schematic)和多层 印刷电路板设 计(Advanced PCB)。其中 Advanced Schematic 由两部分组成:电 路图编辑器(Schematic)和 元件库编辑器(Schematic Library) 。 在设计中我们要用到 Protel 99SE 进行原理图设计。 如图 4-1 为软件使用界面。图 4-1Protel 99se 界面21焦作大学机电系毕业设计第 4 章 系统软件设计4.1.2KEIL 8051Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开 发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优 势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具, Windows 全 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在 开发大型软件时更能体现高级语言的优势。本设计中使用 KEIL 软件进行系统程序 编辑,软件使用界面如图 4-2图 4-2Keil 使用界面22焦作大学机电系毕业设计第 4 章 系统软件设计4.2系统程序的设计4.2.1 程序结构整个系统的程序设计是由主程序和各个子程序构成,主程序调用了 6 个子程 序,分别是数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继 电器控制程序、加热控制程序。 键盘扫描及按键处理程序:实现键盘的输入按键的识别及进入相应的程序。 温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 降温控制程序:控制继电器的通断,继而控制风扇动作。 加热控制程序:控制光耦合器的通断时间,精确加热。4.2.2 系统程序流程图23焦作大学机电系毕业设计第 4 章 系统软件设计开始读取 DS18B20 温度子 程序程序初始化 数码管显示程序 中断服务程序比较温度读取 DS18B20 温度子程序 测得温度=预设温度? 是数码管显示程序键盘扫描子程序否是否有键 按下? 是 按键处理否测得温度>预设温度?是 降温控制 程序 测得温度设置预设温度加热控制程 序图 4-3 系统程序流程图4.2.3 温度传感器驱动模块程序单片机控制 DS18B20 完成温度转换必须经过三个步骤:每次读写之前都要对 DS18B20 进行复位,复位成功后再发送一条 ROM 指令,最后发送 RAM 指令,这 样才能对 DS18B20 进行预定的操作。复位要求单片机将数据线下拉 500us,然后24焦作大学机电系毕业设计第 4 章 系统软件设计释放, DS18B20 收到信号后等待 16~60us 左右, 再发出 60~240us 的存在低脉冲, CPU 收到此信号表示复位成功。 本系统对 DS18B20 的操作分为 3 个步骤:初始化、ROM 命令和 DS18B20 功 能命令。单片机要与 DS18B20 通信,首先 DS18B20 初始化,复位 DS18B20,然 后单片机等待 DS18B20 的应答脉冲。一旦单片机检测到应答脉冲,便发起跳过 ROM 匹配操作命令。成功执行了 ROM 操作命令后,就可以使用内存操作命令, 启动温度转换,延时一段时间后,等待温度转换完成。再发起跳过 ROM 匹配操作 命令, 然后读暂存器, 将转换结果读出, 并转为显示码, 送到数码管显示。 DS18B20 模块程序流程图如图 4-3 所示。 ROM 命令完成单片机与总线上的某一 DS18B20 建立联系,有搜寻 ROM、读DS18B20 复位跳过 ROM 匹配启动温度转换DS18B20 复位跳过 ROM 匹配读取温度温度处理 图 4-4 DS18B20 模块流程图ROM、 匹配 ROM、 忽略 ROM、 报警查找等命令。 这里, 单片机只连接 1 个 DS18B20, 因此只使用读 ROM 命令来读取 DS18B20 的 48 位 ID 号。 DS18B20 功能命令在该步骤中完成温度转换、写暂存寄存器、读暂存寄存器、 拷贝暂存寄存器、装载暂存器寄存器、读供电模式命令[16]。本系统不用温度报警25焦作大学机电系毕业设计第 4 章 系统软件设计功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度 转化的结果。 所以, 本系统对 DS18B20 进行的操作主要包括两个子过程: 1) ( 读取 DS18B20 的序列号。主机首先发一复位脉冲,等收到返回的存在脉冲后,发出搜索器件的 序列号命令,读取 DS18B20 的序列号; (2)启动 DS18B20 作温度转换并读取温度 值。主机在收到返回的存在脉冲后,发出跳过器件的序列号命令,跟着发出温度 转换命令,再次复位并收到返回的存在脉冲后,发送 DS18B20 的序列号,读出数 据。26焦作大学机电系毕业设计第 5 章 系统调试第5章5.1 系统性能测试及分析系统调试本设计恒温控制系统是基于单片机的而设计,它能够实现显示当前温度和预 设温度,并能根据用户设定的温度进行自动的控温。此系统工作稳定性好,控制 精度高,软件采用模块化结构,提高了通用性,利用精确的脉宽调制加热使超调 量大大降低,很大程度上提高了系统的性能。5.1.1测试系统的温度控制精度为了验证温控系统的控制精度,我们将温度计和温控系统温度传感器探头放 入相同温度的水中,选定若干不同的温度点,记录下标准温度计显示的温度和温 控系统显示的温度并进行比较。通过设定不同的温度值,使加热器加热,待温度 稳定时记录各温度点的温度计数据和温控系统的显示值。其记录数据如下表 5.1:温度计读数和温控系统显示的温度(℃) 设定温度值 系统显示温度 差值 25.0 25.5 0.5 28.0 27.7 0.3 35.0 34.4 -0.6 45.0 45.1 0.1 55.0 54.1 -0.9 75.0 74.9 -0.1 87.0 86.1 -0.9 91.0 91.2 0.2表 5.1 温度计读数和温控系统显示的温度根据实验测得数据可以看出,系统测得温度与实际温度存在一定的误差,误差范 围在±1℃之内,基本达到预期目标。5.1.2误差分析本系统的主要误差来源于以下几个方面: (1)由于实验所用测量工具(如温度计)本身精度以及所带来的视觉误差, 加上温度变化惯性较大,动态测量时准确控制测量精度略有难度。 (2)由于风扇采用的是继电器直接控制,没有进行调速控制,所以在继电器 断开后风扇由于惯性还会转动,可能使温度降低过快,导致温度差值为负值。 (3)另一方面可能是由于软件设计上的缺陷,可能是温度传感器测得的温度 由于延时时间过长,而没有及时的将温度数据发送到数码管显示,从而导致的误 差。27焦作大学机电系毕业设计第 5 章 系统调试5.1.3结果分析根据实验数据可知,本系统静态误差方面可以达到 0.18℃的误差,总体控制 精度方面大约 0.45℃,在读数正确方面与标准温度计的读数误差为 1.5%,对一般 的工业生产完全可以采用本设计。该系统具有较小的超调值,超调值大约为 0.83% 左右。虽然超调为不利结果,但另一方面却减小了系统的调节时间。从其数据表 可以看出该系统为稳定系统。5.2软件调试5.2.1 传感器 DS18B20 温度采集部分调试本系统采用数字式集成温度传感器 DS18B20,由于该温度传感器的高度集成 化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制温 度的精度和系统的稳定提供了可能。软件设计采用 P3.5 口为数字温度输入口,但 是需要对输入的数字信号进行处理后才能显示,从而多了温度转换程序。通过软 件设计,实现了对环境温度的连续检测,经过试验程序验证,温度传感器检测温 度效果良好。5.2.2 键盘及数码管显示部分调试程序的键盘接口采用 P0 口,数码管显示采用 P2 口控制 LED 的段选码,P1 口 的 P1.5、P1.6、P1.7 三个位由 74HC138 译码,这样大大节省了系统 I/O 口资源。 系统中只需要六个 LED,所以选择了译码后六位来控制 LED 的位码,通过程序的设 计,1、2、3 位数码管为环境温度,4、5、6 位数码管为预设温度。 通过实验程序,实现了按键的功能,并有较好的去抖动效果,也能根据需要 调节按键时间;LED 采用动态显示,所以实验程序中不能允许有较长的延时,程序 实现了 LED 显示很好的显示效果。5.2.3 加热模块及降温模块的调试系统软件设置 P0.6 口、P0.7 口分别作为加热模块的控制端和降温模块的控 制端,加热模块通过程序设计输出不同的 PWM 波形,来控制光电耦合器的通断时 间的不同,从而得到不同的占空比来控制电阻丝的加热功率,以实现精确加温。 当外界温度高于设置温度时,电阻不加热或停止加热,系统将调用降温程序启动28焦作大学机电系毕业设计第 5 章 系统调试降温模块进行降温;当外界温度低于设置温度时,主程序调用加热子程序进行加 热,且外界温度与设置温度的差值越大,输出的平均加热功率增大,加热速度越 快,即占空比增加。5.3 硬件调试5.3.1 传感器 DS18B20 温度采集部分调试将 DS18B20 芯片接在系统板对应的 P3.5 口,通过插针在对应系统板的右下侧 三口即为对应的 VCC、P3.5 和 GND,可将芯片直接插在该插针上,因此即为方便。 系统调试中为验证 DS18B20 是否能在系统板上工作,将手心靠拢或者捏住芯片, 即可发现 LED 显示的前两位温度也迅速升高,验证了 DS18B20 能在系统板上工作。 由于 DS18B20 为 3 个引脚,因此在调试过程中因注意其各个引脚的对应位置,以 免将其接反而是芯片不能工作甚至烧毁芯片。5.3.2键盘及数码管显示部分调试系统按键部分实现了以下功能:按下 K1 键,数码管的显示温度值十位增一; 按下 K2 键,数码管的显示温度值个位增一;按下 K3 键,数码管的小数位温度增 一。每一位温度值在增到 9 之后又会回到 0 重新增加。调试过程中出现了当按键 时间过长时,设置的温度值不是增一或者减一,而是增加后减少几个值,出现这 种情况的主要元因可能是按键的去抖动延时时间过长造成,改进方法为将对应的 按键去抖动延时时间适量增加,但也不应过长,否则将出现按键无效的情形。 系统显示部分实现了以下功能:LED 显示的前三实现了环境温度部分的连续 显示,LED 的后三能根据按键的调整显示所需要的设计温度。且 LED 的显示效果很 好,很稳定。5.3.3加热模块及降温模块的调试在加热模块的设计中重在软件设计,外围的驱动电路只是将送来的 PWM 信 号放大从而驱动电阻工作。系统软件设置在 P0.6 口输出使光耦合器导通的 PWM 占空比,当环境温度低于设置温度时,电阻开始加热,若此时用低于环境温度的 冰块靠近测温芯片 DS18B20 时,用一数字温度计靠近加热电阻测量其温度,发现 电阻温度迅速上升,并越来越高,当达到一定值时,发现电阻温度不再升高;将 冷源离开测温芯片 DS18B20 时,发现温度开始下降,直到预设温度时不在下降, 若将设置温度低到环境温度以下,发现电阻温度又开始升高。调试过程中最初采 用继电器控制加热电阻曾出现了很多问题,数次发现继电器吸合后,电阻开始加29焦作大学机电系毕业设计第 5 章 系统调试热,但是温度到达预设温度之后却延迟比较长的时间才断开,猜测可能是受电源 干扰的问题,最终只有光电耦合器能够精确的控制加热电阻的通电与断开,从而 精确的控制温度的恒定。 降温模块中,系统设置单片机 P0.7 口作为降温控制端口,系统采用的直流电 机为 12V 的额定电压, 而该驱动电路在采用单片机电源时的输出电压最高不过 5V, 因此在调试过程中只采用了原有的 5V 直流电机来调试, 但是由于单片机输出电流 小,当采用 NPN 型三极管作为驱动电路时,调试过程中总会烧坏三极管,最终我 们采用 PNP8085 型三极管作为继电器的驱动电路,并进行该模块的多次调试,发 现电机转速不高,但是运转正常。30焦作大学机电系毕业设计总结总 结本次设计采用了汇编语言编程方式,实现了温度的测量与控制,设计方案采 用了单总线型数字式的温度传感器,不仅提高了温度的采集精度,且节约了单片 机的口线资源。DS18B20 简单快速的测温后,经单片机准确的温度分析后,驱动 光耦合器进行电阻加热或驱动继电器进行风扇降温的控制,从而实现精确的恒温 控制。方案还使用光电耦合器作加热控制器件,使设计简单化,且可靠性强。在 控制精度方面,本设计采用 PWM 脉宽调制,由加热控制端输出不同的 PWM 脉冲 来控制加热电阻通电时间,精确的控制电阻的加热功率,来提高温度的控制精度。 通过该温控系统可以实现 0℃~99.9℃范围内温度控制,在经过多次系统测试和误 差校正后,系统的温度控制精度和测试精度达到了 1℃的设计指标。在软件方面采 用模块化编程,思路清晰,使程序简洁、可移植性强。 但是在设计工作完成后,重新思考整个设计方案,发现其中有很多值得改进 的地方,本设计虽然采用了当前市场最先进的电子器件,使电路设计简单,但设 计方案不是最佳。本系统虽然具有较小的超调量,但加大了调节时间。特别是控 制加热和降温两个模块,在不改变温控空间体积的情况下,为减小调节时间,可 以实行在加热快达到设定温度时开启风扇来减小热惯性对温度的影响的措施。在 控制精度上可采用先进的数字 PID 控制算法,对加热时间进行控制,提高控制精 度。还可以改进控制系统,使能同 PC 联机通信,以利用 OC 的图像处理功能打印 显示温度曲线。89C52 串行口为 TTL 电平,PC 串行口为 RS232 电平,使用一片 MAX232 作为电平转换驱动。 随着日新月异的高新科技的推广与普及,温控系统将在各个领域的应用范围 越来越广泛。相对众多加热系统,恒温控制器以其对温度的精确测量、快速控制 等优点,必将在未来的生产生活中得到更加美好的发展前景。31焦作大学机电系毕业设计参考文献参考文献[1] 刘守义、 杨宏丽、 王静霞. 单片机应用技术(第二版).西安电子科技大 学出版社,2007. [2] 王兆安 、黄俊 .电力电子学 (第四版) 北京:机械工业出版社,2001.[3] 王廷才.电力电子技术.高等教育出版社.2007. [4] 李群林.基于多路传感器的温湿度检测系统[J]. 中国仪器仪表,2006(11) , 38—40. [5] 张永生、林春方.电子设计自动化(第二版).上海交通大学出版社,2008,25 —91. [6] 耿长清.单片机应用技术[M].北京:化学工业出版社.2002(7). [7] 催东剑.多点恒温自动控制系统设计[J].电工技术. 2003,7;59—60. [8] 唐程山.电子技术基础.北京:高等教育出版社,2001(7). [9] 祁和义、 孙杰.监测与传感器应用技术.北京: 高等教育出版社, 2009 (8) ,113 —128.32焦作大学机电系毕业设计附录附录附录Ⅰ:电路总图33焦作大学机电系毕业设计附录附录Ⅱ:汇编语言程序设计软件代码ORG 0000H BEGIN: LJMP INIT ORG 0003H ; INT0 ORG 000BH ; T0 INT ORG 0013H; 1NT1 ORG 001BH ; T1 INT ORG 0023H ; SPORT INT ORG 002BH ; T2 INT ORG 0030H ;============================================ INIT: MOV SP, #60H MOV P0, #00FH MOV P1, #0FFH MOV P2, #0FFH MOV P3, #0FFH MOV 4AH, #25 ;============================================ MAIN: NOP LCALL GET_TEMPER LCALL DISP LCALL KEYSCAN LCALL GO AJMP MAIN ;============================================ GET_TEMPER: SETB P3.5 LCALL RST18B20 JB 00H, DSS2 RET DSS2: MOV A, #0CCH LCALL WR18B20 MOV A, #44H LCALL WR18B20 LCALL RST18B20 MOV A, #0CCH LCALL WR18B20 MOV A, #0BEH34焦作大学机电系毕业设计附录LCALL WR18B20 LCALL RE18B20 RET RST18B20: SETB P3.5 NOP CLR P3.5 MOV R0, #06BH MOV R1, #03H DSR1: DJNZ R0, DSR1 MOV R0, #6BH DJNZ R1, DSR1 SETB P3.5 NOP NOP NOP MOV R0, #25H DSR2: JNB P3.5, DSR3 DJNZ R0, DSR2 LJMP DSR4 DSR3: SETB 00H LJMP DSR5 DSR4: CLR 00H LJMP DSR7 DSR5: MOV R0, #06BH DSR6: DJNZ R0, DSR6 DSR7: SETB P3.5 RET ;---------------------------WR18B20: MOV R2, #8 CLR C WR1: CLR P3.5 MOV R3, #6 DJNZ R3, $ RRC A MOV P3.5, C MOV R3, #23 DJNZ R3, $ SETB P3.5 NOP DJNZ R2, WR1 SETB P3.5 RET35焦作大学机电系毕业设计附录;------------------------RE18B20: SETB RS0 MOV R4, #2 MOV R0, #36H RE00: MOV R5, #8 RE01: CLR C SETB P3.5 NOP NOP CLR P3.5 NOP NOP NOP SETB P3.5 MOV R6, #07 RE10: DJNZ R6, RE10 MOV C, P3.5 MOV R6, #20 RE20: DJNZ R6, RE20 RRC A DJNZ R5, RE01 MOV @R0, A DEC R0 DJNZ R4, RE00 CLR RS0 NOP RET ;----------------------------DISP: MOV A, 35H ANL A, #0FH MOV 40H, A MOV A, 36H SWAP A ANL A, #0FH MOV 41H, A MOV A, 40H SWAP A ORL A, 41H MOV 41H, A MOV B, #10 DIV AB MOV 52H, A MOV 51H, B36焦作大学机电系毕业设计附录MOV MOV DIV MOV MOV MOV MOV MOVC CPL MOV CLR CLR CLR LCALL MOV MOV MOV MOVC CPL MOV SETB CLR CLR LCALL MOV MOV MOV MOVC CPL MOV CLR SETB CLR LCALL MOV MOV MOV MOVC CPL MOVA, 4AH B, #10 AB 54H, A 53H, B A, 52H DPTR, #SGTB A,@A+DPTR A P2, A P1.5 P1.6 P1.7 YS4722U P1, #80H A, 51H DPTR, #SGTB A,@A+DPTR A P2, A P1.5 P1.6 P1.7 YS4722U P1,#80H A, 54H DPTR, #SGTB A,@A+DPTR A P2, A P1.5 P1.6 P1.7 YS4722U P1, #80H A, 53H DPTR, #SGTB A,@A+DPTR A P2, A37焦作大学机电系毕业设计附录SETB SETB CLR LCALL MOVP1.5 P1.6 P1.7 YS4722U P1,#80HRET ;--------------------------------KEYSCAN : NOP JB P0.0, KEY1 LCALL DELAY60 JB P0.0, KEY1 SETB P3.0 CLR P3.1 SETB P3.2 CLR P3.3 LJMP KEY1 KEY1: JB P0.1, KEY2 LCALL DELAY60 JB P0.1, KEY2 CLR P3.0 SETB P3.1 CLR P3.2 SETB P3.3 LJMP KEY2 KEY2: JB P0.2, KEY3 LCALL DELAY60 JB P0.2, KEY3 CLR P3.0 CLR P3.1 CLR P3.2 CLR P3.3 LJMP KEY3 KEY3: JB P0.3 , OK LCALL DELAY1 JB P1.3, OK INC 4AH SETB P0.3 OK: JB P0.4, KEYSOUT LCALL DELAY1 JB P1.4, KEYSOUT DEC 4AH; ADD SPEED38焦作大学机电系毕业设计附录SETB P0.4 KEYSOUT: RET ;-------------------------------GO: NOP MOV A, 41H SUBB A, 4AH JZ LOOP3 JC LOOP3 MOV B, 30H MOV A, 41H MOV 30H, A SUBB A, B MOV R0, A JC LOOP3 JNC LOOP4 LOOP3: SETB P3.0 CLR P3.1 LCALL L1 CLR P3.0 CLR P3.1 LCALL L1 RET LOOP4: SETB P3.0 CLR P3.1 ADD A, #20 ADD A, R0 MOV R7, A DJNZ R7, L1 CLR P3.0 CLR P3.0 LCALL L1 RET L1: LCALL DELAY3 LCALL DELAY3 LCALL DELAY3 LCALL DELAY3 RET L: RET ;----------------------------DELAY1: PUSH PSW MOV PSW, #00H MOV R2, #0FH39焦作大学机电系毕业设计附录MOV R3, 0FFH W1: MOV R4, 0FAH W2: DJNZ R4, W2 DJNZ R3, W1 POP PSW RET DELAY2: PUSH PSW MOV PSW, #00H MOV R3, #6 W3: MOV R4, #0FAH W4: DJNZ R4, W4 DJNZ R3, W3 POP PSW RET ;--------------------------------SGTB: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FH ;--------------------------------YS4722U: Y4: MOV R4, #005H Y3: MOV R5, #0FFH DJNZ R5, $ DJNZ R4, Y3 RET DELAY3: PUSH PSW MOV PSW, #00H MOV B, #50 MOV A, R0 MUL AB MOV R3, A MOV A, #20H ADD A, R3 MOV R5, A W7: MOV R4, #0FAH W8: DJNZ R4, W8 DJNZ R5, W7 POP PSW RET DELAY60: PUSH PSW MOV PSW, #00H MOV R3, #06 W60MS: MOV R4, #0FAH40焦作大学机电系毕业设计附录W50US1: DJNZ DJNZ POP RETR4, W50US1 R3, W60MS PSW41焦作大学机电系毕业设计致谢致 谢在论文的设计过程中,我查阅了许多有关恒温控制系统设计方面的文献资料, 使我对恒温控制的设计和使用有了更深的认识。从论文选题到完成论文,杨庆祥 老师付出了大量的时间和心血,在设计过程中,杨老师从多方面进行指导,不断 对论文提出修改意见。在此,我要由衷地感谢杨老师!同时,我也要感谢给予我 帮助的同学,在不懂的环节为我努力探讨。论文的完成,不仅是我大学三年知识 积累的体现,而且也是机电学院所有老师悉心教导的结果,感谢他们让我掌握了 一定的专业知识,专业技能和一些为人处世的道理。最后还要感激父母,是他们 给我学习的机会,并且在学业期间给我大力支持和为我付出!42