1、毕业设计说明书 (论文 ) 第 1 页 共 53 页 基于单片机的智能家居安防系统设计 (软件部分) 摘 要 认真分析了设计任务要求,进行了总体设计方案论证,提出了以单片机为控制核心并通过 PSTN 实现智能家居安防报警系统的方法,尝试了基于 keil 软件 C51编程,结合proteus 软件仿真硬件运行的新方法。设计了四种(盗、火、天然 气、水)报警功能的智能家居安防远程报警系统,其中火、天然 气、水的采集信号使用模拟开关替代,实现了防盗报警信号采集与报警功能。阐明了区别于通过检测铃流信号判别被叫用户是否摘机的另一种方法。主要进行了系统软件的设计、仿真、下载与调试,调 试结果和分析表明,设
2、计方案可行,方法正确,达到了设计指标要求。设计任务的完成也为后续课题的开发研究提供了一种行之有效的手段和方法。 关键词 单片机;智能安防;远程报警;公用电话网; C51 毕业设计说明书 (论文 ) 第 2 页 共 53 页 The intelligent alarm system of security based on single-chip Microcomputer Abstract: Keywords Single-chip microcomputer; Intelligent alarm system; Long-distance security; PSTN; C51 毕业设计说明
3、书 (论文 ) 第 3 页 共 53 页 目 录 序言 第一章 设计任务的分析与系统的总体设计 1.1 设计任务的分析 1.2 系统的总体设计 第二章 系统的软件设计 2.1 软件系统分析 2.2 程序设计 2.2.1 主程序 2.2.2 1int 中断服务子程序 2.2.3 T0 中断服务子程序 2.2.4 0int 中断服务 子程序 第三章 系统的硬件设计 3.1 AT89C52 单片机概述 3.2 硬件系统模块设计 第四章 系统调试 4.1 软件调试 4.2 硬件调试 毕业设计说明书 (论文 ) 第 4 页 共 53 页 4.3 综合调试 第五章 结束语 致谢 附录 1 附录 2 附录
4、3 参考文献 毕业设计说明书 (论文 ) 第 5 页 共 53 页 基于单片机的智能家居安防系统设计 (软件部分) 序言 随着现代人生活节奏的加快 , 人们 在家中的时间越来越少。此时 住宅中 无人值守的状态会带来很多的安全隐患,因此 就需要一个设备能够让 主 人 安心工作又不必担心家里发生了警情自己却不知道 ,错过了解决的黄金时间。 针对这样的一个背景,设计出此类的系统就有它的必要性,而且这样的系 统对于店面等夜间无人值守的地点同样都有它的用武之地。 为解决此问题我们设计出这样的系统,该系统以单片机为核心通过 PSTN 实现智能家居安防 报警功能,解决了家中无人值守所带来的各种安全隐患。一旦
5、住宅中有警情(天然气、水、盗、火)发生,系统会第一时间检测、判别警情类型,并通过 PSTN 远程报警让主人知道家中发生的具体情况, 以便及时解决。预置的电话号码类型不受限制(手机号码亦可)。系统还采用多次拨号的方式,以便解决主人未能及时接到的报警电话。另外该系统还可以安装在拥有 PASN接口的任何场合,而不仅仅局限于家庭。 本论 文共分 5章。第一章为任务书的分析与总体设计;第二章为系统软件设计;第三章为系统硬件设计;第四章为系统调试;第五章为结束语。 把系统软件设计放在系统硬件设计之前的原因是我们软件设计优先于硬件设计。 设计过程中我们采取了分工与合作的方法,我负责软件的编写与调试。张峰同学
6、负责硬件 电路 的 设计、 安装和调试,综合调试由我们共同完成。 在设计过程中,软硬件的功能总是不断的调整,以便相适应。硬件设计和软件设计是不能截然分开的,硬件设计时应考虑软 件设计的方法,而软件设计时应了解硬件的工作原理,在整个设计过程我们互相协调, 提高 了 工作效率。 在本次毕业设计中我们的指导老师陶为戈为 此次设计 付出了大量辛勤的劳动,在很多问题上给予指导性的意见,同时在毕业设计的过程中得到了系各级领导的关心和指导,在此表示由衷的感谢!由于毕业设计时间紧工作量大,错误和不妥之处在所难免,敬请谅解。 编者 2007-6-7 毕业设计说明书 (论文 ) 第 6 页 共 53 页 第一章
7、设计任务的分析与系统的总体设计 1.1 设计任务的分析 设计 课题的技术指标是: 1.软件设计环境。 2.系统具 有天然气、火、水、盗检测信号输入,实现一个检测信号,其他可用模拟开关代替。 3.单片机控制自动摘机、拨号、摘机检测、语音提示。 4.具有电话网接口。 通过对设计任务 书中的技术指标的分析,经过思考、总结后,得出如 要完成上述要求主要 在于下述几个问题的 解决: 1.DTMF 的产生问题; 2.电话号码的输入以及 存储 功能 ; 3.自动摘挂机功能; 4.被叫用户的摘挂机的检测; 5.报警信号的检测; 6.语音播放的控制问题。 为了简化工作的难度、 系统的成本以及系统的可嵌入问题,因
8、此本设计直接利用电话机的所具有的以上所讲的 1、 2 的 两个 功能。而 3、 4、 5 中的问题可以通过单片机 为核心进行控制。 1.2 系统的总体设计 4 通过对设计任务分析,对系统做出如下总体设计。 采用 89c52 作为控制器件,在其周围加入传感器电路,语 音电路,被叫用户摘挂机判别电路等与电话机相结 合, 这样既方便系统移植同时又方便了对电话机的改造以便适合系统的需要,增强了系统的可嵌入性同时又降低了成本、缩短了开发周期。 见图 1.2中所示: 毕业设计说明书 (论文 ) 第 7 页 共 53 页 图 1.2 系统 总体设计方 框图 毕业设计说明书 (论文 ) 第 8 页 共 53
9、页 第二章 系统软件设计 2.1 系统 软件分析 第一章中已经阐述了 由于 受到 开发 周期 的限制,同时也 考虑到系统的可嵌入 性 ,故采用 电话机已有键盘输入显示功能与 DTMF 产生功能 , 而其它 各项 功能 是 通过单片机控制 实现 。 此 时系统软件主要解决 摘挂机、报警信号 检测 、被叫用户摘挂机的检测以及语音播放 功能 四个问题。从 软件的角度分析,其实就是一个如何运用好中断 。 系统工作流程 是:首先在电话机上存储一 个电话号码。然后开机,检测是否有报警信号,如果有则摘机并拨号。检测 被叫用户是否摘机,如果 被叫用户 摘机 ,则播放语音;如果 没有摘机, 则 延时一段时间后,
10、再次拨号,重复以上的步 骤 4 次 后回到检测是否有报警信号 。 而 具体要拨几次号码 、 拨几个号码都是可以实现的。( 设计 中 只是 以 一个 号码为 例没有做那么多, 后续课题可以增加 该项功能 。 ) 此时思路 就 比较清晰 了 , 其关键问题在于解决被叫用户是否摘机上面。在大多数的解决方案中采用 对铃流信号进行 判别。也就是对铃流信号进行计时,看它持续几秒,短的铃流软件将判别为 忙音,长的铃流软件 判别为 呼叫音,没有了铃 流 信号 就作为 通话双方 接通 状态处理 。这种方法在过去能够实现,现在 通过上述方法却 很难实现了。问题在于现在 的 手机彩铃,铃流信号 一旦是手机 彩铃,
11、而 手机 彩铃 所产生的铃 流信号是没有规律的。所以 上面 检测铃流 的方法 就毫无用武之地了。因此要想让预设号码不受有彩铃的限制,上述方法就不能使用。 通过查找大量的资料发现,在电话接通时和没有接通时是有区别的:未接通到接通电话线 的极性刚好交换 。 所以 可以通过这个变化来检测被叫用户是否摘机。 这种原始的方法却很有效。 通过对以上思路分析,总结出了系统软件流程,如图 2.2.1 所示。 图 2.2.1 中 报警信号 检测子程序 以及 延时子程序 和被叫用户摘机的判别 子程序 是选用了 中断 的方式而不是查询方式 , 这是考虑系统是在报警情况下所进行的应急处理对时间有一定的要求。 此 时就
12、 产生 了另一个问题,就是 如何 解决这三个中断的优先级。(同一优先级下让谁优先 。 ) 也就是如果这三个中断同时出现先处理哪一个的问题。首先被叫用户摘机中断肯定是优先级最高, 因为此时肯定是有了警情处在报警状态, 所以它的优先级最高 。再次毕业设计说明书 (论文 ) 第 9 页 共 53 页 是拨号后延时中断服务子程序优先,同样是因为此时已经有报警信号需要处理正处于拨号的状态或者是被叫用户接听状态。那么报警类型判别中断服务子程序的优先级就最低。 如 图 2.1.1 所示。 由于 89c52 单片机中有六个中断, 现在 只 需要 使用其中的三个中断:外部中断 0,外部中断 1,定时器中断 0。
13、这三 个中 在同一优先级里,由查询顺序确定的优先结构,其中 外部中断 0 的 最高,其次是定时器中断 0,再次是外部中断 1。这样可以将被叫用户摘机中断设为外部中断 0, 同一优先级下它 最高; 定时器中断 使 用定时器 /计数器 0;报警信号处理中断设为外部中断 1,在 这三个中断 中 它是 最低 的 。(同一优先级里) 单片机的系统开发是一个软硬件相结合的项目。而软件在前还是硬件在前,还是同时开发,众说纷纭。本设计是采用软件设计优先与硬件的方法,但是必须先明确一下具体要用到哪几个口。通过对该设计总体分析以及上面中断优先级的分析。将 P3.2 口( 0int 口)定为被叫用户中断, P3.3
14、口( 1int 口)定为报警信号处理中断。因为本设计采用四声语音芯片, 对于不同的警情类型对应的报警语音就需要进行 选通,故定义 P2.0、P2.1、 P2.2、 P2.3 口为语音播放选通口。 P1.0 口用作控制继电器,从而控制电话的摘挂机; P1.1 口用来控制继电器,从而控制电话机的重拨; P1.2,P1.3,P1.4,P1.5 口用来与外设传感器相连,从而使外设与单片机有机的结合。 此时看似可以进行编写程序了, 其 实还是有一个问题 。 总体设计中表明被叫用户摘机检测电路是要与 PSTN 相连的,而电话机当然也是和 PSTN相连的。这时被叫用户摘机检测电路就相当于另一个电话分机了,当
15、电话机挂断以后,如果被叫用户摘机检测电路没有 挂断,其实对于本地 电话机 还是相当于处于摘机状态,以至于影响下次电话机的使用或者影响下次 远程 报警,所以 也 要在被叫用户摘机判别电路中进行控制, 使本地话机挂断时被叫用户摘机判别电路也与 PSTN 断开。此时定义 P1.6 口为被叫用户摘机判别电路的控制口。 现在就可以进行 程序的 编程了。 毕业设计说明书 (论文 ) 第 10 页 共 53 页 图 2.1.1 中断优先级 2.2 程序设计 通过软件流程图 2.2.1 与结构化程序的思想将程序分为如下几个模块: 1. 主程序; 2. 1int 中断 服务 子程序; 3. 定时器 t0 中断 服务 子程序; 4. 0int 中断服务子程序 。 图 2.2.1 程序流程图 下面对上述模块分别进行设计: