邵阳学院毕业设计(论文)
终切断了拨号音。另外用于拨号的16个DTMF的编码在MT8888的DATASHEET中有详细规定,和常用的8421BCD码不完全相同,这一点很容易被忽略。
语音电路为ISD1420的典型应用电路,在与电话接口连接时,如果用电容直接藕合,将对DTMF IN影响很大,以至无法检测到信号音,因此,二者之间加入了开关电路,当只有准备送出语音的时候,才将语音芯片接通并送出。密码、显示及存储电路调试硬件电路相对简单,主要是软件的编制与调试。
4.6用户端自动报警器软件编制与调试
自动报警器软件部分采用模块化设计,分为主控模块、摘挂机模块、拨号模块、语音模块、显示模块及读写数据模块。应用汇编语言编程,在Keil uVision2环境里,使用Top 2000-B型编程器将程序写入单片机。编程语言的软件设计采用MCS-51汇编语言编写自动报警器中相关程序(如拨号、语音、读写X25045等)。 4.6.1控制模块程序设计
33
邵阳学院毕业设计(论文)
开始 开始 调用摘机子程序 延迟100S 调用检测子程序 拨号初始化 调用判断子程序 探头掉检测 N电源状态检测 有拨号Y调用拨号子程序 N 有险情 Y Y 密码及显示 N 盗警 调用检测子程序 调用判断子程序 Y 调用process 记录盗警信息 Y 有忙音 N 有回铃声 定时50S Y N N N 调用语言子程序 调用挂机子程序 调用延时子程序 返回 火警 Y 调用process 记录火警信息 Y 调用挂机子程序 延时5S 图4.14主程序流程图 图4.15控制模块PROCESS流程图 由于单片机的P3.2和P3.3脚分别和防盗、防火传感器相连,因此,一旦发生
险情,转密码子程序,若解码正确则取消报警,否则将产生中断,在中断服务子程序里,位地址7FH被置1,证明发生险情,然后根据险情类别,将7EH或7DH置1,其中,7EH为盗警标志位,7DH为火警标志位。主程序在运行期间首先检测探头与电源状态,一切正常后等待中断的发生。当检测到7FH(中断标志)被置1后,调密码显示子程序,密码正确系统重新检测中断信号,密码有误则主程序首先判断7EH的情况,如果被置1,则调用控制模块PROCESS完成后续处理,处理完成后记录报警信息,再检测是否同时发生了火险,即7DH是否被置1,如果被置1,则同样调用控制模块PROCESS完成后续处理。如果没有发生盗警,即7EH没有被置1,
34
邵阳学院毕业设计(论文)
则不用检测7DH,认为发生了火警,则直接调智能化住宅防盗防火报警系统用
PROCESS完成后续处理。
图4.15为控制模块PROCESS流程图,它是整个系统软件的核心,控制整个系统完成摘机,信号音判断、拨号,发出语音求救信号,最后挂机。由于考虑到拨号音、忙音、回铃音的存在,因此这个模块较主程序复杂一些。
首先,调用摘机子程序模拟摘机,再调用检测和判断子程序判别是否有拨号音,如果没有,则跳转到ERROR,调用挂机子程序,延时后重新调用摘机子程序;如果检测到拨号音,则接下来调用拨号子程序,在拨号子程序里,将根据7EH, 7DH被置位情况拨相关部门的电话,如管理中心电话或户主电话等。拨号完毕后,重新调用检测和判断子程序,判别此时是忙音还是回铃音,如果是忙音,则跳转到ERROR,调用挂机子程序,延时后重新调用摘机子程序:如果是回铃音,则重新调用检测和判断子程序,判别此时对方是否摘机,如果仍然是回铃音,则继续调用检测、判断子程序,直到50s计时时间到,则调用挂机子程序,延时后,再重新调用摘机子程序;如果不是回铃音,则调用语音程序,将事先录制好的报警语音回放出来,最后调用挂机子程序,结束PROCESS模块的执行,返回主程序,等待再次被调用。 4.6.2拨号模块程序设计 (1)信号音检测与判断
开始 R2R3=1600 开始 调用MINUS子程序 置MT8888为CP模式 置T0定时,T1计数 T0,T1初始化 定时,计数开始 R2=100 C置位 N Y R2R3=1600 调用MINUS子程序 C置位 N Y R2R3=160 调用MINUS子程序 5秒定时 Y 返回 N C置位 Y 置拨号音标志位 返回 置忙音标志位 返回 N 置回铃音标志位 返回
35
返回 邵阳学院毕业设计(论文)
图4.16检测子程序流程图 图4.17判断子程序流程图
MT8880在工作之前要进行初始化,它的初始化过程要经过下面的步骤:读状
态寄存器、写CRA=0000B、写CRA=OOOOB、写CRA=1000B、写CRB=OOB、读SR、写CRA=1101B,写CRB=DOOOB。为了检测信号音,应将MT8888设置为呼叫处理模式,即CP模式。该模式下MT8888可检测各种信号音,如拨号音、忙音、回铃音。只要位于中心频率450Hz,带宽250Hz左右的信号音就可以经滤波器选择、高增益比较器限幅、从施密特触发器得到代表信号音的方波信号,并从
IRQ/CP端输出,微处理器可通过IRQ/CP端分析呼叫过程。
根据程控交换机的标准,拨号音为450Hz的连续正弦波,正负误差25Hz,忙音为450Hz的正弦波,0.35s通,0.35s断,回铃音为450Hz的正弦波,1s通,
4s断。因此,依据MT8888的CP检测模式,可对IRQ脚输出的方波计数5s,根
据结果判断是哪种信号音。拨号音计数上限:(450+25)*5=2375,计数下
限:(450-25)*5=2125:同理,忙音的计数范围是1041-1212,回铃音的计数范围是
425-475,无信号音的计数为0。考虑到计数误差,选择2000作为拨号音和忙音的
分界线,900作为忙音和回铃音的分界线,400作为回铃音和无信号音的分界线。
检测子程序流程图如图4.16。首先将MT8888设置为呼叫处理模式,接着将单片机的T0设置成定时方式,Tl设置成计数方式,由于需要定时5s,而选择定时方式1,晶体振荡器选择12MHz,则最大定时时长为65.53ms,所以,需要用软件扩展定时。计时开始后,计数也即开始。在定时中断服务子程序里,判断5s定时时间是否到,如果时间到,则从检测子程序里跳出,否则,继续计数。最后,计数值高八位存储到THl中,低八位存储到TLl中,供判断子程序进行判断。
判断子程序流程图见图4.17。在此子程序里,将计数值分别与2000, 900, 250这三个数进行比较,即调用MINUS子程序,将计数值与上述比较值做双字节的无符号减法,然后根据寄存器C被置位情况,对拨号音标志位7CH、忙音标志位7BH、回铃音标志位7AH进行置位或清零,然后返回。 (2)DTMF拨号程序设计
MT8888在自动拨号应用里,应将工作方式设置为突发方式,在此种情况下,
双音频信号持续和暂停时间为51ms,符合自动拨号要求。在将MT8888设置为突发模式的时候,需要进行如下步骤:写控制寄存器A、写控制寄存器B、写发送数据寄存器、等待中断或读状态寄存器。
36
邵阳学院毕业设计(论文)
拨号子程序流程图见图4.18。首先将MT8888设置为突发方式,然后判断是否为盗情,即7EH是否被置位,如果没有,则跳转到拨管理中心电话号码部分;如果被置位,则拨打用户电话号码,最后,该程序返回。 4.6.3语音模块程序设计
语音子程序流程图参见图4.19。单片机P2.1口由高电平变为低电平,触动ISD1420的放音脚,放音开始,因为ISD1420最长录音时间为20秒,所以,延时
23秒后,单片机P2.1脚由低电平变为高电平,放音结束,然后进入下一次放音状态,
直至三次放音结束,清除警情标志位7EH后,程序返回。
开始 置MT8888为 BURST模式 开始 回放开始 延时23秒 N 读X25045 防火电话 盗情 Y 读X25045 防盗电话 回放结束 回放 拨号 返回 拨号 返回
Y 返回 N 图4.18拨号子程序流程图 图4.19语音子程序流程图
4.6.4摘挂机模块程序设计
单片机P2.3口为高电平时,三极管处于截止状态,继电器没有动作系统挂机。 当单片机P2.3口为低电平时,三极管处于饱和状态,继电器动作,系统摘机。 4.6.5密码及显示模块程序设计
密码及显示子程序流程图如图4.20所示,用于控制报警器外部输入。工作流 程介绍见4.2.2节。
37
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库智能防火系统设计(8)在线全文阅读。
相关推荐: