多路温度报警系统_第1页
多路温度报警系统_第2页
多路温度报警系统_第3页
多路温度报警系统_第4页
多路温度报警系统_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业摘要本设计用单片机实现的多路温度报警系统,以AT89S52为主控制芯片,LCD1602为显示芯片,DS18B20为温度采集芯片,GSM模块为信息发送模块。本设计通过多个DS18B20采集各点温度,送到单片机中进行处理与比较,然后由单片机传送到LCD1602中进行显示,若DS18B20所采集的温度超过危险值,则由单片机控制继电器的控制端导通,从而关闭该DS18B20所对应的电源,已达到防止电失火的作用,同时控制蜂鸣器响与小灯闪烁,达到报警目的,与此同时,通过GSM模块发送短信到监控人的手机上。本设计中选用的DS18B20是单线智能温度传感器,体积小,用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20属于新一代适配微处理器的智能温度传感器,它具有体积小,接口方便,传输距离远等特点。选用的LCD1602具有显示电路简单,价格便宜,能显示英文字母等优点。选用的AT89S52单片机具有体积小,价格低的优点,非常适用于本设计。以AT89S52单片机和DS18B20型温度传感器为核心的温度报警器可实现多点温度检测,报警,显示温度等功能。是一种结构简单、性能稳定、使用方便、价格低廉、智能化的温度报警器,具有一定的实用价值。关键词AT89S52单片机,温度传感器DS18B20,LCD1602AbstractThedesignofmulti-useMCUtemperaturealarmsystemtothemaincontrolchipAT89S52,LCD1602todisplaychip,DS18B20forthetemperatureacquisitionchip,GSMmoduletosendtheinformationmodule.ThisdesigncollectionpointsthroughmultipleDS18B20temperature,andsentforprocessingandcomparisonofmicrocomputer,thentransferredtotheLCD1602SCMconductedshowsthatifthetemperatureexceedscollectedDS18B20riskvaluebytheendoftheSCMrelaycontrolleadpass,thusclosingthecorrespondingDS18B20powertopreventelectricalfirehasreachedtherole,whilecontrollingthebuzzerrangandthelittlelightsflashing,toalertpurposes,atthesametime,sendtextmessagesthroughtheGSMmoduletomonitortheperson'smobilephone.OneselectedsingleintelligenttemperaturesensorDS18B20isverysmall,useittoformatemperaturemeasuringsystem,issimple,inacommunicationline,youcanhangmanyofthesedigitalthermometer,veryconvenient.Belongstoanewgenerationofmicroprocessorsmarttemperaturesensoradapter,ithasasmall,convenientinterfaces,transmissiondistanceandsoon.TheLCD1602displaycircuitusedwithsimple,inexpensive,canshowtheadvantagesoftheEnglishalphabet.AT89S52microcontrollerselectedissmall,theadvantagesoflowprice,verysuitableforthisdesign.ToAT89S52MCUandDS18B20temperaturesensorcoretemperaturealarmcanbemultipointtemperaturedetection,alarm,thetemperatureandotherfunctions.Isasimplestructure,stableperformance,easytouse,inexpensive,intelligenttemperaturealarm,hassomepracticalvalue·KeywordsAT89S52microcontroller,temperaturesensorDS18B20,LCD1602,目录CONTENTS绪论国内外研究现状现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。近百年来,温度传感器的发展大致经历了以下三个阶段;(1)传统的分立式温度传感器(含敏感元件);(2)模拟集成温度传感器/控制器;(3)智能温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。[1]研究方向及进展情况智能温度传感器发展的新趋势进入21世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。提高测温精度和分辨力在20世纪90年代中期最早推出的智能温度传感器,采用的是8位A/D转换器,其测温精度较低,分辨力只能达到1°C。目前,国外已相继推出多种高精度、高分辨力的智能温度传感器,所用的是9~12位A/D转换器,分辨力一般可达0.5~0.0625°C。由美国DALLAS半导体公司新研制的DS1624型高分辨力智能温度传感器,能输出13位二进制数据,其分辨力高达0.03125°C,测温精度为±0.2°C。为了提高多通道智能温度传感器的转换速率,也有的芯片采用高速逐次逼近式A/D转换器。以AD7817型5通道智能温度传感器为例,它对本地传感器、每一路远程传感器的转换时间分别仅为27us、9us。增加测试功能新型智能温度传感器的测试功能也在不断增强。例如,DS1629型单线智能温度传感器增加了实时日历时钟(RTC),使其功能更加完善。DS1624还增加了存储功能,利用芯片内部256字节的E2PROM存储器,可存储用户的短信息。另外,智能温度传感器正从单通道向多通道的方向发展,这就为研制和开发多路温度测控系统创造了良好条件。

