(完整版)家庭智能防盗报警系统毕业设计论文 联系客服

发布时间 : 星期日 文章(完整版)家庭智能防盗报警系统毕业设计论文更新完毕开始阅读e76f1330b5daa58da0116c175f0e7cd18425183a

判别此时对方是否摘机,如果仍然是回铃音,则继续调用检测、判断子程序,直到505 计时时间到,则调用挂机子程序,延时后,再重新调用摘机子程序;如果不是回铃音,则调用语音程序,将事先录制好的报警语音回放出来,最后调用挂机子程序,结束process 模块的执行,返回主程序,等待再次被调用。 3.2 拨号模块程序设计 信号音检测与判断

图3-22 检测子程序流程图

图3-23 判断子程序流程图

MT888O 在工作之前要进行初始化,它的初始化过程要经过下面的步骤:读状态寄存器、写CRA =000OB 、写CRA=000OB 、写CRA = IOOOB 、写CRB =OOB 、读SR 、写CRA =11OIB 、写CRB = D000OB 。为了检测信号音,应将MT8888 设置为呼叫处理模式,即CP 模式。该模式下MT8888 可检测各种信号音,如拨号音、忙音、回铃音。只要位于中心频率45OHz 、带宽25OHz 左右的信号音就可以经滤波器选择、高增益比较器限幅、从施密特触发器得到代表信号音的方波信号,并从IRQCP 端输出,微处理器可通过IRQCP 端分析呼叫过程。

根据程控交换机的标准,拨号音为45OHz 的连续正弦波,正负误差25Hz ,忙音为45OHz 的正弦波,0.35s通,0.35s断,回铃音为450Hz 的正弦波,1s 通,4s 断。因此,依据MT8888 的CP 检测模式,可对IRQ 脚输出的方波计数5s ,根据结果判断是哪种信号音。拨号音计数上限:( 450 + 25 ) * 5 =2375 ,计数下限:( 450 -25 ) * 5 = 2125 :同理,忙音

的计数范围是,回铃音的计数范围是,无信号音的计数为O 。考虑到计数误差,我选择了2000 作为拨号音和忙音的分界线,900 作为忙音和回铃音的分界线,400 作为回铃音和无信号音的分界线。

检测子程序流程图如图3-22 。首先将MT8888 设置为呼叫处理模式,接着将单片机的TO 设置成定时方式,T1 设置成计数方式,由于需要定时5s ,而选择定时方式1 ,晶体振荡器选择12MHz ,则最大定时时长为65.53ms ,所以,需要用软件扩展定时。计时开始后,计数也即开始[19]。在定时中断服务子程序里,判断5s 定时时间是否到,如果时间到,则从检测子程序里跳出,否则,继续计数。最后,计数值高八位存储到THI 中,低八位存储到TL1 中,供判断子程序进行判断。

判断子程序流程图见图3-23 。在此子程序里,将计数值分别与2000 、900 、250 这三个数进行比较,即调用MINUS子程序,将计数值与上述比较值做双字节的无符号减法,然后根据寄存器C 被置位情况,对拨号音标志位7CH 、忙音标志位7BH 、回铃音标志位7AH 进行置位或清零,然后返回。

DTMF 拨号程序设计:

MT8888 在自动拨号应用里,应将工作方式设置为突发方式,在此种情况下,双音频信号持续和暂停时间为5lms ,符合自动拨号要求。在将MT8888 设置为突发模式的时候,需要进行如下步骤:写控制寄存器A、写控制寄存器B、写发送数据寄存器、等待中断或读状态寄存器。 拨号子程序流程图见图3-24。首先将MT8888 设置为突发方式,然后判断是否为盗情,即7EH 是否被置位,如果没有,则跳转到拨管理中心电话号码部分;如果被置位,则拨打用户电话号码,最后,该程序返回。 3.3 语音模块程序设计

语音子程序流程图参见图3-25 。单片机P2.1 口由高电平变为低电平,触动ISD142O 的放音脚,放音开始,因为ISD1420 最长录音时间为20 秒,所以,延时23 秒后,单片机P2.1 脚由低电平变为高电平,放音结束,然后进入下一次放音状态,直至三次放音结束,清除警情标志位7EH 后,程序返回。

图3-24 拨号子程序流程图

图3-25 语音子程序流程图

3.4 摘挂机模块程序设计

单片机P2.3 口为高电平时,三极管处于截止状态,继电器没有动作,系统挂机。当单片机P2.3 口为低电平时,三极管处于饱和状态,继电器动作,系统摘机。

3.5 密码及显示模块程序设计

密码及显示子程序流程图如图3-26 所示,用于控制报警器外部输入。工作流程介绍见2.2.2 节。

图3-26 密码及显示子程序流程图

3.6 读写数据模块程序设计

本系统中对X25045 的编程包括上电初始化、系统工作时对X25045 的读写以及看门狗的访问。上电初始化包含看门狗定时器的启动设置、X25045 中数据的有效性检查、以及必要的数据块保护设置等。对于自动

报警器,因为X25045 中只保存报警及探测器正常与否等关键信息,因此可将即固定在所希望的电平上。写数据子程序流程图如图3-27 所示。

使用X25045 时需要注意的几点问题: 1. 上电以后,在任何操作开始以前,需要在CS引脚上有一个从高电平至低电平的跳变。

2. 要向EEPROM写数据,引脚WP必须为高电平,并先要用WREN 指令将写使能锁存器置位。执行WREN 指令后,引脚 CS 必须置为高电平,否则WREN 指令被忽略。当WREN 指令的所有8 位发送之后,必须将CS 变为高电平。如果这时CS 仍然为低电平,随后的写操作将会被忽略。

3. 向EEPROM写入数据前,需要判断WIP 位是否为“0”。WIP 位为“1”表示上一批数据写入过程尚未结束,必须等到该位为“O”时才能写新数据,每一批可写入1- 4 字节数据。

4. 为了结束写操作(写字节或页),只能在第24 、第32 、第40 或第48 个时钟之后把CS 变为高电平。在其它时钟时间使CS 变为高电平,不能结束写操作。

图3-27 写数据子程序流程图

本章节分析了智能防火防盗报警系统的软件设计,对单片机的工作流程做了详细的说明,并分析了MT8888、ISD1420、X25045芯片的工作流程,采用汇编语言编程,以及模块化设计,使得程序便于差错,系统设计侧重了实用性,使用户可自行设置电话号码和系统密码并有探头掉线检测,充分体现了系统的实用性。

第四章 系统的抗干扰措施