浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
图7 数码管显示
显示采用数码管显示,显示电路如图7所示。 3.6 声音报警模块
电路通过三极管基极串连一个电阻与单片机P3.6端口连接从而达到控制蜂鸣器是否报警。声音报警电路如图8所示。
图8 声音报警电路图
作者:舒伟 第 10 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
3.7 按键控制模块
图9 消音按键连接电路图
本电路设计了四个按键,一个设置键、一个加键、一个减键、一个紧急报警键,当遇到紧急情况时,可按下紧急报警键,蜂鸣器进行报警,消音按键连接如图9所示
[16]
。
3.8 DS18B20接口电路
采用DS18B20温度传感器,其接口电路图如图10所示。
图10 温度传感器接口电路图
(1) DS18B20控制方法 DS18B20有六条控制命令:
作者:舒伟 第 11 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
温度变化:44H开动DS18B20进行温度转换 读暂存器:BEH仅仅占了暂存器9个字节内容 写暂存器:数据被4EH放入暂存器的TH、TL字节
复制暂存器:暂存器的TH、TL字节被48H 送到E2RAM中
再一次调E2RAM B8H 把E2RAM中的TH、TL字节放到暂存器TH、TL字节 读电源供电方式 B4H 开启DS18B20把电源供电方式的信号发送给主CPU (2) DS18B20供电方式
DS18B20可以采用两种方式供电:1是采用电源供电方式,此时DS18B20的1脚连到地端,2脚变作信号线,3脚连接电源。另一种是寄生电源供电方式,在图3.1所示的那样,单片机端口连上单线总线,这是为了在工作的周期之内,能够为DS18B20时钟提供足够的电流,以方便其工作,所以可以采用一个三极管来完成上拉总线。本设计采用电源供电方式,P2.3口连单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个上拉电阻和STC89C52的P2.3来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间所到达的极限时间为10μs。实行寄生电源供电方式则VDD和GND端均需要连接地端。由于单线制只有一根线,则对发送接收口的要求,它就必须是三状态的。DS18B20被主机控制之后完成温度转换就必须经过3个步骤:1,初始化;2,ROM操作指令;3,存储器操作指令。
4 系统软件方案的设计
4.1系统主程序设计及流程图
自动火灾报警器的硬件系统设计结束之后,如果缺乏软件的辅助及帮助,硬件还是不能正常工作。软件是硬件能够运动起来的重要支撑部分,控制着整个硬件系统的运行。所以从另外一个意义来说软件对整个系统极其的重要,甚至从某种意义上说比硬件更加重要。
主程序流程图如图11所示。首先要给传感器预热,因为MQ-2型半导体电阻式烟雾传感器在不通电的情况下,它存放一段时间之后,当它再次通电,传感器不能进入工作状态,也就是说正常采集烟雾信息,需要一段时间进行预热处理。程序初始化结束后,系统就会进入监控状态,对整个电路和环境进行一个监控作用。
作者:舒伟 第 12 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
在整个报警系统工作中,ADC0832把烟雾浓度信息转换处理后,还要经过单片机来对信号进行分析处理,判断系统是否启动报警。主程序还包括报警浓度设定功能、LED八段式数码管浓度字符显示功能、手动报警功能、中断子程序等,这些程序使报警器功能更加全面和完善,给用户带来更大的便利和体验[17]。
图11 主程序流程图
至此,整个多功能MP3系统的设计基本完成了,剩下的任务就是对该系统进行调试和测试。
5 系统调试、测试与分析
5.1 硬件调试
第一步为目测阶段,单片机应用系统电路全部需要手工焊接在洞洞板上,这个时候对焊接需要一定的熟悉度,而且还要对每一个焊点都要进行仔细的检查。以便测定它是否有虚焊、是否有毛剌等现象。
作者:舒伟
第 13 页 共 38 页
浙江传媒学院本科毕业论文 基于STC89C52的火灾自动报警系统的设计与开发
第二步为万用表测试,先用万用表再一次检查目测中认为可能存在错误的连线或接点,查看它们的通断状态是否跟设计状态相对应,再检查各种线与线之间的连接是否有短路现象。
第三步为加电检查。当系统加电时,首先检查所有插座或器件引脚的电源端是否达到符合要求的电压值,接地端电压值是否与零想接近,接固定电平的引脚端是否符合设计所需的电平。
第四步是联机检查。
在对硬件电路调试过程中,还遇到了不少问题,第一次当把所有的元件都焊上去后,准备调试,这个时候才发现正负极的插针离得太近了,不容易接电源,按理来说这种小错本不该发生的,出错的原因就是因为自己太多马虎,所以说,做任何事情都必需经过“三思而后行”,不能仅停留在想象的阶段,还需要自己身体力行,方能取得好的结果,才能使自己的经验更加丰富,而且来不得半点的马虎,否则浪费了时间和精力。
首先烧入显示程序,看显示正不正常,整体功能是否都还完善。在调试程序时,发现有的指令用的不正确,功能不能达到自己想要的效果,电路功能也不能正常的运行,另外软件程序中的延时有的过长、有的过短,长短不一。类似的现象还有很多就不一一列举了。
在完成之后,一共要测试两个功能。第一个测试浓度达到设定值之后,是否会自动报警。第二个测试温度上升到报警值之后,能否实现自动实现报警功能。
5.2 软件调试
在软件调试时,对每个模块分别进行测试,采取步步为营的策略,这样方便对一个模块都起到一个检查的作用,第一步完成OLED显示,然后接下来单片机的时钟电路与复位电路,最后就是时钟等驱动程序的调试,下一步烟雾检测AD采集电路的编写﹑按键控制电路的设计,最后根据系统所需然后设置自己想要的功能,进行微型修改。
然后就要在实际操作的过程中,首先把显示程序烧入进去,看显示正不正常。在调试程序结束之后,发现有的指令用的并不是很正确,导致电路功并不能完全实现,另外软件程序中的延时有的过长、有的过短,当出现这些这些问题之后,就要对自己的程序进行不断的修改,不断的查资料,这样才能解决出现的问题得出自己想要的结果。
作者:舒伟
第 14 页 共 38 页