智能温度传感器都具有多种工作模式可供选择,主要包括单次转换模式、连续转换模式、待机模式,有的还增加了低温极限扩展模式,操作非常简便。对某些智能温度传感器而言,主机(外部微处理器或单片机)还可通过相应的寄存器来设定其A/D转换速率(典型产品为MAX6654),分辨力及最大转换时间(典型产品为DS1624)。总线技术的标准化与规范化目前,智能温度传感器的总线技术也实现了标准化、规范化,所采用的总线主要有单线(1-Wire)总线、I2C总线、BUS总线和SPI总线。温度传感器作为从机可通过专用总线接口与主机进行通信。[2]可靠性及安全性设计传统的A/D转换器大多采用积分式或逐次比较式转换技术,其噪声容限低,抑制混叠噪声及量化噪声的能力比较差。新型智能温度传感器(例如TMP03/04、LM74、LM83)普遍采用了高性能的Σ-Δ式A/D转换器,它能以很高的采样速率和很低的采样分辨力将模拟信号转换成数字信号,再利用过采样、噪声整形和数字滤波技术,来提高有效分辨力。Σ-Δ式A/D转换器不仅能滤除量化噪声,而且对外围元件的精度要求低;由于采用了数字反馈方式,因此比较器的失调电压及零点漂移都不会影响温度的转换精度。这种智能温度传感器兼有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。LM76型智能温度传感器增加了温度窗口比较器,非常适合设计一个符合ACPI规范的温控系统。这种系统具有完善的过热保护功能,可用来监控笔记本电脑和服务器中CPU及主电路的温度。微处理器最高可承受的工作温度规定为tH,台式计算机一般为75°C,高档笔记本电脑的专用CPU可达100°C。一旦CPU或主电路的温度超出所设定的上、下限时,

