家庭安防、火灾自动报警系统毕业设计论文_第1页
家庭安防、火灾自动报警系统毕业设计论文_第2页
家庭安防、火灾自动报警系统毕业设计论文_第3页
家庭安防、火灾自动报警系统毕业设计论文_第4页
家庭安防、火灾自动报警系统毕业设计论文_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

火灾自动报警与消防控制系统设计AutomaticFireAlarmandFireControlSystems学生姓名:学生学号:专业名称:电气工程及其自动化指导教师:控制与机械工程学院2014年6月6日

独创性声明本人声明所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作和取得的研究成果,除了文中特别加以引用标注之处外,论文中不包含其他人已经发表或撰写过的研究成果,没有伪造数据的行为。毕业设计(论文)作者签名:签字日期:年月日毕业设计(论文)版权使用授权书本毕业设计(论文)作者完全了解学校有关保留、使用论文的规定。同意学校保留并向有关管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权天津城建大学可以将本论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文。(保密的毕业设计(论文)在解密后适用本授权说明)毕业设计(论文)作者签名:指导教师签名:签字日期:年月日签字日期:年月日摘要智能家居系统,目前已在国内外悄然兴起,随之给人们带来的生活方式也在不断的改变,一切家居电气化设备都由机械化变的智能化,所谓的智能家居就是利用现代传感与检测技术,网络通信技术,无线通信技术,综合布线技术,并结合人体生理学原理,和人类个性需求,将家居中的各个电气设备智能的结合在一起,实现个性化的控制和自动控制,比如智能安防系统,由灯光和人体检测技术实现的自动化场景设定,火灾自动报警与消防联动系统,通过互联网和无线通信实现的远程监控系统,自动门,自动窗帘,根据检测室内环境进行自动的温湿度调节,燃气电磁阀连锁控制,等等将这一切通过物联网上位机集中监控和管理,实现以人为本的控制理念。本次毕业设计,主要研究家庭火灾自动报警和安防报警。由HT66FU50单片机作为主控芯片的火灾自动检测和远程报警,并实现与消防设施的联动控制,本次设计以自控系统为主,由控制器和硬件电路组成,具体消防设施、消防系统设计、以及消防给排水不在本次设计范围之内。关键词:智能家居、火灾报警、安防报警、无线通信、单片机AbstractSmarthomesystemhasbeenquietlyrisingathomeandabroad,tobringalonglifestylesareconstantlychanging,allhouseholdelectrificationbymechanizedequipmentbecomesintelligent,theso-calledsmarthomeistheuseofmodernsensinganddetectiontechnology,networkcommunicationtechnology,wirelesscommunicationtechnology,integratedwiringtechnology,combinedwiththeprinciplesofhumanphysiology,andhumanindividualneeds,thehomeofthevariouselectricaldevicescombinedwithintelligent,personalizedcontrolandautomaticcontrol,suchassmartsecuritysystemconsistingoflightandhumandetectiontechnologytoachieveautomationscenesetting,automaticfirealarmandfirelinkagesystem,remotemonitoringviatheInternetandwirelesscommunicationsystemstoachieve,automaticdoors,automaticcurtains,accordingtotheindoorenvironmentfortheautomaticdetectionoftemperatureandhumidityregulation,gassolenoidvalvechaincontrol,soallthesethingsPCviacentralizedmonitoringandmanagement,people-orientedcontrolconcept.Thegraduationproject,themainresearchfamilyautomaticfirealarmandsecurityalarm.HT66FU50microcontrollerasthemasterchipautomaticfiredetectionandremotealarmandlinkagecontrolandfire-fightingfacilitiestoachieve,andthisdesignautomationsystemdominatedbythecontrollerandthehardwarecircuit,specificfire-fightingfacilities,fireprotectionsystemdesign,aswellasFiredrainageisnotwithinthescopeofthisdesign.Keywords:smarthome,firealarm,securityalarm,wirelesscommunications,MCUTOC\o"1-3"\u目录第一章绪论 第一章绪论1.1课题研究的背景自从人类进入电气时代以来,家用电气也见证者着科学的进步和人类的发展,由最开始的普通电灯泡发展到现在的LED节能照明,以及智能场景设定等等,智能家居已成为人们对物质追求和精神追求的目标,坐在办公室能对家里的情况了如指掌,通过电脑客户端或者手机APP实时观看家里的视频监控录像,当需要对家里的电气设备进行远程控制的时候只需要在手机界面上进行操作就可以实现,当家里没人时系统会自动开启摄像机进行录像并存盘,出门忘记关灯或锁门时只需要一条短信就可以搞定一切,空调系统随着环境温湿度的变化自动调节使环境达到最舒适的状态,这一切智能化控制在当今社会已经不是难题。在不久的将来,每个家庭都会拥有一套这样的智能化家居控制平台,到时会给我们的生活工作带来极大的方便。本课题来源于智能家居中的消防与安防系统,消防与安防是智能家居的重要组成部分,消防部分承担着火灾发生时自动报警并开启消防喷头、语音报警、疏散引导等功能,安防部分承担着家庭防盗、室内外环境危害检测及报警等功能。1.2开发的目的和意义开发目的:能够及时监测到环境中有无火灾,火灾一旦发生将实现声光报警,并自动打电话给户主提示家中有火灾隐患,同时开启消防电磁阀、打开消防水龙头、关闭燃气入户电磁阀等采取一系列有效措施,从而控制火情的发展,从而达到保护人民生命和财产安全的目的,大大的减少社会的损失。安防部分为当有人从窗户进入时发短信给户主并自动报警,室内有害气体超标检测及燃气泄露报警。意义:随着电气设备越来越多,线缆越来越多,综合布线越来越复杂和越来越密集,发生短路或过载的可能性也随之增大,由此引起火灾的可能性也越来越大,在我们的家庭设施中到处存在着火灾隐患。很多火灾事故的发生都是由电气设备的故障所产生的,比如说短路引起的起火或负荷过载引起的线路温度过高,热量的积累达到一定程度会引发着火。事故发生时的及时通知,引导疏散,对灾害的有效控制等会大大的减少给人们带来的人生安全和经济损失。1.3设计内容及预期效果设计内容:通过HT66FU50单片机为核心,可以实现火灾现场声光报警、电话报警,安防报警等功能。对该检测系统与报警系统进行整体功能分析,分模块来实现其各个部分的功能,对其所选择的主要芯片作简单介绍,动手制作产品,包括硬件电路的设计,PCB的制作,手工焊接与调试,软件程序的编写,硬件与软件的联合调试。预期效果:烟感器能够24小时监测环境中有无烟雾气体,一旦监测到烟雾将发出声光报警,并自动打电话给主人提示家中有火灾隐患,同时打开消防设施,当有人从窗户进入时发短信给户主并自动报警,室内有害气体超标检测及燃气泄露报警。1.4国内外研究现状近年来,无线通信技术在科学界得到大力发展,采用无线通信方式的报警系统在智能家居中广泛兴起。利用无线通信的方式替代传统的有线传输,也产生了许多无线通信模块比如,Zigebee节点,wifi技术,蓝牙技术,红外光通信[12],等等。随着这些技术的兴起,智能家居也逐渐迈向无线时代。无线通信的优点是通信速率快,衰减小,带宽高,传输方便,无需接线和硬件连接即可实现数据的传输[6],给人们带来了极大的便利。在我国,基于无线远程通信方式和物联网的火灾报警系统受到专家们的重视和广大学子的深入研究。由于其具有安装十分方便、操作及其简单、对建筑物基本无损坏、易于扩展和二次开发等优点,适用于很多场合[10]。第二章火灾报警系统整体方案设计第二章火灾报警系统整体方案设计2.1系统总体方案设计本火灾报警系统由两部分组成,第一部分为烟雾检测报警,第二部分为可燃气体泄漏检测报警,烟雾检测报警由烟雾传感器、放大电路、滤波电路、HT66FU50单片机、GSM电话报警、现场声光报警器、等部分组成。可燃气体检测由可燃气体检测传感器、AD转换、GSM短信发送模块、排烟风机等部分组成。12转5V电源模块12转5V电源模块HT66FU50单片机GSM模块烟雾传感器HT66FU50单片机GSM模块烟雾传感器可燃气体检测器可燃气体检测器液晶显示模块液晶显示模块手动报警按钮排烟风机手动报警按钮排烟风机红外传感器消防电磁阀红外传感器消防电磁阀步进电机步进电机图2—1系统框图2.2主要器件的选择2.2.1单片机的选型单片机是整个报警系统的核心组成部分,因本系统需要串口功能、AD转换等功能综合比较目前市场所流行的单片机,最后我选了合泰半导体公司的HT66FU50单片机做为主控芯片。该芯片是一款8位高性能精简指令集的Flash单片机。其Flash存储器可以多次擦写,还包含了一个RAM数据存储器和一个可用于存储序号、校准数据等非易失性数据的EEPROM存储器[17]。HT66FU50系列单片机内含UART模块,它可以支持诸如单片机之间的数据通信或数据传输,低成本PC和外部数据之间的链接,和人机界面之间数据传输等等,[17]。对合泰单片机与51单片机我做了如下比较表2—1单片机功能比较表型号VDDROMRAMEEPROMI/OA/D接口(SPI/IIC)UART51单片机3.8~5.54K128B32√HT66FU502.2~5.58K384B256x83412-bit×8√√2.2.2火灾检测传感器的选择常用的火灾探测器有以下几种:(1)温感型火灾探测器火灾发生时物质燃烧会产生大量的热量,当环境温度升高时,热敏电阻的阻值会随之发生变化,电阻阻值的变化使输出电压发生变化,这样就把温度的变化转换为电压信号的变化,温度和输出电压之间形成一一对应的线性关系[16]。(2)感烟型火灾报警系统光电感烟的原理是利用红外对射的检测方法,当有高浓度烟雾进入感烟室时会吸收红外线,使接收端无法接受到红外光源,从而使输出电平发生跳变产生报警信号。离子感烟探测器通过改变感烟室里面自由电子的浓度来判断火灾情况的[16]。(3)感光型火灾报警系统物质的燃烧除了会产生大量的烟雾和热量之外,同时会发出刺眼的亮光。感光型火灾探测器就是通过响应火灾发生时产生的光照强度特性,即火焰的光照强度和闪烁频率,来触发报警系统报警的装置[16]。由于考虑到经济以及使用环境等因素,在本次设计中我选用了感烟型探测器,通过检测烟雾的浓度来实现火灾是否发生的判断。2.2.3报警装置的选择报警装置分为现场声光报警和远程手机报警,现场声光报警采用报警灯和广播喇叭,如果现场为防爆区,则需使用防爆灯或防爆型广播喇叭,家庭中一般使用普通的即可,由于条件限制,我在本次毕业设计中紧使用不同颜色的LED灯作为指示灯光,其原理与报警灯一样,而且LED灯用单片机做控制相对方便,广播选用小型蜂鸣器做代替,虽然达不到真实的语言报警效果,但同样会发出滴滴的报警声,可通过单片机编程实现不同频率的声音效果。手机报警采用了西门子公司的GSM模块,在此模块中插入移动手机卡,可进行发短信、打电话和移动网络接入等功能,用任何一个单片机可对其实施控制完成所需功能。其使用方便,操作简单已在各种远程控制领域广泛使用,包括远程监控,远程抄表等领域[11]。2.2.4可燃气体检测传感器的选择目前流行于市场的可燃气体检测传感器大约有如下几种类型:

