1、 目 录 摘 要 .I Abstract . II 1 绪论 . 1 1.1 设计目的及意义 . 1 1.2 研究内容 . 2 1.3 设计方案 . 2 1.4 方案论 证 . 3 2 硬件电路 . 5 2.1 单片机及最小系统 . 5 2.2 显示电路设计 . 6 2.3 键盘检测电路 . 8 2.4 温度检测电路 . 9 2.5 输出电路 . 15 2.6 串行通信电路 . 17 2.7 总电路图 . 19 3 程序设计 . 20 3.1 总程序 . 20 3.2 温度设定和显示程序 . 21 3.3 温度获取程序 . 23 3.4 基于 PID 的温控程序设计 . 26 3.5 串行通信
2、 . 30 4 系统调试及仿真 . 32 4.1 仿真环境 . 32 4.2 系统电路仿真 . 33 4.3 Simulink 仿真 . 37 5.总结与展望 . 43 5.1 主要工作内容 . 43 5.2 工作小结 . 43 5.3 待解决的问题及未来研究方向 . 44 致 谢 . 错误 !未定义书签。 I 摘 要 温度控制是工业生产和日常生活中的一个很重要的环节,能够实现自动检测和控制是智能化温度控制 系统 的 基本要求。但是,温度本身的惯性特性导致被控制对象的滞后性大,这是我们的在控制过程中面的难题。传统的温度控制系统已经不能满足我们的需求 ,所以我们必须要找出解决的方案。 本文 设计
3、选取恒温箱为研究对象,并运用 数字传感技术 单片机技术和 PID控制算法结合起来,来实现对温度的高精度的控制 ,本系统 以 C51 单片机为核心, 采用 DS18B20 数字温度传感器 采集环境温度 ,将采集的温度数据显示在数码管 上,采集到环境温度的同时使用单片机内部的 PID算法程序对加热电路实施控制, 这是因为 PID控制应用广泛,功能易实现 ,能够根据温度误差 的反馈 来调整系统的输出 。 并且在 Protues和 matlab 对硬件电路和 PID控制进行了仿真。 这次设计的恒温控制系统具有操作简单、适用范围广、成本小的特点,能够根据需要实现度的温度对环境进行自动调节与控制。所以这设
4、计在实现温度的智能控制方面具有非常重要现实意义。 关键词 : 51单片机,温度控制 PID控制 II Abstract Temperature control is a very important aspect in industrial production and daily life and that achieving automatically detect and control is the basic requirement for intelligent temperature control system. However, the temperature itself
5、is controlled inertial characteristics lead lag large objects, this is what we faces in the control process problems. The traditional temperature control system can not meet our needs, so we have to find solutions. In this design incubator is the selected object for the study, and we combined digita
6、l technology , sensor technology of SCM and PID controlling algorithm to achieve high-precision control of temperature, the system C51 microcontroller as the core, Then the system use the digital temperature sensor DS18B20 to achieve the acquisition the temperature of environment , the collected tem
7、perature data displayed on the digitron, collecting the ambient temperature while using a PID algorithm microcontroller circuit embodiment of the heating control, which is widely used because the PID control, the function is easy to realize, according to the temperature error feedback adjusting the
8、system output. And in the Protues and matlab hardware circuit and PID control simulation. The design of the temperature control system is simple, wide application, the cost of small features, according to the degree necessary to achieve the environmental temperature automatically adjust and control.
9、 So this design in the realization of intelligent temperature control has a very important practical significance. Keywords: 51 MCU, temperature control, PID control 1 1 绪论 1.1 设计目的及意义 在工业生产及我们平常的生活中对于温度高度自动化控制的需求越来越大 。许多传统的 制造、农业生产以及当前的一些生活中对温度需求的场合都要求 实现温度数据的测量与控制。随着 工业技术的高速发展,有更多的工作 生产环节和日常生活场合 对
10、温度控制的精 确度, 稳定性 以及可靠性等提出了了更高 的需求。传统的温度 控制器控制精度和可靠性 已经不能满足对温度要求更为精确 的现代化社会 。 温度 的 控制 控制 中,温度被控对象特性(惯性、滞后、非线性 ) 影响着温度控制系统的效果,使得控制性能难以提高,尤其在工业和农业生产 过程其温度控制的好坏直接关系到 产品的质量 的好坏,在此情况下 设计 出 一种能达到 符合 理想 结果的温度控制系统是非常有重要 性 的。 我们这次 的 温度控制系统的设计 正是 基于此 情况 而设计,针对一些对温度精度需求较高的场合 ,为达到对其温度的良好控制,从实用的角度以 C51 为核心设计一套温度智能控
11、制系统。 本 系统 将 以 C51 单片机为核心 部件,构建一个集温度的采集、处理、显示、控制为一体化 的闭环控制系统。利用单片机 的外围扩展电路 采集环境温度值,以数字量的形式存储和显示, 它既能单独 作为一种 控制 设备对温室温 度进行高精度的控制,对控制对象发出各种控制命令,并能实时 的显示当前温度值, 自由 设定目标控制 的温度值。同时,也可以作为数据采集装置,为上位机进行记录和运算 提供数据来源。 该智能温度控制系统功耗低较, 系统 简单运行结果可靠并且经济实用。能利用最少的资源对环境温度进行高精度的测量,性能可靠、操作简 便, 它能自动减小误差 。这种 算法通过软件编程来完成, 同
12、时 可以的获的准确可靠的结果,在实际的使用中能达到理想 的效果。 2 1.2 研究内容 本论文 叙述了基于 51 单片机的智能温度控制系统的设计过程 , 当中 运用数字传感技术、 基于 单片机 的自动 控制 。我们 以 C51 为 cpu,设计 出了一套能实现封闭环境内 的温 度实时检测与控制的恒温控制系统。该系统运用数字温度传感器 获取 环境温度,并通过程序设计来设定温度与设 定的 值有偏差时 采取 必要措施 控制输出设备(加热器或冷凝器) 调节 环境温度,使环境内的温度维持在预设的温度的偏差 内, 其中要能满足生产或者日用需求,该 系统在硬件设计上主要是通过传感器对温度进行检测 。单片机接
13、收信息后进行 运算处理,通过与预设 值的比较输出高低电平来控制加热电路的工作与停止。 温度采集电路核心部件是 DS18B20 温度传感器。它 是美国 DALLAS 半导体公司推出的一种改进型智能温度传感器,与传统的 热敏电阻 等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 9 12位的数字值读数方式。 其硬件设计中最为核心的器件是单片机 C51,它通过外部键盘实现对所需温度参数大小设定的输入 ,另一方面,将 DS18B20 采集到的数字温度数据经单片机 程序的运算 得到相应的温度值,送到 LED 显示器,以数字 直观 形式显示测量的温度,并且 单片机通过 I/O 口
14、 对加热电路发出控制指令 。 整个系统的软件编程就是通过 C 语言对单片机 C51 实现其控制功能 1.3 设计 方案 本次设计的对象为一个小型的恒温箱 温度控制系统结构 , 温度显示误差不超过 0.5 在能够自由设定温度参数 温度显示范围为 0-99 程序部分用 PID算法实现温度的自动控制 系统的温度抖动尽可能小 为了满足设计的需求, 本次设计 方案使用了 C51 单片机作为控制处理器 ,数字 温度传感器 DS18B20 为温度测量元 件,采用多个温度传感器对各点温度进行3 检测,通过 键盘模块对预定温度进行设置, 显示电路采用 LCD模块,使用 继电器 三极管为中心组成的 控制电路。 图
15、 1-1 温度控制 系统方案框图 系统开始工作时,通过 DS18B20 获取当前环境内的温度并且在屏幕上显示, 当温度设定定好后,单片机便开始执行温度控制程序命令将当前温度信息和设定好的温度进行比较和处理,单片机根据处理的结果通过 I/O 输出来控制继电器的动作来达到对外部加热电路的控制,主要 根据温度差 控 来 制电路工 作时间的占空比从而来调节环境内内部的温度。当温度达到预设值时 I/O 口便输出低电平,使得外部电路停止工作。 这就是本系统的主要设计方案 和工作原理。 1.4 方案论证 如果 采用模拟温度传感器,转换 得到的温度 结果需要经过运算放大器和A/D 转换器传送给单片机。模拟原件
16、的 控制 原理 虽然简单,但电路复杂,不容C51 单片机 DS18B20 温度传感器 键盘电路 加热电路 继电器 数码管 /液晶 显示电路 串口通信 4 易实现对多点温度进行测量和监控。由于采用了多个分 立元件和模数转换器,容易出现误差,测量的 准确 性难达标 ,所以 用数字 温度传感器 DS18B20 进行替换,它直接输出的是数字信号,高精度 ,电路 结构非常 简单,只需要模拟DS18B20 的读写时序,编写程序匹配 DS18B20 的协议读取转换的温度。 这次我使用的方案硬件电路非常简单,但是程序设计的复杂度高了点,同时 课外对 DS18B20、数码管或液晶显示、键盘控制的程序有所了解,之
17、前在 网上 和书上看到过此类程序程序设计,并且我曾 经使用 过 开发工具 Keil 4 ,在keil 中用 C 语言进行过单片机的 程序设计, 并且 用仿真软件对系统进行了仿真,达到了预期的结果。由此可见,该方案完成具有可行性,体现了技 术的先进性,经济上也没有任何问题。综上所述,本课题的 系统进行设计 是可行的 。 在实际研究过程中 ,我 做一点点的修改 ,主要以单点测温为主研究,因为其测温原理基本一样,我们只有研究通单点测温即可。其次是液晶显示我们也做了进一步修给,为了达到减少成本的要求,我们选择用 LED 数码显示管代替液晶显示器。 5 2 硬件电路 2.1 单片机 及最小系统 本次设计
18、题目是基于 C51 的温度控制系统, 我在这里使用的是 与 C51 同一系列的 STC89C52。 STC89C52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash存储 器 。 STC89C52 使用经典的 MCS-51 内核,但做了很多的改进使得芯片具有传统 51单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k 字节 Flash, 512字节 RAM, 32 位 I/O 口线,看门狗定时器,内置
19、 4KB EEPROM, MAX810 复位电路, 3个 16 位定时器 /计数器, 4个外部中断,一个 7向量 4 级中断结构(兼容传统 51 的 5 向量 2 级中断结构),全双工串行口。 其基本功能与 C51 差不相同。 图 2-1 C52 单片机 6 STC89C52 有 8KB片上可编程速闪存储器,根据设计要求基本能够满足,因此不在外扩 EPROM作为程序存储器,同样 STC89C52 内部已集成了 256B的RAM,而系统运行中需要存放的中间变量只有给定的温度、实测温度等中间变量,因而 STC89C52 的片内 RAM已经满足存放要求,可以不必再扩充外部RAM。 单片机最小系统包括最小系统包括一片 STC89C52RC , 晶振电路与复位电路,其原理图如下 图 2-2 最小系统 2.2 显示电路设计 显示电路的显示信号由 P0口输出。 由六个数码管轮流点亮来显示当前系统所获得的数据。 7 显示电路包括六个八段共阴极数码,用于显示温度 及占空比 因为数码管进行动态扫描显示,需要通过位选与段选来进行时分控制 ,所以还有两片74HC573 八位锁存器,用来锁存段选与位选信号 要使显示电路能正常工作还需要给 P0口加上 10K 的上 拉电阻。 图中 U1 为段选锁存, U2 为位选锁存。 显示电路: 图 2-3 八 段 显示 数码管 图 2-4 74HC573 锁存器