INT端立即使主机产生中断,再通过电源控制器发出信号,迅速将主电源关断起到保护作用。此外,当温度超过CPU的极限温度时,严重超温报警输出端(T_CRIT_A)也能直接关断主电源,并且该端还可通过独立的硬件关断电路来切断主电源,以防主电源控制失灵。上述三重安全性保护措施已成为国际上设计温控系统的新观念。单片测温系统单片系统(System

On

Chip)是21世纪一项高新科技产品。它是在芯片上集成一个系统或子系统,其集成度将高达108~109元件/片,这将给IC产业及IC应用带来划时代的进步。目前,国际上一些著名的IC厂家已开始研制单片测温系统,相信在不久的将来即可面市[4]。主要研究内容本设计通过多个DS18B20采集各点温度,送到单片机中进行处理与比较,然后由单片机传送到LCD1602中进行显示,若DS18B20所采集的温度超过危险值,则由单片机控制继电器的控制端导通,从而关闭该DS18B20所对应的电源,已达到防止电失火的作用,同时控制蜂鸣器响与小灯闪烁,达到报警目的,与此同时,通过GSM模块发送短信到监控人的手机上。系统设计方案设计思路多路温度报警器是能够检测环境中的温度高低,并具有报警功能的仪器,仪器的最基本组成部分应包括:温度信号采集电路、单片机控制电路、显示电路、电源电路。温度采集电路是由多个温度传感器构成,将温度信号转换成单片机可识别的数字信号后送入单片机。单片机对所接收的数据进行分析,是否大于或等于某个预设值(也就是报警限),如果大于则启动报警电路发出报警声音,反之则为正常状态。为方便检测与监控,使仪器测试人员及用户能够直观地观察到环境中各点的温度值,可将浓度值送到显示屏中。。为使报警装置更加完善,可以在声音报警基础上,加入光闪报警,变化的光信号可以引起用户注意,弥补嘈杂环境中声音报警的局限。为使监测人员不必一直观察警报器或液晶,加入GSM模块,发送短信到监测人手机中。以上是根据报警器应具备的功能,提出的整体设计思路。设计方框图中央控制芯片单片机的主要特性主控制模块采用AT89S52芯片,芯片主要控制其余各个模块,通过对温度模块的控制采集温度,对时钟模块的控制读取时间,通过与GSM模块的串行通讯控制远程通信,通过对报警电路的控制来报警,通过对本地电气器件的控制来执行本地动作,AT89S52芯片介绍如下:1.主要性能(1)与MCS-51单片机产品兼容(2)8K字节在系统可编程Flash存储器(3)1000次擦写周期(4)全静态操作:0Hz~33Hz(5)三级加密程序存储器(6)32个可编程I/O口线(7)三个16位定时器/计数器(8)八个中断源(9)全双工UART串行通道(10)低功耗空闲和掉电模式(11)掉电后中断可唤醒(12)看门狗定时器2.功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,2位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。(4)3.四个IO口的简要介绍:P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8表2-1P1口各引脚介绍引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。P3.7RD(外部数据存储器)表2-2P3口各引脚介绍引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT0(外部中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器写选通)4.其余各管脚的介绍:RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。[8]EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。VCC:电源。GND:地5.引脚结构:图2-1单片机样式显示电路LCD1602显示电路1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:什么也不接或接背光电源。15脚背光正极,16脚背光负极。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。[9]方案一:采用LCD显示,软件实现较为复杂,但硬件电路焊接简单,能同时显示两行数字或英文字母。LCD的价格较贵。方案二:采用LED数码管静态显示,需要的I/O口较多,(或者用别的芯片扩展,但也增加了成本,)。方案三:采用LED数码管并行动态显示,电路较上一方案简单,所占的I/O口较上一方案少,且价格便宜,但只能显示数字,所需数码管也较多。综上所述,采用方案一LCD1602显示是本设计最佳显示方案。温度传感器模块方案一:采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测小于1摄氏度的信号是不适用的。方案二:用模拟温度传感器,比如普通的热敏电阻。热敏电阻的温度特性曲线是一条指数曲线,非线性度较大,因此在使用时要进行线性化处理,线性化处理虽然能改善热敏电阻的特性曲线,但比较复杂。为此常在要求不高的一般应用中,做出在一定的温度范围内温度与阻值成线性关系的假定,才能简化计算。另外,温度与输出电压量是非线性的,读出的是模拟量,需要A/D转换器进行转换才能送给数码管显示,从而增加了硬件的负担。方案三:采用数字温度传感器DS18B20作为温度传感器模块,它具有独特的单总线接口方式,需一根总线就能实现控制模块与DS18B20之间的半双工通信。DS18B20是集传感元件和转换电路于一体的小芯片上。

另外,DS18B20也支持"一线总线"接口,测量温度范围为-55°C~+125°C,在-10~+85°C综上分析,DS18B20大大节约了I/O口资源,且在软件结构上省去建查找表这一繁琐的步骤,且它有精确的转换电路直接送出直观的数据,并且DS18B20拥有较高的温度分辨率0.0625度(采用默认的12位时),在价格方面,单个DS18B20市场价8元,与热敏电阻加A/D转换器ADC0809的组合价格相差不大。用它作为本设计传感器模块最恰当不过,所以选择方案三。DS18B20简介DS18B20数字温度计是DALLAS半导体公司生产的1-Wire,即单线智能温度传感器,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。属于新一代适配微处理器的智能温度传感器,它具有体积小,接口方便,传输距离远等特点。[17]DS18B20性能特点eq\o\ac(○,1)采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(16位二进制数,含符号位)。eq\o\ac(○,2)测温范围为-55℃-+125℃,测量分辨率为0.0625℃。eq\o\ac(○,3)内含64位经过激光修正的只读存储器ROM。eq\o\ac(○,4)适配各种单片机或系统机。eq\o\ac(○,5)用户可分别设定各路温度的上、下限。eq\o\ac(○,6)含寄生电源。DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图3-6所示。图3-6

