STC89C51温度报警器文档格式.docx
- 文档编号:18829691
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:37
- 大小:1.96MB
STC89C51温度报警器文档格式.docx
《STC89C51温度报警器文档格式.docx》由会员分享,可在线阅读,更多相关《STC89C51温度报警器文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
关键词:
单片机,温度传感器,报警
BasedonTheSTC89C51Microcontroller
TemperatureAlarmDesign
Abstract
Temperatureasrelatedtoourlifeaenvironmentalparameters,themeasurementandstudyofitsbecomesextremelyimportant.Sothetemperaturedetectionalarmsysteminmodernlife,moreandmorewidelyusedinproduction.
STC89C51microcontrollerasthecoredevice,thisdesignClanguageforsoftwareprogramminglanguage,DS18B20digitaltemperaturesensorbyDALLAScompanyacquisitionoftemperaturedatatotheenvironmentiscomposedoffourintegrationincludingYangoutputdigitaltubedisplay,andcanbesetandadjustthetemperaturealarmonthefloor.Implementationofenvironmentaltemperaturereal-timemonitor,alarm.Thetemperaturealarmsystemstructuredesignisrelativelysimple,canbeappliedtolife,productionandscientificresearchandotherfields,isakindofeconomicandpracticaltemperaturecontrolsystem.
KeyWords:
Microcontroller,TemperatureSensor,Alarm
目录
摘要I
AbstractII
1绪论1
1.1研究的意义1
1.2研究现状及发展趋势1
1.3设计内容及目的2
2设计方案论证3
2.1主控器件的选择3
2.2温度传感器的选择4
2.4显示模块的选择6
3硬件设计8
3.1主控电路设计8
3.2温度采集电路设计9
3.3显示电路设计9
3.4电源电路设计10
3.5报警电路设计11
3.6调控电路设计11
4软件设计13
4.1程序语言选择13
4.2程序流程13
4.2.1主程序流程图13
4.2.2显示程序流程图14
4.2.3温度读取程序流程图15
4.2.4温度采集与计算程序流程图15
4.2.5调控程序流程图16
5硬件焊接及演示17
5.1硬件焊接17
5.2硬件调试及演示17
6结束语19
参考文献20
致谢21
附录A:
系统电路原理图22
附录B:
系统元件清单23
附录C:
程序24
附录D:
硬件正反面照片28
1绪论
温度是一种最基本的环境参数,人们的生活环境与温度息息相关。
当今,我国农村的锅炉取暖等大多数都没有温度监控系统,部分厂矿、企业还一直沿用简单的温度设备和纸质数据记录仪,无法实现温度数据的测量与控制,所以,温度测量也被人们所异常关注。
因此,研究温度的测量方法和装置具有重要意义。
测控技术也在各个领域应用单片机对温度进行控制,不仅具有控制方便和组态简单的优点,而且可以提高被控温度的技术指标。
随着社会经济的高速发展,越来越多的生产部门和生产环节对温度控制的精度、可靠性和稳定性等有了更高的要求。
传统的温度控制器控制精度普遍不高,不能满足对温度要求较为苛刻的生产环节。
本课题设计一款由单片机和温度传感器以及八段显示器等部件实现的温度测量及报警系统,同时在设计方面做了功能的扩展,实时温度检测并由四位数码管显示,温度精确到小数点后两位,可以设置上下限报警温度,且测量准确误差小。
本课题设计一个基于51系列单片机控制的温度检测报警器,通过实验研究使作者能将自己所学的理论知识与实践工程设计联系起来,掌握protel、keil、offfice等软件的基本使用方法,学会设计和制作电路板,掌握基本的电路焊接技术,掌握实验板的调试。
1.1研究的意义
随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。
在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域己经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
1.2研究现状及发展趋势
测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:
传统的分立式温度传感器
②模拟集成温度传感器
③智能集成温度传感器。
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
1.3设计内容及目的
本课题是设计一个温度控制系统,其原理是所测量的温度信号通过数字温度传感器检测后送到单片机中,单片机把检测的温度同键盘设定的温度进行比较并显示在显示器上,然后,由单片机根据控制策略给出控制量,然后将控制量送到驱动电路去驱动电源装置,从而构成温度控制系统。
本设计的主要内容分为两部分:
硬件部分和软件部分。
硬件部分分为电源电路的选择、单片机的选择是用的STC89S51单片机、数字温度传感器DS18B20、数码管的显示设计、报警电路的设计等。
软件部分采用C语言来实现编程的工作。
温度控制系统的核心是温度传感器和单片机,本课题将介绍智能集成温度传感器DS18B20的结构特征及控制方法,以及用单片机STC89C51的编程实现温度报警控制。
最终的温度报警器能够实现:
1、实时温度检测并显示
2、四位数码管显示,温度精确到小数点后两位
3、可调整上限报警温度
4、可调整下限报警温度
5、实时温度高于上限温度或低于下限温度,发出报警(报警为发光二极管指示)
2设计方案论证
本设计是一个基于单片机的温度测量报警电路。
传统的温度检测系统采用热敏电阻等温度敏感元件,热敏电阻虽然成本低,但是需要后续信号处理、A/D转换处理等才能将温度转换成数字信号,不但电路复杂,可靠性和精度也相对较低。
在应用中还需要解决引线误差补偿、干扰等问题,故传统方案不可取,进而非常容易考虑到使用温度传感器,在单片机电路设计中,单片机除了可以测量电信号外,还可以用于温湿度测量。
传统的温度检测系统采用热敏度等非电信号的测量,能独立工作的单片机温度检测、温度控制系统已经广泛的应用于很多领域。
但单片机的接口信号是数字信号,要用单片机作为控制器测量温度这类非电信号,就要使用温度传感器将温度信息转换为电流或者电压信号输出,如果转化的信号是模拟信号,还需要进行A/D转化,以满足单片机接口的需要。
于是,进一步联想到可以釆用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,成功地进行温度釆集以后,就可以利用单片机进行数据处理,然后通过LED将温度显示出来,就可以满足设计要求。
硬件部分设计主要包括:
测温电路、传感器电路及测温电路与单片机的接口、报警电路与单片机的接口等组成的。
数据显示
STC89C51
温度采集
本设计中,温度传感器釆用DS18B20,控制器采用STC89S51,显示电路釆用八段四位数码管实现,总体方框图如图2.1所示。
指示报警
报警
温度设定
图2.1系统整体框图
2.1主控器件的选择
方案一:
采用PC机实现
此方案采用PC机实现。
它可在线编程,可在线仿真的功能,这让调试变得方便。
且人机交互友好。
但是PC机输出信号不能直接与DS18B20通信。
需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。
而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦
方案二:
采用单片机实现
采用单片机实现,可选择使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。
STC89C51RC是采用8051核的ISP(InSystemProgramming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8KBytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。
STC89C51单片机是单时钟/机器周期(1T)的兼容8051内核单片机,是高速/低功耗的新一代8051单片机,全新的流水线/精简指令集结构,内部集成MAX810专用复位电路[1][2]。
其内部结构如图2.2所示。
图2.2单片机内部结构图
2.2温度传感器的选择
采用热敏电阻实现
采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1°
C的信号是不适用的,而且输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂。
另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量。
即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。
方案二:
采用数字温度传感器实现
DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合,且适用电压更宽更经济。
温度测量范围为-55°
C〜+125°
C摄氏度,可编程为9位〜12位转换精度,测温分辨率可达0.0625摄氏度,
分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
被测温度用符号扩展的16位数字量方式串行输出;
其工作电源既可以在远端引入,也可以釆用寄生电源方式产生;
CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
如图2.3所示
图2.3DS18B20的封装
T0—92封装的DS18B20引脚功能见表2.1
表2.1T0—92封装的DS18B20引脚功能
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
2、DS18B20的工作原理
DS18B20的测温原理如图2.4所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对图2.4DS18B20工作原理图
低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55°
C所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55°
C所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2.4中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)一发ROM功能命令一发存储器操作命令一处理数据。
在正常测温情况下,DS18B20的测温分辨力为0.5°
C,可釆用下述方法获得高分辨率的温度测量结果:
首先用DS18B20提供的读暂存器指令(BEH)读出以0.5°
C为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。
考虑到DS18B20测量温度的整数部分以0.25°
C、0.75°
C为进位界限的关系,实际温度Ts可用下式计算:
Ts=(Tz-0.25°
C)+(CD-Cs)/CD
这里采用DALLAS公司的DS18B20数字温度传感器作为测温元件[3][4]。
2.4显示模块的选择
采用液晶显示模块
液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。
采用四位八段数码管
数码管是一类显示屏,通过对其不同的管脚输入相对的电流会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。
由于它的价格便宜、使用简单,在电器特别是家电领域应用极为广泛,也是单片机中应用最为广泛的一种显示方式之一。
数码管也叫LED数码管,是由条形发光二极管组成“8”字形的LED显示器。
通过数码管中的发光二极管的亮暗组合,可以显示多组数字、字母以及其他符号。
数码管能够被广泛应用与其具有的许多特点是分布开的,其中包括:
1.发光响应快,亮度强,高频特性好;
而且随着材料的不同,数码管还能发出红、黄、绿、蓝、橙等多种颜色。
2.机械性能好、体积小、重量轻、价格低廉;
能与CMOS和TTL电路配合使用;
使用寿命长。
3.工作电压低,驱动电流适中。
动态显示时每段工作电流为5mA,一只数码管的八段全亮需要电流为40mA。
在使用中,为了给发光二极管加驱动电压,它们有一个公共引脚,公共引脚有共阴极和共阳极两种接法。
本设计采用共阳极接法,即把发光二极管的阳极连在一起构成阳极公共引脚,使用时阳极公共阳极接+5V,这样阴极上加低电平发光二极管就导通点亮,而加高电平则不亮。
为数码管显示提供各种字形的代码组合称为段码,8段数码管的段码有8位。
在段码字节中代码位与发光二极管对应关系如表2.7所示
表2.7数码管代码位与发光二极管对应关系
段码
D7
D6
D5
D4
D3
D2
D1
D0
段名
dp
g
f
e
d
c
b
a
段码的值与数码管的公共引脚接法有关系,共阳8段数码管的十六进制显示的段码值如表2.8所示。
表2.8数码管十六进制显示的段码值
4
5
6
7
8
C0H
F9H
A4H
B0H
99H
92H
82H
F8H
80H
9
A
B
C
D
E
F
灭
90H
88H
83H
C6H
A1H
86H
8EH
FFH
采用动态驱动将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低[5]。
3硬件设计
硬件是一个工程设计项目的主要组成部分,它支撑并构成一个完整的系统骨架,缺少这一骨架,就智只能纸上谈兵,虚无缥渺。
因此,系统的硬件设计是设计中的重点考虑对象。
本设计中温度报警大体分三个工作过程。
首先,由DS18820温度传感器芯片测量当前的温度,并将结果送入单片机。
然后,通过STC98C51单片机芯片对送来的测量温度读数进行计算和转换,并将此结果送入数码管显示模块。
最后,单片机将送来的值显示于显示模块上。
本电路主要由DS18820温度传感器芯片、数码管显示模块和STC89C51单片机芯片组成。
其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。
3.1主控电路设计
主控电路采用SCT89C51单片机为核心器件加外部晶振及复位电路如图3.1所示。
图3.1系统主控电路原理图
SCT89C51单片机内部有一个高增益反向放大器用于构成振荡器,其输入端为XTAL1,其输出端为XTAL2,在其两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器,其振荡脉冲频率范围为fOSC=0-24MHz。
本设计采用12MHz石英晶体振荡器。
为获得稳定频率并可对振荡频率微调,这里取C2=C3=22pF。
复位是单片机的初始化操作,使单片机从000H单元开始执行程序,当由于程序运行出错或操作错误使系统处于锁死状态,复位功能可重新启动单片机执行程序。
本设计采用上电复位方式,在通电瞬间电容C1开始充电,RST端出现正脉冲,在RST端保持10ms以上高电平时,就可以实现复位操作。
此外,由于我们选单片机的P0口做I/O口,P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,为高电平有效。
但是STC89C51单片机的P0口并没有上拉电阻,所以,要完成高电平输出/输入,这里在其外部加一个10kΩ排阻,将其端口电压上拉[6]。
3.2温度采集电路设计
电路核心元件为DS18B20数字温度传感器,采用电源供电方式驱动如图,1脚接地,2脚为信号线,3脚接外部电源。
要使DS18B20在有效的时钟周期内拥有足够的电流,需要使用一个MOSFET管接单片机的P2.0端口来完成DS18B20总线得上拉。
DS18B20的工作电流约为
图3.2系统温度采集电路原理图
在这里取
[7][8]。
3.3显示电路设计
本设计中显示模块是用来实时显示环境温度及显示调节报警上下限温度的,如图3.3所示。
其工作原理是:
由单片机的P2口经三极管接数码管的阳极,通过由P0口输出低电平来点亮数码管的。
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
图3.3显示电路原理图
在电路中三极管其实是用来作开关的,所以三极管工作状态只有饱和、截止两种,其管压降为0.3V,所以需要加限流电阻,限制基极电流。
一般的,三极管工作在饱和状态时基极电流约为1mA。
在数码管阳极加高电平后,阴极需加低电平才能将数码管点亮,即对应的P0口输出低电平。
驱动数码管所需的电流很小,因此,在四位一体共阳数码管的一个阴极引脚外部也要接一个限流电阻。
点亮一只数码管所需电流约为5mA。
为获得较好的显示亮度,这里取510
[9][10]。
3.4电源电路设计
如图3.4所示,系统采用+5V电源供电。
电源电路由一个DC电源插座和一个带有锁闭功能的开关。
DC座1脚接VCC,2脚与3脚接负端。
上电后按下自锁开关,电路接通,由3脚提供+5V直流电,为系统电路供电。
图3.4系统电源电路原理图
3.5报警电路设计
如图3.5所示,系统报警实际由发光二极管代替蜂鸣器做报警信号指示。
报警电路由外部电源供电方式驱动,其中D2做上限报警指示,接单片机P1.1口;
D3做下限报警指示,接单片机P1.2口;
D1显示报警,接单片机P1.0口。
点亮发光二极管所需的电流约为5-10mA,所以要接限流电图3.5系统报警电路原理图
阻,防止烧坏二极管。
3.6调控电路设计
系统不仅要实现实时温度显示,还要实现报警上下限可调,这就需要一个调控电路来实现。
如图3.6所示按下K1键由P3.1口输入执行中断请求,再由K2、K3经P3.2、P3.3口将命令送入单片机执行任务。
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STC89C51 温度 报警器