1、半导体式气体检测传感器

它是利用一些半导体金属氧化物材料,在一定温度下,电导率随着环境气体成份的变化而变化的原理制造的。就是利用二氧化锡在高温情况下遇到甲烷、乙烷等可燃气体时,电阻会急剧减小的原理制备的[4]。

2、催化燃烧式气体传感器

这种传感器是在白金电阻的表面涂一层耐高温的催化剂层,在一定的温度下,可燃性气体在其表面催化燃烧,燃烧白金电阻温度升高,电阻变化,变化值是可燃性气体浓度的函数[16]。

凡是可以燃烧的,都能够检测;凡是不能燃烧的,传感器都没有任何响应[11]。2.3系统总体功能概述当烟感器检测到烟雾时发出电平跳变信号,通过信号放大电路,滤波电路输入单片机I/O口,当检测到信号后产生中断,进入中断服务子程序,将执行报警命令和拨打电话命令程序同时产生现场声光报警;当红外传感器检测到有人从窗户进入时输出高电平,传输到单片机I/O口,单片机产生相应的响应,现场报警的同时给远程手机发送短信提示;使用有毒气体检测传感器,可以检测到室内有害气体如甲醛、一氧化碳、甲烷等的含量,并做出上限报警,自动打开窗户和排烟风机,利用单片机和TC35模块进行远程通知。第三章火灾自动报警系统硬件设计第三章火灾自动报警系统硬件设计3.1单片机硬件电路的设计3.1.1HT66FU50单片机概述HT66FU50单片机具有多通道12位分辨精度的A/D转换器,全双工异步串行口,PWM及单脉冲输出,定时器[17],外部中断等重要功能详细特性如下(引自合泰单片机HT66F系列数据手册):1.CPU特性•工作电压:fSYS=8MHz:2.2V~5.5VfSYS=12MHz:2.7V~5.5VfSYS=20MHz:4.5V~5.5V•VDD=5V,系统时钟为20MHz时,指令周期为0.2μs•五种振荡模式:外部晶振--HXT外部RC--ERC内部RC--HIRC无需外接元件•查表指令•63条指令•多达12层堆栈•位操作指令2.周边特性•Flash程序存储•RAM数据存储:•EEPROM存储器:•看门狗定时器功能•多达50个双向I/O口•4个软件控制SCOM口1/2biasLCD驱动•双比较器功能•低电压复位功能•低电压检测功能•多种封装类型3.HTUUFU50单片机内部结构如下图3—1单片机内部结构图4.单片机的封装及引脚功能图3—2单片机封装图图3—3单片引脚功能图1图3—4单片引脚功能图23.1.2HT66FU50单片机外部时钟电路晶振作为单片机的心脏,在单片机工作中起着相当重要的作用,将晶体跨接至OSC1和OSC2,为保证某些低频率的晶体振荡和陶瓷谐振器的振荡频率更精准,连接两个小容量电容C9和C10到放大器的反馈回路中构成并联振荡电路,本设计中使用石英晶体,电容的容值设定为22uF[17]如图3-3所示。3.1.3HT66FU50单片机复位部分电路复位功能是任何一个单片机不可缺少的基本组成部分。复位是在单片机上电以后,经过短暂的延迟,内部硬件电路使得单片机处于预期的稳定状态并开始执行第一条程序指令。本设计采用的是手动按钮复位。由于复位引脚与PB.0共用,复位功能必须使用配置选项选择。我们使用了增强型的复位电路[17],如图3-3所示。图3—3晶振电路与复位电路3.2前端信号采集电路设计3.2.1可燃气体检测传感器信号采集电路由于传感器发出的模拟信号比较微弱,因此需要将信号进行放大处理,并滤除杂波的干扰,将最后得到的信号输入单片机的AD转换接口,下图为信号放大和滤波电路。图3-4可燃气体信号采集电路3.2.2烟雾传感器信号采集电路我们采用的烟雾传感器为一体式烟雾传感器,输出为5V电压信号,所以无需放大处理,只需做个简单的滤波,将干扰信号滤除即可给单片机的输入口,有烟或无烟将产生高低两种电平。图3-5烟雾传感器信号采集电路3.3GSM短信模块与单片机接口电路设计3.3.1GSM短信模块工作原理模块要求12V/500mA供电,与计算机或单片机通过串口通信,波特率9600bps,通过SIM卡座来安装SIM卡。GSM模块主要有已下几大功能短信收发语音通话功能无线网络功能通过给GSM发送AT指令来实现所有的功能,例如用单片机给其发送AT将会返回OK,代表单片机可以和GSM模块进行下一步的通信,发送AT+CMGF=1,返回OK时将短信发送模式设置为英文模式,发送AT+CMGS=”+8615822857040”\r将会手机发送短信。常见指令表如下:AT+CSMS选择消息业务AT+CPMS选择短消息存储区AT+CMGF选择消息格式AT+CNMI新消息提示AT+CMGR读取短消息AT+CMGL列举短消息AT+CMGS发送短消息AT+CMGW向内存写入消息AT+CMGD删除短消息AT+CSCA设置短消息中心地址AT+CSCB选择广播消息类型3.3.2TTL转RS232电路GSM模块含有一个标准的RS232接口,与单片机进行通信,RS232的低电平范围为3V~15V高电平的范围为-3V~-15V,而TTL输出低电平小于0.8V高电平大于2.4V,二者电平并不匹配,因此需要做TTL转232,采用MAX232电平转换芯片[4],电路如图3-6所示。图3-6TTL和232转换电路GSM模块与单片机连接方式如图3-7所示,此时GSM模块开发板的九针串口235与MCU开发板九针串口的325连接:图3-7GSM与单片机串口连接图3.4声光报警及手动报警部分硬件设计3.4.1现场声光报警器的选择及与单片机的接口电路声光报警器主要起火灾发生或者可燃气体泄露时的提示和现场报警作用,根据不同情况(火灾,可燃气体泄露,故障)可发出不同的声光信号。由于蜂鸣器的工作电流比较大而单片机I/O口的拉电流相对较小,直接驱动将会对单片机的I/O造成损害,所以采用三极管作为开关,间接驱动方式。蜂鸣器报警电路由单片机的PD6口控制,当PD6口输出高电平时三极管截止,蜂鸣器不导通,当PD6口输出低电平时三极管饱和导通,蜂鸣器发出警报声音,电路如图3-8所示:图中R7为上拉电阻,使三极管的基极在正常情况下为高电平。图3—8蜂鸣器驱动电路3.4.2状态指示灯及控制键电路设置4个状态指示灯和四个控制按键,四个指示灯D1~D4可选四种不同颜色(红,黄,绿,蓝),绿色表示正常运行,黄色表示故障状态或断电状态(可由太阳能电池应急),红色闪烁为火灾报警,蓝色闪烁为可燃气体泄露,风别由单片机的PA0~PA3口控制,四个按键S1~S4,分别控制风机的开启关断、窗户的打开关闭和手动报警,风别由单片机的PA4~PA7口控制。图3—9按键和指示灯连接电路3.5液晶显示硬件电路设计液晶显示器选用1602,1602显示器可显示两行16个字符的英文字母,主要为开发方便所考虑,其主要功能为监测程序运行状态,短信模块收发是否正常,和火灾或可燃气体泄露状态的显示。1602与单片机的连接如图3-10所示:图3—101602连接电路图3.6排烟风机与窗磁的驱动电路设计排烟风机用两个直流电机所代替,窗户连杆的带动考虑到需精确控制,选用步进电机作为动力源。3.6.1排烟风机及直流电机驱动直流电机的驱动采用PWM控制技术,通过调节占空比来调节直流电机的转速,驱动芯片选用L298N。此芯片可以驱动两个小功率的直流电机。驱动电路如图所示,APWM和BPWM分别接单片机的PWM输出口。OUT1~OUT4接两台直流电机[14]。图3—11直流电机驱动电路3.6.2窗户步进电机驱动电路步进电机的驱动同样选用L298N作为驱动芯片,IN1~IN4为信号输入,OUT1~OUT4接步进电机的四个控制端,IN1~IN4由单片机给指定的时序脉冲即可实现正反转控制[2]。图3—12步进电机驱动电路3.7AD转换技术说明HT66FU50单片机自带一个多通道的A/D转换器,可以直接接入外部模拟信号并直接将这些模拟信号转换成12位的数字量,所以无需外加AD转换芯片和AD转换电路,只需做软件编程即可实现模拟量的处理。AD转换内部结构和相关的AD寄存器祥见图3-13。图3—13AD转换结构图第四章软件部分设计第四章软件部分设计为了方便程序的编写和调试以及系统的维护,采用了模块画的程序设计,即每个模块含有一个子程序,在主程序里面调用各子程序,例如:1602显示子程序,需要1602显示时调用改子程序的显示子函数,由其他服务子函数提供1602的读写状态和显示位置等。本系统共有串口驱动子程序,1602显示子程序,键盘检测子程序,AD转换子程序,PWM脉冲发生子程序,步进电机驱动子程序,等6大服务子程序组成。4.1主程序流程图图4—1主程序流程图4.2液晶显示器1602软件部分设计4.2.11602显示器编程原理1602LCM有16个引脚,其中包含8条数据线、3条控制线(读写选择、寄存器选择、使能信号端)和3条电源线,两条LED背光电源,通过单片机写入模块的命令和数据,就可对显示地址和显示内容做出选择。RS位为1时为数据寄存器,RS为0时为命令/状态寄存器,R/W为1时为读数据、0时为写数据[3]。图4—21602写数据时序图图4—31602读数据时序图4.2.2程序流程图图4—41602显示程序流程图4.2.31602初始化程序voidlcd_1602_init(void)//初始化1602液晶{lcd1_602_wr_cmd(0x06);//输入模式为,字符不动,光标右移(设置输入模式)Lcd_1602_wr_cmd(0x38);//设定两列(功能设置)Lcd_1602_wr_cmd(0x0c);//开启显示屏,不显示光标,光标所在(显示开/关控制) Lcd_1602_wr_cmd(0x01);//清屏的指令应该在液晶初始化最后面一行(清显示)}4.3步进电机工作原理及程序设计4.3.1步进电机工作原理步进电机由脉冲控制,给它发出一定的脉冲顺序就可以使其转动,改变脉冲顺序,改变转动方向,步进电机正反转驱动时序脉冲如表4-1所示:IN1IN2IN3IN410001100010001100010001100011001表4—1步进电机脉冲时序表4.3.2步进电机驱动子程序charcount=0,i=0;unsignedcharcode1[4]={0x01,0x02,0x04,0x08};unsignedcharcode2[4]={0x03,0x06,0x0c,0x09};unsignedcharcode3[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};voidmain(){ MCU_init(); led_flashing_cnt=1000; timer0_init(); _emi=1; while(1);}voidtimer0_interrupt(void){ _emi=0; _t0af=0; if(count==10) { count=0; PA=code1[i]; if(++i>3)i=0; }_emi=1;}4.4PWM波形发生子程序的设计voidmain(void){_acerl=0;//屏蔽pa7-pa0的A/D输入功能_cp0c=0;//屏蔽pa0、pa2、pa3三个I/O口的比较器0输入和出功能_cp1c=0;//屏蔽pa5、pc2、pc3三个I/O口的比较器1输入和出功能_prm2=0x02;//设置TP00PS:0TP0_0onPA0(屏蔽PA0的I/O功能) _tmpc0=0x03;//使能TP0_0(TM0,即PWM输出功能)_tmpc1=0;//屏蔽其余的TPm_n功能_tm0c0=0x04;//选择512个TM0时钟周期_tm0c1=0xac;//设置CCRA初始值为80H(128)_tm0al=0x80;//简易型TM(TM0CCRA低字节寄存器)先写低字节_tm0ah=0x00;//简易型TM(TM0CCRA高字节寄存器)先读高字节,再读低字节_t0on=1;//启动定时器0(TM0C0寄存器的bit3位)_t0ae=1;//定时器0比较器A匹配中断控制位(MFI0寄存器bit1位)_mf0e=1;//允许多功能中断0,多功能中断包括TM中断(INTC1寄存器bit1位)_emi=1;//开总中断(INTC0寄存器bit0位)}4.5AD转换软件设计思路因HT66FU50单片机内部含有AD转换模块,直接从AD输入引脚输入模拟量数据即可,通过编写AD转换程序即可实现AD转换功能。AD转换时序图如下所示:图4—5AD转换时序图A/D转换步骤1.设置单片机内部寄存器ADCR1中的ADCK2—ADCK0位,选择所需A/D转换的时钟[17]。2.给ADCR0寄存器中的ADOFF位付值为0,使能A/D转换功能[17]。3.设置ADCR1寄存器和ADCR0寄存器中的ACS4—ACS0位,即可选择连接至内部A/D转换器的通道[17]。4.设置ACERH寄存器和ACERL寄存器中的ACE11—ACE0位,设置哪些引脚规划为A/D转换输入引脚[17]。5.设置总中断控制位EMI,使其置位为“1”,以及A/D转换器中断位ADE置位为“1”[17]。6.通过设定ADCR0寄存器中的START位从“0”到“1”再回到“0”,开始模数转换的过程。该位需初始化为“0”[17]。7.循环查询ADCR0寄存器中的EOCB位,检查模数转换过程是否完毕。当此位成为逻辑低电平时,表示转换过程已经结束。转换完成后,可读取A/D数据寄存器ADRL和ADRH获得转换后的数值。另一种方法是,若中断使能且堆栈未满,则程序等待A/D中断发生。AD转换程序详见附录1。4.6按键检测及声光报警程序设计开始开始扫描键值是否有键按下延时10ms消抖是否有键按下提取键值调用键盘处理子程序结束NNYYY图4—6按键检测程序流程图voidmain(){ MCU_init(); LED1=OFF; LED2=OFF; LED3=OFF; LED4=ON;while(1){ if(S3==0) { delay(10); if(S3==0) { LED1=ON; _PA4=ON; Delay(1000);LED1=ON; _PA4=ON;………具体程序详见附录。第五章系统集成与测试第五章系统集成与测试本次报警系统的设计硬件部分使用protelDXP2004,软件部分设计使用合泰半导体公司提供的HT—IDE3000,程序烧写软件为HOPE3000forEIC300,以及仿真器、烧写器均有合泰半导体公司免费提供。设计的步骤分为以下几步,第一步:单片机开发板硬件原理图的设计,参照HT66xx系列单片机数据手册中单片机时钟电路以及复位电路。第二步:PCB的制作,包括元件库的导入,元件的封装,布线等过程。第三步:寻找印刷电路板制造商制作电路板,然后购买元器件手工焊接,检查电路焊接是否正确并测试。第四步:购买所需传感器以及GSM模块。第五步:软件编程,程序调试,下载并测试。在程序编写过程中,首先是对编程软件的设置,在配置选项栏中,设置时钟芯片的频率为3428.571KHz,工作电压为5V,关闭看门狗等功能。具体配置如下图5-1所示图5—1HT-IDE3000选项配置图其次是创建工程,如图5-2所示:图5—2创建工程文件最后开始编写程序,编程环境如图所示,参照依据为《HT66系列单片机数据手册》,《盛群C语言》,《1602数据手册》,《AT指令大全》,《GSM调试笔记》以及开发板例程。图5—3编程环境程序编写完之后,分模块进行调试,首先是串口的调试,使用串口调试助手实现单片机与PC之间的通信,如图所示,当MCU与PC实现发送和接受的通信后,连接单片机与GSM模块,利用单片机串口给短信模块发送AT指令即可实现拨打电话和发送短信的功能。图5—4串口调试当所有程序编写完后,下载至单片机内,连接所有硬件,上电后,系统便开始正常运行,将完成所有的设计开发工作。第六章运行与分析第六章运行与分析6.1系统整体调试与运行本系统采用12V直流电源供电,单片机与其他模块之间共地联接,首先给系统上电,上电成功后,程序初始化,然后程序处于循环查询状态,1602液晶屏上显示TEST字样,指示灯亮,通过制造一些烟雾或者可燃气体来测试传感器模块,此时蜂鸣器会发出报警声音,同时LED灯闪烁,窗户自动打开,风机缓慢启动,液晶屏上会显示火灾发生的相关信息,同时系统会通过GSM模块打电话报警,用户手机会收到预先设定号码打来的电话。6.2遇到的问题及解决方案当系统检测火灾发生时,控制窗户的步进电机开始转动,如果窗户处于关闭状态,则会打开窗户,如果窗户处于打开状态,步进电机同样会执行打开窗户的命令,这是面临的第一个问题,通过寻找老师的帮助,最后在窗户旁安装了一个行程开关,当窗户打开到最大程度时会触碰行程开关,于是行程开关处于闭合状态,此时一旦再次发生报警将不会执行步进电机正转命令。当按下相应按键时,步进电机反转关闭窗户。2.有时产生报警信号,但并未发出电话报警,经过我的仔细斟酌最后将此情况的产生总结为三种原因,第一是短信模块的信号问题,因为短信的传输采用的是比较古老但很成熟的GSM网络,与当今社会流行的3G、4G网络相比信号要差好多,有时候会出现网络信号传输慢或者无信号等问题。第二是IC卡的问题,因为在此模块上插入的是手机卡,有时会收到短信或呼叫电话,此时模块处于接收状态,不会处理发送命令,并且对串口会产生数据干扰。第三是单片机与GSM模块的电平匹配问题,单片机与GSM的通信采用的是TTL转232然后再由232转TTL的形式,在电平转换的过程中容易出现失误或者数据的可靠性问题,因为串口发送的数据为帧格式,以8个数据为一个单位,逐字存贮到缓存区,一旦其中的一个产生错误将会导致一组数据的错误。最后通过我的试验,直接使用单片机串口的TTL信号与短信模块进行通信,将取的良好的效果。此方法虽然有一定的弊端,比如一旦单片机与短信模块的通信距离增长,信号在传输的过程中产生衰减影响正常通信,此时必须使用RS232或者RS485。第七章结论与展望第七章结论与展望本次毕业设计经过我的努力以及同学和老师的帮助,实现了预期的两个目标,一是火灾和可燃气体的检测及现场声光报警,二是通过电话和短信的方式实现远程报警,从硬件电路的设计到实物模型的制作再到软件编程,均已圆满完成,通过模拟火灾现场的情形测试本系统的功能及系统的可靠性,均得到了满意的结果。火灾的发生无时无刻威胁着人类的生命和经济安全,我们除了消除火灾安全隐患,减少火灾发生的概率外,还得加强消防措施,有些情况是无法避免的,已经发生火情时我们只能尽量减少火灾的危害,减少人员的伤亡,并及时通过消防设施将火灾消灭在萌芽状态,当检测到有火灾隐患时及时扑灭,或者检测到有导致火灾发生的因素时及时通知并采取相关措施,这将会阻止火灾的发生。这一切都需要现代化的检测技术,专业的检测手段才能实现,了解社会需求,将自己所学的专业知识运用于实际生活当中,为社会做出贡献是我们每个当代大学生义不容辞的责任。本次毕业设计所做的东西,结构简单,成本低廉,但能可靠的完成预期的目标,具有一定的实用价值,是家庭安防的必备产品,使用方便,操作简单,可二次开发,具有广阔的市场空间与发展前景。通过这次毕业设计,我懂了知识的重要性,学以致用这是我们一直倡导的口号,但我们在大学里面学到的知识真正能够用运于实践的却少之又少,在快毕业之际能够完成这样一个产品使我有很多感悟和心得体验,更加加深了对专业知识的理解,让我对工程设计的整体步骤有了初步的认识,对即将步入工作打下良好的基础。致谢

