基于单片机实现的火灾报警器设计内容摘要:

P 2. 2P 2. 1P 2. 0P 1. 0P 1. 1P 1. 2P 1. 3P 1. 4P 1. 5P 1. 6P 1. 7R E S E TR X DT X DI N T 0I N T 1T0T1WRX2X1V S SRDA T 89 C 5 1绿黄红红3 40 Ω3 40 Ω3 40 Ω3 40 Ω+ 5V1 2M H Z3 0P F3 0P F+1 00 μ FV C C1WS P E A K E R1 041 044 .7 KU 1 1Al m 3 8 6v c c1 0K1 04S P +1234V i n1GND2V o ut37 8L 0 52 20 V 9V+1 00 u F 1 03 u F4 7u F 0 .1 u F5V12C O N 21234电话线0 .1 u FP1.4 0 .1 u FP3.51 0u F1K+ 5V4 N 254 14 81 0u F1KT0 四、软件设计 1. 数据采集子程序 数据采集部分的程序设计包括 : 驱动 ADC0809 的 IN0和 IN1进行 A/D 转换 ,分别由子程序 ADC1 (温度转换 ) 和 ADC2 (烟雾浓度转换 ) 完成 ; 单片机接收转换好的数据 , 存入指定内存单元 , 由INT1 中断服务程序完成。 每次驱动 A/D转换后等待外部中断 , 中断到来说明 A/D 转换已经完成 , 通过中断服务程序读取转换得到的数据。 A/ D 采样程序如下 : 本程序分住程序和中断服务程序两部分。 主程序用来对中断初始化,给 ADC0809发起动脉冲和送模拟量路数地址等。 中断服务程序用来从 ADC 接受 A/D转换后的数字量和判断一遍采集完否。 参考程序如下: 主程序: ORG 0A00H MOV R1, 30H //输入数据区始址送 R1 MOV R4, 2 //模拟量总路数送 R4 MOV R2, 00H //IN0地址送 R2 SETB EA //开 CPU中断 SETB EX1 //允许 INT1L中断 SETB IT1 //即 INT1L为边沿触发 MOV R0, 0F0H //送端口地址 F0H到 R0 MOV A, R2 //IN0地址送 A MOVX @R0, A //送 IN0地址到 A/D SJMP $ //等待中断或其它 中断服务程序 : ORG 0013H AJMP CINT1 //转中断服务程序 ORG 0100H CINT1: MOV R0, 0F0H //端口地址送 R0 MOVX A, @R0 //输入数字量 A MOV @R1, A //存入输入数据区 INC R1 //输入数据区指针加 1 INC R2 //修改模拟量路数地址 MOV A, R2 //下个模拟量路数地址送 A MOVX @R0, A //送下路模拟量路数地址 ,并启 A/D DJNZ R4, LOOP //若未采集完 2路 ,则 LOOP CLR EX1 //若已采集完 2路 ,则关 INT1L中断 LOOP:RETI //中断返回 END 2. 火灾判断程序 为了降低误报率 , 系统采用了多次采集、多次判断的方法。 每次数据采集后根据得到的数据对现场情况进行判断 : 00H 表示正常; 01H 表示异常; 02H 表示火灾。 然后综合多次判断结果做出最终的火情判断。 具体判断方法如下 : (1) 对温度和烟雾。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。