基于51单片机的温度控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机的水温自动控制系统
0 引言
在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。
1 设计任务、要求和技术指标
1.1任务
设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。
1.2要求
(1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。
(2)当液位低于某一值时,停止加热。
(3)用AD转换器把采集到的模拟温度值送入单片机。
(4)无竞争-冒险,无抖动。
1.3技术指标
(1)温度显示误差不超过1℃。
(2)温度显示范围为0℃—99℃。
(3)程序部分用PID算法实现温度自动控制。
(4)检测信号为电压信号。
2 方案分析与论证
2.1主控系统分析与论证
根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。
2.2显示系统分析与论证
显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案:
方案一:采用静态显示的方案
采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。
方案二:采用动态显示的方案
由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。
由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。
图1 AT89C51引脚图
2.3 检测系统分析与论证
1 温度检测:有选用AD590和LM35D两种温度传感器的方案,但考虑到两者价格差距较大,而本系统中对温度要求的精度不很高,因而选用比较廉价LM35D。温度传感器采用的是NS公司生产的LM35D,他具有很高的工作精度和较宽的线性工作范围,他的输出电压与摄氏温度线性成比例,且无需外部校准或微调,可以提供±1/ 4 ℃的常用的室温精度。L M35的输出电压与摄氏温度的线形关系可用下面公式表示 ,0 ℃时输出为 0 V , 每升高 1 ℃ , 输出电压增加10 mV。其电源供应模式有单电源与正负双电源两种,其接法如图2与图3所示。正负双电源的供电模式可提供负温度的测量,单电源模式在25 ℃下电流约为50 mA ,非常省电。本系统采用的是单电源模式。
Vout=10mV/℃×T(℃)
2 液位检测:同样考虑到成本问题,选用自己做一个液位传感装置。
图2 单电源模式图3 双电源模式
2.4控制系统分析与论证
由于需要用大功率加热装置对水温进行调节,故采用带过零检测双向可控硅输出光电耦合器MOC3041构成后向控制电路。
3 系统原理框图
硬件组成框图如图4所示:主要由AT89C51单片机、温度信号采集和调理、AD转换、数码显示电路、温度控制等部分组成。
图4 硬件框图
电源开启后,可以显示出实时的温度,并且可以判断出此时的温度是否需要对水进行加热操作
4 硬件电路
4.1温度信号检测和调理电路
LM35D 采用单电源供电模式如图2将采集到的电压信号送入运放uA741进行放大处理,如图5。
图5 信号采集调理电路
4.2 显示电路
显示电路由两片74LS164和两个数码管构成,为了PCB 中作图的方便,故采用如图6的连接方式。
温度采集电 路 信号调理电 路
A/D 转 换电路
单 片 机 系 统
温度显 示 执行电 路
液位检测
图6 温度显示电路
时钟由单片机的P1.1提供,第一个数码管的数据由单片机的P1.0提供,第二个数码管的数据由第一个164的Q7提供。164的时序图如图7所示。
图7 74LS164的时序图
4.3 温度控制电路
温度控制电路由光电耦合器MOC3041和双向晶闸管BT137构成,硬件连接如图8。
图8 温度控制电路
4.4 AD转换电路
本部分电路由ADC0809和一些74系列芯片构成,其中74LS74用于对单片机的ALE信号进行分频作为0809的时钟,74LS373用做地址锁存实现单片机P0口的分时复用。该部分硬件电路如图9所示。
图9 AD转换电路
4.5主控系统电路
该系统由AT89C51构成,由5V电源供电,采用6Mhz的晶振。主控系统电路主要承担显示及对温度的PID控制的核心引用,各功能通过软件软件实现。图10为单片机的主控电路。
图10 单片机主控电路
4.6整体PCB图见附件A
5 软件部分
5.1主程序流程说明
主程序的任务主要是循环检测采集到的温度值,不断比较实现PID控制。流程图如下:
图11 主程序流程图
5.2各子程序模块流程
5.2.1显示部分
显示部分主要包括三个小模块:第一、原始数据的拆分;第二、待显示数据查表;第三、待显示数据的输出。数据分配表如图12,送待显示数据流程如图13,查表流程如图14
图13 待显示数据输出流程图14 查表程序流程
5.2.2中断程序部分
中断部分包括定时器中断(主要实现1秒刷新一次显示)和外部中断(检测液位。为防止抖动,设置一个标志位,进入中断后判断标志位,如果一秒钟内没有出中断,则响应,否则不响应),流程图分别如图15和图16。