(朔州校区中北大学朔州 036000)
摘要:随着人们生活水平的不断提高,大家对住宅和办公室的安全意识也日益增加。因此,研究和开发防盗报警装置引起了科研单位和生产厂家的重视,特别是面对普通居民、价格低、运行可靠的自动报警系统。
关键词:AT89S2052;数字时钟
1.硬件系统方案设计
1.1电话拨号防盗报警器硬件系统方案
1.1.1 硬件系统方案设计
图2.1为电话拨号报警器的系统构成方框图,由单片机控制器、键盘输入、数码管显示、触发电路、拨号电路及电源等6部分组成。
单片机控制器是整个系统的核心,负责控制检测输入/输出显示、模拟摘机、拨号摘机、拨号报警、挂机等一系列的程序动作。这里使用了小引脚、高性能、低价位的AT89S2052。
键盘输入电路负责输入电片机中一系列工作参数及功能设定。
发光二极管数码管显示器在整个系统工作过程中充当一个简单的人机界面,用以显示工作状况及输入/输出的数据等。
电话拨号防盗报警器的触发电路用磁性开关(门磁开关),简单可靠,也可用红外探测器或无线门磁,以实现全方位远距离监测。报警器应采用隐蔽安装,防止小偷发现。
拨号及报警电路用来完成模拟摘机、拨号、发出报警音、挂机等工作过程,它的工作由单片机控制。
电源部分负责对整个系统供电。平时由电话线上取得工作电流并对后备电池充电,拨号报警时转由后备电池供电。
1.1.2 脉冲拨号原理
脉冲拨号是目前电话机两种拨号方式中的一种,另一种为双音多频拨号方式。
脉冲拨号就是指在电话机上拨入的电话号码以脉冲个数的形式发出,也就是说,在已经通以直流电流的回路上,利用拨号盘及发号电路将回路断开、再接通而形成的脉冲信号,来完成输入电话号码的发送。在操作中,若用户拨1,则送出1个脉冲,回路中断一次、接通一次;拨2,则发出2个脉冲,回路断一次、接通一次、再断一次;……;而拨0时,则发出10个脉冲,回路断、接通轮流10次。
1.1.3 脉冲拨号实现过程
平时电话线上的电压约为50~60V左右。未拨号时电片机的P3.0、P3.1 均输出低电平。
拨号过程如下:
①单片机的P3.0输出高电平,使TR1导通,由于电话线路上接入了负载R1,这样电话线的电压下降,模拟摘机。
②单片机的P3.0开始输出拨号脉冲,使电话线的电压(电平)也呈高、低变化。1个脉冲代表拨出1,2个脉冲代表拨出2,……,10个脉冲代表拨出0,每个脉冲的宽度和间隔均为100ms。拨出1位号码后停顿500ms(保持P3.0高电平)再拨下一位,直至全部拨完。
1.1.4 AT89S2052单片机的功能特点
电话拨号防盗报警器的核心控制器是单片机AT89S2052。AT89S2052 是美国ATMEL半导体公司生产的一种高性能单片机。该单片机以与MCS-51系列单片机高度兼容、低功耗、可以在接近零频率下工作等诸多优点,而广泛应用于各类计算机系统、工业控制、电信设备、消费类产品中。由于ATMEL是全球最大的FLASH和EEPROM生产制造公司之一,加之以其EEPROM技术与INTEL的80C51内核技术交换,使ATMEL拥有了80C51内核的使用权,其生产的AT89系列电片机不仅与80C51有极好的兼容性,而且具有极高的性能价格比。
2系统的软件设计
2.1.1主程序设计
主程序的工作过程为:先进行初始化工作,随后根据输入的键值分别散转输入的键值分别散转至对应的子程序(管机、警戒工作、输入时间t1、输入时间t2、输入电话号码)循环工作。T0为100ms定时中断服务子程序,它实现精确的拨号脉冲时序。INT0外中断服务子函数用于实现功能选择;而INT1外中断服务子函数则检测防盗触发开关的状态。
2.2.2 LED显示子函数
数码管显示的数据存放在内存单元dis[0]~dis[5]中,其中dis[0]~dis[1]存放秒数据,dis[2]~dis[3]存放分数据,dis[4]~dis[5]存放时数据,每一单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用的十进制BCD码数据的对应段码存放在ROM表(dis7[11])中,显示时,先取出dis[0]~dis[5]中的某一数据,然后查得对应得显示段码从P0口输出,P2口将对应得数码管选中供电,就能显示该地址单元的数据值。
2.2.3 定时器T0中断函数
定时器T0用于时间计时。定时溢出中断周期可设为50ms,中断进入后先判断,中断计时累计20次(即1ms)时对妙计数单元进行加1操作。时钟计数单元在 义的6个单元(timedata[6])中。timedata[0]~timedata[1]存放秒数据,timedata[2]~timedata[3]存放分数据,timedata[4]~timedata[5]存放时数据。最大计时值为23小时59分59秒。在计数单元中采用十进制BCD码计数,秒,分、时之间满60进位。
2.2.4 中断函数
T1中断服务程序用于指示调整数字单元的亮闪,在时间调整状态下,每过0.4s,将对应单元的显示数据换成“熄灭符”数据(0x0a)。这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。
2.2.5 功能函数
调时功能函数的设计方法是:按下T0键,进入调分状态,时钟停止走动;按T1或T2键可进行加1或减1操作 ;继续按T0键可分别进行分十位、时个位和时十位调整;最后按T0建将退出调整状态,时钟开始计时运行。
3 系统的调试部分
3.1 时钟系统的调试
3.1.1 时钟系统的硬件调试
硬件调试时可先检查印制板及焊接的质量情况,在检查无误后可通电检查LED显示器的点亮状况。若亮度不理想,可以调整P0口的电阻大小,一般情况下取200欧姆电阻即可获得满意的亮度效果。
3.1.2 时钟系统的软件调试
软件调试Keil C51编译器,源程序编译及仿真调试应分段或以子函数为单位一个个地进行,最后可结合硬件实时运行调试。
3.1.3 性能分析
按照设计程序分析,LED显示器动态扫描频率约为167Hz,实际使用观察时完全没有闪烁,实际计时时精度较高,可满足一般场合的应用需要。
4结束语
本系统以单片机89S52作为核心部件,利用单片机实现了电话拨号报警、时钟显示等功能,最终使系统完成设计要求的各项任务。在系统设计过程中,力求硬件线路简单,并综合运用了C语言、单片机等各种知识,采用了一些特别的方法使磁电检测达到最佳的效果 ,充分发挥软件编程方便灵活的特点,来满足系统设计的要求。
参考文献:
[1]杨长春.电子报合订本 2002年上:261
[2]电子产品世界,2004,9(167):81-82