传感器课程设计(共24页).doc
《传感器课程设计(共24页).doc》由会员分享,可在线阅读,更多相关《传感器课程设计(共24页).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上地下室火灾报警器学院:信息工程学院班级:13普本测控学号:姓名:目录专心-专注-专业地下室火灾报警器摘 要本设计是用于地下室的火灾报警,利用火灾发生时产生的剧烈光强,还有高温,进行感光感温报警。同时如果地下室存放的是一些温度敏感的物品,也可以通过设置进行温度过高/过低报警。用到的传感器主要有温度传感器DS18B20和光电传感器光敏电阻。关键词:DS18B20,光敏电阻,STC89C52,LCD1602一、 绪论1.1 课题描述地下室常作为人们的杂物间使用,或者充当饭店的酒窖功能,里面经常摆放着很多易燃物品,由于地下室经常潮湿和经常飘散的灰尘会使普通的烟雾报警器误报1。
2、所以设计此种地下室火灾报警器。1.2 方案设计方案一:火灾发生的时候会有光亮,会使昏暗的地下室光强出现变化,故采用光敏电阻设计此报警器;方案二:火灾发生的时候会产生大量热量,会使阴冷的地下室温度变化,故采用温度传感器设计此报警器;方案三:由于火灾发生时产生光和热,同时采用光敏电阻和温度传感器级联设计此报警器。1.3 方案比较:方案一只采用光敏电阻,电路设计比较简单,但是如果地下室入口没有密封好,或者地下室开有透光窗,外界光强变化时,容易出现报警器误报;方案二采用温度传感器设计,电路上和方案三相当,但是如果地下室密封性好,地下室的一些容易发酵的酒水或者其他粮食蔬菜之类的发酵产生的大量热量,也会使
3、报警器出现误报;方案三综合光强变化和温度变化,电路设计上只比方案二多一个光敏传感器,但是却同时具备了光强和温度传感。如果地下室密封性好,温度升高的时候并没有光照变化,避免误报;如果地下室密封性不好或者开有透光窗,光强变化的时候,发酵产生的热量及时的散出地下室,报警器也不会误报。只有火灾时候瞬间产生高温不会及时散去,而且有大量光照,报警器才会工作。综合以上方案,故采用方案三。1.4 基本工作原理及框图1.4.1 工作原理:温度传感器测温,在lcd1602上实时显示温度。当温度超过设置的标准温度时,打开外部中断。如果没有中断,主程序继续检测温度报警开关K1是否打开,如果温度报警开关关闭,则程序返回
4、开始位置继续测温。如果温度报警开关打开,则出现提示音“地下室温度过高,请及时通风”。在温度过高时,同时出现了光照,光敏电阻阻值减小,电压拉低,则出现外部中断,提示音“地下室有火情”。1.4.2程序流程图:主程序:中断处理程序:1.4.3框图:按键1:设置报警温度+;按键2:设置报警温度-;按键3:设置每次加减的大小(1或者5);按键4:退出设置;开关1:打开/关闭温度报警;温度报警:用LED灯亮表示;火灾报警:用蜂鸣器响表示;二、 相关芯片、传感器及硬件电路设计2.1 STC89C52RC芯片STC89C52RC是STC公司生产的一款8051内核芯片,内部含有Flash EEPROM,为CMO
5、S产品,内部有8KB的程序存储空间,512B的RAM。因为本设计应用于火灾报警,因此要选用温度范围-40至+85的工业级产品。外部晶振最高可接入40MHz,双列直插式封装。需要为维持51单片机运行搭建最小系统,硬件连接如图。2.2 DS18B20 温度传感器使用DS18B20单线数字温度传感器具有以下优点:(1) 和微处理器连接时,仅需要一个I/O口就可实现。单总线具有经济性好、抗干扰能力强、使用方便等优点;(2) 测温范围宽,测量精度高:DS18B20测温范围为-55到+125;在-10至+85范围内,精度为0.5。(3) 测量参数可配置:DS18B20测量分辨率可通过程序设定9-12位。(
6、4) DS18B20体积小、适用电压宽。DS18B20连接如图:测温电路实图:2.3 LCD1602字符型液晶LCD1602是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x11的点阵字符位组成,一共可显示2行,每行可显示16个字符,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。LCD1602的电路图如图液晶连接实物图:2.4 光敏电阻光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的一种电阻器,又称为光电导探测器,入射光强,电阻减小,入射光弱,电阻增大。光敏电阻部分的电路如图:总
7、电路图如图:总电路实图:三、 系统软件设计23.1温度传感器控制程序3.1.1头文件名“ds18b20.h”#ifndef _DS18B20_H_#define _DS18B20_H /定义ds18b20.h#include #ifndef uchar#define uchar unsigned char#endif /定义uchar为类型unsigned char#ifndef uint#define uint unsigned int#endif /定义uint 为类型unsigned intsbit DSIO = P23; /将P23命名为DSIOvoid TempDelay1ms();
8、 /声明一个延时1ms的函数void TempDelay100ms(); /声明一个延时100ms的函数uchar Ds18b20Init(); /声明DS18B20的初始化函数void Ds18b20WriteByte(uchar dat); /声明一个函数将一个8位的二进制数写入DS18B20uchar Ds18b20ReadByte(); /声明一个函数读取DS18B20的一个8位二进制数void Ds18b20ChangTemp(); /声明一个函数写入温度转换命令到DS18B20void Ds18b20ReadTempCom(); /声明一个函数发送读取温度命令到DS18B20int
9、 Ds18b20ReadTemp(); /声明一个函数读取温度并返回#endif3.1.2源文件名“ds18b20.c”#includeds18b20.hvoid TempDelay1ms() uchar a,b,c; for(c=1;c0;c-) for(b=142;b0;b-) for(a=2;a0;a-);void TempDelay100ms() uchar a,b,c; for(c=19;c0;c-) for(b=20;b0;b-) for(a=130;a0;a-);uchar Ds18b20Init()uint i;DSIO=0; /拉低总线i=70;while(i-); /延时D
10、SIO=1; /释放总线while(DSIO)i+;if(i5)return 0; /初始化失败 return 1; /初始化成功void Ds18b20WriteByte(uchar dat)uint i,j;for(j=0;j=1; /数据移位,准备送下一位uchar Ds18b20ReadByte()uchar byte,bi;uint i,j;for(j=8;j0;j-)DSIO=0; /拉低总线i+; /延时DSIO=1; /释放总线i+;i+; /延时bi=DSIO; /读ds18b20传到总线的数据,从最低位开始byte=(byte1)|(bi7); /移位,准备读取下一位i=4
11、;while(i-); /延时return byte; /返回读取到的数据void Ds18b20ChangTemp()Ds18b20Init(); /初始化TempDelay1ms(); /延时Ds18b20WriteByte(0xcc); /跳过ROM操作Ds18b20WriteByte(0x44); /发送温度转换命令TempDelay100ms(); /延时void Ds18b20ReadTempCom()Ds18b20Init(); /初始化TempDelay1ms(); /延时Ds18b20WriteByte(0xcc); /跳过ROM操作Ds18b20WriteByte(0xbe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传感器 课程设计 24
限制150内