DS18B20引脚分布图以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。表3-1温度高低字节存放说明高8位SSSSS262524低8位232221202-12-22-32-43.DS18B20控制方法在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。DS18B20有六条控制命令。[18]CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。表3-2RAM指令表指

令约定代码操

明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPUDS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。系统硬件设计电源设计单片机需要5V的电源,通常我们得到5V电源的方法是用变压器、整流电路、滤波电路和稳压电路制作一个5V电源,参考电路如图1-5所示。经变压器变压可以将220V交流电变成7V或9V的交流电,再经过4个整流二极管整流变成脉动的直流,再通过C1和C2滤波,然后通过7805稳压,最后通过C3和C4滤波即可得到+5V直流电,D3是一个发光二极管,起到电源工作是否正常的指示作用,D2的作用是当直接接直流电,并且把正负极弄反了时,起到保护作用。如果不想自己制作电源,当只需要5V电源是时,可以用一条USB线把电脑USB口的5V电引到板子上使用。[11]图3-1电源电路单片机最小系统单片机的最小化系统是指单片机能正常工作所必须的外围元件,主要可以分成时钟电路和复位电路,单片机的时钟电路有一个12M的晶振和两个22PF的小电容组成,它们决定了单片机的工作时间精度为1微秒。复位电路由22UF的电容和10K的电阻组成,判断单片机芯片及时钟系统是否正常工作有一个简单的办法,就是用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。图3-2单片机最小系统温度采集模块设计温度采集模块采用多个DS18B20串联在单片机P2.1脚上,而选取哪个DS18B20工作则是由程序控制的。图3-38个DS18B20测温电路显示模块设计本设计采用LCD1602进行显示,LCD1602的数据端与AT89S52单片机的P1口相连,其控制端分别与AT89S52的P2.5,P2.6,P2.7脚相连。1602通过这些引脚把要显示的数据从单片机中读出来,进行显示。LCD1602的3脚通过滑动变阻器连接到地上,这个滑动变阻器的作用是调节LCD1602的对比度,使LCD1602显示的数据更加清晰。图3-4LCD1602显示电路报警部分报警装置采用无源压电式蜂鸣器和一个红色的LED小等组成,当单片机AT89S52的P3.7脚置1时,三极管Q1导通,,LED点亮。并且由于内部延时,小灯将闪烁,蜂鸣器将因为电平的变化而发出声响。图3-5报警电路GSM模块图3-6GSM模块如图3-6所示为GSM模块电路,TC35i模块的正常运行需要相应的外围电路与其配合。TC35i共有40个引脚,通过ZIF连接器分别与电源电路、启动与关机电路、数据通信电路、语音通信电路、SIM卡电路、指示灯电路等连接。[12]单片机通过串行口对GSM模块进行控制,之间进行串行通信来达到远程通信的目的目前,国内常用的GSM模块有Wavecome的WMO2系列、Falcom的A2D系列、爱立信的DM10/DM20系列、中兴的ZXGM18系列和西门子公司的TC35系列等,这些模块的功能和用法差别不大,但各有所长。其中西门子公司的TC35系列模块性价比很高,并且已经有国内的无线电设备入网证。所以本设计就是选用西门子GSM通信模块TC35系列的蜂窝通信引擎TC35i。TC35i主要特性及技术指标[13]

