基于单片机火灾自动报警系统-毕业论文(编辑修改稿)内容摘要:

,就位数来分,有 8位、 10 位、 12位、 16 位等。 位数越高,其分辨率也越高,但价格也越贵。 而就其结构而言,有单一的 A/D 转换器,有内含多路开关的 A/D 转换器。 根据本设计的需要,我选择的 A/D 转换器是ADC0809 芯片。 ADC0809 是美国 Analog Device 公司生产的 8位逐次逼近式模数转换器,转换速率高,自三态输出缓冲电路,可直接与各种典型的 8 位或 16 位的微处理器相连而无需附加逻辑接口电路,且能与 CMOS 及 TTL 兼容,是目前我国应用最广泛,价格便宜的 A/D 转换器。 加之内部含有三态输入缓冲电路,可直接与各种微处理器连接,且无须附加逻辑接口电路,内部设置的高精参考电压源和时钟电路,使它不需要任何外部电路和时钟信号,就能完成 A/D 转换功能,应用非常方便。 ADC0809 芯片的基本知识 ADC0809 是带有 8 位 A/D 转换器、 8路多路开关以及微处理机兼容的控制逻辑的 CMOS 组件。 它是逐次逼近式 A/D 转换器,可以和单片机直接接口。 ADC0809的内部逻 辑结构如图 31。 安徽建筑大学 毕业设计(论文) 11 图 ADC0809内部逻辑结构 由上图可知, ADC0809 由一个 8路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。 多路开关可选通 8 个模拟通道,允许 8路模拟量分时输入,共用 A/D 转换器进行转换。 三态输出锁器用于锁存 A/D 转换完的数字量,当 OE 端为高电平时,才可 以从三态输出锁存器取走转换完的数据。 烟雾传感器 烟雾检测报警器主要应用在石油、化工、冶金、油库、液化气 站、喷漆作业等易发生可燃烟雾泄漏的场所,根据报警器检测烟雾 种类的要求,一般选用接触燃烧式烟雾传感器和半导体烟雾传感器。 使用接触燃烧式传感器,其探头的阻缓及中毒,是不可避免的问题。 阻缓是当在烟雾与空气的混合物中含有硫化氢等含硫物质的情况下,则有可能在无焰燃烧的同时,有些固态物质附着在催化元件表面,阻塞载体的微孔,从而引起响应缓慢反应滞缓,灵敏度降低。 虽然将阻缓的传感器再放回新鲜空气环境中有得到 某种程度的恢复的可能,但是如果长期暴露在这样的环境中,其灵敏度会不断下降,导致传感器最终丧失检测烟雾的能力。 中毒是如果环境空气中含有硅烷之类的物质时,则传感器将 使催化元件产生不可逆转的中毒,以致灵敏度很快就安徽建筑大学 毕业设计(论文) 12 丧失。 当怀疑检测环 境中存在这些物质时,经常对探头进行标定,是必须且有效的办法。 因此,经常对传感器进行标定,是保证其准确性的必要的途径。 一般连续使用两个月后应对传感器进行量程校准,这种经常性对传感器的维护,无形中加大了工作人员的工作量,同时增加了报警器的维护成本。 半导体烟雾传感器包括用氧化物半导体陶 瓷材料作为敏感体制作的烟雾传感器以及用单晶半导体器件制作的烟雾传感器,它具有灵敏度高, 响应快、体积小、结构简单,使用方便、价格便宜等优点,因而得到广泛应用。 半导体烟雾传感器的性能主要看其灵敏度、选择性 (抗干扰性 )和稳 定性 (使用寿命 )。 经过对比上述两种烟雾传感器的应用特性,发现半导体烟雾传感器的优点更加突出:灵敏度高、响应快、抗干扰性好、使用方便、价格便宜,且不会发生探头阻缓及中毒现象,维护成本较低等。 因此,本设计采用半导体烟雾传感器作为报警器烟雾信息采集部分的核心。 而在众多半导体气体传感器中,本设计 选用MQ2 型烟雾传感器,这种型号的传感器不但具备一般半导体烟雾传感器灵敏度高、响应快、抗干扰能力强、寿命长等优点。 温度传感器 温度传感器,使用范围广,数量多,居各种传感器之首。 温度传感器的发展大致经历了以下 3 个阶段: (含敏感元件),主要是能够进行非电量和电量之间转换。 传统的分立式温度传感器如热电偶传感器。 热电偶传感器是工业测量中应用最广泛的一种温度传感器,它与被测对象直接接触,不受中间介质的影响,具有较高的精度;测量范围广,可从 50~1600℃进行连续测量 ,特 殊的热电偶如金铁 —— 镍铬,最低可测到 269℃,钨 —— 铼最高可达 2800℃。 /控制器。 它的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温,不需要进行非线性校准,外围电路简单。 目前,国际上新型温度传感器正从模拟式想数字式、集成化向智能化及网络化的方向发展。 安徽建筑大学 毕业设计(论文) 13 温度传感器按传感器与被测介质的接触方式可分为两大类:一类是接触式温度传感器,一类是非接触式温度传感器。 接触式温度传感器的测温元件与被测对象要有良 好的热接触,通过热传导及对流原理达到热平衡,这是的示值即为被测对象的温度。 这种测温方法精度比较高,并可测量物体内部的温度分布。 但对于运动的、热容量比较小的及对感温元件有腐蚀作用的对象,这种方法将会产生很大的误差。 非接触测温的测温元件与被测对象互不接触。 常用的是辐射热交换原理。 此种测稳方法的主要特点是可测量运动状态的小目标及热容量小或变化迅速的对象,也可测量温度场的温度分布,但受环境的影响比较大。 综合以上,我选择数字温度传感器 DS18B20。 该产品采用美国 DALLAS 公司生产的 DS18B20 可组网数字 温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 DS18B20 一线总线数字式传感器,独特的单线接口仅需一个端口引脚进行通讯,用户可定义的非易失性温度报警设置。 现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。 适合于恶劣环境的现场温度测量,与前一代产品不同,新的产品支持 3V~ 的电压范围,使系统设计更灵活、方便。 而且新一代产品更便宜,体积更小。 安徽建筑大学 毕业设计(论文) 14 4 . 软件设计 硬件电路和软件程序是组成一个系统不 可缺少的两部分,二者的正确与否将直接影响整个程序的可实现性。 在上一章中已经将整个系统的硬件部分作了介绍,在这一章中将就系统的软件部分加以分析说明。 本次设计的软件要实现的功能是:当传感器在有火灾信息是,采集信息,用单片机实现对火灾信号处理,并在 LED 和蜂鸣器上显示结果。 系统软件流程图 开始 系统初始化 采集温度和烟雾信号 声光报警 温度烟雾是否超过设定上限 Y N 结束 安徽建筑大学 毕业设计(论文) 15 ADC0809 流程图 include sbit OE=P3^2。 sbit EOC=P3^1。 sbit ST=P3^0。 sbit CLK=P1^5。 sbit light=P1^1。 开始 模拟量输入 初始化 启动 A/D 正在转化 结束转化 数字量输出 结束 安徽建筑大学 毕业设计(论文) 16 sbit light1=P1^0。 void DelayMS(unsigned int ms) { unsigned int i,j。 for(i=0。 ims。 i++) for(j=0。 j1141。 j++)。 } void Delayus(unsigned int us) { unsigned int i。 for(i=0。 ius。 i++)。 } void main() { unsigned char temp。 TH0=0x14。 TL0=0x00。 ET0=1。 TR0=1。 EA=1。 OE=1。 ST=1。 while(1) { DelayMS(10)。 ST=0。 ST=1。 Delayus(10)。 ST=0。 安徽建筑大学 毕业设计(论文) 17 while(EOC==0)。 temp=P2。 if(temp126) { light=0。 } else { light=1。 } } } void Timer0_INT() interrupt 1 { CLK=!CLK。 } 安徽建筑大学 毕业设计(论文) 18 DS18B20 流程图 include define uchar unsigned char define uint unsigned int sbit DQ = P1^7。 //定义 ds18B20 总线 IO sbit deng=P1^0。 void delay(uchar z) { 开始 初始化 启动温度转换 初始化 读取温度寄存器 读取高低位温度 结束 转换 安徽建筑大学 毕业设计(论文) 19 uchar x,y。 for(x=1000。 x1。 x) for(y=z。 y1。 y)。 } void tmpDelay(uint num)//延时函数 { while(num)。 } void Init_DS18B20(void)//初始化 ds1820 { unsigned char x=0。 DQ = 1。 //DQ 复位 tmpDelay(8)。 //稍做延时 DQ = 0。 //单片机将 DQ 拉低 tmpDelay(80)。 //精确延时 大于 480us DQ = 1。 //拉高总线 tmpDelay(8)。 x=DQ。 //稍做延时后 如果 x=0 则初始化成功 x=1 则初始化失败 tmpDelay(4)。 } unsigned char ReadOneChar()//读一个字节 { unsigned char i=0。 unsigned char dat = 0。 for (i=8。 i0。 i) { DQ = 0。 // 给脉冲信号 安徽建筑大学 毕业设计(论文) 20 dat=1。 DQ = 1。 // 给脉冲信号 if(DQ) dat|=0x80。 tmpDelay(4)。 } return(dat)。 } void WriteOneChar(unsigned char dat)//写一个字节 { unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。 0x01。 tmpDelay(4)。 DQ = 1。 dat=1。 } tmpDelay(4)。 } unsigned int Readtemp()//读取温度 { unsigned char a=0。 unsigned char b=0。 uchar t=0。 Init_DS18B20()。 安徽建筑大学 毕业设计(论文) 21 WriteOneChar(0xCC)。 // 跳过读序号列号的操作 WriteOneChar(0x44)。 // 启动温度转换 Init_DS18B20()。 WriteOneChar(0xCC)。 //跳过读序号列号的操作 WriteOneChar(0xBE)。 //读取温寄度存器 a=ReadOneChar()。 //连续读两个字节数据 //读低 8 位 b=ReadOneChar()。 //读高 8 位 t=((a4)amp。 0x0f)。 a=((b4)amp。 0xf0)。 t=a|t。 return(t)。 } void main() { uchar t。 while(1) { t=Readtemp()。 if(t80) {deng=0。 delay(100)。 } else {deng=1。 安徽建筑大学 毕业设计(论文) 22 delay(100)。 } } } 安徽建筑大学 毕业设计(论文) 23 5 . 调试 编程 Keil 环境介绍 Keil C51 是美国 Keil Software 公司出。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。