1、洛阳理工学院课程设计(论文)I基于单片机的浴室温度控制洛阳理工学院课程设计(论文)II学号: B13043612姓名: 郎毅日期:基于单片机的浴室温度控制摘 要设计从硬件和软件两部分实现浴室温度控制过程,在控制过程中主要以AT89C51 单片机和 DS18B20 温度传感器为核心,使用单片机汇编语言设计软件,通过继电器控制加热设备,力争实现可以人工设置和智能控制温度的功能。单线总线制温度传感器 DS18B20,温度值可以直接转换成串行数字信号供给微处理器单片机。温度信息被读取或写入时,只需要一根端口线。DS18B20 可以通过外部电源直接供电,从而大大简化了外围硬件。所以说,DS18B20 是
2、检测温度的最佳电子器件。系统的过程是:首先通过设置按键,设定恒温运行时的温度值,并且用数码洛阳理工学院课程设计(论文)III管显示这个温度值。然后,在运行过程中将采样的温度模拟量送人 A/D 转换器进行模拟-数字转换,再将转换后的数字量用数码管进行显示,最后用单片机来控制加热器,进行加热或者停止加热,以便达到设置的恒温值。关键词:AT89C51,DS18B20,继电器,智能控制,加热目 录洛阳理工学院课程设计(论文)IV前 言 .1第一章 绪论 .21. 1 课题背景 .21.2 国内外发展现状及趋势 2第二章 系统总体设计 .42.1 设计目的 .42.2 主要内容 4第三章 硬件设计 .5
3、3.1 总体框图 .53.2 主要元器件的选择 53.2.1 控制元件 .53.2.2 温度传感器 63.2.3 显示器 .73.3 硬件电路设计 73.3.1 单片机时钟电路和复位电路 .73.3.2 温度传感器模块 .93.3.3 按键模块 .103.3.4 显示模块 .113.3.5 总线电路图 .12第四章 软件设计 .144.1 主程序流程图 144.2 按键子程序流程图 154.3 温度采集子程序流程图 16第五章 仿真与调试 .185.1 硬件调试 185.2 软件调试 18结 论 .20洛阳理工学院课程设计(论文)V参考文献 .21附 录 .22附录一 .22附录二(源程序)
4、.23洛阳理工学院课程设计(论文)VI洛阳理工学院课程设计(论文)1前 言温度在工业、农业和人们的日常生活中都是一个比较重要的物理量,温度控制也是生产和生活中非常重要的一种控制方式。传统的温度控制完全依靠人工,最近这些年,单片机技术和微电子技术的发展给温度控制带来的全新的发展机遇,基于单片机的温度控制系统已经广泛应用于工农业生产和人们的日常生活中。由于单片机技术在国外的发展比较迅猛,而国内接触的相对较晚,在基于单片机的温度控制方面,国内和国外有相当大的差距。目前,国外的温度控制系统正在朝着小而精,朝着智能化的方向发展,而国内的发展水平只相当于欧美发达国家上世纪 90 年代的水平,还是主要使用点
5、位控制和普通的 PID 控制,不能适用于大滞后和较为复杂的控制环境。此次设计为了改善传统浴室温度波动较大的问题,使用基于单片机的温度控制系统,通过目前应用最普遍的数字式温度传感器检测水温,利用单片机处理采集到的信息,通过和预设温度对比,由单片机控制加热器的启动与关闭,从而控制实际温度和预设温度达到一致。洛阳理工学院课程设计(论文)2第一章 绪论1.1 课题背景随着新技术的不断发展与应用,近年来单片机的发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度控制方法不仅费时费力,而且精度差,单片机的出现使得
6、温度的采集和数据处理问题能够得到很好的解决。温度是我们生活中的一个重要的参考数据。但是根据所采用的测温元件和测量方法的不同,产品的工艺不同,控制温度的精度也不相同,因此对数据采集的精度和采用的控制方法也不相同。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。洛阳理工学院课程设计(论文)31.2 国内外发展现状及趋势随着计算机控制技术的发展,恒温控制已在工业生产领域中得到了广泛应用,并取得了巨大的经济和社会效益。在不同的领域内,由于控制环境、目标、成本等因素,需要针对
7、具体情况来设计系统结构和功能,以取得最佳的控制效果。其中,恒温环境的自动化控制技术在工业生产、商业运营中是一个重要研究课题。自 70 年代以来,由于工业过程控制的需要,特别是在微电子技术和计算机技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外恒温控制系统发展迅速,并在智能化,自适应参数的自整定等方面取得了很大的科技成果。在这方面以德国、瑞典、日本以及美国等国技术领先,并且都生产出了一批商品化的性能优异的温度控制方面的仪器仪表。目前,国外研发的有关温度控制的仪器仪表正朝着精度更高、智能化程度更强、更加小型化等方面发展。虽然有关温度控制的产品在国内已经能够被广泛的应用,在技术上有了长足
8、的进步,但是同欧美发达国家相比,在产品性能和使用的技术方面还是有着较大的差距,这是我们所不能回避的问题。目前,我们国家在温度控制方面的水平,总体达到了欧美发达国家,尤其是德国、日本它们 20 世纪 90 年代初的水平,我们国家现在做的有关温度控制的成熟产品只是涉及到比较简单的点位控制以及 PID 控制,这些产品只能应用于相对简单的控制环境,如果是较为复杂的系统环境,比如大滞后、时变等温度控制环境,国内的产品一般很难适应。在适用于比较高级的控制场合的自动化仪器仪表领域内,我们国内的各大公司,技术水平普遍不高,发展程度还不够成熟,和那些发达国家相比,差距依然很大。随着新兴的嵌入式系统的发展,以及嵌
9、入式开发系统技术的提高,它们在国洛阳理工学院课程设计(论文)4民生活的各个领域得到了广泛的应用。目前,人们对电子产品在小型化和高集成化方面的要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大以及本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用第二章 系统总体设计2.1 设计目的1. 巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决参数控制的能力。洛阳理工学院课程设计(论文)52. 培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。3. 通过对课题设计方案的分析、选择、比较、熟悉单片机用
10、系统开发、研制的过程,软硬件设计的方法、内容及步骤。4. 了解并掌握温度传感器 DS18B220 的使用方法。2.2 主要内容本课题的研究重点是设计一种基于单片机的数字温度控制加热系统。利用数字温度传感器 DS18B20,此传感器可读取被测量温度值,进行转换,串行输出给单片机。设计主要包括以下工作:1. 保证温度控制基本范围 35-45。2. 实现精度误差接近于 1。3. 利用数码管静态显示。4. 允许灵活设定温度值。5. 实现加热器的智能控制功能。洛阳理工学院课程设计(论文)6第三章 硬件设计3.1 总体框图系统的总体框图如图 2-1 所示;单 片 机温 度 传 感 器 模 块键 盘 模 块
11、加 热 模 块显 示 模 块图 2-1 系统整体设计框图此次设计主要是对浴室进行温度控制,使浴室温度能够基本保持恒定。首先由键盘设定系统所需要保持的温度,此次设计所设温度为 40,通过单片机对按键程序的扫描处理,显示器会显示出相应的字符,即为我们目前所设置的温度。然后由温度传感器对浴室内的温度进行检测,检测到的温度数据传送到单片机中和我们之前所设置的温度进行比较,当测得实际温度低于设定温度,即低于 40时,单片机控制加热器开启,对浴室温度进行加热;当测得实际温度高于我们所设定温度,即高于 40时,单片机控制加热器关闭,停止对水箱内的水的加热。通过温度传感器不断的检测实际水温,单片机不断控制加热
12、器的开启和关闭,以使得水箱内的水温能够保持在 40。洛阳理工学院课程设计(论文)73.2 主要元器件的选择3.2.1 控制元件此次设计我们使用单片机作为控制单元,使用 AT89C51 单片机作为此次设计的主控单元。AT89C51 本身在片内就有一个 4KB 字节的闪存,这种闪存是一种可编程可擦写的只读存储器。AT89C51 使用电压较低,但是性能很高,是一种非常方便实用的单片机。此种单片机的可编程可擦除只读存储器可以反复擦除1000 余次,耐用性和可靠性很高。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容,在紧急情况下可替代性很高。由
13、于将多功能 8 位 CPU 和闪速存储器组合在单个芯片中,AT89C51是一种高效微控制器。3.2.2 温度传感器DS18B20 有多种适用于不同环境的封装形式,能够满足我们此次设计检测温度的需要。因此使用数字式温度传感器 DS18B20 作为此次设计的温度传感器。DS18B20 数字温度计的主要特性:1DS18B20 的适应电压范围更宽,其范围为:3.0-5.5V,而且它能够直接从数据线获取到电源即寄生电源模式,这种模式下不需要使用外部电源。2DS18B20 提供了 9 位的摄氏温度检测,它有着非易失性的特性。3DS18B20 通过一根单线总线和中央微处理器进行通信。同时,DS18B20在使
14、用的过程中,它不需要任何的外围的元件,全部的传感元件和转换电路集成在一只像三极管形状的集成电路里面。4DS18B20 具有-55C 至+125C 的工作温度范围,在-10C 至+85C温度范围内精度为0.5C。洛阳理工学院课程设计(论文)85每片 DS18B20 具有唯一的 64 位序列码,这些序列码允许多片 DS18B20在同一条 1-Wire 总线上工作,因而,可方便地使用单个微处理器控制分布在大范围内的多片 DS18B20 器件。6DS18B20 检测到温度后自行把温度信号转换为数字信号,然后通过“一线总线”的形式把数据串行传送到 CPU 中,同时还可以传送循环冗余校验码(即 CRC)
15、,所以它具有非常强的抗干扰能力和纠错的能力。7DS18B20 具有负载特性,当电源极性接反时,芯片不会因发热而烧毁,但是不能正常的工作。8.根据 DS18B20 的通讯协议,主机控制 DS18B20 完成温度转换必须在每一次读写前都对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送RAM 指令,这样才能对 DS18B20 进行预定操作。3.2.3 显示器数码管是一类用于显示数字或英文字母显示屏,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。静态显示就是把每一个数码管的每一个段码接口直接接到单片机的 I/O 端
16、口上,不需要使用管理芯片;而动态显示则是需要使用到管理芯片进行显示端口的位选,选通的数码管会导通,没有选通的数码管则不会导通。通过静态显示和动态显示的区别,我们可以发现,静态显示的编程会相对简单,由于直接接到单片机 I/O 端口上,显示亮度也会更高。但是静态显示的缺点也会显而易见,它会占用较多的单片机 I/O 端口,如果在单片机的 I/O 端口使用上比较充裕,可以尝试使用静态显示的方式。此次设计综合考虑电路设计单片机 I/O 端口剩余较多,所以使用静态显示的方式,采用共阴极数码管。洛阳理工学院课程设计(论文)93.3 硬件电路设计3.3.1 单片机时钟电路和复位电路我们所使用的单片机的内部自己
17、带有时钟电路,我们只需要在单片机片外通过 XTAL1 和 XTAL2 引脚接入晶振电路,这个晶振电路是由晶体振荡器和电容构成的,它是一个比较稳定和成熟的自激振荡器。晶体振荡器一般工作在1.212MHz 的频率之间,当然一般来说晶体振荡器的频率是越快越好,所以通常情况下都是选用 12MHz 的频率,这样可以有效的保证程序的运行速度,即是保证了单片机控制的实效性。我们平时使用的时候一般采用石英晶振作为定时控制元件,当然在我们不需要非常高精度的参考时钟时,也可以利用电感来代替晶振,有的时候我们还可以引入外部时钟脉冲信号。接在晶振上的电容虽然没有严格要求,但电容的大小会影响振荡器的稳定性和起振的快速性
18、。因此,通常起振电容选择在 1030pF 左右,在此次设计时钟电路时,晶振频率选用12MHz,电容选用 22pF,并且它们应尽可能地靠近芯片,以减小分布电容,保证振荡器振荡的稳定性。单片机的晶振电路如图 3-1 所示。洛阳理工学院课程设计(论文)10XTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32P1.01 P1.12P1.23 P1.34P1.45 P1.56P1.67 P1.78P3.0/RXD
19、 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51C122pF C222pFX112MHz图 3-1单片机晶振电路此次设计的复位电路采用按键电平复位,它通过复位(RST)端经电阻与+5V 电源实现,只要能保证复位信号高电平持续时间大于 2 个机器周期就可实现复位。这种按键电平复位又叫做手动复位,区别于一般
20、的上电自动复位,系统上电运行后,如果需要进行复位操作,需要按下复位按键。单片机的复位电路虽然简单,但是它的作用却非常重要,一个单片机系统是否能够正常运行,首先就是要检查它是否能够复位成功。此次设计的复位电路如图 3-2 所示。洛阳理工学院课程设计(论文)11C310uF R21kR38.2k图 3-2 单片机复位电路3.3.2 温度传感器模块温度采集电路主要指温度传感器 DS18B20 与单片机的接口电路。DS18B20可以采用两种方式供电,一种是采用外接电源供电方式,另一种是寄生电源供电方式。DS18B20 是单总线的,只有一条线和单片机串行连接,为了保证在有效的 DS18B20 时钟周期内
21、提供足够的电流,可以使用一个电阻来完成对总线电流的上拉。并且当 DS18B20 温度传感器处于写存储操作和进行温度 A/D 转换操作时,总线上就必须要有电流的上拉,电流上拉开启的时间最大为 10us。在使用寄生电源的供电方式时 VCC 端需要接地。由于单线总线制这种形式只有一根线,因此我们平常使用的发送接口需要是三态的。此次我们考虑到在实际应用中寄生电源的供电方式适应能力不强而且容易损坏,因此此处采用外接电源供电方式,I/O 口连接单片机的 P1.7 口,采用 4.7k 的上拉电阻以确保温度传输的准确。洛阳理工学院课程设计(论文)1240.0DQ2 VCC3GND1U2DS18B20R14.7
22、k图 3-3 温度传感器 DS18B20连接电路图3.3.3 按键模块为了输入温度时简单方便,本设计我们采用 3*4 型键盘输入。键盘从左到右分别为 09 的数字,可用于快速设定温度。此外,为了增加按键的功能性和实用性,我们新增加设计了最后一个按键为重置按键,其作用为清除我们之前所设定的温度并且关闭加热器,等待用户重新输入温度,达到重新设定的效果。按键电路如图 3-4 所示。洛阳理工学院课程设计(论文)13K0K1K2K3K4 K5 K6图 3-4 按键输入模块电路图3.3.4 显示模块显示电路我们采用的是两个一位 7 段共阴极数码管 LED,考虑到本设计占用的单片机端口不多,我们采用静态显示
23、的方法,由 P2 和 P1 口分别控制两个数码管的字符显示。其中 P2.0P2.6 口用于十位数字的显示,P1.0P1.6 口用于个位数字的显示,P2.7 口用于选通数码管,这种显示方式的最大优点是显示清晰,字符无任何跳动,软件设计简单。具体电路图如图 3-5 所示。洛阳理工学院课程设计(论文)14D1D2D3D4D5D6F0F1F2F3F4F5F6W1 W1D0图 3-5 显示模块电路图3.3.5 总线电路图系统的总电路图如图 3-7 所示。洛阳理工学院课程设计(论文)15D1D2D3D4D5D6F0F1F2F3F4F5F6W1 W1D0VDGR GRVDVCGRKAIGW1D6D5D4D3
24、D2D1D0F0F1F2F3F4F5F6K0K1K2K3 K4 K5 K6K0K1K2K3K4K5K6DQVCKAIGVCXTAL218XTAL119ALE30EA31PSEN29RST9P0./AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3./INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.
25、0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C5141.0DQ2VC3GND1U2DS18B20R14.7kC12pF C22pFX112MHzC310uFR21kR38.2kD1DIOE RL1RTE2405FD2LED-BLUE+380V+5VQ2PN图 3-7 系统总电路图洛阳理工学院课程设计(论文)16第四章 软件设计4.1 主程序流程图系统的软件部分由主程序流程图、按键流程图和显示流程图四部分组成。系统的主程序流程图如图 4-1,当有信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计
26、目的。洛阳理工学院课程设计(论文)17开 始初 始 化调 用 按 键 扫 描 子 程 序调 用 显 示 子 程序调 用 温 度 传 感 器 数 据 采 集 子 程 序比 较 按 键 设 定 温 度 值 和 实 际 温 度 值是 否 大 于 ?启 动 加 热 模 块关 闭 加 热 模 块是否图 4-1 主程序流程图4.2 按键子程序流程图按键模块主要功能是设置温度值,这个温度值是系统所需保持的温度值,由于按键按下后会有一定时间的抖动,需要延时后再判断按键是否按下,通常所取延时时间为 10ms。按键子程序流程图如图 4-2 所示。洛阳理工学院课程设计(论文)18开 始 键 盘 扫 描按 键 是 否
27、 按 下延 时 10ms去 抖 动键 盘 扫 描按 键 是 否 按 下获 取 键 值送 数 码 管 显 示返 回查 段 码是否否是图 4-2 按键子程序流程图洛阳理工学院课程设计(论文)194.3 温度采集子程序流程图温度传感器 DS18B20 为单总线的数据传输器件,因此使用单片机的一个端口 P1.7 对其进行初始化的设定和温度的采集工作。发温度转换开始命令后,当采用 12 位分辨率时转换时间约为 750us,因此延时需要在 750us 以上。温度采集子程序流程图如图 4-3 所示。洛阳理工学院课程设计(论文)20开 始初 始 化 DS18B20DS18B20存在 ?写 入 CCH命 令 跳
28、 转 ROM发 送 温 度 转 换 命 令 44H延 时 750us以 上初 始 化 DS18B20跳 过 ROM匹 配发 送 读 温 度 命 令 BEH读 取 温 度 值返 回否是图 4-3 温度采集子程序流程图洛阳理工学院课程设计(论文)21第五章 仿真与调试5.1 硬件调试硬件调试首先是检查有极性的元器件的极性是否接反,如果接反立即修改,防止元器件不能正常工作。然后检查连接电路是否有误,尤其注意电路是否有短接的地方,如果不是必需的短接,应立即修正,以防接通电源时烧坏元器件。如果电路连接线有明显错误,应该尽快修改,防止电路故障的发生。确认电路连接无误后,接通电源,按下按键观察 LED 数码
29、管是否正确显示相应的字符,最后在一定的温度下检查继电器能否正常工作。如果继电器不能正常工作,分析原因,用万用表检查继电器是否损坏,再次检查整个电路,直到找出原因。单片机应用系统的硬件和软件调试是交叉进行的,但通常是先排除样机中明显的硬件故障,尤其是电源故障,才能安全地和仿真器相连,进行综合调试。5.2 软件调试使用 Keil 对程序进行编写和调试首先需要打开软件,通过软件上方的工具栏“Project”创建新的工程“New uVision Project”,通过弹出的对话框键入新建工程的名称(不需要加后缀) ,然后选择我们所使用的单片机“Atmel”从型号中选取 AT89C51,然后选择“Sav
30、e” ,至此新工程创建完成。点击工具栏中的“File”选择“New File”然后就可以进行程序的编写了,程序编写完成后点击工具栏下的“Save”保存到任意位置,键入名称时需要在名称后面加后缀“.asm” (此为汇编语言编写程序的后缀,如果用 C 语言编写程序需要加后缀“.c” ) ,选择“保存” 。然后在工程窗口中右键点击“Source Group 1”选择 “Add Files to Group”找到刚才保存的程序,选择“Add” ,至此程序的编写部分已经完成。洛阳理工学院课程设计(论文)22点击“Target Options” ,在“Target”选项中设置晶振频率为“12.0MHz”
31、,在“Output”选项中勾选“Create HEX File”然后选择“OK” 。至此程序调试环境设置完毕。最后点击“Rebuild”进行程序的编译,程序下面的结果框内会显示程序编译结果,如果有错误和警告应根据提示修改程序,直至 0 错误。程序编译结果如图 5-2 所示。图 5-2程序调试结果洛阳理工学院课程设计(论文)23结 论本文分析设计了一个利用单片机根据采集和设定的温度来智能控制加热器开关的温度控制系统。通过本次设计,我更加深入的掌握了汇编语言的编写方法,学习了仿真软件 Proteus 的使用方法和步骤。在整个设计过程中,我通过查阅大量资料,更加深入的了解了单片机的使用方法及原理,掌
32、握了数字式温度传感器 DS18B20的基本原理,设计了实用的 3*4 键盘输入设备,也更加深刻的体会到了要带动一个整体系统的运行并不是一件简单的事情。其实写完了本篇论文,也仅仅只是对数字温度控制系统做出了一个简单的设计方案。数字温度控制系统可以利用在很多领域,例如在一些人不能直接进入的场所,利用单片机控制的数字温度传感器,可以设置并控制其中的温度和其他设备,当然还可以利用在温室中,这样就可以方便的控制温室中的温度,当温度超过所要求的温度时,自动的根据设定采取相应的措施。本课题只是单片机根据数字温度系统进行设备控制的一种设计方法。当然,此次设计作品还有很多不足,我们的设计环境相对于实际应用中的环
33、境来说会过于理想,有许多的实际问题需要解决。比如水箱内的温度会不均匀,需要多点测温系统解决此问题;在本论文中我们只是用到开关量控制,实际应用中会需要更为精确的控制方式,比如 PID 控制。洛阳理工学院课程设计(论文)24从这次的毕业设计当中,我意识到,在今后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中。学习单片机更是如此,程序只有在经常的写与读的过程中才能提高。我相信,通过以后的生活实例,我们会对单片机的现实应用考虑的更加周到。参考文献1 张毅刚.单片机原理及应用M.高等教育出版社.2004 年 1 月,第 1 版:2 阎石数字电子技术基础(第四版) 北京:高等教育出版社,19973 王恩荣MCS-51 单片机应用技术北京:化学工业出版社,20014 黄河,郭纪林单片机原理及应用大连:大连理工大学出版社,