资源描述
- -
基于51单片机恒温控制器的设计 Microcontroller-based temperature controller design
:杜治协
学号:20213313
专业:机械设计制造及其自动化
学制:4年
指导教师:王新年
理工大学高科学院
摘要
随着现代工业的逐步开展,在工业生产中,温度、压力、流量和液位是四种 最常见的过程变量。其中,温度是一个非常重要的过程变量。例如:在冶金工业、 化工工业、电力工业、机械加工和食品加工等许多领域,都需要对各种加热炉、 热处理炉、反响炉和锅炉的温度进展控制。然而,用常规的控制方法,潜力是有 限的,难以满足较高的性能要求。采用单片机来对它们进展控制不仅具有控制方 便、简单和灵活性大的优点,而且可以大幅度提高被测温度的技术指标,从而能 够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产 中经常会遇到的控制问题。 本系统实现了单片机AT89C51 对水温进展控制,采用AD590 作为温度传感器, 通过按键、数码显示等组成人机交互接口来实现设置和调节初始温度值。系统启 动后,数码管显示测量到的温度值,当加热到设定值后立刻报警。另外,本系统 通过软件实现对按键误差、加热过冲的调整,以提高系统的平安性、可靠性和稳 定性。本文详细地表达了用 MCS-51 单片机设计实验室恒温控制系统的硬件电路 及软件实现,细致地介绍了设计构图,各功能模块的程序流程图以及程序清单.该 装置控制温度围广泛,可靠性强,灵敏度高,使用灵活. 关键词:DS18B20,单片机,恒温控制,单总线传输方式 目录 摘要................................................................................................................................................... 1 目录................................................................................................................................................... 2 一 引言........................................................................................................................................... 3 二 方案设计与论证 ....................................................................................................................... 3 三 系统总体设计 ........................................................................................................................... 4 1. 元器件根本知识 .................................................................................................................. 4 〔1〕 单片机AT89S51 ................................................................................................... 4 〔2〕 模数转换器AD0809 ............................................................................................ 7 〔3〕 温度传感器 AD590 ............................................................................................. 9 〔4〕 数码管LED 显示器 ........................................................................................... 12 2. 原理图及功能实现 ............................................................................................................ 13 〔1〕原理图 ................................................................................................................... 13 〔2〕功能实现 ............................................................................................................... 13 四 软件详细设计 ......................................................................................................................... 15 1.主程序软件流程图 .............................................................................................................. 15 2. 源代码................................................................................................................................ 16 五 实验过程中经历及心得 ......................................................................................................... 18 1.实验过程中出现的问题及解决方法 .................................................................................. 18 2. ADC0809 的CLK 信号与单片机的经典接法 .................................................................. 19 六 致 ..................................................................................................................................... 20 七 参考文献 ................................................................................................................................. 21 一 引言 随着社会主义现代化的开展,在科学技术突飞猛进的今天,人工智能起不不 可无视的作用。尤其是各种智能化的仪器、仪表在农、工业的广泛应用给社会带 来了极大的便利。本文就是一个利用温度来实现简单智能控制的例子。它完成了 从温度的采集、转换、显示以及控制的一系列任务。由于时间关系,本文并未深 入探讨温度的具体实例。例如根据温度来控制热水器、电风扇等与温度有关的设 备。但是它提供了一个通过温度来控制设备的根本思想和原理。相信能在实际应 用中为我们的生活带来更大的便利。 二 方案设计与论证 根据题目的要求,我们提出了以下的两种方案: 〔1〕方案一:此方案是采用传统的模拟控制方法,选用模拟电路,用电位器设 定给定值,反响的温度值与给定的温度值比拟后,决定加热或者不加热。器特点 是电路简单,易于实现,但是系统所得结果的精度不高并且调节动作频繁,系统 静差大,不稳定。系统受环境的影响大,不能实现复杂的控制算法,而且不易实 现对系统的控制及对温度的显示,人机交换性能差。 〔2〕方案二:采用单片机89s51 为核心。采用了温度传感器AD590 采集温度变 化信号,并通过单片机处理后去控制温度,使其到达稳定。使用单片机具有编程 灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并且通过软件 编程能实现各种控制算法使系统还具有控制精度高的特点。 比拟两种方案,方案二明显的改善了方案一的缺乏及缺点,并具有控制简单、 控制温度精度高的特点。因此本设计电路采用方案二。 三 系统总体设计 1. 元器件根本知识 〔1〕单片机AT89S51 a.主要特性 ● 与MCS-51 单片机产品兼容 ● 4K 字节在系统可编程Flash 存储器 ● 1000 次擦写周期 ● 全静态工作:0Hz—33MHz ● 32 个可编程I/O 口线 ● 2 个16 位定时器/计数器 ● 6 个中断源 ● 全双工UART 串行通道 ● 低功耗空闲和掉电模式 ● 掉电后中断可唤醒 ● 看门狗定时器 ● 双数据指针 ● 灵活的ISP 编程〔字或字节模式〕 ● 4.0---5.5V 电压工作围 b.部构造 图3-1 是单片机AT89S51 的部构造总框图。它可以划分为CPU、存储器、 并行口、串行口、定时/计数器和中断逻辑几个局部。 ● CPU 由运算器和控制逻辑构成。其中包括假设干特殊功能存放器〔SFR〕 ● AT89S51 时钟有两种方式产生,即部方式和外部方式。〔如图 3-2 所 示〕 ● AT89S51 在物理上有四个存储空间:片/片外程序存储大路、片/片 外数据存储器。片有 256B 数据存储器 RAM 和 4KB 的程序存储器 ROM。除此之 外,还可以在片外扩展RAM 和ROM,并且和有64KB 的寻址围。 ● AT89S51 部有一个可编程的、全双工的串行接口。它串行收发存储在 特殊功能存放器SFR 的串行数据缓冲器SBUF 中的数据。 图3-1 AT89S51 部构造框图 ● AT89S51 共有4 个〔P0、P1、P2、P3 口〕8 位并行I/O 端口,共32 个引 脚。P0 口双向 I/O 口,用于分时传送低 8 位地址和 8 位数据信号;P1、P2、P3 口均为准双向I/O 口;其中P2 口还用于传送高8 位地址信号;P3 口每一引脚还 具有特殊功能〔图3-3〕,用于特殊信号的输入输出和控制信号。 ● AT89S51 部有两个16 位可编程定时器/计数器T0、T1。最大计数值为 2 16 -1。工作方式和定时器或计数器的选择由指令来确定。 图3-2 AT89S51 的时钟电路 图3-3 P3 口引脚的特殊功能 ● 中断系统允许承受 5 个独立的中断源,即两个外部中断,两个定时器/ 计数器中断以及一个串行口中断。 c.外部特性〔引脚功能〕 AT89S51 芯片有40 条引脚,双列直插式封装引脚图如2-4 所示: ● Vcc(40):电源+5V ● Vss(20): 接地 ● XTAL1〔19〕和XTAL2〔18〕:使用部振荡电路时,用来接石英晶体和 电容;使用外部时钟时,用来输入时钟脉冲。 ● P0 口〔39—32〕:双向 I/O 口,既可作地址/数据总线口用,也可作普 通I/O 口用。 ● P1 口〔1—8〕:准双向通用I/O 口。 ● P2 口〔21—28〕:准双向口,既可作地址总线口输出地址高8 位,也可 作普通I/O 口用。 ● P3 口〔10—17〕:多用途口,既 图3-4 AT89S51 引脚图 可作普通I/O 口,也可按每位定义的 第二功能操作。 ● ALE/~PROG〔30〕:地址锁存信号输出端。在片外丰储器时,假设ALE 为有效高电平,那么P0 口输出地址低8 位,可以用ALE 信号作外部地址锁存信 号。公式〔2—1〕fALE=1/6fOSC ,也可作系统中其它芯片的时钟源。第二功能~PROG 是对EPROM 编程时的编程脉冲输入端。 ● RST/VPD〔9〕:复位信号输入端。AT89S51 接能电源后,在时钟电路作用 下,该脚上出现两个机器周期以上的高电平,使部复位。第二功能是 VPD, 即备用电源输入端。当主电源Vcc 发生故障,降低到低电平规定值时,VPD 将为 RAM 提供备用电源,发保证存储在RAM 中的信号不丧失。 ● ~EA/Vpp(31):部和外部程序存储器选择线。~EA=0 时外部 ROM 0000H—FFFFH;~EA=1 时,地址 0000H—0FFFH 空间部 ROM,地址 1000H—FFFFH 空间外部ROM。 ● ~PSEN〔29〕:片外程序存储器选通信号,低电平有效。 〔2〕 模数转换器AD0809 a.主要特性 ● 8 路8 位A/D 转换器,即分辨率8 位。 ● 具有转换起停控制端。 ● 转换时间为100μ s ● 单个+5V 电源供电 ● 模拟输入电压围0~+5V,不需零点和满刻度校准。 ● 工作温度围为-40~+85 摄氏度 ● 低功耗,约15mW。 b.部构造 ADC0809 是CMOS 单片型逐次逼近式A/D 转换器,部构造如图3-5 所示, 它由 8 路模拟开关、地址锁存与译码器、比拟器、8 位开关树型 D/A 转换器、 逐次逼近存放器、三态输出锁存器等其它一些电路组成。因此,ADC0809 可处理 8 路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。 输入输出与TTL 兼容。 图3-5 ADC0809 部构造框图 c.外部特性〔引脚功能〕 ADC0809 芯片有 28 条引脚,采用双列直插式封装,如图 3-6 所示。下面 说明各引脚功能。 ●IN0~IN7:8 路模拟量输入端。 ●2-1~2-8:8 位数字量输出端。 ●ALE〔22〕:地址锁存允许信号,输入,高电平有效。 ●START〔6〕: A/D 转换启动信号,输入,高电平有效。 ●EOC〔7〕: A/D 转换完毕信号,输出,当A/D 转换完毕时,此端输出一个 高电平 〔转换期间一直为低电平〕。 图3-6 ADC0809 引脚图 ●OE〔9〕:数据输出允 许信号,输入,高电平有效。当 A/D 转换完毕时,此端输入一个高电平,才能 翻开输出三态门,输出数字量。 ●CLK〔10〕:时钟脉冲输入端。典型值为640KHZ。 ●REF〔+〕、REF〔-〕:参考电压输入端。 ●Vcc〔11〕:电源,+5V。 ●GND〔13〕:地。 ●ADDA、ADDB、ADDC:3 位地址输入线,用于选通 8 路模拟输入中的一路。 如表2-1 所示。 表3-1 ADDA、ADDB、ADDC 模拟通道地址码 d.ADC0809 的工作过程 首先输入3 位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码 选通8 路模拟输入之一到比拟器。START 上升沿将逐次逼近存放器复位。下降沿 启动 A/D 转换,之后 EOC 输出信号变低,指示转换正在进展。直到 A/D 转换 完成,EOC 变为高电平,指示 A/D 转换完毕,结果数据已存入锁存器,这个信 号可用作中断申请。当OE 输入高电平 时,输出三态门翻开,转换结果的数字量 输出到数据总线上。 〔3〕温度传感器 AD590 a.主要特性 AD590 是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特 性如下: ● 流过器件的电流〔A〕等于器件所处环境的热力学温度〔开尔文〕度数, 即: A/K 公式〔2-2〕 式中: —流过器件〔AD590〕的电流,单位为A; T—热力学温度,单位为K。 ● AD590 的测温围为-55℃~+150℃。 ● AD590 的电源电压围为4V~30V。电源电压可在4V~6V 围变化,电流 变化1A,相当于温度变化 1K。AD590 可以承受 44V 正向电压和 20V 反向电 压,因而器件反接也不会被损坏。 ● 输出电阻为710M。 ● 精度高。AD590 共有I、J、K、L、M 五档,其中M 档精度最高,在-55℃~ +150℃围,非线性误差为±0.3℃。 ● AD590 的输出电流值说明如下: 其输出电流是以绝对温度零度〔-273℃〕为基准,每增加1℃,它会增加1μ A 输出电流,因此在室温25℃时,其输出电流Iout=〔273+25〕=298μ A。 b.部构造 集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的 b-e 结压 降的不饱和值VBE 与热力学温度T 和通过发射极电流I 的下述关系实现对温度的 检测: 公式〔2-3〕 式中:K—波尔兹常数; q—电子电荷绝对值。 集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便等 优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两 种。电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温度25℃时输 出2.982V。电流输出型的灵敏度一般为1A/K。 c.外部特性〔引脚功能〕 0 1 AD590 - + A . . . . ● Vcc(0):电源4—30v ● GND(1):接地。 d.典型应用电路 AD590 产生的电流与绝对温度成正比,它可接收的工作电压为4 V-30V 检测的温度围为-55℃-+150℃,它有非常好的线性输 出性能,温度每增加1℃,其电流 增加1uA 0 1 AD590 - + A R1 10k +5 V0 . . . . 图3-8 是AD590 用于测量热力学 温度的根本应用电路。因为流过AD590 的电流与热力学温度成正比, 当电阻 10k 时,输出电压VO 随温 度的变化为10mV/K。 图3-8 AD590 其本应用电路 ● Vo 的值为电流I 乘上10K,以室温25℃而言,输出值为10K×298μ A=2.98V ● 测量Vo 时,不可分出任何电流,否那么测量值会不准。 由于AD590 的增益有偏差,电阻也有误差,因此应对电路进展调整。 表3-2 AD590 温度与电流的对应关系表 摄氏温度〔单位:℃〕 AD590 电流〔单位:uA〕 经10KΩ 电压〔单位:V〕 -10 263.2 2.632 0 273.2 2.732 10 283.2 2.832 20 293.2 2.932 30 303.2 3.032 40 313.2 3.132 50 323.2 3.232 60 333.2 3.332 100 373.2 3.732 〔4〕数码管LED 显示器 a.综合知识 ● 数码显示器有静态和动态显示两种显示方式。 ● LED 显示器工作在静态显示方式时,其阴极点〔或阳极〕连接在一起接 地〔或+5V〕,每一个的段选线〔a,b,c,d,e,f,g,p〕分别与一个8 位口相连。 ● LED 显示 器工作在动态显示方式时,段选码端口 I/O1 用来输出显示字 符的段选码,I/O2 输出位选码。 I/O1 不断送待显示字符的段选码,I/O2 不断送出不同的位扫描码,并使每位显 示字符显示一段时间,一般 为1—5mS。利用眼睛 的礼视觉惯性,从显示器上便可以见到相当稳定的数字显示。 b.引脚功能 如图3-9 所示: ● 段选〔a,b,c,d,e,f,g,p〕:对应8 个发光二极管,接I/O 口,共阴〔或 共阳〕时接地〔或+5V〕,根据条件控制发光二极管的亮或灭。 ● 位选〔A,B,C,D〕:共阴〔或共阳〕时接地〔或+5V〕分别用选中对应位的 LED 图3-9 4 位LED 引脚图 2. 原理图及功能实现 〔1〕原理图 图3-1 4 位温度显示器原理图 图3-2 水温调整原理图 〔2〕功能实现 利用 AD590 温度传感器完成温度的测量,把转换的温度值的模拟量送入 ADC0809 的其中一个通道进展A/D 转换,将转换的结果进展温度值变换之后送入 数码管显示。再根据限定条件来控制发光二极管的亮度来模拟当前输出量。 A.电热控制局部 电热控制采用可控硅来实现,双向可控硅和电热器串接在200V 单相交流电 路中,单片机的P2.7 通过光电隔离器件和驱动电路送到可控硅的控制端,通过 P1.7 口控制可控硅的通断。 B.温度检测局部 温度检测局部包括温度传感器、变换器和A/D 转换3 局部。用于温度检测的 传感器有性能稳定、抗氧能力强和检测精度高等特点。考虑到应用围要求广泛, 这里选用铂热电阻,要求其检测围在0—500℃之间。变送器将温度变化引起 的铂热电阻值变化转化成电压信号,当温度在0—500℃时变送器输出0-5V 左右 电压。 A/D 转换局部采用ADC0809 组成A/D 转换电路,ADC0809 是一种8 路模拟输 入的8 位逐次逼近式A/D 转换器件。由于温度的控制精度要求≤±2℃显然采用 8 位A/D 转换器完全可以到达要求的精度。ADG0809 的EOC 转换完毕信号接MSC –52 的外部中断1 上,MSC-51 通过地址P2.0 和读写信号来控制转换器的模拟量 输入通道地址锁存、启动和输出允许,如图2.因为0809 部有地址锁存器,所 以不需另加锁存器。当电路设计好后,调整变换器输出,当温度为0℃时变化器 输出0V,AD 转换器转换结果为00H;当温度为500℃时变换器输出5V,AD 转换 器结果为FAH〔250〕。也就是说,温度在0~500℃时,AD 转换器转换结果为00 H—FAH(0~250),显然转化结果乘以2 正好是温度值,这样一方面可以方便标度转 换,另一方面可以防止转换时带来的误差。 C.显示和报警局部 显示器设有3 位LED 数码显示器,当停顿加热时显示设定温度启动加热时用 于显示定时温度。为了充分利用MSC—51 的资源,节省并行I/O 口线,因此采用 串行口,工作方式O 作LED 显示器的接口,采用了74LS164 移位存放器构成显示 器接口电路,如图2. 为了结语资源不扩展并行I/O 口,键盘只设置4 个按键,由I/O 的低4 位作为键 盘接口,4 个键分为启动、“+100〞、“+10〞和“+1〞键,其中后 3 个键可以 分别对百位、十位和各位进展加 1,再按会再加 1,假设连续按该键,十位数就会 在0~9 之间循环,从而实现呢置数功能。除上述4 个键以外还设有复位/停顿键, 系统复位后处于停顿加热状态。因此要停顿加热那么按复位键。报警采用蜂鸣器作 为发生器件,将 P1.6 与之相连,当温度超过戒备温度时,实现报警,并关闭电 热器。 四 软件详细设计 软件设计时,必须先弄清恒温控制系统的操作过程和工作过程,加热器开场 时处于停顿状态,首先设定温度,显示器显示温度,温度设定后那么可以启动加热。 温度检测系统不断检测并显示系统中的实时温度,当到达设定值停顿加热,当温 度下降到下限〔小于设定值2℃〕时再自动启动加热,这样不断的循环,使温度 保持在设定围之。启动加热以后就不能再设定温度,因为温度的设定可以根 据实验要求改变,假设要改变设定的温度,可以先按复位键/停顿键再重复上述过 程。 1.主程序软件流程图 图4-1 主程序流程图 2. 源代码 #include 开场 指示灯LED 灭 ADC0809 停顿工作 T1 工作于方式1 定时4mS CPU、T1 开中断且T1 开场工作 ADC0809 采集一次数据 等待中断 完毕 五 实验过程中经历及心得 1.实验过程中出现的问题及解决方法 在实验过程中,我遇到我很多问题。有小的,也有大的;有的很容易就解决 了,有的那么想很久都不能明白;有的需要查资料就可以解决,有的那么需请教教师 才得以搞定。正是这些多多少少,大大小小的问题,随着一个个的解决,才使的 我一步步的进步。在此,我列出在我实验过程中遇到的问题,以及解决方法。 表5-1 实验过程中出现的问题及解决方法 序号 出现问题 解决方法 ① 用Protel 画原理图时的诸多 小问题及画好的原理图如何 copy 到Word 仔细查阅资料 ② 硬件电路完全焊接好,仔细检 查后才发现40Pin的IC插座, 有一 Pin 折弯并未穿过电路 板 更换电路板以及IC 插座,重新焊 接;养成走一步,检查一步的习惯 ③ 手工焊接想减少元器件,去掉 了reset 信号的器件。结果电 路无法工作 加上reset 信号应有的元器件,且 连接正确 ④ 电路刚开场工作,4 位LED 就 冒烟,随着一声响就报废 应加限流电阻 ⑤ ADC0809 的CLK 信号用软件还 是用硬件来提供 详见5.2 ADC0809 的CLK 信号与单 片机的经典接法 ⑥ 4 位LED 显示的数据,自己都 不明白是什么 更改软件数据N 次,重新烧片子N 次,经过N 天才想明白是数据未确 定精度。通过软件确定精度 ⑦ 接下来遇到的根本都是软件 经过无数次的更改软件,无数次的 问题 重新烧写程序,离实验结果就一步 步接近了 ⑧ 单片机控制的发光二极管亮 一段时间后就熄灭 限流电阻太大,最后改用100Ω 的 电阻,工作正常 2. ADC0809 的CLK 信号与单片机的经典接法 因为在整个的实验过程中,为了节约本钱,电路板上的所有元器件都是自己 手工焊接的。所以,在最开场考虑ADC0809 的CLK 信号时,我是用软件做的。 在软、硬件刚做好时,出现的很多问题,是根本无法判断是软件有问题,还 是硬件有错误。但我始终都不想再改动硬件。后来,我在书上看到: ADC0809 的CLK----外部时钟输入端。时钟频率高,A/D 转换速度快。允许 围为10----1280KHz ,典型值为640KHz ,此时转换时间为100uS。通常由MCS—51 型单片机 ALE 端直接或分频后与 0809 CLK 端相连接。当 MCS---51 型单片机无 读写外RAM 操作时,ALE 信号固定为CPU 时钟频率的1/6,假设晶振为6MHz,那么1/6 为1MHz 时,A/D 转换时间为64uS。 这样做和用软件实现比拟,不但节省了人力,而且缩短了软件代码长度,减 轻了CPU 的负担,提高了工作效率。和硬件比拟,更节省本钱,而且拥有和硬件 一样快的工作效率。 六 致 我之所以能顺利完成?四位温度显示器?的设计与实现,是和指导我的导师 是有关。我首先我的指导教师教师。在整个设计完成期间,从原理上的可 行到实际硬件电路上出现的的问题,以及后期软硬件的改良,不管是什么时候遇 到困难,只要和教师一说他就会给我们讲,从不厌其烦。这一点我深表感。 作为一个教师他是负责的,态度是认真的。教师,我最想说一句“您〞! 再一个就是我要感院方,也就是计算机学院给我们提供这么多的支持。不 管是从教师还是其它的辅助设施上,我深表感,给我们带来了极大的方便。 第三 我也很感论文辩论的各位评委教师,感他们在百忙之中抽出时间 帮我们辩论。我心里深深知道不管他们提出什么样的问题,难也好,容易也好, 其目的只有一个,那就是帮助我们提高,在这我也想说一声您们!您们 帮助我们提高,欢送你们提出珍贵的意见。 七 参考文献 [1] 涂序彦.智能控制理论、方法与技术.:清华大学,1994.11 [2] 建民等..自适应模糊炉温控制系统.根底自动化,2001.4 [3] 兴池等.模糊控制器在电加热炉中的应用.工业仪表与自动化装置,1999.3 [4] 志君等.糊控制在温度控制系统中的应用.动化与仪器仪表,1998.5 [5] 雷思孝,伯成,雷向莉.单片机原理及实用技术-凌阳 16 位单片机原理 及应用.:电子科技大学,2004.1
第二章系统的根本构成及方案
2.1 系统的根本构成
设计思路是:利用温度传感器直接输出数字温度信号给单片机进展处理,在LED数码管上显示当前环境温度值以及设定温度值,温度低于设定温度值进展加热,假设温度高于设定温度值那么启动风扇降温到设定温度值停在,构造图如下:
温度采集
键盘 加热电阻
51单片机
晶振 直流风扇
温度显示
2.2方案论证
对于温度控制方法有很多:单片机.PLC控制.模拟PID调节器等等.
- word.zl
展开阅读全文