1、 - 1 -一 引言 .2二 硬件系统方案设计 .22.1 电话拨号防盗报警器硬件系统方案 .22.1.1 硬件系统方案设计 .22.1.2 脉冲拨号原理 .32.1.3 脉冲拨号实现过程 .42.1.4 AT89S2052 单片机的功能特点 .52.2 时钟计时器的硬件设计方案论证分析 .82.2.1 功能要求 .82.2.2 方案论证 .82.2.3 系统硬件电路设计 .84.1.2 时钟计时器的硬件电路设计描述 .9三 系统的软件设计 .103.1 电话拨号防盗报警器程序设计 .103.1.1 主程序设计 .113.2 时钟显示程序设计 .123.2.1 主函数 .123.2.2 LED
2、 显示子函数 .133.2.3 定时器 T0 中断函数 .133.2.4 中断函数 .143.2.5 功能函数 .14四 系统的调试部分 .154.1 时钟系统的调试 .154.1.1 时钟系统的硬件调试 .154.1.2 时钟系统的软件调试 .154.1.3 性能分析 .154.2 拨号报警器功能调试 .15五 总结 .16参考文献 .17附录 .18附录 1 程序清单 .18附录 2 系统使用说明 .18附录 3 英文资料 .18附录 4 系统 PCB 板图 .18附录 1:程序清单 .19附录 2:系统使用说明 .36- 2 -一 引言随着人们生活水平的不断提高,大家对住宅和办公室的安全
3、意识也日益增加。因此,研究和开发防盗报警装置引起了科研单位和生产厂家的重视,特别是面对普通居民、价格低、运行可靠的自动报警系统。长期以来,一些电子杂志介绍的廉价防盗报警均无电话拨号报警功能,而市售的可自动拨号报警的防盗器材又价格高昂。这里介绍的电话拨号防盗报警器可在这两者之间找到平衡,即兼具高性能和低价位。为了以低成本实现高性能,设计时利用了电信局的交换机支持脉冲拨号方式来实现拨号报警,这样可利用单片机直接发出拨号脉冲,精简了电路,降低了成本。电话拨号防盗报警器作为家庭防盗报警器材的一员,非常经济实用。它进入工作警戒后,主控 CPU 不断检查触发开关的状态,当盗贼入室触发开关时,立即启动电话拨
4、号报警程序向主人告警(当然也可以通过修改软件使其在现场发出高分贝报警音) 。实践证明,该系统报警快速、准确。由于该系统电路简单,而且利用的是公共通信网,因此不存在建立的报警系统网络问题,具有成本低、体积小、能耗极低、体积小、能耗极低且不影响正常打电话等突出优点。平时可以作为时钟计时器来使用,真是一举两得。二 硬件系统方案设计 2.1 电话拨号防盗报警器硬件系统方案2.1.1 硬件系统方案设计图 2.1 为电话拨号报警器的系统构成方框图,由单片机控制器、键盘输入、数码管显示、触发电路、拨号电路及电源等 6 部分组成。单片机控制器是整个系统的核心,负责控制检测输入/输出显示、模拟摘机、拨号摘机、拨
5、号报警、挂机等一系列的程序动作。这里使用了小引脚、高性能、低价位的 AT89S2052。- 3 -键盘输入电路负责输入电片机中一系列工作参数及功能设定。发光二极管数码管显示器在整个系统工作过程中充当一个简单的人机界面,用以显示工作状况及输入/输出的数据等。电话拨号防盗报警器的触发电路用磁性开关(门磁开关) ,简单可靠,也可用红外探测器或无线门磁,以实现全方位远距离监测。报警器应采用隐蔽安装,防止小偷发现。拨号及报警电路用来完成模拟摘机、拨号、发出报警音、挂机等工作过程,它的工作由单片机控制。电源部分负责对整个系统供电。平时由电话线上取得工作电流并对后备电池充电,拨号报警时转由后备电池供电。键盘
6、单片机控制器触发开关电源拨号电路显示模块图 2.1 电话拨号防盗报警器方框图2.1.2 脉冲拨号原理脉冲拨号是目前电话机两种拨号方式中的一种,另一种为双音多频拨号方式。脉冲拨号就是指在电话机上拨入的电话号码以脉冲个数的形式发出,也就是说,在已经通以直流电流的回路上,利用拨号盘及发号电路将回路断开、再接通而形成的脉冲信号,来完成输入电话号码的发送。在操作中,若用户拨1,则送出 1 个脉冲,回路中断一次、接通一次;拨 2,则发出 2 个脉冲,回路断一次、接通一次、再断一次;而拨 0 时,则发出 10 个脉冲,回路断、接通轮流 10 次。图 2.2 为电话号码“32”的脉冲波形。- 4 -号码字间间
7、隔时间tID号码2 的脉冲号码 3的脉冲断 通图 2.2 电话号码“32”的脉冲波形 正常拨号时,电路电流中断的时间一般在 5865ms 之间,视断续比的不同而不同。快速拨号时,只要取一半时间即可。电路电流接通的时间(即在同一位号码中的 2 个断脉冲之间的接通电流时间)约在 3242ms 之间,视断续比的不同而不同。快速拨号时,只要取一半时间即可。显然脉冲周期等于脉冲中断时间和脉冲接通时间之和,每一个周期的时间为 100ms 左右。快速拨号时,在50ms 左右。2 位号码(即 2 组脉冲串)之间的最小时间间隔,通常为 800ms 左右;而快速拨号时,其值减半,为 400ms 左右。我国目前采用
8、的电话脉冲拨号的速率是 10PPS(每秒的脉冲数) ,即每秒发出 10 个脉冲,因此上述各参数不存在快速拨号时的值。为了提高拨号的可靠性及稳定性,这里设计时选定更低的脉冲拨号速率:1个脉冲代表播出 1,2 个脉冲代表拨出 2,10 个脉冲代表拨出 0,每个脉冲的宽度和间隔为 100ms。工作时首先进行模拟摘机,然后开始脉冲拨号,拨出 1 位号码后停顿 500ms(保持接通)再拨下一位,直至全部拨完后再发报警音,最后挂机。2.1.3 脉冲拨号实现过程图 2.3 为脉冲拨号的实现电路。平时电话线上的电压约为 5060V 左右。未拨号时电片机的 P3.0、P3.1 均输出低电平。拨号过程如下:时间-
9、 5 -单片机的 P3.0 输出高电平,使 TR1 导通,由于电话线路上接入了负载 R1,这样电话线的电压下降,模拟摘机。单片机的 P3.0 开始输出拨号脉冲,使电话线的电压(电平)也呈高、低变化。1 个脉冲代表拨出 1,2 个脉冲代表拨出 2,10 个脉冲代表拨出 0,每个脉冲的宽度和间隔均为 100ms。拨出 1 位号码后停顿 500ms(保持 P3.0 高电平)再拨下一位,直至全部拨完。P3.0 保持高电平(保持电话线路接通) ,P3.1 输出 1KHz 的报警音脉冲驱动TR2,以 2Hz 进行调制(即接通 1kHz 信号 0.5s、断开 1kHz 信号 0.5s),这样从接听方的电话中
10、就会听到“嘟、嘟”的报警声。报警音的时间根据设计为60s。60 后,P3.1 输出低电平,TR2 截止,停止报警。随后 P3.0 也输出低电平,模拟挂机。完成一次报警过程。C1C2 BD1D1R1 R2ZNDTR1 TR2VCC入入入P3.0P3.1入入入R5R62.1.4 AT89S2052 单片机的功能特点电话拨号防盗报警器的核心控制器是单片机 AT89S2052。AT89S2052 是美国 ATMEL 半导体公司生产的一种高性能单片机。该单片机以与 MCS-51 系列单片机高度兼容、低功耗、可以在接近零频率下工作等诸多优点,而广泛应用于各类计算机系统、工业控制、电信设备、消费类产品中。由
11、于 ATMEL 是全球最大的 FLASH 和 EEPROM 生产制造公司之一,加之以其 EEPROM 技术与 INTEL 的80C51 内核技术交换,使 ATMEL 拥有了 80C51 内核的使用权,其生产的 AT89 系图 2.3 脉冲拨号实现电路- 6 -列电片机不仅与 80C51 有极好的兼容性,而且具有极高的性能价格比。1. AT89S2051 的主要性能特点指令与 MCS-51 完全兼容;内带 2KB 可编程闪速存储器(FLASH MEMORY)可重复擦写 1000 次;数据保留 10 年;工作电压范围 2.76V;工作频率024MHZ;两极程序加密锁定;128B 内部 RAM;15
12、 条可编程双向 I/O 口线;2个 16 位定时器/计时器;5 个中断源;可编程串行 UART 通道;输出口可直接驱动 LED;片内含模拟比较器;低功耗的闲置和掉电模式。AT89S2052 是 AT89 系列电片机种的一种精简产品。它是将 TA89C52 的 P0口、P2 口、EA/Vpp、ALE/PROG、PSEN 口线省去后,形成的一种仅 20 个引脚的单片机,相当于早期 INTEL8031 的最小应用系统。这对于一些不太复杂的控制场合,仅用一片 AT89S2052 就足够了,是真正意义上的“单片机” 。由于将多功能 8 位 CPU 和 2KB 的闪速存储器集成在单个芯片中,使其成为一种高
13、效的微控制器。AT89S2052 的出现为很多规模不太大的嵌入式控制系统提供了一种极佳的选择方案,使传统的 51 系列单片机的体积大、功耗大、可选模式少等诸多困扰设计工程师们的致命弱点不复存在。2. 引脚功能介绍AT89S2052 引脚外形如图所示。Vcc:电源端。GND:接地。P1 口(P1.0P1.7):是一个 8 位双向 I/O 口,其中 P1.2 至 P1.7 提供内部上拉电阻,P1.0 和 P1.1 需外接上拉电阻。P1.0 和 P1.1 也可作为片内精确模拟比较器的正向输入(AINO)和反向输入(AINI) 。P1 口输出缓冲器能提供 20mA 的灌电流,可直接驱动 LED。P1
14、口写入“1”后可用作输入。P3 口:引脚 P3.0 至 P3.7(P3.5 除外)是 7 个带内部上拉电阻的双向 I/O 口线。原 P3.6 不能使用,已连接片内比较器输出端。与 P1 口相同,P3 口也能提供20mA 的灌电流,并可直接驱动 LED 显示器。与 80C51 相同,P3 口也有第 2 功能,P3.0 作为串行数据接收 RXD;P3.1 作为串行数据发送 TXD;P3.2 为外部中断 0申请 INT0;P3.3 为外部中断 1 申请 INT1;P3.4 为定时器/计时器 0 输入;- 7 -P3.5 位定时器/计数器 1 输入;P3.7 无第 2 功能 RD。RST:复制输入。要
15、使芯片可靠复位,要保持 RST 引脚 2 个机器周期的高电平。XTAL1:反向振荡放大的输入及内部时钟电路的殊荣。XTAL2:来自反向振荡放大器的输出。3. 特殊功能寄存器(SFR)与 80C51 完全相同4. 程序存储器锁定AT89S2052 片内有 2 个锁定位,可以不编程(U) ,也可以编程(P) ,以获得一些附加的特性,如表 2.1 所示。表 2.1 程序存储器锁定编程锁定位 LB1 LB2 保护模式1 U U 没有编程锁定特性2 P U 禁止对闪速存储器进一步编程3 P P 同模式 2,同时禁止校验 5、闲置模式在闲置模式下,CPU 自身处于休眠状态,而片内所有其他外围设备保持工作状
16、态。该模式是软件生成的。在该模式期间,片内 RAM 和所有特殊功能寄存器的内容保持不变。闲置模式可以允许由中断或硬件复位终止。如果不采用外部上拉,P1.0 和 P1.1 应置 0;如果采用外部上拉,则置 1。应注意的是,当闲置模式被硬件复位中止时,器件要从闲置处恢复程序的执行,执行 2 个机器周期后,内部复位算法才起作用。此时,硬件禁止访问内部 RAM,但允许访问端口引脚。为了排除闲置被复位中止时对端口意外写入的可能性,跟在生成闲置模式后的指令不应是对端口引脚的读/写操作。6.掉电模式在掉电模式下,振荡器停止工作,生成掉电状态的指令是最后执行的一条指令。片内 RAM 和特殊功能寄存器保持其值不
17、变直到掉电模式终止。从掉电模式退出的唯一办法是硬件复位。复位将重新定义特殊功能寄存器(SFR) ,但不会影响片内 RAM。在 Vcc 没有恢复到其正常工作电压之前,不应进行复位,且- 8 -复位的保持时间应足够长,使振荡器能重新开始工作并稳定下来。同样,如果不采用外部下拉,P1.0 和 P1.1 应置 0,如果采用外部上拉,则置 1。2.2 时钟计时器的硬件设计方案论证分析2.2.1 功能要求时钟计时器要求用六位 LED 数码管显示时、分、秒、以二十四小时方式运行,使用按键开关实现时,分调整功能。2.2.2 方案论证为实现 LED 显示器的数字显示 ,可以采用静态显示法和动态显示法。由于静态显
18、示法需要数据锁存器等硬件,接口复杂一些,考虑到时钟显示只有六位,且系统没有其它复杂的处理任务,所以决定用动态扫描实现 LED 显示。单片机采用易购的 AT89S52 系列,这种单片机可具有足够的空余硬件资源 ,以实现其它的扩充功能。若使用电池供电,可采用低电压的 LV 系列单片机时钟计时器电路系统的总体设计框架如图 3.1 所示。单片机控制器AT89S526 位 LED 显示器列驱动图 3.1 硬件系统的总体设计框架2.2.3 系统硬件电路设计电话拨号防盗报警器的硬件电路设计描述为了发挥电片机强大的计算、控制能力,充分发挥软件的优势,这里极大- 9 -地简化了电路,但可实现以前需要几片甚至十几
19、片小规模数字电路才能完成的任务。电路原理如图所示,共有 4 个按键,即 rst、ok、up、set。rst:系统复位键。ok:输入数据确认键。up:显示的数字增加键。set:工作模式设定键,可设定管机、工作、输入时间 t1、输入时间 t2 及输入电话号码 5 种模式。磁性开关即为装于门或窗口的防盗感应开关,门关闭时常开,门打开时闭合接通。当然也可改用其他的感应器件,如激光探测、超声波感应、热释电感应、主动红外线探测或无线门磁等,以实现全方位远距离检测。为了防止磁性开关离控制器较远而产生引入干扰,使用了光耦作信号传递,效果良好。LED 数码管用于工作状态指示或输入数据指示。L1、L2 接电话线,
20、ZND 为击穿电压 120V的压敏二极管,防止电路受雷电干扰。平时系统处于低功耗待机状态(此时耗电仅 2mA 左右) ,由电话线上取电工作,并对 3.6V/60mA 镍铬电池充电,当输入数据进行设定或进行拨号报警时,耗电会达到 10mA,这时主要由镍铬电池供电。由于有镍铬电池后备供电,即使电话线断电也不会使已输入的数据丢失。该机除用于防盗报警外,若对软件进行一些修改,也可通过电话线进行远程数据传递。三极管 T1、T2 及电阻 R1、R2 构成拨号及报警电路,其工作原理前面已作详细介绍。4.1.2 时钟计时器的硬件电路设计描述时钟计时器的硬件电路,采用 AT89S52 单片机最小化应用设计 ,显
21、示采用共阳七段 LED 显示器,P0 口输出段数码数据,P2.0P2.5 口作列扫描输出,P1.0,P1.1和 P1.2 口接三个按钮开关用以实现调时,调分功能 .为了提供共阳 LED 数码管的驱动电压,用三极管 8550 作电源驱动输出。采用 12MHZ 晶振有利于提高秒计时的精确性。硬件电路图如图 3.2 示。- 10 -VCC40RST9P2.223P2.122XTAL119XTAL218P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78EA31ALE30PSEN
22、29P2.728P2.627P2.526P2.425P2.324RXD10TXD11INT012INT113T014T115WR16RD17VSS20P2.021AT89C521212MHZY1 30pFC430pFC510uFC1T3T0T2T14.7K4.7K10KR2+5v+5v+5v+5v+5v4.7K4.7K4.7K4.7K4.7K4.7K4.7K2440.01uFC247uFC31 2 3 4 5 6 7abcdefg8dp9GNDa bf cg de dpNCDS1 1 2 3 4 5 6 7abcdefg8dp9GNDa bf cg de dpNCDS2 1 2 3 4 5 6
23、 7abcdefg8dp9GNDa bf cg de dpNCDS3 1 2 3 4 5 6 7abcdefg8dp9GNDa bf cg de dpNCDS4 1 2 3 4 5 6 7abcdefg8dp9GNDa bf cg de dpNCDS5 1 2 3 4 5 6 7abcdefg8dp9GNDa bf cg de dpNCDS6510*8T5T4 T60.022uF/250VC6 0.022uF/250VC71A/400VBD1IN4007D1300R5300R64.7v/1wDZ3IN4007DZ210uF/16vC83.6v/60mA0.1uFC9JZZND10uF/10vC107.5KR7T1T220KR8VCC入入入47KR120KR3PC817U120KR4R9J1入入入入4.7K*84.7K*3三 系统的软件设计3.1 电话拨号防盗报警器程序设计图 3.2 具有时钟功能的电话报警器原理图