1、1 目 录1 引言 .31.1 目的和意义 .31.2 研究概况及发展趋势 .31.3 本系统主要研究内容 .42. 总体方案论证与设计 .52.1 主控模块的选型和论证 .52.2 显示模块的选型和论证 .52.3 温度检测模块的选型和论证 .52.4 系统整体设计概述 .63. 总体方案论证与设计 .73.1 主控模块 .73.1.1 STC89C52 单片机主要特性 .73.1.2 STC89C52 单片机的中断系统 .103.1.3 单片机最小系统设计 .103.2 LCD 液晶显示器简介 .103.2.1 液晶原理介绍 .103.2.2 液晶模块简介 .113.2.3 液晶显示部分与
2、 STC89C52 的接口 .123.3 键盘模块设计 .123.4 蜂鸣器模块设计 .133.5 温度检测模块设计 .133.5.1DS18B20 简介 .133.5.2 温度传感器工作原理 .143.5.3 DS18B20 相关介绍 .153.5.4 DS18B20 使用中的注意事项 .163.6 加热和冷却模块设计 .164.系统软件设计 .174.1 主程序 .174.2 读出温度子程序 .174.3 温度转换命令子程序 .184.4 计算温度子程序 .194.5 显示数据刷新子程序 .194.6 1602 的液晶显示 .204.7 程序设计原理 .205.系统调试 .215.1 硬件
3、调试 .215.2 软件调试 .215.3 调试结果 .216.结论 .22附录 .24系统整体原理图 .24系统 PCB 图 .242 元件清单 .25系统源程序 .253 基于单片机的温度控制系统摘要:本文介绍了基于 STC89C52 单片机温度控制系统。系统硬件部分由单片机电路、温度采集电路、键盘电路、液晶显示电路、继电器控制电路等组成。软件从设计思路、软件系统框图出发,逐一分析各模块程序算法的实现,通过 C 语言编写出满足任务需求的程序。本系统采用数字式温度传感器 DS18B20 作为温度传感器,简易实用,方便拓展。单片机以此对温度进行有效检测与报警,并以此进行温度的控制。关键词:ST
4、C89C52,独立键盘,LCD 显示管,蜂鸣器。1 引言1.1 设计意义和目的温度控制无论是在工业生产中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使资源失去应有的作用,从而造成资源的巨大浪费。为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对温度进监测、显示、控制,使之达到工艺标准,满足需要。由于电子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现温度控制并提高控制的精确度不仅是可以达到的而且是容易实现的。其发展必将带来新一轮的工业化的革命和社会发展的飞跃。
5、目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机具有体积小、功耗低、编程灵活,控制简单、扩展功能强、微型化和使用方便等优点,结合不同类型的传感器,可实现诸多功能。用单片机可以构成形式多样的控制系统、数据采集系统。通过单片机使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。目前国内外各大电气公司,大的半导体厂商正在不断的开发、使用单片机,使其无论在控制能力,减小体积,降低成本,还是开发环境的改善等方面,都得到空前迅速的发展。本设计以 STC89C52 单片机系统进行温度采集与控制。温度信号由模拟温度传感器DS18B
6、20 采集输入 STC89C52,利用温度传感器采集到当前的温度,通过 STC89C52 单片机进行控制,最后通过液晶显示屏以串行口传送数据实现温度显示。1.2 本技术发展趋势国内现状:4 我国对于温度控制技术的研究较晚,始于 20世纪 80年代。我国工程技术人员在吸收发达国家温度控制技术的基础上,才掌握了温度室内微机控制技术,该技术仅限于对温度的单项环境因子的控制。温度控制设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差距。我国温度控制控制现状还远
7、远没有达到工厂化的程度,生产实际中仍然有许多问题困扰着我们,如软硬件资源不能共享和可靠性比较差。国外现状:国外对温度控制技术研究较早,始于 20世纪 70年代。先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制。80 年代末出现了分布式控制系统。目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。现在世界各国的温度控制技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方向发展。随着科学技术的飞速发展,带动社会生产的发展,自动控制系统在各个领域尤其是工业领域中有着及其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。随着单片机技术的飞速发展,通过单片机对
8、被控对象进行控制日益成为今后自动控制领域的一个重要发展方向,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数1.3 本系统功能介绍本系统设计制作一个基于单片机的温度控制系统。能实现以下几种功能:(1 )键盘扫描,通过单片机检测用户按下的是哪个按键并执行相应的功能。(2 )通过液晶显示模块实时显示当前的温度。(3)用户可以设置上限和下限温度,当高于上限温度时单片机通过控制继电器使冷却模块工作,当低于下限温度时单片机通过继电器使加热模块工作。5 2. 总体方案论证与设计根据所要实现的功能划分,系统一共需要以下几个模块:主控模块、显示模块、温度检测模块,以下就针对这几个模块的选型和论
9、证进行讨论。2.1 主控模块的选型和论证方案一:采用 MSP430 系列单片机,该单片机是 TI 公司 1996 年开始推向市场的一种 16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发。方案二采用 51 系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性能的 8 位单片机,32 个 IO 口,且 STC 系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。因此选用方案二中的 51 系列单片机作为主控芯片。2.2 显示模块的选型和论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光
10、二极管组成,对于显示文字比较合适,如采用在显示数字显得太浪费,且价格也相对较高,所以不用此种作为显示。方案二:采用 LED 数码管动态扫描, LED 数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用单片机口线少。但是由于数码管动态扫描需要借助 74LS164 移位寄存器进行移位,该芯片在电路调试时往往有很多障碍,所以不采用 LED 数码管作为显示。方案三:采用 LCD 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,对于本设计而言一个 LCD1602 的液晶屏即可,价格也还能接受,需要的借口线较多,但会给调试带来诸多方便。所以本设计
11、中方案三中的 LCD1602 液显示屏作为显示模块。6 2.3 温度检测模块的选型和论证方案一:AD590是美国 ANALOG DEVICES公司的单片集成两端感温电流源,其输出电流与绝对温度成比例。在 4 V至 30 V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为 1 A/K。片内薄膜电阻经过激光调整,可用于校准器件,使该器件在298.2K (25C)时输出 298.2 A电流。由于该芯片输出为模拟量还同时需要 AD转换器对其进行采集。因此不适用于本设计方案二:DS18B20 数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号
12、多种多样,有 LTM8877,LTM8874 等等。主要根据应用场合的不同而改变其外观。封装后的 DS18B20 可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。因此本设计采用方案二中的 DS18B20 芯片进行温度采集。2.4 系统整体设计概述根据以上设计需要,系统拟采用以下技术方案,系统的结构框图如下图所示。 主 控 模 块STC8952温 度 检 测 模 块DS18B20按 键 模 块 液 晶 显 示 模 块LCD1602报 警 模 块 加
13、热 模 块 冷 却 模 块图 2-1 系统结构框图系统由单片机 STC89C52、液晶显示模块 LCD1602、温度检测模块、按键模块、报警模块、加热模块、冷却模块所组成。系统能完成以下功能,系统采用 DS18B20对温度进行检测,并且能在 LCD1602上实时显示温度。用户可以通过按键设置上限和下限温度,7 当温度超过上限温度时,系统通过继电器使冷却器件导通工作,当温度低于下限温度时,系统通过继电器使加热器件工作。当温度在上限和下限之间时维持原状态。8 3. 总体方案论证与设计3.1 主控模块主控模块模块在整个系统中起着统筹的作用,需要检测键盘,温度传感器等各种参数,同时驱动液晶显示相关参数
14、,在这里我们选用了 51 系列单片机中的 STC89C52 单片机作为系统的主控芯片。51 系列单片机最初是由 Intel 公司开发设计的,但后来 Intel 公司把 51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip 、Atmel 等大公司。因此市面上出现了各式各样的均以 51 为内核的单片机。这些各大电子生产商推出的单片机都兼容 51 指令、并在 51 的基础上扩展一些功能而内部结构是与 51 一致的。STC89C52 有 40 个引脚,4 个 8 位并行 I/O 口,1 个全双工异步串行口,同时内含 5 个中断源,2 个优先级,2 个 16 位定时/计数器。 ST
15、C89C52 的存储器系统由 4K 的程序存储器(掩膜 ROM),和 128B 的数据存储器(RAM)组成。STC89C52 单片机的基本组成框图见图 3-1。时钟电路R O M / E P R O M / F l a s h 4 K BR A M 1 2 8 BS F R 2 1 个定时个 / 计数器 2C P U总线控制中断系统5 个中断源2 个优先级串行口全双工 1 个4 个并行口X T A L 2 X T A L 1R S TE AA L EP S E NP 0 P 1 P 2P 3V s sV c c图 3-1 STC89C52 单片机结构图 3.1.1 STC89C52 单片机主要
16、特性1. 一个 8 位的微处理器(CPU) 。2. 片内数据存储器 RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供 1K 的 RAM。3. 片内程序存储器 ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带 ROM/EPROM,如 8031,8032 ,80C31 等。目前单片机的发展趋势是将 RAM 和 ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的 89 系列单片机分别集成了9 16K、32K、64K Flash 存储器,可供用户根据需要选用。
17、4. 四个 8 位并行 IO 接口 P0P3,每个口既可以用作输入,也可以用作输出。5. 两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的 52 系列单片机都会提供 3 个 16 位定时器/ 计数器。6. 五个中断源的中断控制系统。现在新推出的单片机都不只 5 个中断源,例如 SST89E58RD 就有 9 个中断源。7. 一个全双工 UART(通用异步接收发送器)的串行 IO 口,用于实现单片机之间或单机与微机之间的串行通信。8. 片内振荡器和时钟产生电路,但石英晶体和微
18、调电容需要外接。最高允许振荡频率为 12MHz。SST89V58RD 最高允许振荡频率达 40MHz,因而大大的提高了指令的执行速度。 P1.024MS67CKRETXALVNU供图 3-2 STC89C52单片机管脚图部分引脚说明:1.时钟电路引脚 XTAL1 和 XTAL2:XTAL2(18 脚) :接外部晶体和微调电容的一端;片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。要检查振荡电路是否正常工作,可用示波器查看 XTAL2 端是否有脉冲信号输10 出。XTAL1(19 脚) :接外部晶体和微调电容的另一端;在片内它是
19、振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。2.控制信号引脚 RST,ALE,PSEN 和 EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源 Vcc 发生故障,降低到低电平规定值时,将 5V 电源自动两个机器周期(24 个时钟振荡周期 )的高电平时,就可以完成复位操作。 RST 引脚的第二功能是 VPD,即接入 RST 端,为 RAM 提供备用电源,以保证存储在 RAM 中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30 脚):地址锁存允许信号端。当 8051 上电正常工作后,ALE 引脚不断向外输
20、出正脉冲信号,此频率为振荡器频率 fOSC 的 1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低 8 位地址的控制信号。平时不访问片外存储器时,ALE 端也以振荡频率的 1/6 固定输出正脉冲,因而 ALE 信号可以用作对外输出时钟或定时信号。如果想确定 8051/8031 芯片的好坏,可用示波器查看 ALE 端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031 基本上是好的。ALE 端的负载驱动能力为 8 个 LS 型 TTL(低功耗甚高速 TTL)负载。此引脚的第二功能 PROG 在对片内带有 4KB EPROM 的 8751 编程写入(固化程序)时,作为编程脉冲输入端
21、。PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接 EPROM 的 OE 端( 见后面几章任何一个小系统硬件图) 。PSEN 端有效,即允许读出 EPROMROM 中的指令码。PSEN 端同样可驱动 8 个 LS 型 TTL 负载。要检查一个 8051/8031 小系统上电后 CPU 能否正常到 EPROMROM 中读取指令码,也可用示波器看 PSEN 端有无脉冲输出。如有则说明基本上工作正常。EA/Vpp(31 脚):外部程序存储器地址允许输入端 /固化编程电压输入端。当EA 引脚接高电平时,CPU 只访问片内 EPROM/ROM 并执行内部程序存储器中的指令,但当 PC(程序计数器) 的值超过 0FFFH(对 8751/8051 为 4K)时,将自动转去执行片外程序存储器内的程序。当输入信号 EA 引脚接低电平(接地)时,CPU 只访问外部 EPROM/ROM 并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内 ROM 的 8031 或 8032,需外扩 EPROM,此时必须将 EA 引脚接地。此引脚的第二功能是 Vpp 是对 8751 片内 EPROM 固化编程时,作为施加较高编程电压(一般 12V21V )的输入端。3.输入/ 输出端口 P0/P1/P2/P3: