朱艳, 喻丽丽, 严佳雯
(江苏省镇江市金山职业技术学院,江苏 镇江 212200)
随着现代科学技术的迅猛发展,人们的安全意识有了显著提高,开始应用前沿科技引领生活安全。报警器在安全防范、交通运输、医疗救护、应急救灾、系统故障和感应检测等领域都发挥了强大的报警功能。单片机、传感器及微机控制等一系列高新科技的发展,带动了防盗报警器的研制设计和生产制造等方面的快速发展。基于AT89S52单片机为系统核心[1],软件设计采用C语言编程[2],以此实现多音频报警器的设计,对于开发出既能有效报警又适用于一般家庭消费需求的报警器[3]有着重要意义。
图1 报警器系统原理框图
多音频报警器共有6种不同音频的报警声音,6个LED发光灯,对应着6种险情[4]。用6个开关模拟这6种险情的传感器检测输入信号。系统的功能原理如图1所示。
图2为AT89S52单片机[5]的内部系统组成图。
图2 单片机最小系统
该设计中供电电源为220 V,而系统中的单片机和喇叭等元件都采用5 V或12 V供电,所以设计一个直流稳压电源电路是很必要的[6]。该电路的原理结构如图3所示。电源电路如图4所示。
图3 电源电路结构框图
图4 电源电路图
图5 独立式键盘连接方式
通常键盘电路有矩阵式和独立式两种方式。矩阵式适用于按钮较多的情况,且矩阵式编程较难,所以该系统中选择独立式键盘。由于该电路中需发出6种不同声音,即6个按钮,一个按键连接一个I/O口即可。实际上,每个开关按钮都会串联一个上拉电阻,开关电路置为高电平[7]。当其中一个按钮被按下时,连接该按钮的检测线因为接地就变成低电平,而没有被按下的按键所连的检测线依然是高电平。此时只需读取I/O 口输入线的电平状态,如I/O 口输入线为低电平,相对应的按键就被按下。独立式键盘连接方式如图5所示。
图6 LED灯电路
当一个报警信号产生时,对应的一个LED灯亮起,系统中的LED灯也就是绿色发光二极管,LED灯电路如图6所示。
在Proteus中,喇叭电路有三种,该系统中选用数字蜂鸣器SOUNDER。将SOUNDER直接与单片机相连[8],利用编程将声音数据存入数组,使单片机发出频率各异的方波从而驱动其发出不同音频的声音[9]。
鉴于C语言可读性好,代码便于维护和开发,该系统中选择使用C语言编程[10],开发平台是Keil uVision4。
51系列单片机通常有40个引脚,而在单片机的开发和使用中只会用到部分的引脚,所以要适当分配I/O口,引脚分配如表1所示。
表1 I/O口分配表
喇叭共有6种不同音色,而声音频率不同,音色就不同,因此只要计算出声音频率即可。该系统中采用的是AT89S52 的内部定时器/计数器,此计数器的模式为工作方式0。也就是通过改变TL0和TH0 的计数值就能够发出一系列不同的频率,同时发出不同音调的音乐。
2.4.1程序总体设计
图7 程序总体算法流程图
图7为该系统的总体算法流程图。当有任何一种险情出现时,按下按钮,对应的警报铃声响起,对应的LED灯亮[11]。
2.4.2主程序设计
图8所示为主程序流程图。基于模块化的思想,主程序只完成定时器的初始化,以及发光二极管的初始化。键盘识别和刷新是通过中断函数来完成的[12]。
图8 主程序算法流程图
图9 键盘程序设计流程图
2.4.3键盘扫描程序
键盘扫描算法流程如图9所示,采用两种数值分别表示按钮被按下和放开两种状态。当一个键被按下时,会有一个对应的数值产生;当一个按键被松开时,也会产生对应数值。把这些数值存在表里,通过查表就能清楚是哪个按键被按下,另外还可以识别出其是被按下或是被松开[13]。
2.4.4定时器初始化程序
对51系列单片机定时器最重要的操作就是对TMOD寄存器的初始化[14],程序流程如图10所示。
2.4.5键盘选曲报警函数设计
该程序要实现按下不同按键就播放不同音乐,所以选曲函数是一定要具备的。在报警选曲函数中,需同时实现两个功能:一是键盘扫描程序返回值不同就选取不同的报警音乐;二是当键盘扫描程序有返回值时,LED灯光打开。键盘程序设计框图如图11所示。
图10 定时器程序流程图图11 键盘选曲报警函数算法
成品设计效果图及声音波形仿真图如图12~图16所示。
图12 系统整体效果图图13 系统印制电路板俯视图图14 按下键1时的波形图15 按下键3时的波形
图16 按下键5时的波形
基于单片机系统,采用数字电子技术,研制出一种成本低、功能强的声光报警器,简单实用,市场推广性强。随着制造技术、数字电子技术和计算机技术的日趋成熟,报警器的研制定将越来越智能化[15]。