版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2报警系统设计及元器件选型2报警系统设计及元器件选型本文所做的设计为基于单片机的智能火灾烟雾报警系统,STC89C52是该系统的主控单元,该系统的设计包括烟雾测量模块、温度测量模块、显示模块以及按键和声光报警模块,系统通过烟雾测量模块和温度测量模块监测空气中的可燃气体浓度以及外界环境温度,当气体浓度或温度达到或超出阈值时,触发声光报警提醒在该环境下生活或工作的人,温度和气体浓度阈值可通过按键设定其上下限,提高了系统本身适应不同环境作业的能力,降低了开发成本,同时所设定的上下限阈值以及有传感器模块实时测量的温度与气体浓度值都可以通过LCD1602显示模块显示出来,使整个系统在使用时更为直观。这些模块各司其职并通过主控单元进行协调配合,共同组成了具备完整功能的智能火灾烟雾报警系统。其系统框图如图2.1所示。图2.1报警系统系统框图基于对本文所设计的智能火灾烟雾报警系统的模块分析以及其功能描述,下面开始对适合于该系统各模块环节的元器件进行选型。2.1主控器选型主控器是一个完整系统最为重要的东西,它承担了对整个系统进行指令解读和任务分配的重要职责,是一个完整系统的“大脑”,故在对火灾报警系统进行设计时,应该最先对主控器进行选型。本文设计的智能火灾烟雾报警系统所选用的主控器是STC89C52单片机,其实物外观图如图2.2所示:图2.2STC89C52外观图STC89C52单片机内含多种指令结构,可实现简单的四则运算以及比较,指针,布尔运算等复杂运算功能,同时,单片机内含4个8位并行输入口,3个16位定时/计数器和5个中断源包括两个外中断,两个定时计数中断以及一个串行中断。其芯片内还容纳了8KB可编程也可以反复重新写入的Flash存储器以及512字节的RAM和4KB的EEPROM。同时STC89C52单片机支持两种工作模式,在处于空闲模式时,其CPU进入停止状态,而其他模块可选择继续工作。当初有掉电保护模式时,单片机会将RAM中的内容保存下来,然后停止所用功能,直到下一个中断信号或复位信号到来为止。其芯片引脚图如图2.3所示:图2.3STC89C52芯片引脚图如图所示,下面开始对其芯片功能进行进一步说明,STC89C52单片机的所用引脚分为四类,分别是电源类引脚、时钟类引脚、控制类引脚和I/O引脚,现在对单片机的这40个引脚进行逐一分析。(1)电源引脚为单片机进行供电的引脚主要为40号引脚VCC和20号引脚VSS,其中VCC外接+5V电压为整个单片机进行供电,VSS接地保证单片机的供电稳定安全。(2)时钟引脚19号引脚XTAL1和18号引脚XTAL2是单片机用来连接外部晶振的两个引脚,其作为片内反相放大器的输入和输出端,通过连接外部晶振组成一个片内振荡器。(3)其他控制引脚9号引脚RST/VPD是单片机的复位引脚,当单片机开始工作后,通过给此脚一个两个机器周期的高电平就可以使单片机复位。为保证可靠稳定的复位功能,在单片机最小系统的复位电路中常常将此脚与VCC之间接上一个10的电容,与GND之间接上一个10K的下拉电阻。30号引脚ALE/PROG是地址锁存允许/编程脉冲引脚引脚,其主要功能是当单片机访问外部存储器时,该引脚将会输出低字节地址到外部锁存器中。同时该引脚也可作为一个输出时钟来使用,因为当不访问外部存储器时,该引脚依旧可以输出频率不变的正脉冲信号。29号引脚PSEN是外部ROM存储器的读选通信号端,其主要在需要从外部存储器中取指令时才会起作用,每一个机器周期内会出现两次PSEN信号有效。31号引脚EA是用于对程序存储器的访问进行控制,当该引脚处于高电平时。单片机会访问内部ROM空间,但如果程序计数器的值超过了0FFFH的时候,单片机将会自动转为访问外部程序存储器,执行外部存储器中的程序,而当该引脚处于低电平时,单片机则只会去执行外部存储器中的程序而不会去管是否具有内部ROM空间,这种机制常常被汇编语言用来进行程序跳转。(4)I/O引脚I/O引脚作为单片机与外界设备连接进行信息交换的唯一出入口,其地位极其重要,STC89C52单片机共有四组8位并行I/O端口,共32根引脚P0端口(39号-32号引脚):P0口是一组漏极开路的8位双向I/O口,当作为输入使用时,对端口写入高电平,则端口会作为高阻抗输入。当作为输出使用时,其每个端口都可以提供8个TTL负载所需要的能量。同时P0口还可以作为访问程序存储器和数据存储器的低8位地址和8位数据的复用端口,使用时需外接上拉电阻,才能保证端口有效。P1端口(1号-8号引脚):P1口是8位准双向I/O口,其内部已经集成了上拉电阻,当需要作为输入端口使用时,需要给端口写入1,这时内部的上拉电阻会将端口拉高至高电平。同时,P1.1和P1.0两个端口还开发了第二功能,其可以分别作为定时/计数器2的计数输入端和触发输入端来使用。P2端口(21号-28号引脚):P2口是一个带内部上拉电阻的8位准双向I/O口。其作为输入端口使用时与P1口的使用方法一致,因为内部设有上拉电阻的原因,当外部信号输入低电平时,端口会产生一个电流输出。当访问外部程序存储器和外部数据存储器时,P2可作为高8位地址输出端使用。P3端口(10号-17号引脚):P3端口也是是一个带内部上拉电阻的8位准双向I/O口。其作为I/O口时的使用方式与P1,P2口保持一致,除此之外,P3端口还具有一些其他三组端口所没有的复用功能,其功能主要为串行输入输出、外部中断与定时器中断和外部数据存储器的读写这三个方面。其复用功能分配如表2-1所示:表2-1P3口复用功能一览表引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2外部中断0P3.3外部中断1P3.4定时器0的外部输入P3.5定时器1的外部输入P3.6外部数据存储器写选通P3.7外部数据存储器读选通基于以上对STC89C52的分析,其完备的集成结构和功能丰富的端口完全能够作为本文所设计的智能火灾烟雾报警系统的主控器。关于主控器的选型已经完成,下面开始对传感器进行选型。2.2传感器模块选型传感器是整个系统的“眼睛”,是感知外界信息最重要的部分,它为系统主控器对各模块的准确控制提供了前提。因为火灾报警器的主要职能是对火灾隐患的预先发现和报警,所以在传感器的选型上也应该本着高灵敏度,高稳定性的特点来选择。2.2.1烟雾传感器选型(1)光电式烟雾传感器光电式烟雾传感器的主要原理是在传感器的内部设置了光学通道,更确切的说,应该被称为光学迷宫。当环境中没有烟雾存在时,红外光线处于正常空气折射条件下,其行走路径无法达到迷宫的终点,即处于终点的红外线接收装置无法接受到发射器发射出来的红外信号,故传感器就处于正常状态。当环境中产生烟雾时,光所处的环境被改变了,折射条件随之也被改变了,这时,红外线在烟雾环境下通过不同的折射率可以到达迷宫的终点,从而接通传感器,传感器反馈信号给主控器。这种传感器还有两种不同的分类,分别是散射光式烟雾传感器和减光式烟雾传感器。散射光式烟雾传感器的原理也是采用了光在不同条件下的不同折射率。当烟雾产生时,光的折射率被改变,发光装置所发出的光线就会被扩散开来,被接收端所接受,接通传感器。而另一种减光式烟雾传感器则不是利用折射率的原理,而是采用了遮挡性的原理,当烟雾充满传感器时,原本畅通无阻的光信号被浓烟遮挡了一部分,导致接收端所接收到的光信号减少,从而接通传感器,传感器发送信息给主控器,判断是否需要报警。但这种传感器有很严重的缺陷,即其不能测定烟雾的浓度变化而只能测定是否有烟雾产生,其灵活性不满足系统设计,故本文设计不采用光电式烟雾传感器。(2)离子式烟雾传感器离子式烟雾传感器比光电式传感器在日常生活中的用途更加广泛,其比光电式更好的地方在于可以判断烟雾浓度的变化,以此来分析火灾的程度,从而使报警更为灵活。离子式传感器的原理是在传感器内部设置一个电离室,放置一个放射源不断地产生正负离子,离子在电场作用下分别向吸引它的方向移动形成稳定的电压差,保证传感器稳定工作不报警。当传感器所处环境产生烟雾时,烟雾进入电离场会影响正负离子的正常运动,从而导致稳定的电压差产生变化,且浓度不同的烟雾所产生的的影响也不同,这就给传感器带来了能够判断烟雾浓度的能力。稳定的电压差产生变化会传递给传感器,从而向主控器发送危险信号,进而进行及时报警。图2.1.1HIS-07离子式烟雾传感器(3)气敏式烟雾传感器气敏式烟雾传感器相对于离子式烟雾传感器更为先进,其被广泛应用与对于特殊气体的探测领域,比如天然气,沼气等易燃易爆气体。气敏式烟雾传感器主要分为接触气体传感器,半导体气体传感器以及电化学气体传感器三大类。其主要原理也很简单,可以将气体浓度直接转换为电信号进行解析,对于不同气体不同浓度的情况都能够通过不同的电信号进行传输,在通过程序中的逻辑判断向主控器发送报警信号。市面上的气敏传感器主要有可燃气体检测、一氧化碳气体检测、氧气检测、有毒气体检测、氟利昂检测、乙醇检测等等。市面上比较典型的气敏传感器为MQ-2气体传感器。该传感器的主要测量范围包括液化气、丁烷、丙烷、甲烷等可燃性气体,其整体结构简单,且对外界的腐蚀性有较强的抵抗能力,支持手动测量和手动复位等功能,其外观图如图所示:图2.1.2MQ-2气体传感器综上所述,气敏式传感器无论从测量精度还是测量范围都要优于另外两种传感器,故本文设计将选用气敏式传感器的代表MQ-2作为烟雾测量模块的主要执行元件。下面开始对温度测量元件做进一步选型2.2.2温度传感器选型温度可以使用热电阻或热电偶测量,比如PT100;也可以使用封装好的数字温度测量装置,比如DS18B20;其他的温度测量装置,在生活中不太常用,主要应用在工业领域。还有一些复合测量装置,这些测量装置既能够测量温度,又能够测量其他物理量。(一)PT100PT100作为一个温度传感器,是一种稳定性和线性都较好的铂丝热电阻传感器。它的电阻值会随着温度的上升而改变,可以在-200℃至650℃的范围内工作。正电阻系数就是PT100的电阻值随温度上升而上升,负电阻系数就是PT100的电阻值随温度上升而下降。PT100如图2.2.1所示。图2.2.1PT100电阻和温度变化关系式如下:R=R0(1+αT),其中α=0.00392,R0为100Ω(在0℃的电阻值)。(二)DS18B20图2.2.2为DS18B20引脚图。DQ为数字信号输入/输出端;GND为电源地;VCC为供电电源端;也就是说,DS18B20的引脚1接地,引脚2接信号线,引脚3接电源。图2.2.2DS18B20引脚图DS18B20有测温系统简单、测温精度高、连接方便、占用口线少等优点。本文采用了DS18B20。温度闭环控制系统主要对温箱内的温度进行测量,不需要对其他物理量处理。所以复合测量单元不考虑,选择DS18B20的主要原因是它可以直接和单片机进行通信,抗干扰能力较强,不需要像PT100需要设计采集电路和转化电路,同时不需要AD模块对采集数据进行处理,这样可以简化电路。2.3显示模块选型显示使用LCD1602进行显示其外观图如图2.3.1所示:图2.3.1LCD1602液晶屏外观图图2.3.2CGROM和CGRAM中字符代码与字符图形对应关系1602液晶也叫1602字符型液晶,这是一个点阵型液晶模块,专门用于显示字母,数字,符号等。它由多个点阵字符组成,如5x7或5x11,每一个点阵字符位都可以显示一个字符,例如:阿拉伯数字、英文字母的大小写、常用的符号等,如图2.3.2所示;每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602采用标准的16脚接口,其中:第1引脚:GND为电源地,第2引脚:VCC接5V电源正极,第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生鬼影”,使用时可以通过一-个10K的电位器调整对比度)。第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5引脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6引脚:E(或EN端为使能(enable)端高电平(1)时读取信息,负跳变时执行指令。第7~14引脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。第15引脚背光正极,第16引脚背光负极。特性:3.3V或5V工作电压,对比度可调,内含复位电路,提供各种控制命令如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM,内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM。常用的显示模块,有数码管,led点阵,液晶屏等。数码管有共阴极和共阳极之分,不同型号的数码管发光颜色和个数也不一样,数码管显示字数不多,而且需要占用较多的单片机引脚。led点阵显示,需要占用较大的空间,显示内容较少。ILI9225是使用串口进行通信的,价格较高。所以本文选取LCD1602作为显示模块。2.4报警模块选型报警模块有有源蜂鸣器和无源蜂鸣器。按照报警电路的设计要求,需要有声光报警。(一)有源蜂鸣器有源蜂鸣器内部有振荡、驱动电路,加电源就可以响。优点是使用简单方便,程序控制方便,缺点是频率固定,只有一个单音且价格较高。有源蜂鸣器外观图如图2.4.1所示。图2.4.1有源蜂鸣器外观图(二)无源蜂鸣器无源蜂鸣器的优点是价格便宜,声音频率可控。无源蜂鸣器外观图如图2.4.2所示。图2.4.2无源蜂鸣器外观图此设计的声音报警电路所采用的是无源蜂鸣器,当一定电压流过无源蜂鸣器时,蜂鸣器就会发出报警的响声。当单片机通过驱动三极管而把信号放大时,就会对蜂鸣器进行驱动。2.5AD转换模块选型由于本文设计所选择的主控器STC89C52内部没有集成A/D转换,故对于像MQ-2这样的传感器所反馈回来的信息无法做到直接使用,所以本设计还需要使用A/D转换模块来处理不能被单片机直接识别的信号如今市场上常用的数模转化模块主要有TLV5616、ADC0832、PCF8591等,TLV5616是12位的转换精度,ADC0832和PCF8591都是8位的转换精度,ADC0832模块虽然成本较高,但其所消耗的能量较小,同时转换性能相比于其他产品都有不同程度的领先,且其体积较小适合用于体积不大的仪器仪表当中,本文所设计的火灾报警装置,为了其应用环境的广泛适应性,所以制作体积不应过大,这与ADC0832体积小的特点不谋而合,因此本文选取ADC0832作为AD转换模块。其外观图如图2.6.1所示。图2.6.1ADC0832外观图ADC0832具备两路模拟信号输入口,与其对应的具备两路输出的功能,能够同时承载多个设备信号的输入,同时具备选通信号输入端,通过数字信号的控制可对通道进行选择,控制更加方便,其DIP形式的封装引脚图如图所示:图2.6.2ADC0832封装引脚图2.6本章小结本章主要对智能火灾报警系统硬件设计所需要的元器件进行了选型,其主控器采用了STC89C52单片机,烟雾传感器模块使用了灵敏性和测量范围都较高的MQ-2气敏式传感器,温度测量模块使用了数字化测量元件DS18B20,其测量精度及无需信号转换的特点完全适合本次设计的各类需求,显示器方面选用了LCD1602显示屏,该屏幕可以显示两行16位数据,且显示稳定,不闪烁,满足本设计显示需求,数模转换方面选择了ADC0832作为外置数模转换器使用,声光报警选择了发光二极管加上无源蜂鸣器的组合。3系统硬件设计3系统硬件设计3.1温度采集模块DS18B20采用电源供电方式。图3.1.2为温度采集模块设计图,指示灯D1用于检测温度采集模块是否正常供电。图3.1.1温度采集模块设计图3.2显示模块图3.2.1为LCD1602引脚图。图3.2.1LCD1602引脚图图3.2.1为LCD1602电路设计图。U1为液晶屏LCD1602,7号引脚至14号引脚均需连接4.7k的上拉电阻后,才能与单片机的P0口连接,4号引脚至6号引脚可直接与单片机连接,3号引脚接1k滑动变阻器,改变滑动变阻器的阻值,可以改变3号引脚的电压来调节液晶屏LCD1602对比度。15号引脚和16号引脚为背光源引脚,15号引脚接VCC和16号引脚接GND。根据上述功能引脚的介绍,显示模块的电路图如下图所示图3.2.2显示模块电路设计图3.3报警模块图3.3.1报警模块电路设计图图3.5.1为报警电路设计图,利用PNP作为驱动电路,P22和P21与单片机接口连接,能够实现封锁报警的功能,在封锁报警的时候D1发光。P21为报警信号通道,当P22为低电平时,与非门的3号引脚输出高电平,实现对声光报警的封锁;当P22为高电平时,与非门3号引脚的电平随P21变化而变化。在P22口加上指示灯,起到提醒的作用。可以在报警电路响起后,按下按键,封锁报警,同时D1发光,进行检修。当检修工作完成,再次按下按键,D1灭,烟雾控制系统重新工作。3.4AD采集模块在正常情况下,ADC0832与MCU之间的接口应为4条数据线,即CS、CLK、DO和DI。但由于DO和DI之间的通信不同时有效,且与MCU的接口是双向的,因此在电路设计中DO和DI可以在数据线上并行使用。当ADC0832不工作时,其CS输入应为高电平。此时,芯片被禁用,CLK和do/DI的级别可以是任意的。进行A/D转换时,CS使能终端必须设置在低电平,并保持在低电平,直到转换完成。此时,芯片开始转换,同时,处理器将时钟脉冲输入CLK,DO/DI终端使用由DI终端的输入通道功能选择的数据信号。在第一时钟脉冲下沉之前,DI端子必须是高电平的,指示起始信号。在第二和第三脉冲下沉之前,DSI端应输入2位数据以选择通道功能。图3.4.1ADC0832封装以及各端子如图3.4.1所示,当此2位数据为“1”、“0”时,只对CH0进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出转换数据最低位DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理即可。3.5烟雾传感模块如图3.5.1MQ-2烟雾传感器原理图所示,电位器RP在这里用于调节输出电平条边的阀值。而电压值跟传感器检测到气体的浓度成正比,因此我们只需先在单片机里面测出模拟量电压值,然后再将其转换为浓度值。图3.5.1MQ-2烟雾传感器原理图3.6Keil的相关介绍Keil是一种集编辑、编译和仿真于一体的单片机应用开发软件,它能够将汇编语言或C语言进行编译,把写好的程序编译为机器码,最后生成HEX文件写入单片机内。它的界面简洁大方,对新手友好,新手使用起来较容易上手,同时它也很方便于调试程序及软件仿真,功能很强大。使用时,首先建立一个新的工程,然后在此工程下新建一个代码文件,即.c文档;若是使用汇编语言,则保存为.asm文档。接下来就可以在代码文件中编写程序,然后进行编译,若出现错误则进行修改,修改无误后即可编译输出.hex文件。最后再次进行编译工程中的所有文件,并生成可供单片机直接下载的应用程序。3.7本章小结硬件设计是系统设计的重要一部分,硬件电路设计的合理性直接影响了整个系统的性能,俗话说“细节决定成败”,在硬件设计的过程中,每一个小小的细节都扮演着重要的角色,它们都是整个系统设计成功与失败的关键。本章主要就温度采集模块、显示模块、报警模块、AD采集模块和烟雾传感模块进行了分析。这都是智能烟雾火灾报警系统中重要的环节。4软件设计及编程4软件设计及编程4.1软件主程序设计主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序,中断程序,以及各个控制端口的初始化工作。流程图如4.1所示。设计烟雾火灾自动报警系统,其中核心模块为单片机系统、单片机的时钟电路与复位电路设计、烟雾检测AD采集电路、显示模块,声音报警电路,按键控制电路,电源模块等几大模块。本文使用KeiluVision5编写程序。图4.1.1为主程序流程图。图4.1.1主程序流程图4.2显示模块使用LCD1602时首先需要初始化,若想写一个字符在LCD1602上显示时,需要分别将RS端和RW端设置为高、低电平,数据端口D0-D7收到数据后再在引脚E的高脉冲写数据。图4.4.1液晶显示流程图图4.4.1为显示模块的流程图,主要是判断LCD1602忙与不忙。4.3按键模块按键是人机交互界面的重要组成部分,是设置选项的重要途径之一,那么按键的消抖工作就是重中之,图4.5.1为按键按下后单片机引脚电平变化的情况。按键消抖分为硬件消抖和软件消抖两种。图4.5.1按键抖动示意图如图4.5.2,使用RS触发器作为按键硬件消抖电路(图中按键并未被按下),通过RS触发器的工作原理很容易得出结论。当按键未按下时(B接地),输出为0;当按键按下时(A接地),输出为1。当处于抖动状态时,A、B端均为高电平,保持上一状态,能够起到硬件消抖的作用。当程序较为复杂,不利于使用软件消抖,可用硬件方法消除抖动。图4.5.2按键硬件消抖原理图软件消抖的方式,当按键按下后使用5ms~10ms的延时,再一次检测按键的状态,如果仍保持低电平,则确认有按键按下,直到引脚变为高电平执行按键程序。本文采用软件消抖的方式进行按键消抖。ucharKey_Scan(){ staticucharkey_up=1; if(key_up&&(Key1==0||Key2==0||Key3==0)) { delay_ms(10); key_up=0; if(Key1==0) return1; elseif(Key2==0)return2; elseif(Key3==0)return3; } elseif(Key1==1&&Key2==1&&Key3==1) key_up=1; return0;}当按钮操作过程严格且按钮数量少时,通常采用硬件方法,而当按钮数量多时,通常采用软件来消抖。值得一提的是,以单片机系统复杂和多任务处理来说,如果简单采用循环指令来实现软件延时,则会浪费CPU宝贵的时间资源,大大降低系统的实时性。所以,最好要使用定时中断服务或用标志位的方法来实现软件消抖。4.4温度采集模块图4.6.1温度采集模块流程图读温度值模块需要调用4个子程序,分别为:(1)Ds18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操作(2)Ds18B20写字节子程序:对DS18B20发出命令(3)Ds18B20读字节子程序:读取Ds18B20存储器的数据(4)延时子程序:对DS18B20操作时的时序控制voiddelay1ms(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
//*************************初始化
bitinit_DS18B20()
{
bitflag;//储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在
DQ=1;
_nop_();//先拉高
DQ=0;
for(num=0;num<200;num++);//要求保持480~960us
DQ=1;//释放数据线
for(num=0;num<10;num++);//等待DS18B20响应
flag=DQ;//响应
for(num=0;num<200;num++);//延时足够长时间(此延时函数为了防止收不到信号而进入死胡同)
DQ=1;//释放数据线
return(flag);//返回检测成功标志
}
//*******************************写温度数据
voidDS18B20_WR_CHAR(ucharbyte)//先写低位
{
for(num1=0;num1<8;num1++)
{
DQ=1;
_nop_();
DQ=0;//将数据线从高拉低时即启动写时序
for(num=0;num<5;num++);//等待15us
DQ=byte&0x01;
for(num=0;num<15;num++);//延时约45us,DS18B20在约15~45us期间从数据线上采样
byte>>=1;
for(num=0;num<1;num++);//延时3us,两个写时序间至少需要1us的恢复期
}
DQ=1;//释放数据线
}
//**********************************读出温度数据
ucharDS18B20_RD_CHAR()//先读低位
{
ucharbyte=0;
for(num1=0;num1<8;num1++)
{
DQ=1;
_nop_();
DQ=0;//给个低脉冲
_nop_();
DQ=1;
for(num=0;num<5;num++);//延时约15us,使主机在15us内采样
byte>>=1;
if(DQ==1)
byte|=0x80;
else
byte|=0x00;
for(num=0;num<1;num++);//延时3us,两个读时序之间必须有大于1us的恢复期
}
return(byte);
}
//*********************************温度计算
voidDS18B20_WENDU()
{
uchartemperaturel=0,temperatureh=0;
if(init_DS18B20()==0)
{
DS18B20_WR_CHAR(0xcc);
DS18B20_WR_CHAR(0x44);
delay1ms(1000);
if(init_DS18B20()==0)
{
DS18B20_WR_CHAR(0xcc);
DS18B20_WR_CHAR(0xBE);
_nop_();
temperaturel=DS18B20_RD_CHAR();
temperatureh=DS18B20_RD_CHAR();
temperature=(temperatureh*256+temperaturel)*0.625;
init_DS18B20();
}
//return(temperature);
}
}
//******************************温度显示
voiddisplay_DS18B20()
{
temp[2]=temperature/100%10;
temp[1]=temperature%100/10;
temp[0]=temperature%10;
DisplayListChar(0,1,table0);
DisplayOneChar(10,1,ASCII[temp[2]]);
DisplayOneChar(11,1,ASCII[temp[1]]);
DisplayOneChar(12,1,ASCII[10]);
DisplayOneChar(13,1,ASCII[temp[0]]);
}4.5烟雾报警模块4.7.1烟雾报警模块流程图;,if(key==KEY_ADD){if(yanwu_yushe>=255)yanwu_yushe=254;yanwu_yushe++;LCD_Write_Char(0,13,yanwu_yushe,3);}if(key==KEY_MINUS){if(yanwu_yushe<=1)yanwu_yushe=1;yanwu_yushe--;LCD_Write_Char(0,13,yanwu_yushe,3);}设定烟雾值,若超过则报警,否则正常显示烟雾值。4.6本章小结软件设计是将具体实物和问题抽象化,并将其抽象为具体的模块,再根据具体模块具体分析,这样可以有利于问题的解决。本章主要具体对烟雾报警模块、温度采集模块、按键模块、显示模块、软件主程序进行分析,并作出流程图,将问题抽象化和模块化。5系统仿真与实验5系统仿真及实验5.1画图软件Protel的组成Protel由五大系统构成。(1)该原理图设计了一个系统-一个概念图-一个系统的先进Schematic,为该方案设计。这一部分包括用于方案设计的电路图编辑器,Sch和用于修改和制造SCHLub零件的部件库编辑器。(2)印刷电路板设计系统-先进的PCB电路板设计。这一部分包括用于电路板设计的PCB线路编辑器和用于修改和制造部件的PCBLib。(3)模拟信号的模拟系统是用于模拟SPICEF5信号的主要电路模拟信号的模拟信号系统。(4)可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023云南大数据公司内部员工笔试复习题附答案
- 2021洛阳二中小升初高频考点押题卷附答案解析
- 2026年法律法规测试题及答案
- 2024甘肃省书记员考试历年真题考点复现率统计及答案
- 2020征信业专业面必考35题及完整标准答案解析
- 2023河南工勤职业道德考试高分秘籍配套题库及答案解析
- 通过率超95%的2020济南工程综评内部密卷带答案
- 2026特聘动物防疫专员招聘考试押题密卷附全题答案
- 伊减少履行伊核协议书
- 分公司风险承包协议书模板
- 2026广东东莞市塘厦镇招聘专职网格员7人考试参考试题及答案解析
- 幼儿园年检自查报告
- 国家层面“十五五”产业规划与布局:产业研究专题系列报告之一规划篇
- 血液透析中心静脉导管临床实践指南
- 水利监理教育培训制度
- 机场鸟击防范生态调研报告
- 沥青混凝土销售培训课件
- 2026年《必背60题》京东TET管培生综合方向高频面试题包含详细解答
- 2026年二级建造师之二建建筑工程实务考试题库500道附完整答案(必刷)
- 儿童节气诗歌朗诵方案设计
- 2025年10月自考15040习概论试题及答案
评论
0/150
提交评论