问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于51单片机的上下限可调的数字温度控制系统

创作时间:
作者:
@小白创作中心

基于51单片机的上下限可调的数字温度控制系统

引用
CSDN
1.
https://blog.csdn.net/fddnihao/article/details/122178586

本文介绍了一种基于51单片机的数字温度控制系统的设计与实现。该系统能够实时显示环境温度,并在超温限情况下报警提示和进行相应的温度控制。上下限温度可以人工调节,并能通过串口显示在pc机上。测温范围0~100℃,误差0.1℃以内。

作品功能及总体方案

功能描述

本设计设计并制作了数字温度显示控制系统。主要应用了STC89C52单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识。整个系统由单片机最小系统、DS18B20数字温度传感器、1602液晶以及串口模块等部件组成。本数字温度控制系统属于多功能温度计,功能较强,可以设置上下限报警温度,且测量准确、误差小,并能通过串口实时显示在PC机上。当测量温度超过设定的温度上下限时,启动蜂鸣器报警,同时温度控制部分作出相应动作,加热或者降温。本设计采用三个不同颜色LED灯的亮灭来代替实际的温控部分,红灯模拟加热,黄灯模拟正常工作,绿灯模拟制冷。

系统组成及工作过程

系统由STC89C52单片机主控,通过晶振时钟模块、复位电路模块、按键模块、液晶显示模块、报警控制模块、串口通信模块以及传感器模块组成。系统通过DS18B20获取温度经过处理后,显示在液晶上,通过按键调整上下限温度,超限进行相应的报警和控制,通过串口通信模块显示在PC上。


图1 STC89C52单片机


图2 DS18B20芯片封装结构

硬件设计

单片机最小系统设计

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K在线系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。鉴于STC89C52的价格低廉,方便易用,资料丰富,故选择该单片机作为主控芯片。

晶振电路,STC89C52的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。 本设计采用片内时钟,用外部晶振产生12MHz的时钟信号。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。

复位电路采用简单的上电复位方式,电容在上接高电平,电阻在下接地,中间为RST。这种复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作。

温度检测模块电路设计

温度传感器的种类众多,在应用与高精度、高可靠性的场合时 DALLAS(达拉斯)公司生产的 DS18B20 温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得 DS18B20 更受欢迎。DS18B20 的主要特征:全数字温度转换及输出;检测温度范围为–55°C~+125°C;内置 EEPROM,限温报警功能;独特的单线接口仅需要一个端口引脚进行通信;这些特征完全符合我们的设计需求。

DS18B20它有64 位ROM 的结构开始8 位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最后8 位是前面56位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。温度报警触发器TH 和TL,可通过软件写入户报警上下限。

另外,由于DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20 的各种操作按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM 功能命令→发存储器操作命令→处理数据。

独立键盘模块

独立式按键是指直接用I/O线构成的单个按键电路,每个独立式按键占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态,其结构简单,但I/O口线浪费有些大。由于本设计所控制的电器数目较少,所以不用外接扩充键盘,直接使用单片机上的接口,直接使用3个点触式开关即可。

独立式按键配置灵活,软件结构简单,其电路原理图如下:

液晶显示模块

液晶是一种高分子材料,因为其特殊的物理、化学、光学特性,20世纪中叶开始广泛应用在轻薄型显示器上。液晶显示器的主要原理是以电流刺激液晶分子产生点、线、面并配合背光灯管构成画面。液晶体积小,功耗低,显示操作方便。常见的有1602、12232、12864等,本设计采用的是有两行每行显示16个字符的lcd1602。

本实验采用的1602液晶为5V电压驱动,带背光,内置有128个字符的ASCII字符集字库,只有并行接口,无串行接口。

1602LCD主要技术参数:
显示容量:16×2个字符
芯片工作电压:4.5—5.5V
工作电流:2.0mA(5.0V)
模块最佳工作电压:5.0V
字符尺寸:2.95×4.35(W×H)mm

报警控制模块

本设计采用三个不同颜色LED灯的亮灭来代替实际的温控部分,红灯模拟加热,黄灯模拟正常工作,绿灯模拟制冷。用蜂鸣器的不同频率的声音来模拟高温报警和低温报警,实现报警部分。报警控制模块。

串口通信模块

在实现单片机与PC机之间通信或单片机与单片机之间远程距离通信时通常采用标准串行总线通讯接口。比如RS-232C、RS-422、RS485等。在这些串行总线接口标准中,是在异步串行通信中应用最广的标准总线,它实用于短距离或带调制解调器的通信场合。本设计采用RS-232标准串行总线接口。

当51单片机与PC机通过RS-232标准总线串行通信时,由于RS-232信号电平与51单片机信号电平不一致,因此,必须进行信号电平转换。其常用的方法有两种,一种是采用运算放大器、晶体管、光电隔离器等器件组成的电路来实现,另一种是采用专门集成芯片来实现。下面以MAX232专门集成芯片为例来介绍接口电路的实现。

是由芯片MAX232实现51单片机与PC机串行通信的典型接线图。图中外接电解电容C4,C5,C6,C7用于电源电压变换,提高抗干扰能力,它们可以取相同数值电容0.1uF。选择任一组电平转换电路实行串行通信,如图中选T1IN,R1OUT分别与51单片机的TXD,RXD相连,T1OUT,R1IN分别与PC机中RS232接口的RXD,TXD相连,这种发送与接收的对应关系不能连错,否则不能正常工作。

软件设计

软件总体设计

温度模块程序设计

先编写初始化复位子函数,然后引用该子函数进行复位,复位→忽略ROM匹配(0xcc)→温度转换(0x44)→延时→复位→忽略ROM匹配→读指令→分别读取温度两个字节。

液晶显示模块程序设计

按键检测流程图

串口通信上机位软件设计

本设计采用VB6.0(企业版)调用MSComm控件接收数据、处理数据,设置串口为7,波特率为2400,调用TextBox控件显示数据,用Label控件显示一些标签文字,用shape控件画三个不同颜色的圆代表不同状态,最后生成exe可执行文件。完成后运行上机位软件界面如下图所示。

实验及结果

温度采集与显示报警

首先接上电源,插上串口,打开开关。温度介于最低和最高之间时,液晶显示如图所示,黄灯点亮,无蜂鸣器报警。温度低于最低温度时,液晶显示如图所示,红灯点亮,蜂鸣器以长“嘀”声报警。温度高于最高温度时,液晶显示如图所示,绿灯点亮,蜂鸣器以短“嘀”声报警,温度低于0度或超出99.9度时,液晶显示如图所示,无灯亮,无蜂鸣器报警。

温度报警上下限调节

为了便于测试,程序设定温度上限默认值为30℃,温度下限默认值25℃,按一下“设置”键,温度开始设定最高温度,液晶显示如图所示,此时可以通过按“增加”或“减小”键来设置上限。按两下“设置”键,温度开始设置最低温度,液晶显示如图所示,此时可以通过按“增加”或“减小”键来设置下限。按三下“设置”键,回到正常显示。

串口通信显示

设置好波特率和串口号,运行上机位软件,打开单片机电源开关,上机位显示界面如图所示,上机位软件利于操作人员在室内电脑上监控温度变化,可以拓展到多个节点采集温度的情况。

实物照片


硬件电路图

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号