微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AT89C51单片机智能语音拨号报警系统

AT89C51单片机智能语音拨号报警系统

时间:11-03 来源:互联网 点击:

  • 拨号音: 450±25Hz 连续蜂音;
  • 忙音: 0.35s 断0.35s 通的450±25Hz 蜂音, 音断周期为0.7s ;
  • 回铃音: 4s 断1s 通的450±25Hz 蜂音, 音断周期为5s。

这些电话信号均是模拟信号, 然而单片机是无法识别模拟信号的, 故必须先将模拟信号转换为脉冲信号,然后再根据脉冲信号的脉冲个数进行识别。这些电话音频信号的脉冲个数可用下式计算:
N=tm/T
式中, N 为每音段周期的脉冲个数; T 为电话音频信号的音频周期, 单位为s ; tm 为信号音断周期的通时间, 单位为s。
在实际使用中, 主要需要识别拨号音、忙音和回铃音。分析这三种信号的特性可以看出, 在一定的计数时间内, 其脉冲个数是不一样的。在设计之初, 考虑采用5s 为一个计数单位来判断这三种信号音, 但通过实际的调试发现: 当对方摘机时, 要等待一段时间才能听到报警语音。通过反复研究及调试, 最终采用2s 计数判断拨号音, 采用2.8s ( 即4 个忙音周期) 判断是否为忙音, 若否则代表电话拨通了。随后采用1s 为一个计数单元, 采用计五次后的累加脉冲数来判断对方是否接听电话。若有, 则放相应的报警提示语音; 否则再计1s , 然后计算最后5s 内的脉冲数, 再次判断对方是否摘机。如此反复, 直到超过等待时间仍没有人接听电话就挂机。由于干扰和一些其他因素的存在, 难免会有误判的现象而导致漏报警情。因此采取在所有预先设定的电话至少有一个拨通就只拨一遍, 如果全部没拨通或者没人接听则把所有预存电话重拨一边, 这样漏报报警的概率就非常低以致可忽略不计。

3.2 软件设置
自动拨号程序的流程图如图5 所示。下面是自动拨号的部分程序 。
AUTOCALL: CLR P1.2 ;模拟摘机
MOV A,#5DH ;允许信号音输出, 下一次为写控制寄存器CRB
MOVX @DPTR,A ;写控制寄存器CRA
MOV A,#51H ;MT8880 置为突发模式
MOVX @DPTR,A ;写控制寄存器CRB
MOV A,#56H ;MT8880 置为呼叫模式
MOVX @DPTR,A ;写控制寄存器CRA
LCALL DELAY
LCALL AUTOY ;调用信号音判别子程序, 看是否有拨号音
MOV A,#5DH ;允许信号音输出, 下一次为写控制寄存器CRB
MOVX @DPTR,A ;写控制寄存器CRA
MOV A,#50H ;MT8880 置为突发模式
MOVX @DPTR,A ;写控制寄存器CRB
…… ;拨电话号码
MOV A,#56H ;MT8880 置为呼叫模式
MOVX @DPTR,A ;写控制寄存器CRA
LCALL AUTOY ;调用信号音判别子程序, 看是否有回铃音
LCALL AUTOY ;调用信号音判别子程序, 看对方是否摘机
SETB P1.2 ;模拟挂机

3.3 编程过程中应注意的几点
首先, MT8880 的DTMF 产生器是发送部分的主体,它产生全部十六种失真小、精度高的标准双音频信号,这些频率均由3.579545MHz 晶体振荡器分频产生。电路由数字频率合成器、行/ 列可编程分频器、开关电容式D/A变换器组成。行和列单音正弦波经混合、滤波后产生双音频信号。通过DTMF 编解码表把编码数据写入MT8880 发送寄存器产生单独的fLOW 和fHIGH, 一旦编码错误就会导致拨号失败, 故在编程过程中要十分小心。其编解码表见MT8880 的Datasheet 。
其次, 在摘机后应延时一段时间再去判断摘机音,因为本系统采用机械继电器实现自动摘机, 故应考虑继电器的响应时间。
最后, 一个电话号码拨完后不能立即拨下一个电话号码, 应保证挂机的最短有效时间以确保前一电话号码确实已挂机, 否则拨下一个电话号码时会没有拨号音。
本系统配置灵活, 可以有效、快速地应用于对安防要求比较高的场合。例如: 对不需要监视视频丢失的场合, 可以不配置视频监测盒; 而对智能小区、医院等, 可以通过RS485 总线将一台DVR ( Digital Video Recorder )主机、一套报警监控软件和多台报警主机组合到一起,构成一个网络型智能监控系统。
本报警系统具有价格低廉、操作简便、通讯速度快、可靠性高和误报率低的优点。

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

网站地图

Top