基于单片机的超温报警显示电路Word格式.docx
- 文档编号:21814244
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:28
- 大小:128.86KB
基于单片机的超温报警显示电路Word格式.docx
《基于单片机的超温报警显示电路Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的超温报警显示电路Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
通过DSl8820直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在O℃--100℃最大线性偏差小于0.1℃,可直接向单片机传输数字信号,便于单片机及时处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
智能温度控制器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟温度控制器和网络温度控制器、研制单片测温控温系统等高科技的方向迅速发展。
目前,我国的计算机控制技术还大多处于单控制器+单传感器+执行机构这种较原始的状态,由于工厂及其它场所特殊的高温环境,各类国产传感器的可靠性、稳定性也是一个较为重要的问题,急需解决。
此外,温度控制的计算机软件也有待于进一步开发。
近百年来,温度控制器的发展大致经历了以下阶段:
1)模拟、集成机械式温度控制器;
2)电子式智能温度控制器。
目前,国际上新型温度控制器正从模拟式向数字式、电子式由集成化向智能化、网络化的方向发展。
温度控制器发展初期是机械式温度控制器,这类温度控制器采用双金属片或充气膜盒感测室内温度,使用波段开关直接调整风速。
双金属片温度控制器现基本已淘汰,只使用在一些要求不高较低档场合;
充气膜盒温度控制器当前较流行,但总体来讲机械式温度控制器缺点十分明显:
1.机械式温度控制器外观陈旧呆板。
2.机械式温度控制器控温精度差。
3.容易打火(直接切换强电)。
4.极易在一个极小温差范围内频繁开关水阀(风阀)。
5.功能比较单一。
在当今电子信息时代,电子自动化、信息采集控制在任何行业都是不可逆转的潮流,电子式温度控制器全面取代机械式温度控制器将在未来很短时间内实现。
当今时代是信息化时代,各个领域常以信息的获取与利用为中心,一些先进技术,如信息传感技术、数据处理技术及计算机控制技术正在飞速发展并不断变革。
智能化是现代控制系统的主要发展趋势。
所谓智能是指随外界条件的变化,具有确定正确行动的能力,也即具有人的思维能力以及推理并作出决策的能力。
从温度控制系统的智能化的措施来看,以单片机为核心构成的微型温度控制系统调节装置己被国内外许多公司和单位作为研究对象,客观存在的硬件简单,软件丰富,能方便地实现现代化控制规律和多种功能,性能优良,运行、调试都非常方便,且生产成本低,可加快生产设备的更新换代,已开始受到重视和欢迎。
加之近年来,单片机的性能不断提高,而价格却逐年降低,所以单片机温度控制装置将具有广阔的发展和运用前景。
单片机具有体积小、重量轻、价格低、可靠性高、耗电少和灵活机动等许多优点,因此利用单片机进行温度的测量和控制,将会大大提高温度测控的可靠性和灵活性。
单片机是一种非常活跃和颇具生命力的机种,特别适合用于智能控制系统.与PC机用于控制系统相比,其具有明显的性能价格比。
智能化的一个措施就是控制算法的加入,目前以模糊控制为核心的控制算法被广泛的应用。
模糊控制系统是基于知识或基于规则的系统,它的核心就是由所谓的IF—THEN规则所组成的知识库。
模糊系统理论的最大贡献就是它为从知识库向非线形映射的转换提供了一套系统的程序。
正是由于这一转换,我们才能将基于知识的系统(模糊系统)采用同数学模型及传感器测量一样的方式,应用到工程应用中(控制、信号处理及通信系统等)。
这样,最终组合而成的系统的分析和设计就会以数学这种严密方式来进行。
1.3本课题主要研究的内容及现实意义
本课题分为硬件设计和软件设计两大模块,其中本人负责完成软件设计这一模块。
本系统的主要任务是以单片机为核心,利用温度传感器对环境的温度进行采集与处理,如果温度超过设定的报警上限值,则扬声器鸣叫报警,如果低于报警上限值则不报警,另外可以根据需要人工设定报警上限值。
随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,温室环境自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的温度控制措施.但是,目前应用于温室大棚的温度检测系统大多采用模拟温度传感器、多路模拟开关、A/D转换器及单片机等组成的传输系统,这种温度采集系统需要在温室大棚内布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸繁杂,成本也高。
同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大。
为了克服这些缺点,本文参考了一种基于单片机并采用数字化单总线技术的温度测控系统应用于温室大棚的的设计方案,根据试用者提出的问题进行了改进,提出了一种新的设计方案。
在本设计中编程语言采用的是C语言,C语言是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点。
它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,其主要有以下特点:
1.C是中级语言它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
另外C语言也具有强大的图形功能,支持多种显示器和驱动器。
而且计算功能、逻辑判断功能也比较强大,可以实现决策目的编游戏,编3D游戏,做数据库,做联众世界,做聊天室,做PHOTOSHOP做FLASH,做3DMAX。
4.C语言适用范围大C语言还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维、二维图形和动画,它是数值计算的高级语言。
2系统总体设计
2.1控制方案
温度控制部分,提出了用数字温度传感器DS18B20、单片机AT89C51及七段数码管和一个扬声器的硬件电路完成对温度的实时检测及显示,利用DS18B20与单片机连接由软件与硬件电路配合来实现对温度的实时控制及超出测量范围的上限温度的报警系统,另加一个小的独立键盘,来控温度报警的上限值。
系统总体设计框图如图1所示。
2.2器件选择
本设计是在和做硬件的同学的密切配合下完成的,其中硬件部分的器件选择是:
核心处理器为单片机AT89C51,数字式温度传感器DS18B20,温度超限报警时选用扬声器,并用四位共阳极数码管显示出来检测到的环境温度,另外选用了四个独立按键作为控制键盘。
2.2.1AT89C51
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51具有如下特点:
与MCS-51兼容,4K字节可编程闪烁存储器,寿命:
1000写/擦循环,数据保留时间:
10年,全静态工作:
0Hz-24MHz,三级程序存储器锁定,128×
8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
引脚图如下图2:
图1系统结构框图
图2STC89C51单片机引脚图
2.2.2数字式温度传感器DS18B20
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单、体积小的特点,因此用它来组成一个测温系统,具有硬件线路简单、低成本等优点,另外在一根通信线上可以挂很多这样的数字温度计,十分方便。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性,该协议定义了几种信号的时序:
初始化时序、读时序、写时序,所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收,数据和命令的传输都是低位在先。
DS18B20的复位时序:
使用DS18B20时,首先需将其复位,然后才能执行其它命令。
复位时,主机将数据线拉为低电平,并保持480-960us,然后释放数据线,再由上拉电阻将数据线拉高15-60us,等待DS18B20发出存在脉冲,存在脉冲有效时间为60-240us,这样就完成了复位操作。
DS18B20的读时序:
对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时序是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
DS18B20的写时序:
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
为保证DS18B20的严格的I/O时序,需要做精确的延时,主机控制DS18B20完成温度转换必须经过3个步骤:
初始化、ROM操作指令、存储器操作指令。
在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,在程序读该DS18B20时,将没有返回信号,程序进入死循环,所以程序设计中一定要对此进行一定的处理,比如可以加入超时退出等可靠性设计。
3软件设计
在应用系统中,系统软件的设计是建立在具体硬件电路基础之上,根据系统功能要求可靠地实现系统的各种功能。
好的软件设计能够充分发挥微控制器的运算和逻辑控制功能,从而提高仪器的精度和使用的方便性。
3.1系统编程语言和编程工具
硬件电路焊接好后,就可以编写相关的程序调试电路了,由于电路复杂,不可能一步全部完成,一般方法是,一边写软件一边调试,这样可以及时发现是硬件问题还是软件问题,也方便及时改正。
单片机编程可以采用汇编语言,和高级语言,汇编语言编程代码长度短,效率高,但可读性很差,就是自己写的程序,过几天自己再看可能也不能立刻读懂,适用于编写小的程序。
现在编写单片机程序一般使用高级语言,C语言用的比较多,它比汇编语言可读性强,而且运算方便,可以直接调用标准函数库。
考虑到开发速度、软件质量、结构严谨、程序坚固等方面,则C语言是一个很好的选择。
下面结合8051介绍单片机C语言的优越性:
1)不懂得单片机的指令集,也能够编写完美的单片机程序;
2)无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;
3)不同函数的数据实行覆盖,有效利用片上有限的RAM空间;
4)程序具有坚固性:
数据被破坏是导致程序运行异常的重要因素。
C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;
5)C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;
6)提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;
7)提供small、compact、large等编译模式,以适应片上存储器的大小;
8)中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;
9)提供常用的标准函数库,以供用户直接使用;
10)头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;
11)有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;
12)可方便地接受多种实用程序的服务:
如片上资源的初始化有专门的实用程序自动生成;
再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。
本电路编程使用C语言,用KeiluVision3软件编程。
在软件系统的设计中,考虑到程序的可读性,系统的可扩展性,以及升级的需要,程序设计过程采用模块化的设计方法,每个模块实现一定的功能,模块与模块间功能相对独立,这样就使得程序结构清晰。
另外,模块的功能相对独立,同一模块可以应用在不同的地方,这增加了代码的使用效率。
本系统软件设计可以分成几个模块来设计,这几个模块分别是:
主程序模块,数码管显示模块,DS18B20操作模块,按键模块等,
3.2主程序设计
系统的主程序设计主要完成系统初始化、中断优先级设定以及判断调用各模块程序,即主要实现各模块程序的链接。
系统上电复位初始化后,首先启动DS18B20,监测周围环境温度,主机控制DS18B20完成温度转换必须经过三个步骤:
通过键盘设定报警的上限值,读出温度数据后,若温度超过报警上限值,则将低电平信号送至P1.2口,使三极管导通,蜂鸣器发出报警声,并在LED上显示系统当前检测到的环境温度,另外可以设定报警的上限值。
主程序流程图如图3所示。
主程序如下:
voidmain()
{TESTLED0=0;
Delayms(200);
read_temp();
TESTLED0=1;
initialize();
while
(1)
{
display();
if(readbit){read_temp();
readbit=0;
}
//read_temp();
if(!
flash)work_temp();
}
图3主程序流程图
3.3数码管显示模块
为了使操作人员及时掌握生产情况,在一般的微型计算机控制系统或智能化仪器中,都配有显示程序。
常用的显示器件有:
a、显示和记录仪表,b、显示终端,c、LED或LCD显示器,d、大屏幕显示器。
在这些显示方法中,显示和记录仪能连续进行显示和记录,但它的价格比较贵,且为模拟显示,读数不方便,有一定的误差,所以它只适用于企业的技术改造,在新设计的单片微型计算机系统中不采用,显示终端是目前微型控制系统中常用的显示设备,它直观、灵活,不但可以显示数字,而且可以显示画面及报告,如生产流程图、报警画面、动态趋势图、条形图。
在单片机应用系统中,常用的显示器件有LED(发光二极管显示器))和LCD,(液晶显示器)。
这两种器件都具有成本低廉、配置灵活、与单片机接口方便的特点。
在本系统的设计中作为人机对话的一个重要部分就是显示器,硬件电路中使用四位共阳极数码管作为系统的显示器,在软件中是显示寄存器。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要看到的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多
动态显示驱动:
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在动态显示方式中,系统定期的扫描每个数码管,借助于人的视觉残留效应,使的数字得以正确显示,显示电路采用数码管动态扫描电路,占用单片机资源少,显示电路成本比较低,与静态扫描电路相比较,电路简单,成本低,测温电路采用专门的温度传感器DS18B20,硬件电路相对简单,只需要一根线就可以读取温度,它在本程序中对应的函数有display()。
display()
{if((key_sign==1)&
&
led_flash)P0=0xff;
elseP0=dis_8[LEDnumber[0]];
LED0=0;
Delayms
(2);
LED0=1;
//左第一位温度最高位部分
if((key_sign==2)&
elseP0=dis_8[LEDnumber[1]];
LED1=0;
LED1=1;
//左第二位温度十位部分
if((key_sign==3)&
elseP0=dis_8[LEDnumber[2]]&
0xf7;
LED2=0;
LED2=1;
//左第三位温度个位部分
if((key_sign==4)&
elseP0=dis_8[LEDnumber[3]];
LED3=0;
LED3=1;
//左第四位温度小数部分
在控制系统中,有些参数的计算是非常复杂的,用公式计算不仅程序长,难于计算,而且需要耗费大量时间。
还有一些非线形参数,它们不是用一般算术运算就可以计算出来的,所有这些运算用编程的方法比较复杂,有些参数甚至无法建立相应的数学模型,为了解决这些问题,可以采用查表法。
温度的小数部分采用的查表法。
所谓的查表法,就是把事先计算或测得的数据按一定顺序编制成表格,查表程序的任务就是根据被测参数的值或者中间结果,查出最终所需要的结果。
查表法只需把转换结果按序编成表,连续存放在ROM中,用查表指令即可实现转换,查表法编程方便且程序量小,执行速度快,修正起来方便。
3.4温度检测子程序
温度检测子程序流程图如图4所示。
本系统的温度采集选用DS18B20温度传感器。
在程序设计中S18B20温度传感器一般有四个步骤:
初始化命令;
传送ROM命令;
传送RAM命令;
数据交换命令。
由于DS18B20有着严格的时序控制,因此在进行温度采集时必须关闭所有的中断,保证DS18B20安全的工作。
初始化的时序是单片机先发出480~960us的复位脉冲,在15~60us后,DS18B20发出60~240us的应答脉冲,完成对DS18B20的初始化。
DS18B20的传送命令有:
读ROM命令(33H),匹配ROM命令(55H),跳过ROM命令(CCH),搜索ROM命令(F0H),报警搜索命令(ECH)。
传送RAM命令有:
温度转换命令(44H),读存储器命令(EBH),写存储器命令(4EH),复制存储器命令(48H),读EEPROM命令(B8H),读供电方式命令(B4H)。
数据交换命令是用具体的读/写时序脉冲读出或写入数据。
DS18B20的读时隙是从主机把单总线拉低之后,在15秒之
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 报警 显示 电路
![提示](https://static.bdocx.com/images/bang_tan.gif)