致谢在本次毕业设计中,我得到了指导老师王首彬老师和王悦老师的悉心指导,王老师在论文的设计过程中提出了许多宝贵的合理建议,并帮助完成硬件电路的设计和PCB的制作,还不断向我传授分析问题和解决问题的办法,对遇到的所有问题一一解决,并鼓励我不怕出错,出错才有进步,找到错误并解决错误才是我们最大的收获。在这里非常感谢王老师的指导和帮助,并致以诚挚的谢意!在硬件电路的制作过程中得到了韩宝坤、赵元禄等同学的大力帮助,软件编程方面也受到了金林烽同学的悉心指导,在他们的帮助下我顺利的完成了本次毕业设计,并完成了硬件实物的制作,取得的效果令人满意,再次感谢以上同学的大力帮助。大学的生活丰富而又多彩,大学的时光短暂而又美好,大学的学习艰苦而倍感快乐,大学四年的时光转瞬即逝,给我们留下了美好的回忆,在这里我学到了专业知识,学会了与人交流,结实了许多好朋友和老师们,感谢我的母校天津城建大学,给我提供学习和生活的空间,真心希望它的明天会更加美好!参考文献参考文献[1]王钊.智能型火灾报警系统的设计与研究:西安理工大学,2009.[2]孙健.基于ARM7的电气火灾自动报警控制器研制:浙江大学,2007.[3]雍静,李北海,杨岳.建筑智能化技术〔M〕.北京:科学出版社,2008.[4]王忠民,郝静,张瑜.基于单片机的语音数字联网火灾报警器设计.西安邮电学院.[5]S.M.Lo,C.M.Zhao,M.Liu,A.Coping.Asimulationmodelforstudyingtheimplementationofperformance-basedfiresafetydesigninbuildings[J].AutomationsinConstruction,1998,17(7):852~863.[6]J.K.W.Wong,H.Li,S.W.Wang.Intelligentbuildingresearch:areview[J].AutomationinConstruction,2005,14(l):143~159.[7]张向亮.智能建筑火灾自动报警系统的设计与研究:武汉理工大学,2010.[8]VaughnBradshaw.TheBuildingEnvironment:ActiveandPassiveControlsystems[M].JohnWiley&Sons,2006.[9]陈颖.基于C8051F单片机的火灾智能报警控制系统的设计.大连海事大学,2007.[10]于智洋.浅析智能建筑中火灾自动报警系统的设计[J].潜江:江汉石油科技,2008,2:62~64.[11]丁璐,李春华,杨戍.火灾探测技术的分析[J].煤矿现代化.2007(4):29~31.[12]吴龙标,袁宏永.火灾探测与控制工程[M].合肥:中国科学技术大学出版社,1999.11:1~20.[13]范维澄.中国火灾科学基础研究概况[J].火灾科学,2005,6:57~62.[14]缪顺兵,熊光明,李永萍,鲁霞.自动火灾报警系统设计与研究[J].装备制造技术.2006.4:90~92.[15]黄凤娟.单片机火灾报警系统的设计.安徽电子信息职业技术学院学报,2010年第1期.[16]孟立凡,蓝金辉.传感器原理与应用.北京:电子工业出版社,2007.8.[17]HT66FU50单片机数据手册。[18]王钊.智能型火灾报警系统的设计与研究:西安理工大学,2009.[19]孙健.基于ARM7的电气火灾自动报警控制器研制:浙江大学,2007.[20]雍静,李北海,杨岳.建筑智能化技术〔M〕.北京:科学出版社,2008.[21]王忠民,郝静,张瑜.基于单片机的语音数字联网火灾报警器设计.西安邮电学院.[22]S.M.Lo,C.M.Zhao,M.Liu,A.Coping.Asimulationmodelforstudyingtheimplementationofperformance-basedfiresafetydesigninbuildings[J].AutomationsinConstruction,1998,17(7):852~863.[23]J.K.W.Wong,H.Li,S.W.Wang.Intelligentbuildingresearch:areview[J].AutomationinConstruction,2005,14(l):143~159.[24]张向亮.智能建筑火灾自动报警系统的设计与研究:武汉理工大学,2010.[25]VaughnBradshaw.TheBuildingEnvironment:ActiveandPassiveControlsystems[M].JohnWiley&Sons,2006.附录整体电路原理图3.PCB图4.实物效果图#include"ht66fu50_uart.h"#include"ht66fu50_main.h"#definestep1{LED1=0;LED2=1;LED3=1;LED4=1;}#definestep2{LED1=0;LED2=0;LED3=1;LED4=1;}#definestep3{LED1=1;LED2=0;LED3=1;LED4=1;}#definestep4{LED1=1;LED2=0;LED3=0;LED4=1;}#definestep5{LED1=1;LED2=1;LED3=0;LED4=1;}#definestep6{LED1=1;LED2=1;LED3=0;LED4=0;}#definestep7{LED1=1;LED2=0;LED3=1;LED4=0;}#definestep8{LED1=0;LED2=0;LED3=1;LED4=0;}#pragmarambank0bituart_cmd;//softwaredelayfunction voiddelay(ulongx){while(x--)_delay(120); }voidmydelay(unsignedlongx)//延时函数{ unsignedlongi;while(x--)_delay(100);}//初始化HT66FU50voidMCU_init(void){ //TM0、TM1(定时器)除能 _tmpc0=0x00; //TM2、TM3(定时器)除能 _tmpc1=0x00; //屏蔽pa7-pa0的A/D输入功能 _acerl=0x00; //屏蔽pa0、pa2、pa3的比较器0的输入/出功能 _cp0c=0x00; //屏蔽pa5、pc2、pc3的比较器1的输入/出功能 _cp1c=0x00;//pb口全部设置为输出模式 _pbc=0x00;//pe口全部设置为输出模式_pec=0x00;//置pa4~pa7为输入状态,pa0~pa3为输出状态 _pac=0xf0; //置pa口全部为高电平 _pa=0xff; //按键(pa4~pa7)加上拉电阻 _papu=0xf0; //设置pc口为输入状态_pcc=0xfe;//setbuzzercontrolporttooutput_pcc0=0;_pfc=0x00;_pf=0xFF;//set液位onewireporttooutput_pcc7=1;_pcc6=1;//addPull-upresistorforDS18B20DQpin_pcpu7=1;_pcpu6=1;}//多功能中断2中断向量,UART使用这个中断向量#pragmavectoruart_receive_interrupt@0x20;//#include"ht66fu50_test.h"#pragmarambank0bittemp_setting;externbituart_cmd;ucharuart_send_buf[10];ucharuart_receive_buf[3];ucharuart_receive_cnt;constucharstring_start[]="\n\rTEST-STARTING...\n\r";constucharstring_ok[]="OK\n\r";constucharstring_bad[]="BAD\n\r";constucharstring_exit[]="EXIT\n\r";constucharstring_end[]={0x1a,0x0d,0x0a};union { uchar usr; struct { uchartxif :1; uchartidle :1; ucharrxif :1; ucharridle :1; ucharoerr :1; ucharferr :1; ucharnf :1; ucharperr :1; }Flag;}Register;//串行口中断处理程序voiduart_receive_interrupt(void){ ucharval; _emi=0; _mf2f=0; //检查外围中断标志 if(_xpf) { _xpf=0; Register.usr=uart_read_reg((uchar)ReadUSR); //上一个串行口命令处理完否 if(uart_cmd){ _emi=1; return; } //检查中断标志和中断接收标志 if((Register.Flag.rxif==1)&(Register.Flag.ridle==1)) { //读SPI接收缓存器内容 val=uart_read_reg((uchar)ReadFIFO); uart_receive_buf[uart_receive_cnt]=val; if(uart_receive_cnt==0){ if(val=='H'){ uart_receive_buf[uart_receive_cnt]=val; uart_receive_cnt++; } } elseif(uart_receive_cnt==1){ if(val=='i'){ uart_receive_buf[uart_receive_cnt]=val; uart_receive_cnt++; } else{ uart_receive_cnt=0; } } elseif(uart_receive_cnt==2){ if(val=='!'){ uart_receive_buf[uart_receive_cnt]=val; uart_cmd=TRUE; uart_receive_cnt=0; } else{ uart_receive_cnt=0; } } else{ uart_receive_cnt=0; } } } _emi=1;}voiduart_init(void){ uchartmp=0xFF; //InitialationofSPI // 由于HT66FU50内建的UART功能,是通过内部SPI与UARTBridgeIC连接实现的, // 因此在使用UART前,必须正确配置SPI的Pin-remapping功能,通过寄存器PRM0将SPI引脚 // 设为与内部UART连接,具体设定如下: //PRM0寄存器中的SIMPS1=0、SIMPS0=1、PCKPS=1, // 设定完后,将SIMC0寄存器中的SIMEN设定为1,MCU就可以通过SPI使用UART功能了 //对应位名称:—C1XPS0—C0XPS0PDPRMSIMPS1SIMPS0PCKPS //SIMPS1,SIMPS0:SIM引脚重置控制位 //00:SDOonPA5;SDI/SDAonPA6;SCK/SCLonPA7;SCSonPB5 //01:SDOonPD3;SDI/SDAonPD2;SCK/SCLonPD1;SCSonPD0 //10:SDOonPB6;SDI/SDAonPB7;SCK/SCLonPD6;SCSonPD7 //11:未定义 //引脚重置寄存器设置SIMPS1=0、SIMPS0=1、PCKPS=1 _prm0=0x03; // 对应的位名称:D7D6CKPOLBCKEGMLSCSENWCOLTRF _simc2=0x08; //对应的位名称:SIM2SIM1SIM0PCKENPCKP1PCKP0SIMEN— //要求:SIM2SIM1SIM0 //000:SPI主机模式;SPI时钟为fSYS/4 //001:SPI主机模式;SPI时钟为fSYS/16 //010:SPI主机模式;SPI时钟为fSYS/64 //011:SPI主机模式;SPI时钟为fTBC //100:SPI主机模式;SPI时钟为TM0CCRP匹配频率/2 //101~111:未使用 _simc0=0x12; //UARTreset uart_write_reg((uchar)WriteUCR3,(uchar)0x80); //8N1format使能TX uart_write_reg((uchar)WriteUCR1,(uchar)0x80); //baudrate9600byBRGH=1andFosc=3579545 uart_write_reg((uchar)WriteBRG,(uchar)0x16); //Interruptenablerx(disabletx) uart_write_reg((uchar)WriteUCR2,(uchar)0xe4); uart_receive_cnt=0; uart_cmd=FALSE; _xpf=0; _mf2f=0; _xpe=1; _mf2e=1; _sime=0;}voiduart_write_reg(ucharCommand,ucharData){ _trf=0; //1:使能 _csen=1; //0:无写冲突 _wcol=0; //写数据至数据寄存器 _simd=Command; while(_wcol==1) { _wcol=0; _simd=Command; } //trf为发送标志,1:发送结束 while(!_trf); _trf=0; _simd=Data; while(_wcol==1) { _wcol=0; _simd=Data; } while(!_trf); _trf=0; _csen=0;}ucharuart_read_reg(ucharCommand){ ucharval=0x00; //1使能 _csen=1; //0无写冲突 _wcol=0; //写数据至数据寄存器 _simd=Command; while(_wcol==1) { _wcol=0; _simd=Command; } //trf为发送标志,1:发送结束 while(!_trf); _trf=0; _simd=val; while(_wcol==1) { _wcol=0; _simd=val; } while(!_trf); val=_simd; _trf=0; _csen=0; returnval;}voiduart_send_data_buf(void){ ucharj=0; //发送数据缓存器中的字符串,该字符串以NULL结尾 while(1) { if(uart_send_buf[j]==0){ j=0x00;_nop();break; } Register.usr=uart_read_reg((uchar)ReadUSR); if(Register.Flag.txif==1) { uart_write_reg(WriteFIFO,uart_send_buf[j]); _delay(200); j++; } _xpf=0; _mf2f=0; }}voiduart_send_string(ucharsting_type,ucharlen){ ucharj=0; //发送定义好的字符串 while(1){ Register.usr=uart_read_reg((uchar)ReadUSR); if(Register.Flag.txif==1) { switch(sting_type){ caseSTRING_OK:uart_write_reg(WriteFIFO,string_ok[j]);break; caseSTRING_START:uart_write_reg(WriteFIFO,string_start[j]);break; caseSTRING_BAD:uart_write_reg(WriteFIFO,string_bad[j]);break; caseSTRING_EXIT:uart_write_reg(WriteFIFO,string_exit[j]);break; caseSTRING_1:uart_write_reg(WriteFIFO,string_end[j]);break; default:break; } j++; _delay(300); } _xpf=0; _mf2f=0; if(j>=len){ break; } }}voiduart_send_string_with_zero(uchar*string){ uchari=0; //发送数据缓存器中的字符串,该字符串以NULL结尾 while(1) { if(*(string+i)==0){ break; } Register.usr=uart_read_reg((uchar)ReadUSR); if(Register.Flag.txif==1) { uart_write_reg(WriteFIFO,*(string+i)); _delay(200); i++; } _xpf=0; _mf2f=0; }}voiduart_send_char(ucharchr){ Register.usr=uart_read_reg((uchar)ReadUSR); if(Register.Flag.txif==1) { uart_write_reg(WriteFIFO,chr); _delay(200); } _xpf=0; _mf2f=0; }voidlcd1602_write_cmd(unsignedcharcmd)//写指令{RS=0;//写指令模式RW=0;E=1;_pe=cmd;E=0;//E:1->0lcd_1602_delay(100);}voidlcd_1602_delay(unsignedintx)//延迟函数{while(x--)_delay(100);}voidlcd1602_write_char(unsignedchardata)//写入单个字符数据{RS=1;//写数据模式RW=0;E=1;_pe=data;E=0;lcd_1602_delay(5);}voidlcd1602_write_string(unsignedchar*s)//写字符串{while(*s!='\0'){lcd1602_write_char(*s);s++;}}voidlcd1602_set_place(unsignedcharline,unsignedcharcolumn)//设置字符显示位置{unsignedcharaddress;if(line==1)address=0x80+column;//0x80表示DDRAM地址设置(第1行从00H开始,DB7位为“1”)elseif(line==2)address=0xc0+column;//0xc0表示DDRAM地址设置(第2行从40H开始,DB7位为“0”)lcd1602_write_cmd(address);}voidlcd1602_display_string(unsignedcharline,unsignedcharcolumn,unsignedchar*string)//向1602写入字符串{lcd1602_set_place(line,column);lcd1602_write_string(string);}voidlcd1602_display_char(unsignedcharline,unsignedcharcolumn,unsignedchardata)//写数据{lcd1602_set_place(line,column);lcd1602_write_char(data);}voidlcd1602_init(void)//初始化1602液晶{lcd1602_write_cmd(0x06);//输入模式为,字符不动,光标右移(设置输入模式)lcd1602_write_cmd(0x38);//设定两列(功能设置)lcd1602_write_cmd(0x0c);//开启显示屏,不显示光标,光标所在(显示开/关控制) lcd1602_write_cmd(0x01);//清屏的指令应该在液晶初始化最后面一行(清显示)}voidmain(){ MCU_init(); uart_init();//开放全局中断 _emi=1; LED1=OFF; LED2=OFF; LED3=OFF; LED4=OFF; LED7=OFFwhile(1){ //雨水传感器部分程序 if(S3==0) { delay(10); if(S3==0) { delay(10); if(S3==0) { LED1=OFF; LED2=OFF; LED3=OFF; LED4=OFF; LED7=OFF;while(1){ step1; delay(4000);//需改时间 step2; delay(4000); step3; delay(4000); step4; delay(4000); step5; delay(4000); step6; delay(4000); step7; delay(4000); step8; delay(4000); } } } }//CO泄露报警部分程序 if(S4==0) { delay(10); if(S4==0) { delay(10); if(S4==0) { uart_send_string_with_zero("AT+CMGF=1\r\n"); mydelay(1000); uart_send_string_with_zero("AT+CSCA=\"+8613800220500\"\r\n"); mydelay(1000); uart_send_string_with_zero("AT+CMGS=\"\r\n"); mydelay(1000); uart_send_string_with_zero("BEST:B101"); mydelay(1000); uart_send_string(STRING_1,3); mydelay(1000); LED2=ON; } } }//安防报警部分程序 if(S2==0) { delay(100); if(S2==0) { delay(100); if(S2==0) { uart_send_string_with_zero("AT+CMGF=1\r\n"); mydelay(1000); uart_send_string_with_zero("AT+CSCA=\"+8613800220500\"\r\n"); mydelay(1000); uart_send_string_with_zero("AT+CMGS=\"\r\n"); mydelay(1000); uart_send_string_with_zero("BEST:B301"); mydelay(1000); uart_send_string(STRING_1,3); mydelay(1000); LED3=ON; } } }//火灾报警部分程序 if(S1==0) { delay(10); if(S1==0) { delay(10); if(S1==0) { uart_send_string_with_zero("AT\r\n"); mydelay(1000); LED4=ON; mydelay(1000); LED4=OFF; mydelay(1000); uart_send_string_with_zero("at\r\n"); mydelay(1000); LED4=ON; } }基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监

温馨提示

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

评论

0/150

提交评论