TC35i是一个支持中文短信息的工业级GSM模块,高集成度(54.5mm×36mm×3.6mm),质量为9g。工作在EGSM900MHz和GSM1800MHz(phase2/2+)双频段,电源范围为3.3~5.5V,为单一电压,可传输语音和数据信号,功耗在EGS900(4类)和GSM1800(1类)分别为2W和1W,通过接口连接器和天线连接器分别连接SIM卡读卡器和天线,SIM电压为3V/1.8V。电流消耗----休眠状态为3.5mA,空闲状态(待机模式)为25mA,发射状态(通话模式)为300mA(平均),2.5A峰值。温度范围----正常操作-20°C~+55°C,存放-30°C~+85°C。TC35i有40个引脚,通过一个ZIF(ZeroInsertionForce,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。第1~14脚为电源部分:1~5为电源电压输入端Vbatt+,6~10为电源地GND,11、12为充电引脚,13为对外输出电压(共外电路使用),14为ACCU-TEMP接负温度系数的热敏电阻。24~29为SIM卡引脚,分别为CCIN、CCRST、CCIO、CCCLK、CCVCC和CCGND。33~40为语音接口,用来接电话手柄。15、30、31和32脚为控制部分:15为点火线IGT(Ignition),当TC35i通电后必须给IGT一个大于100ms低电平,模块才启动;30为RTCbackup,31为Powerdown,32为SYNC。16~23为数据输入/输出,分别为DSR0、RING0、RxD0、TxD0、CTS0、RTS0、DTR0和DCD0。本模块主要实现的功能是当本地出现灾情时,本模块能够把灾情及时通知到远程数据段(手机等接收终端)。继电器部分图3-7继电器与单片机连接电路如图3-7,选用的继电器为电磁继电器,控制端接一个线圈,若继电器连接则常闭触电断开,常开触点闭合。本设计为P0口接上拉电阻接PNP三极管的基极,若P0口为低电平,三极管导通,继电器开始工作,使常闭触点断开,常开触点闭合。在实际应用中可以用常闭触电接用电设备,使之关闭。按键部分本设计一共使用了三个按键,一个是单片机复位电路中的按键,在前面已经介绍过了,这里就不再介绍了,剩下的两个按键分别连接在P3.2,P3.3两个引脚上,通过这两个按键可已设定设计是否报警。图3-8按键电路存储器部分本设计中DS18B20所采集到的数据送到单片机后,单片机不光进行显示,还将其温度值,序号值,及其相应的ROM值存在了寄存器里,即图3-9中的24C16B。图3-9储存器部分软件调试软件流程4.1.1主程序流程图本设计流程图如下图所示,首先系统初始化,在液晶和DS18B20都初始化都完成之后,执行温度采集程序。采集温度完成之后,处理所采集到的温度,送到LCD1602中显示,并且进行比较,看采集到的温度是否是安全值,若所采集到温度大于安全值,报警电路报警,继电气电路导通。[19]图4-1主程序流程图4.1.2DS18B20温度采集流程图本设计的温度采集系统是由多个DS18B20组成的,因为所有的DS18B20都连接到一条总线上,所以读每个DS18B20温度时都要找寻到匹配的ROM.,DS18B20才能正常工作。[20]图4-2温度采集流程图硬件调试及分析实验现象及结果分析本设计经硬件上电测试,液晶显示温度和相应的DS18B20的序号值,其所显示的温度,在一段时间之后,液晶显示下一个DS18B20所测得的温度和其序号值。如此循环显示。为了更容易看到现象,在上电测试中,将其温度上限设为35℃。在测温过程中,用打火机点燃靠近第二个DS18B20,,发现在显示第二个DS18B20显示的温度明显比上次有所增加。在第二个DS18B20的温度值超过35℃,并且液晶显示到第二个DS18B20时,报警电路报警,第二个继电器所控制的电路断开。实验中发现电路开始报警时并不是第二个DS18B20刚好达到上限,而是超过了一点,经过分析,原因是在DS18B20达到上限时,单片机可能在那时并不是读其所对应的DS18B20值,当程序执行一遍之后,再读那个DS18B20时,温度已经超过上限了。虽然这个电路的实时性并不是特别的好,但是由于单片机的程序循环一次用的时间并不是太多,可以达到效果。实验过程中的遇到的困难液晶无法正常显示本设计的显示电路打算用1602液晶,液晶相对数码管有很多有点,这是不可否认的,但后来在调试程序的时候发现液晶只显示第一行方块,按下复位键也没反应。最开始以为是硬件连接问题,用万用表检测未见异常。后来调节偏压,未产生结果。后来以为是程序问题,调试了很多编程序仍然无法运行,后来在别人的建议下弃用P0口,转而使用P1口与1602进行连接,取得了成功。DS18B20故障当电路焊接完成进行调试的时候,刚开始发现液晶不能显示DS18B20的温度,后来经过调整程序发现是液晶显示程序打断了DS18B20程序的时序,使DS18B20不能正常工作。进过改变程序解决了问题。可是1602能显示之后又发现了新的故障,温度只能显示到16.9摄氏度,后来发现原因是程序中定义的中转量T为unsignedchar,是8位的,而DS18B20温度所输出的数据是12位的,导致了温度的高八位消失,所以温度只能显示到16.9。知道原因后将T设为unsignedint,解决了问题。继电器方案问题刚开始本设计采用单片机引脚直接连接继电器引脚,用另外的继电器控制端接地的方法设计的,可是发现继电器不工作。后用万用表检测单片机引脚,发现程序没有问题。有点百思不得其解,后查资料发现单片机引脚无法直接驱动继电器。后改为用三极管控制继电器是否接+5V电源,解决了问题。实验误差分析在测量仪器的实际使用中,造成误差的来源很多,通常是多种误差源综合作用的结果。就本仪器而言,误差来源主要来自以下几个方面。电源造成的误差虽然系统采用直流电源供电,但电源不可避免地残留一定的交流成分而形成噪声信号.它们对测控系统的正常运行危害很大。本系统选用ACDC电源模块,将220V市电转化为5V直流电压,分别给模拟电路和数字电路供电。为了尽量减小噪声,数字地和模拟地要一点接地,每个芯片的电源就近接退耦电容。(2)环境、外部噪声引起的误差环境因素包括环境温度、湿度、空气中的尘埃等。对本系统来说,空气中的成分对系统的探头和单片机及其外围电路影响很小,在进行测量时不用进行补偿。但环境温度、湿度对传感器有一定的影响。但是温湿度的影响相对于系统5%LEL的精度要求,可以忽略不计。另外,系统还受到各种外部电磁噪声的干扰,设计上,把探测器与控制器之间的信号线用屏蔽电缆连接。在电路板布线时,注意抗干扰设计。实物图经测试结果显示,正常情况下液晶显示各DS18B20所测得温度,若某个DS18B20所测得温度超过温度上限60℃时,液晶停留在所测那个DS18B20上,蜂鸣器报警,小灯闪烁。相应的继电器断开。按下按键后蜂鸣器与小灯不再报警,液晶显示NOWARN测试结果是正确的。结论通过本次设计,系统能够完成上限温度发声报警且显示功能、数字显示温度计功能、输入报警温度,GSM模块发送短信功能。本论文在对温度传感器和报警技术进行深入研究的基础上,全面比较国内外同类产品的技术特点,合理地确定系统的设计方案。并对仪器的整体设计和各个组成部分进行了详细的分析和设计。通过现场标定及测试,分析采集到的温度的实验数据,计算本报警器显示温度与实际温度之间仅存在少量误差,满足检测要求,达到了预期的设计效果的结论。此次温度计设计,学会了规范化程序的编写、程序调试的各种方法以及解决调试过程中出现的一系列的问题。更重要的是明白程序的优化是多么重要。要想编写出一个系统的程序,就必须十分清楚硬件电路中所用芯片的工作原理以及使用它们的一些注意事项,比如这次设计中所用的DS18B20数字温度传感器,它的时序要求十分严格,由于它是采用单总线结构的输入输出方法,它的时序中所用到的延时必然很关键,时间过长了会使整个温度计的反应时间变慢,延时时间过短会使传感器不能正常工作。致谢在本次毕业设计中,我得到了指导老师江晓林老师的热心指导。自始至终关心督促毕业设计进程和进度。帮助解决毕业设计中遇到的许多问题。还不断向我传授分析问题和解决问题的办法,并指出了正确的努力方向,使我在毕设过程中少走很多弯路。同时,他还提供给我们专门的各种设备及场所,使我在调试过程中能够有充足的时间。在这里非常感谢江老师的指导和帮助,并致以诚挚的谢意!通过这次设计我明白了,无论做什么样的事情,包括以后的工作,都需要付出努力才会有所汇报,而不是随便的去应付。最后,感谢老师在这四年里的培养和教导。谢谢! 参考文献1李钢,赵彦峰.1-Wire总线数字温度传感器DS18B20原理及应用.长安大学信息工程学院2刘建亭,毛善坤.DS18B20工作原理及基于C语言的接口设计.河南科技大学机电工程学院3陈跃东.DS18B20集成温度传感器原理及其应用.安徽工程科技学院4顾振宇刘鲁源杜振辉.DS18B20接口的C语言程序设计.天津大学5周月霞孙传友.DSl8B20硬件连接及软件编程.传感器世界杂志6魏英智.DSl8B20在温度控制中的应用.黑龙江科技学院7张培仁.MCS-51单片机原理与应用.北京:清华大学出版社,2003.8赵亮,侯国锐.单片机C语言编程与实例.北京:人民邮电出版社,2003。9张粤,倪伟。DSI8B20在分布式测温系统中的应用.淮阴工学报.200210藏荣,游风荷,周景霞.由单片机和多片DS1820组成的多点电温度测控系统[J].国外电子元器件,2002(1):60-62.11况荣华.容太平.I2C总线在单片机上的实现.国外电子元器件,2001(6)46~49.12陈世利等.SP1串行Flash在数据存储系统中的应用.国外电子元器件.2001(1O):20~23.13邓建华.可缩程看门狗监控E2PROM芯片.电子世界,2001(5):31~32.14王明顾.吴省.可涓流充电的串行实时时钟芯片DS1302及应用设计.(何立民主编)单片机应用技术选编第5集.64-67.15潘文.一种串行EPROM的高可靠性应用和编程技术.(何立民主编)单片机应用技术选编第5集.44-48.16周巧娣,刘敬彪.AT24C256在单片机系统中的应用.电子元器件应用,2002(9):27~29.17Dallas.ApplicationNetBook,l999(网络版)18吴江,陈尚松.单总线技术在测控系统中的应用.电测与仪表,1999(9)19吴江,陈尚松.用单总线技术设计环境状态监控系统.电子技术应用,2000(6)20何立民.单片机应用技术选编.北京航空航天大学出版,1996附录程序main.c:#include"lcd1602.h"#include"ds18b20.h"#include"24C16B.h"sbitWN=P3^7;sbitX0=P3^2;sbitX1=P3^3;ucharnum;ucharn=1,count=0,smb=0;externcharzhen_temp[5],*wendu;externbitflag;ucharcodeds18b20_num1[8]={0xfd,0x00,0x00,0x00,0xb8,0xc5,0x45,0x28};ucharcodeds18b20_num2[8]={0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28};ucharcodeds18b20_num3[8]={0xb9,0x00,0x00,0x00,0xb8,0xc5,0x31,0x28};ucharcodeds18b20_num4[8]={0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28};ucharcodeds18b20_num5[8]={0x10,0x00,0x00,0x00,0xb8,0xc1,0x11,0x28};ucharcodeds18b20_num6[8]={0x4d,0x00,0x00,0x00,0xb8,0xc5,0x50,0x28};ucharcodeds18b20_num7[8]={0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x28};ucharcodeds18b20_num8[8]={0xed,0x00,0x00,0x00,0x00,0x28,0x12,0x28};voiddelay(unsignedinttime){ unsignedinti,j; for(i=0;i<time;i++) for(j=0;j<200;j++);}/**********************************************************************-------------------外部中断0的中断服务程序----------------------------voidint_0(void)interrupt0using0 { delay(15);//延时消抖 while(!X0);//等按键抬起smb=!smb; //允许报警标志 WN=0; }voidtim_0(void)interrupt1using1 { TH0=-50000/256; TL0=-50000%256; count++; if(count==40) { count=0; n++; if(n==9)n=1; } }voidint_1(void)interrupt2using2 { delay(15);//延时消抖 while(!X1);//等按键抬起 TR0=!TR0; //允许T0标志 } voidmain(void){ uchari,ad_24C16B=0,*p; uchartemp[3]; charwendu=0; char*str1="No.1:"; char*str2="No.2:"; char*str3="No.3:"; char*str4="No.4:"; char*str5="No.5:"; char*str6="No.6:"; char*str7="No.7:"; char*str8="No.8:"; IE=0x87;//开中断 TCON=0x15;IT0=1; TR1=1; TMOD=0x01; TH0=-50000/256; TL0=-50000%256; WN=0; serial_set(); Lcd_Init(); ClrScreen(); while(1) { ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); //转换 delay(500); switch(n) { case(1):match_rom(ds18b20_num1);break;//匹配第一路 case(2):match_rom(ds18b20_num2);break;//匹配第一路 case(3):match_rom(ds18b20_num3);break;//匹配第一路 case(4):match_rom(ds18b20_num4);break;//匹配第一路 case(5):match_rom(ds18b20_num5);break;//匹配第一路 case(6):match_rom(ds18b20_num6);break;//匹配第一路 case(7):match_rom(ds18b20_num7);break;//匹配第一路 case(8):match_rom(ds18b20_num8);break;//匹配第一路 default:break; } ds18b20_writecommand(0xbe); //读 for(i=0;i<2;i++) temp[i]=ds18b20_readdata(); temperature_process(temp[0],temp[1]); if(zhen_temp[0]=='0') { zhen_temp[0]=''; if(zhen_temp[1]=='0')zhen_temp[1]=''; } Screen_home(); GotoXY(0,0); Print("Temper:");GotoXY(0,1); switch(n) { case(1):Print(str1);break; case(2):Print(str2);break; case(3):Print(str3);break; case(4):Print(str4);break; case(5):Print(str5);break; case(6):Print(str6);break; case(7):Print(str7);break; case(8):Print(str8);break; default:break; } if(!flag)//正 { Print(""); Print(zhen_temp); } else//负 { Print("-"); Print(zhen_temp); } temp[0]=0xdf; temp[1]='C'; temp[2]='\0'; Print(temp); GotoXY(0,1); /*******************************存储信息**************************************/ SDA_24C16B=1; //初始化24C16B _nop_();SCK_24C16B=1; write_24C16B_ad_da(ad_24C16B,wendu); ad_24C16B++; write_24C16B_ad_da(ad_24C16B,n); ad_24C16B++; for(i=9;i>0;i--,ad_24C16B++,p++) write_24C16B_ad_da(ad_24C16B,*p);/*******************************报警判断**************************************/ GotoXY(7,0); if(smb==0)Print("warn"); elsePrint("nowarn"); while(smb==0&&zhen_temp[4]>40||zhen_temp[4]<-20) { WN=1; delay(2); WN=0; delay(2); if(smb)break; } } }LCD1602.C#include"lcd1602.h"voiddelay1_64ms(void){ uchari; for(i=0;i<250;i++) { _nop_(); _nop_(); _nop_(); _nop_(); }}unsignedcharLcd_Wait(void){ while(1) { DBPort=0xff; LcdEn=0; _nop_(); LcdRs=0; _nop_(); _nop_(); LcdRw=1; _nop_(); _nop_(); LcdEn=1; _nop_(); _nop_(); _nop_(); _nop_(); if((DBPort&0x80)==0) { break; } LcdEn=0; } returnDBPort;}voidLcd_Write(bitstyle,unsignedcharinput){ LcdEn=0; _nop_(); _nop_(); LcdRs=style; _nop_(); _nop_(); LcdRw=0; DBPort=input; _nop_(); _nop_(); LcdEn=1; _nop_(); _nop_(); LcdEn=0; _nop_(); Lcd_Wait(); }voidClrScreen(void){ Lcd_Write(Lcd_Command,Lcd_Clear_Screen); delay1_64ms();}/voidScreen_home(void){ Lcd_Write(Lcd_Command,Lcd_Home);}voidLcd_SetDisplay(unsignedcharDisplayMode){ Lcd_Write(Lcd_Command,0x08|DisplayMode);}voidLcd_Move(unsignedcharMoveMode){ Lcd_Write(Lcd_Command,0x10|MoveMode);}voidLcd_SetInput(unsignedcharInputMode){ Lcd_Write(Lcd_Command,0x04|InputMode);}voidLcd_Init(void){ Lcd_Write(Lcd_Command,0x38);//8位数据端口,2行显示,5*7点阵 Lcd_SetDisplay(Lcd_Display_On);//开启显示,无光标|Lcd_Cursor|Lcd_Flash Lcd_SetInput(Lcd_Ac_Up|Lcd_No_Move);//AC递增,画面不动_To }voidGotoXY(unsignedcharx,unsignedchary){ if(y==0) {Lcd_Write(Lcd_Command,0x80|x); } if(y==1) {Lcd_Write(Lcd_Command,0x80|(x+0x40)); } }voidPrint(unsignedchar*str){ while(*str!='\0') { Lcd_Write(Lcd_Data,*str); str++; }}voidprint_char(uchara){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论