课程设计报告
(嵌入式系统课程设计)
基于 51 单片机的温度控制系统设计
摘 要
温度是表征物体冷热程度的物理量,是工农业生产过程中一个很重要而普遍的参数。由于温
度测量的普遍性,温度传感器的数量在各种传感器中居首位。温度控制的发展引入单片机后,可
以降低对某些硬件电路的要求。基于单片机的温度控制系统,可以实现对温度的精确控制。
本文以温室为研究对象,以 AT89C51 单片机为核心所实现的温度控制系统具有自动完成数据
采集、数据处理、数据转换控制、键盘终端处理及显示的功能。当实际温度低于设定值,PTC 进
行加热,反之 PTC 就停止加热。实际温度超上限或者低下限时,系统自动报警。温度控制采用的
是双位控制,简单易行,在精度要求不是特别高的温室,可行度很高。最后对系统进行调试并在
PROTEUS 里仿真,结果表明该系统原理可行。
关键词:单片机;温度控制;DS18B20;温室
目 录
摘 要 .............................................................. - 1 -
1 绪论 ............................................................ - 1 -
2 硬件系统总体方案设计 ............................................ - 2 -
3 控制系统硬件设计 ................................................ - 3 -
3.1 单片机 .....................................................- 4 -
3.2 数字温度计 DS18B20 ......................................... - 6 -
3.3
4×4 键盘 .................................................. - 6 -
3.4 数码管 .....................................................- 7 -
3.5 光电耦合器 .................................................- 9 -
3.6 双向晶闸管 ................................................- 10 -
3.7
PTC 加热器 ................................................ - 12 -
3.8 反相器 7406 ............................................... - 13 -
3.9 双四输入与门 74LS21 ....................................... - 13 -
3.10 蜂鸣器 ...................................................- 13 -
4 控制系统软件设计 ............................................... - 14 -
4.1 主程序模块设计 ............................................- 14 -
4.2 温度采集模块程序设计 ......................................- 15 -
4.2.1 初始化时序 .......................................... - 15 -
4.2.2 写时序 .............................................. - 15 -
4.2.3 读时序 .............................................. - 15 -
4.2.4 读温度子程序流程图 ................................... - 17 -
4.3 温度设定模块程序设计 ......................................- 18 -
4.3.1 中断服务子程序 ...................................... - 18 -
4.3.2 键盘扫描子程序 ...................................... - 18 -
4.4 温度显示模块设计 ..........................................- 20 -
4.4.1 设定值显示子程序 .................................... - 20 -
4.4.2 实际值显示子程序 .................................... - 21 -
4.5 温度控制模块设计 ..........................................- 22 -
4.5.1 双位控制算法设计 .................................... - 22 -
4.5.2 温度控制子程序流程图 ................................ - 22 -
4.6 报警模块程序设计 ..........................................- 23 -
5 结果分析 ....................................................... - 23 -
5.1 键盘设定温度仿真 ..........................................- 23 -
5.2 温度采集仿真 ..............................................- 24 -
5.3 整体仿真 ..................................................- 25 -
6 总结 ........................................................... - 26 -
主要参考目录 ...................................................... - 26 -
附录 A .............................................................- 27 -
1 绪论
温度是表征物体冷热程度的物理量,是工农业生产过程中一个很重要而普遍的参
数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进
国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在
各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是
在不断增加丰富来满足生产生活中的需要。在单片机温度测量系统中的关键是测量温
度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。
温度控制采用单片机设计的全数字仪表,是常规仪表的的升级产品。温度控制的
发展引入单片机后,可以降低对某些硬件电路的要求,但依然需要重视测试电路本身
的重要性,尤其是直接获取被测信号的传感器部分,仍应给以充分的重视,有时提高
整台仪器的性能的关键仍然在于测试电路尤其是传感器的改进。现在传感器也正在受
着微电子技术的影响,不断发展变化。传感器正朝着小型、固态、多功能和集成化的
方向发展。
基于单片机的温度控制系统,可以实现对温度的精确控制,使得在某些场合下人
们对温度高低的要求得以实现。对人们的生产和生活影响巨大,比如,在我国的北方,
冬天温度极低,但引入温室大棚后,冬天的时候人们也能吃到新鲜的蔬菜;钢铁厂里
炼铁,对温度的要求更高,这就使得温度控制变得极为有意义,而在我们的日常生活
中,空调让冬天不冷夏天不热,确实让我们感受到温度控制对我们生活质量的提高也
有着极大的作用。总之,现代工业设计,工程建设及日常生活中温度控制都起着重要
的作用。
本课程设计是基于单片机的温度控制系统的设计,控制对象为温室,主要目标是
实现温度的设定值显示、实际值实时测量及显示,温度超上限和低下限危险报警。单
片机连接的温度调节装置由软件与硬件电路配合来实现温度实时控制,显示可由软件
控制并在数码管中显示。比较采集到温度与设定值及上下限的大小,然后做出相应的
反应,控制执行机构是否降温或升温,判断警报与否。
- 1 -
2 硬件系统总体方案设计
方案选用 DS18B20 芯片进行温度采集及模拟量与数字量之间的转换,并直接输出
数字量,无需信号放大,且只占用一根口线,然后将其送数码管显示。4×4 矩阵式键
盘,首先要对其进行键盘扫描,判断是否有键按下,如有键按下,要判断是那个键按
下,确定键值,然后对其进行输入,把最后设定的温度值送给数码管进行显示。如果
对一个温度值已经设定完毕后,无需再按任何键即有效,如果温度值设定得不合理,
可对温度进行重新设定,温度的上下限可由软件编程设定,这样就完成了对温度的总
体设置。对于数码管显示模块,采用了动态显示的方法,在程序的设计中也相应的采
用动态显示方法对其进行编写。首先把设定的(或采集到)数据的十进制数进行字节
拆分,分别求出要显示个位数、十位数、百位数(显示实际温度时,还要求出十分位),
然后将其送至数码管显示。显示设定值还是实际值,可由按键进行切换。对于温度控
制模块,首先是把采集的数据和设定的温度上下限进行比较,如低于下限值或高于上
限值,蜂鸣器警报,再把实际温度和设定的温度比较,决定加热与否以及加热时间的
控制。 单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控
制,不需要向外扩展存储器,可使系统整体结构更为简单。信号的传递路线短,可以
提高系统精度。
图 1 方案框图
此方案以单片机为该系统的控制核心。温度的检测部分使用了 DS18B20、AT89C51
单片机及数码管的硬件电路完成对室温的实时检测与显示,通过 4×4 键盘设定温室
的温度,比较温度的设定值与实测值的大小,然后由单片机发出信号,控制光电耦合
器和双向可控硅导通与否,由此控制 PTC 加热器的通断,实现对温室温度的恒温控制。
因为温室的温度波动比较小,故不必采用软件滤波对温度进行平滑控制。报警部分采
- 2 -
用一个 3V 的有源蜂鸣器,发出危险警报。此单片机温度控制系统具有微型化、低功
耗、高性能、易配微处理器等优点,可以进行多点测温,DS18B20 可以直接将温度转
化成串行数字信号供微机处理,而且每片 DS18B20 都有唯一的产品号,可以一并存入
其 ROM 中,以便在构成大型温度测控系统时在单线上连接多个 DS18B20 芯片,当然一
个 I/O 口能挂接多少片 DS18B20,因单片机的不同而异。从 DS18B20 读出或写入
DS18B20 信息仅需要一根口线,其读写及温度变换功率来源于数据总线,该总线本身
也可以向所连接的 DS18B20 供电,不需要外部电源,同时 DS18B20 能提供 9-12 位温
度读数,出厂默认是 12 位,无需任何外围硬件即可方便地构成温度检测系统。
单片机具体实现的功能如下:
1、连续测量温室的温度值,控制数码管显示温室的实际温度;
2、控制键盘设定温室的温度值,并用数码管显示。设定范围为室温至 125℃;
实现温室的恒温控制,比如设定值为 50℃,则应使实际值与 50℃相接近。
3 控制系统硬件设计
基于上章的分析,我们设计出如下原理图。本章主要介绍介绍控制系统中所使用
到的各种元器件。
图 2 系统原理图
- 3 -
3.1 单片机
将运算器、控制器、存储器和各种输入/输出接口等计算机的主要部件集成在一
块芯片上,就能得到一个单芯片的微型计算机。它虽然只是一个芯片,但在组成和功
能上已经具有了计算机系统的特点,因此称之为单片微型计算机,简称单片机。因为
其体积小、功耗低、价格低廉、抗干扰能力强且可靠性高,适合应用于工业过程控制、
智能仪器仪表和测控系统的前端装置。本次课程设计所采用的是 AT89C51。以下简述
本次课程设计所用到的与其相关的知识。
1、主要特性:
(1)与 MCS-51 兼容
(2)4K 字节可编程闪烁存储器,寿命为 1000 次写/擦循环,数据可保留时间为
10 年
(3)全静态工作:0Hz-24Hz
(4)三级程序存储器锁定
(5)128X8 位内部 RAM
(6)4 个 I/O 口,共 32 根可编程口线
(7)两个 16 位定时器/计数器
(8)5 个中断源
(9)可编程串行通道
(10)低功耗的闲置和掉电模式
(11)片内振荡器和时钟电路
2、管脚说明:
AT89C51 的管脚布置如图 3 所示
VCC:供电电压。 GND:接地。
P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管
脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被
定义为数据/地址的低八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行
校验时,P0 输出原码,此时 P0 外部必须被拉高。
P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL
门电流。P1 口管脚写入后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电
平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为
低八位地址接收。
P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL
门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作
为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口
当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高
八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进
行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高
八位地址信号和控制信号。
P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。
当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部
下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51
的一些特殊功能口,如下所示:P3 口管脚备选功能
- 4 -