微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于PIC16F87X单片机的火灾报警系统设计

基于PIC16F87X单片机的火灾报警系统设计

时间:11-05 来源:互联网 点击:
避免总线冲突的设计

在本结构中,为了保证正确有效的长距离数据传输,使用了开关管RF634来增加电路的驱动能力,在接收端使用LM393比较器来修正信号,并在其后端连接一个非门7406,用以还原原始信号。

当一个节点需要使用总线时,为了实现总线通信可靠,在有数据需要发送的情况下先侦听总线。在硬件接口上,将报警终端单片机的数据发送引脚TX与其中断引脚INT0相连接,且将RA2口作为接收引脚,通过驱动电路与起侦听作用的单片机的RA3引脚相连接。报警终端网络中的单片机在发送数据前,先探测其RA2口是否保持高电平输入。若有,则表明总线“忙”,等待主控方释放总线;若没有,则表明总线“空闲”,可以发送数据。因主控方在发送数据的同时也将数据传给了中断引脚INT0,起侦听作用的单片机接收数据后,通过其RA3口向报警装置网络中的所有单片机以广播的通信方式发送高电平1。

报警终端网 络中的单片机在一直不停地查询其中断引脚INT0是否有电平变化,并同时查询其RA2接收口是否有高电平输入。若单片机的RA2口有高电平输入且又有中断引脚电平变化,则继续发送数据;若只有RA2口有高电平输入但中断引脚INT0没有电平变化,表示其探测到总线正“忙”,则待主控方完成通信交出总线控制权后,再让其得到总线控制权,这样就较好地解决了总线冲突的问题。采用这种工作方式后,系统中已经没有主、从节点之分,各个节点对总线 的使用权限是平等的,从而有效避免了个别节点通信负担较重的情况。总线的利用率和系统的通信效率都得以提升,从而也使系统响应的实时性得到改善。而且,即使系统中个别节点发生故障,也不会影响其他节点的正常通信和正常工作。这样使得系统的“危险”分散,从某种程度上来说,增强了系统的工作可靠性和稳定性。

在查询INT0引脚的高低电平变化时,宜采用定时器TIMER0来定时,在一个固定的时间内查询INT0引脚是否有高低电平变化。以避免所发送的数据有连续的1或0发送时,INT0引脚无高低电平变化,从而导致主控方停止发送数据。

系统软件设计

软件的主要流程如下:

1)报警装置终端程序:完成系统的初始化工作,开始给模数转换器发送启动转换信号,使之开始工作,将转换后的数据与空气中的一氧化碳浓度(已知数据)相比较,如果其浓度远大于空气中一氧化碳的浓度,则说明有火灾发生,否则,继续进行转换、比较。当判断有火灾发生时,先进行总线侦听,若检测到总线上有数据传输时,则等待总线释放,若没有检测到,则立即从外部ROM里读出数据,进行数据发送。

2)侦听电路中的单片机程序:判断是否有数据接收,若有数据接收,则发送数据给远程终端,并同时输出高电平给报警装置单片机的RA2口。

3)数据显示程序:判断是否有数据接收,若有,则初始化LCD,数据写入LCD,显示信息。最后输出连续脉冲信号以驱动报警喇叭。

结论

基于PIC16F87X单片机的报警网络系统,其电路简单、功耗低、电源要求单一、精度高、系统监视范围广,具有检测总线冲突的功能,可以在远程监视系统中显示火灾的具体位置和有关的重要信息。该系统尽可能减少了火灾损失,容易扩展为一台显示器监视较多的报警装置的系统网络,在石油化工、航空、煤炭以及其他易于发生火灾的领域,都具有实用价值。

本文使用海纳锐利编辑并转载, 版权归原作者所有。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top