1、传感器的智能家居监控系统设计智能家居监控系统设计设计目的:以提高家居生活的安全性、舒适度、人性化为目的,设计智能家居监控系统。利用所学的传感器与检测技术知识,实现家居温度、煤气泄漏、外人闯入、火灾(烟雾)的检测。设计要求:(1) 用Protel画出设计原理图;(2) 采用Quaters II、Maxplus II、EWB、pspice、Proteus中的一种或几种软件,完成系统电路中的部分或全部仿真,在设计说明书中体现仿真结果;(3) 写设计说明书。总体设计方案:分模块设计各个功能。各模块设计(硬件设计、软件设计):一、 室内环境温度检测和报警:本设计主要是介绍了单片机控制下的温度检测系统,详
2、细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。即利用温度传感器(DS18B20)测量某一点环境温度测量范围为-5599,精度为0.5用液晶进行实际温度值显示能够根据需要方便设定上下限报警温度(一)、温度传感器(DS18B20)的介绍:1、 DS18B20 简单介绍:DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、
3、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单
4、,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20 的性能特点如下:独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电温范围55125,在-10+85时精度为0.5零待机功耗可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625
5、,可实现高精度测温在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快用户可定义报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使DS18B20非常适用与多点、远距离温度检测系统。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图
6、 4.2 所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。其电路图 4.3所示.。 图 4.2 外部封装形式 图4.3传感器电路图2、 DS18B20 使用中的注意事项:DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。在实际使用中发现,应使电源电压保持在5V 左右,
7、若电源电压过低,会使所测得的温度精度降低。较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。在DS18B20测温程序设计中,
8、向DS18B20 发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。3、 DS18B20 内部结构图为DS1820的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。DS18B20采用脚PR35 封装或脚SOIC封装,其内部结构框图如图 4.4所示图
9、4.4 DS18B20内部结构框图4、 DS18B20测温原理DS18B20的测温原理如图2所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信
10、号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时 序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS1
11、8B20 (发复位脉冲)发ROM功能命令发存储器操作命令处理数据。图(2) DS18B20测温原理图在正常测温情况下,DS1820的测温分辨力为0.5,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数部分以0.25、0.75为进位界限的关系,实际温度Ts可用下式计算: Ts=(Tz-0.25)+(CD-Cs)/CD (二)硬件设计电路:本温度计大体分三个
12、工作过程。首先,由DS18820温度传感器芯片测量当前的温度,并将结果送入单片机。然后,通过89C205I单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块屏上。由图1可看到,本电路主要由DSl8820温度传感器芯片、89C2051单片机芯片和声光报警电路组成。其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。当温度传感器检测到室内温度超过某一限定值时,发出声光报警温度计电路设计proteus仿真图1、温度检测电路DS18B20与芯片连接电路如图 5.2所示:图 5.2 DS18B20与单片机的连接2、显
13、示电路 显示电路由lcd1602和上拉电阻组成。 LCD1602简介 LCD1602是工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 管脚功能1602采用标准的16脚接口,其中: 第1脚:VSS为
14、电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。时序 写操作时序写指令:RS=0;R/W=1;E=1;写数据:RS=1;R/W=0;E=1
15、;读操作时序读状态:RS=0;R/W=1;E=1; 读数据:RS=1;R/W=1;E=1;(三)、软件设计电路:DS18B20在单片机控制下分三个阶段:18B20 初始化:初始化流程图见6.1DS18B20的初始化 (1) 先将数据线置高电平“1”。 (2) 延时(该时间要求的不是很严格,但是尽可能的短一点) (3) 数据线拉到低电平“0”。 (4) 延时750us(该时间的时间范围可以从400到960us)。 (5) 数据线拉到高电平“1”。 (6) 延时等待(如果初始化成功则在15到60us时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限
16、的进行等待,不然会使程序进入死循环,所以要进行超时控制)。 (7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480us。 (8) 将数据线再次拉高到高电平“1”后结束。 void Init_18B20(void)/ unsigned char x; DQ=0; delay_18B20(103); DQ=1; delay_18B20(4); delay(1); / x=DQ; / DQ=0; / delay_18B20(480); / DQ=1; wr_ds18_1(0xcc); / wr_ds18_1(0xbe); wr_
17、ds18_1(0x44); 读18B20时序:读DS18B20流程见图 6.3DS18B20的读操作 (1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。 (4)延时3微秒。 (5)将数据线拉高“1”。 (6)延时5微秒。 (7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时60微秒。 DS18B20的读操作时序图如图4.15所示unsigned char ReadByte(void) unsigned char i,k; i=8; k=0; while(i-) DQ=1; / Delay_us(1); _nop_(); _nop_(); DQ=0; k=k1
18、; DQ=1; / Delay_us(60); / _nop_(); if(DQ) k|= 0x80; Delay_us(60); return(k);写18B20时序: DS18B20的写操作 (1) 数据线先置低电平“0”。 (2) 延时确定的时间为15us。 (3) 按从低位到高位的顺序发送字节(一次只发送一位)。 (4) 延时时间为45us。 (5) 将数据线拉到高电平。 (6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。 void wr_ds18_1(char dat) signed char idata i=0; unsigned char idata j; bit testb; for(j=1;j1; if(testb) /写1 DQ=0; _nop_(); _nop_(); DQ=1; delay_18B20(8); else /写0 DQ=0; delay_18B20(8); DQ=1; _nop_(); _nop_();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1