单片机温度控制系统上下限报警器文档格式.docx
- 文档编号:21806601
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:24
- 大小:389.60KB
单片机温度控制系统上下限报警器文档格式.docx
《单片机温度控制系统上下限报警器文档格式.docx》由会员分享,可在线阅读,更多相关《单片机温度控制系统上下限报警器文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
AT89S52MCU;
Sensor
第一章引言
温度报警器不仅仅是作为预防火灾以及电路故障的手段,作为一个单片机系统,在现实生活中的应用也非常普遍。
它有的优势是把温度转换、A/D转换和数据的串行通讯集中为一体,而且它的体积小巧,很便于构成多点测温系统。
在实践应用中起到了很大的作用,具有较强的实用性。
本设计是一种基于AT89S52单片机的温度上下限报警器。
1.1选题的背景与意义
最新技术的不断发展与应用,近几年来单片机发展十分迅猛,一个以微型计算机机应用为主的新技术革命浪潮正在冉冉兴起。
老旧的温度采集方法不仅费时费力,而且精度低,单片机的出现使得温度的采集和数据之间处理问题能够得到非常好的解决。
本次设计采用AT89A52单片机为核心辅助DS18B20温度传感器,显示电路,输出控制电路,故障报警提示电路等组成。
单片机可将温度传感器检测到的温度模拟量转化成数字量,显示于1602显示器上。
从而达到对温度的灵活控制。
在工业科技日益发展的今天,温度控制系统的运通大大的简化了温度测量的步骤,减少了在人力物力上的使用。
它小巧轻便的外形,简易方便的操作都被极广泛的运用到了生产和生活之中。
1.2温度控制器的研究现状及发展
温度控制是工业生产控制的重要组成部分,而且温度测量又是相当重要的一个环节。
单片机的智能化温度报警系统的设计是以单片机为中心,对采集到的温度数据进行收集处理,并实现温度出现问题的报警和上下限调节的目的。
AT89S52单片机是美国ATMEL公司生产的低电压,低价格和高性能CMOS8位单片机,片内包含8K字节8K字节的在系统可编程闪存随机存取数据和256字节的内存(RAM)设备的公司,开发的高密度,非易失存储生产加工技术,兼容标准MCS-51指令系统在正常情况下,内置通用8的中央处理单元(CPU)和一块闪存存储单元,功能很强大。
第二章硬件电路设计
2.1AT89S52简介
AT89S52是一种低功耗,高性能CMOS8位微控制器,具有8K在系统可编程的闪存。
使用Atmel的高密度非易失性存储器技术制造,完全兼容与工业80C51产品指令和引脚。
片上Flash允许程序存储器在系统可编程,也适用于过去的编程。
在芯片上,与8位CPU和在系统可编程闪存灵巧,AT89S52提供高灵活的解决方法,高效率的为许多嵌入式控制应用。
AT89S52具有标准功能:
8K字节的闪存,256字节的RAM,32个I/O线,看门狗定时器,2个数据指针,三个16定时器/计数器,一个6向量2级中断结构,一个全双工串行端口,晶体振荡器和时钟电路芯片。
此外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选的节电模式。
在空闲模式下,CPU停止工作了,RAM,定时器/计数器,串行口中断,继续工作的许可证。
掉电保护模式,RAM的内容被保存,已被冻结,禁用所有其他芯片功能,直到下一个中断或硬件复位。
AT89S52单片机引脚结构如图2-1所示。
图2-1AT89S52的引脚结构
2.2AT89S52的引脚说明
(1)主电源引脚(2根)[5]
VCC:
接5V直流电源
GND:
接地线
(2)外接晶振引脚(2根)
XTAL1:
单片机片内振荡电路和时钟内部发生电路的输入端
XTAL2:
单片机片内振荡电路的输出端
(3)控制引脚(4根)
RST/VPP:
复位引脚
ALE/PROG:
单片机片内地址锁存允控制信号
PSEN:
单片机片内外部存储器读选通信号
EA/VPP:
单片机片内程序存储器的内外部选通
(4)可编程的输入/输出工作引脚共(32根)
AT89S52共有4组8位的可编程的I/O口,P0、P1、P2、P3口,每个口有8个工作引脚,一共32个。
P0端口(P0.0~P0.7):
当外部有扩展存储器的时候,P0口被当做数据总线和地址总线,当外部没有扩展存储器,则被当做一般的I/O口使用,不过其内部没有上拉电阻,只有在外部接上拉电阻后才能作为输入或者输出。
P1端口(P1.0~P1.7):
P1口内部带有上拉电阻,只是被当做I/O口来使用。
P2端口(P2.0~P2.7):
当外部有扩展存储器的时候,被当做地址总线来使用。
不过它也能作为一般的I/O口使用,其内部具有上拉电阻。
P3端口(P3.0~P3.7):
P3端口一般可以用作I/O口,其内部具有上拉电阻。
不过它还有一些特殊的用处,是由特殊的寄存器设定的。
2.4复位电路
单片机复位电方式分为两种,一种是上电的自动复位,另一种是手动按键来复位。
上电复位是由外部设置的复位电路中的电容充电完成的,这样一来,电源Vcc的上升时间在1毫秒之内,它就可以自动实现上电复位,接通电源就初始化了系统复位。
手动按键复位方式有脉冲按键复位和电平按键复位两种方式。
电平按键复位时让Vcc电源经过电阻与复位段连接接完成的。
脉冲按键复位由复位电路的RC网络产生的正脉冲经过复位端来实现的[2]。
时钟电路工作后,给RST管脚加上2个机器周期的高电平,是单片机内部初始复位。
复位电路图如图2-2所示。
图2-2复位电路
2.5振荡电路
本次温度控制报警器设计所选用的晶体振荡器频率为12Mhz,所选用电容大小为30pF[4]。
如图2-3所示。
通过计算可得单片机的工作周期为:
(1÷
12M)×
12=1us。
图2-3振荡电路图
第三章基本结构模块
3.1温度传感器的选择
3.1.1温度传感器DS18B20的特点及选择原因
DS18B20是一个增强的单总线数字温度传感器DS1820的美国达拉斯公司推出后,转换率,转换,传输距离,时间分辨率比以前大大提高了产品,带来更多的方便,更多的用户满意的结果。
达拉斯最新的单线数字温度传感器DS18B20是一个新的“一线器件”型,体积更小,更适合多种场合,和电压应用更广泛,更经济。
数字温度传感器DS18B20温度传感器达拉斯半导体公司是第一个支持“一线总线”接口的世界。
温度测量范围是从55到125摄氏度,可编程的9位到12位的转换精度,测量分辨率可达0.0625摄氏度,分辨率设置参数和用户设置存储在EEPROM报警温度,掉电后保持。
16位数字量由温度符号扩展串行输出测量;
工作电源不仅可以在远端的介绍,也可以由寄生功率产生;
多个DS18B20可以并联3或2根电线,CPU只需要一个端口线可以和许多DS18B20通信,占用微处理器口不,可以节省大量的铅和逻辑电路。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20的内部组织,主要由四个小部分:
64光刻ROM,温度传感器,非挥发温度报警触发器TH和TL,配置寄存器。
DQ作为数据输入/输出引脚。
开漏单总线接口引脚。
当使用寄生电源,也可以为设备提供电源;
接地信号;
VDD的VDD引脚是可选的。
在寄生电源工作时,此引脚一定要接地。
在硬件上,有两种方式连接到DS18B20和单片机,与外部电源的VCC,GND地球,I/O和单片机的I/O线;
另一种是寄生电源供电,使用UDD,接地接地,I/O是与单片机连接I/O。
无论是内部还是外部寄生电源,I/O口线要接5KΩ左右的上拉电阻.
DS18B20的性能特点如下:
特别的单线接口制作,使得DS18B20在与微型处理器连接时只需要一条口线就可实现微处理器与DS18B20的双向通讯。
DS18B20支持多种组网功能,多个DS18B20可以并联三在线网络,实现多点温度测量。
内部结构如图3-1
图3-1工作原理图
3.1.2DS18B20的测温原理
DS18B20的测温原理如图3-2所示,晶体的低温度系数图的振荡频率受温度影响的固定频率的脉冲信号进行减法计数器1是非常小的,高的温度系数与晶体振荡频率变化的温度变化,产生的信号作为减法计数器2的脉冲输入,数字也意味着计数闸门,当计数时门被打开后的时钟脉冲,DS18B20在低温度系数振荡器产生进行计数,然后完成温度测量。
开放时间计数闸门由高的振荡器的温度系数的确定,在每次测量前,相应的55℃基地分别插入减法计数器1和温度寄存器,减法计数器1和温度寄存器一一基值对应于55℃在预设。
先看说明书的临时寄存器由DS18B20(BEH)0.5℃读出温度测量的分辨率,然后把最低有效位(LSB)的测量结果,通过测量T的整数的整数部分的实际温度计算得到,然后带命令读取计数器1的剩余价值剩余和米每米数值每度,考虑了DS1820温度测量的关系进行℃整数部分限制在0.25,0.75℃T,实际温度可以用下面的公式得到实际的计算:
T实际=(T整数-0.25℃)+(M每度-M剩余)/M每度。
3.2温度采集电路
温度控制电路主要运用到了DS18B20和AT89S52两个元器件。
怎么使两者连接实现功能是温度控制电路的主要设计目的和要求。
传感器数据采集电路主要指DS18B20温度传感器与单片机的接口电路。
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式考虑到实际应用中寄生电源供电方式适应能力差且易损坏,此处采用电源供电方式,I/O口接单片机的P2.4口。
如图3-2;
图3-2温度采集电路
3.3按键电路和指示灯电路。
按键电路的一端接地,一端和AT89S52的P2相应端口相连。
三个按键的功能分别能进行加减和设置的功能,配合指示灯进行温度上下限的设置。
如图3-3;
图3-3按键指示灯电路
3.4LCD1602模块
1602液晶也叫做1602字符型液晶,它是一种被用来显示数字、字母、符号等等的点阵型液晶字符模块。
每一个点阵字符位都能显示出一个字符,且每位之间有一个点的间隔距离,每一行之间也有一定的间隔距离,具有间隔文字、规范条理有序的作用。
这样一来他也具有一个弊端,就是不能很好的显示图片。
LCD1602引脚结构如图3-6。
LCD1602的意思是显屏可以显示两行字符,每一行具有十六个字符液晶。
图3-6LCD1602引脚结构
3.5报警电路
利用有源蜂鸣器实施报警输出,运用直流供电。
当所测温度超过或者低于预期所设计的温度时,数据口相应提高高电平,报警输出。
而另一端则直接和单片机的P2.7/A15端口相连。
图3-7蜂鸣器电路
第四章主程序
4.1主程序图
图4-1主程序图
主程序的主要功能是实时显示充电,测温DS18B20读出和处理当前的温度,温度的测量,每一次250ms。
第二功能的主程序查询是否设置键被按下时,为了达到设定的温度上下限的功能。
其程序流程见图5-1所示。
在一般的流程图进行分析,在整个程序中应包括以下几个部分:
读写DS18B20温度转换子程序,子程序,温度数据子程序,动态数据显示子程序。
4.2读出温度子程序
读出温度子程序的主要功能是读取RAM中的数据,在CRC校验的阅读,阅读没有温度的数据验证错误。
其程序流程图如图4-2所示。
图4-2读出温度子程序
CPU对DS18B20的访问流程是:
首先,DS18B20的初始化,然后ROM操作命令,并对存储器操作,数据操作。
DS18B20的每一步操作必须按照顺序和严格的协议。
作为东道主,DS18B20来控制这个转换过程中的温度,根据DS18B20的通信协议,必须通过三个步骤批准:
每次读取和写入复位DS18B20复位成功,发送一个ROM命令后,将RAM命令最后,这样才能对DS18B20进行预先设定的操作。
voidInit_DS18B20(void)
{
unsignedcharx=0;
DQ=0;
delay_18B20(80);
DQ=1;
delay_18B20(14);
x=DQ;
delay_18B20(20);
}
上述程序中将DQ拉低,精确延时,再将DQ拉高,通过判断x的值来确定是否已经初始化完成。
另外,由于单个DS18B20完成通信功能,具有很强的时间观念,因此读写时序是非常重要的。
所有的治疗都是从单总线的开始。
从一个时间机器,实现初始脉冲宽度要求主机DS18B20芯片的初始化过程。
初始化后,它可以读写。
ROM命令总线主机检测到DS18B20的存在,它可以发送ROM命令。
DS18B20的ROM,跳过操作,是推出的DS18B20温度变换,其次是ROM和温度数据匹配的回读每一个DS18B20。
基于DS18B20的温度测量系统,发送一个ROM命令,主机,然后转换44H启动代码发出均匀的温度,可实现统一转换所有ds18b20250毫秒后,你可以用一点时间去阅读每一个。
这种方式使其T值往往小于传统方式。
unsignedchara,b;
signedinttemp;
EA=0;
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0x44);
delay_18B20(70);
EA=1;
WriteOneChar(0xBE);
a=ReadOneChar();
b=ReadOneChar();
temp=b;
temp<
<
=8;
temp=temp|a;
returntemp;
这段程序中,主要作用是在确保了DS18B20的工作状态后,从DS18B20的温度寄存器中提取出温度值的高位和低位,再将两个字节合并为一个字节,经过处理后从输出端输出。
4.3温度数据显示子程序
显示温度数据子程序主要是对显示缓冲数组中的显示数据进行刷新操作,查表送段码至LCD,点亮数码管,显示数字。
一个字节不能直接在显示屏上显示,这就需要将字节通过处理转化成能在LCD上显示的数。
{
if(shuju>
0)
data_T[4]=shuju/100+0x30;
else
{
shuju=~shuju+0x01;
data_T[4]='
-'
;
}
data_T[5]=shuju%100/10+0x30;
data_T[6]=shuju%10+0x30;
段程序的作用在于,在接收到温度信息后,通过转化,变成能在LCD上显示的字符。
再通过LCD显示出来。
4.4设置温度上下限程序
该系统可以设置温度上下限,当SET=1,开启中断,可以设置温度上限,如果DEC有效,减一;
如果ADD有效,加一。
当SET=2,开启中断,可以设置温度下限,如果DEC有效,减一;
流程图如5-3所示。
对于设置上下限来说,最重要的是切换到底是对TH还是TL进行设置,可加减温度。
因此在设计过程中必须满足这两点。
如图5-4;
,
图5-4温度上下限程序图
第五章系统测试
5.1焊接阶段
在完成理论上的论述测算之后,电路的元器件及其各种属性都已经敲定,于是可以开始焊接的工作。
(1)焊接前准备
在焊接元器件之前,需要对所有元器件进行必要的检查以及焊接前的处理。
1焊接处氧化层的清理
用小刀慢慢清理金属引线以及各元器件的引脚表面的氧化层,使其露出金属光泽。
本设计为焊接方便采用了转印的电路板,需要先用细砂纸将铜箔仔细打磨,待打磨干净之后,均匀的涂抹上一层松香。
2元件镀锡
在焊接时,先将需要焊接的引线或者引脚蘸上松香,然后把带有锡的烙铁尖端压在需要焊接的地方,均匀的涂抹,使引线或者引脚电镀上薄薄的锡层,如此处理之后,就可开始进行焊接。
(2)焊接技巧
①焊接方法
a.一只手拿电烙铁,另一只手用镊子夹住需要焊接的器件,使用烙铁之前,需要先预热五分钟左右,焊接时慢慢使烙铁尖端靠近需要焊接的引脚或者引线。
b.把烙铁尖端紧贴焊点,并且让烙铁和焊接的电路板呈四十五度角,这样能更好的让元器件的焊点镀锡,焊接时烙铁尖端在焊点处停留两到三秒。
c.烙铁移开,固定元器件的一只手不动,等待焊点的锡凝固之后,才可放开。
d.用镊子转动引线或者活动元器件引脚,确定没有松动的痕迹之后,用钳子剪去多余的引线。
②焊接效果
在焊接时候往往会出现掉锡的情况,也就是所谓的虚焊,是因为焊点的锡量较少,无法让元器件固定,从而造成接触不良的情况。
由于经验的缺乏,本次设计在焊接时出现了很多这样的情况。
优秀的焊点应该是锡点圆润,锡量适度,焊接点牢固。
若想完美的做到这一点,是需要大量的实际工作经验的,这对我们电学专业的学生来说尤为重要。
具体的调试步骤如下:
(1)电前检查。
每一个电子电路组装,通电调试之前,一定要仔细检查电路连接错误。
检查方法是控制电路图,检查应按照一定的顺序一步一步。
特别注意观察是否接错,电源,电源是否有短路,集成电路和晶体管引脚是错误的,轻轻拨动组件,观察焊点是否牢固等
(2)通电检查。
先调试完毕所用的电源电压数值,下一步给电路接通电源。
电源一旦接通,先要观察是否有不寻常现象,如是否冒烟、难闻气味、放电的光和声、元器件发热等。
如果有,应当即关闭电源,等故障修理完毕后,才可以重新接通电源。
(3)分块调试。
分块调试时应明确本部分的调试要求,按调试要求测试性能指示和观察波形。
调试顺序根据信号的方向,使输入信号的电平的输出信号的前调试,为最后的整机检查做准备。
(4)整机联调。
调试应该信号观察各单元电路连接在所有水平之间的关系,主要是动态观察结果,检查电路的性能和参数,分析测量数据和波形,满足设计要求。
实物经过硬件调试后还要进行软件调试,即将程序写入到单片机存储器中,实现设计功能。
最终在指导老师和同学们的帮助下,终于完成了温度控制报警器实物的焊接工作。
第六章总结和展望
工业技术的蓬勃发展,有时候带来的是一系列的危机与隐患。
温度控制系统即上下限报警器,不仅可以测量工厂内,机器运行过程中,一系列仪器运行中的温度,还能在危险的情况下自动报警,预防火灾和其他电路灾害的发生。
基于单片机的温度检测报警器的软件设计采用C语言编程,由主程序、中断子程序、和显示子程序构成。
本设计实物焊接完成之后,进行了多次的硬件调试,最开始的时候本设计存在大量的问题,并不能正常工作。
经过了多次的方案改革,以及多次的程序修改,最终本设计成功诞生了。
这个过程是对理论知识的运用,对理论知识的完善。
在日常的学习当中,我们都只对原理有了解,对实际的电子电路工作还是有很多的缺点和不足。
而这次毕业设计给了我一次很好地锻炼自己,完善自身的机会。
在本次设计中一定存在着许许多多的不足,但是在以后的研究和生产中,一定会逐步改进并完善,使其性能更加优良。
[参考文献]
[1]余发山.单片机原理及应用技术[M].徐州:
中国矿业大学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 温度 控制系统 下限 报警器
![提示](https://static.bdocx.com/images/bang_tan.gif)