1、个人收集整理 勿做商业用途 摘 要 本系统以单片机AT89S52为控制核心,采用PH8870电话接口模块和高保真语音录放集成芯片ISD2500,利用个人通信终端(电话、手机等)实现对电器设备的远程控制。不论你在任何地方都可以控制家里的一切用电设备。该系统由单片机构成主控部分,进行主要的信息处理,接收外部操作指令形成各种控制信号。然后利用PH8810电话模块的控制实现DTMF(双音多频信号)信号的转换,从而实现与交换机的连接,在远程控制方面,使用不同的语音提示实现对不同电器的操作和对受控电器状态的反馈,从而使操作者能够及时了解被控电器的信息,使产品达到交互式与智能化,使居家生活更加趋
2、于智能化。另外PH8810模块的应用更使其成本价值降低,系统稳定性增强,市场竞争性增强该系统具有控制灵活、可操作性强、可扩展性强、发展潜力大等优点,是实现智能化家居、智能化寓所的智能电器控制系统,具有十分广阔的市场前景和非常良好的应用价值。 关键词:单片机;电话接口模块;智能控制;电话远程控制 33 目录 摘 要 I 目录 II 第1章 系统的总体设计 1 1。1 引言 1 1。2 系统总体设计方框图 2 1。3 系统总体设计 3 1。4 系统的可行性分析 3 1.4。1 硬件模块 5 1.4.2 软件模块 6 第2章
3、 主要模块简介 7 2。1 PH8810电话接 7 2.2 AT89S52 10 2.3 ISD2560 11 第3章 硬件电路设计 13 3.1 PH8810与AT89S52的连接电路设计 14 3.2 语音提示电路设计 16 3。3 电器控制电路设计 17 第4章 软件程序设计 19 4.1 电话远程控制软件设计流程图 19 4.2 信号音发声部分 20 4.3 密码检测部分 24 4.4 密码修改部分 25 4.5 控制电器部分 27 4.6 振铃计数部分 29 第五章 结论 30 致谢: 31 参考文献: 错误!未定义书签。 第1章 系统的总
4、体设计 1。1 引言 社会经济水平的不断提高开始促使家庭自动化,人们希望能够随时随地的对家庭安全实行远程监控以及对家电实行远程控制,以GSM模块和嵌入式微处理器实现的控制器功能强大,但成本过高,成为了产品走向普通家庭的鄣碍。 我国信息技术的持续、快速的发展,通信基础设施已日臻完善。利用个人的通信终端实现基于PLMN(路基移动通信网)和PSTN(公用电话交换网)的电话远程控制系统,即可以节约投资,又便于推广。该体统一CCITT及我国标准共同规定的标准程控交换语言(DTMF双音多频信号、振铃信号、回铃音信号)作为系统控制命令,以PLMN和PSTN做为传输介质,使用户可以在远端利用固定电话或移
5、动电话发送DTMF双音多频信号,实现对近端电器设备的控制. 作品为突出电话遥控的信息反馈功能,并使产品达到非常高性价比。故未对电话装置的其他功能进行进一步的扩展,而且所有使用的集成电路和其它元器件都尽量选择廉价的。在该作品的基础上进行了功能扩展是很方便的.譬如:使用语音芯片作为信号音反馈,提高本作品的实用性,加上留言电路,主人不在家时客人留言.利用遥控方式可使主人很方便地在异地提取留言信息;在各路终端上接上传感器即可实现对环境声响的监听;接上自动拨码电路可定时将预定信息转至主人传呼机或特定电话,从而达到定时提醒主人的目的。本作品还可以应用于工厂企业的自动化控制等领域。 1。2 系
6、统总体设计方框图 电话智能遥控装置由单片机作为主控部分,附加相关的接口电路,主要完成信息处理、接收外部操作指令形成各种控制信号,以及对于各种信息的记录。接口电路提供单片机与电话外线及家用电器的接口,该系统主要运用PH8810芯片(振铃检测、摘挂机控制、双音频DTMF识别)以及家电的控制电路,该系统使用时需连入电话网。系统原理框图如图1所示。 PH8810 ISD2560语音提示电路 功 率 放 大 被 控 家 用 电 器 A T 8 9 S 5 2 DTMF解码模拟摘机 振铃检测电路路 电 话 接 口 图1-1 系统结构方框图 当
7、有电话打人时,振铃检测电路检测到电话振铃信号,等待系统默认的振铃次数后,启动自动摘机电路实现摘机,并送出提示音信号,用户输入预先设定的密码,控制装置通过双音多频解码电路读取输入密码,与预设在控制装置中的密码进行对比验证,如果密码错误,系统提示重新输入,如果错误的次数超过内设的值时,则自动挂机;如果密码正确,则进入遥控状态。用户根据提示音执行命令,并通过双音多频解码电路获得用户发出的按键命令,然后根据用户的命令执行开机、关机等操作。如果有人在默认的振铃次数之前接听电话,则不进入电话遥控状态,因此不影响电话的正常。如果用户再控制完一个用电设备后,还想控制其它的设备,用户也不必退出,根据语音提示进行
8、即可。 1.3 系统总体设计 电话智能遥控器由单片机构成主控部分,进行主要的信息处理,接收外部操作指令形成各种控制信号,并完成对于各种信息的记录;接口电路提供单片机与电话外线的接口.其中包括铃流检测、摘挂机控制、忙音检测、双音频DTMF识别,及语音提示电路。并且本装置把上述的部分功能集中在了芯片PH8810中,使的作品的性能有了显著的提高。语音提示电路是该作品重要组成部分.为了降低本装置的造价和提高装置的性能,作品的提示音使用ISD2560芯片。语音芯片受单片机的控制产生相应的提示音提示,并通过反馈电路反馈至电话外线。从而使操作者对电器的操作达到交互式,并能即时了解有关的信息;显示电路用于
9、状态设置时的显示;控制部分即受控的终端,如前所述,可通过接驳不同的终端并对电话进行必要的改动从而达到功能的扩展.这一点,可使产品达到系列化. 本系统的每一个接口电路(振铃检测、模拟摘挂机、语音反馈、双音频解码等)都已经经过实际的交换机在线实验,具有很强的实用性。本系统使用最简单的电路、最便宜的电路芯片实现了完善的功能。本系统还有许多可以添加的功能,具有很强的市场前景。 本装置并联于电话机的两端,不会影响到电话机的正常使用。用户通过异地的电话机拨通本装置所连接外线的电话号码,通过市局交换机向电话机发出振铃信号.本装置如果检测到振铃五次,即五次响铃后无人接,自动摘机,进入密码检测,输
10、入正确后选择被控制电器,然后输入开或关进行遥控电器,完成后返回。 1。4 系统的可行性分析 根据电话远程智能遥控系统的具体设计要求: ⑴ 通过电话网对异地的电器实现控制(开/关); ⑵ 控制器可以实现自动模拟摘挂机; ⑶ 控制器设置密码校验; 我设计此系统必须具有以下单元功能模块: ⑴ 铃音检测、计数; ⑵ 自动摘挂机; ⑶ 密码校验; ⑷ 在线修改密码; ⑸ 双音频信号解码; ⑹ 输入信息分析; ⑺ 控制电器开关; ⑻ 电器状态查询;
11、 ⑼ 忙音检测 根据电话机和交换机发出的不同信号音以及电话线各种状态的不同要求,我结合实际情况对具体的单元功能模块作出软件或硬件上的不同分工,具体如下: 理论上交换机所发出的各种信号音都可以通过软件编程而识别,即通过单片机发出的脉冲信号来检测信号音单位时间内的脉冲个数计算出其频率,从而完成信号音识别。但是从系统的可靠性和程序的结构设计上分析,我选择了硬件来解决振铃音检测、忙音检测、双音频信号解码等功能模块。自动摘挂机和电器的控制必须使用具体硬件电路来实现。 振铃音计数、忙音计数、密码校验、在线修改密码、输入信息分析、电器状态查询等功能模块使用软件编程方式要比硬件
12、电路简单的多,实现也很容易.综上所述,我设计信号音检测、自动摘挂机、控制电器、双音频解码等功能模块使用硬件电路实现。而信号音计数、密码校验、在线修改密码、信息分析、电器状态查询等功能模块使用软件编程完成。 下面就硬件以及软件实现的单元电路分别进行具体分析。 1.4.1 硬件模块 本作品使用了大量的硬件电路完成部分功能模块,其目的就是充分利用硬件电路的可靠性、稳定性,使整体电路达到比较高的稳定性。 1。自动摘挂机 因为程控电话交换机对电话摘机的响应是电话线回路电流突然变大为约30mA的电流,交换机检测到回路电流变大就认为电话机已经摘机.自动摘挂机电路可以通过单片机控制一个继电器
13、的开关,继电器的控制端连接一个大约300Ω的电阻接入电话线两端,从而完成模拟摘挂机. 2.振铃音的检测 当用户被呼叫时,电话交换机发来铃流信号。振铃为25±3伏的正弦波,谐铃失真不大于10%,电压有效值90±15V.振铃以5秒为周期,即1秒送,4秒断。根据振铃信号电压比较高的特点,可以先使用高压稳压二极管进行降压,然后输入至光电耦合器。经过光耦的隔离转换,从光电耦合器输出的波形是时通时断的正弦波,经过RC回路进行滤波输出很标准的方波。方波信号就可以直接输出至单片机的中断计数器输入口,完成整个振铃音检测和计数的过程。 3。控制电器 此部分比较简单,通过单片机控制多路继电器的开关即可,常用
14、的电路已经很成熟,在此就不累述了。 4。双音频解码 此部分是整个系统的关键,它的工作情况直接决定了系统的可靠性。经过翻阅大量的文献资料,我发现使用电话专用的双音频编解码芯片进行输入双音频信号的解码,是比较常用的一种方法.使用集成电路不但外围电路简单,而且可靠性强。经过专用集成电路的解码,信号转换成为不同的码制信号,可以直接被单片机读取。一般常用的电话双音频编解码集成电路有8870、8880、8888、PH8810、PH8809等,但经过反复论证比较,我决定使用双音频解码集成片PH8810来完成此功能模块. 1.4。2 软件模块 经过比较,我决定使用AT89C51作为控制的单片机芯片,具
15、体有关AT89C51的介绍不在这里累述,其详细资料请参阅本报告的附录部分. 1。信号音计数 本单元可以使用AT89C52的两个计数器的外部中断方式来实现对不同信号音的计数。 2。密码检测 本单元可以在系统初始化的时候,在单片机内部的存储器的内部开辟一块空间放置密码。当用户输入密码的时候,单片机把输入的密码写入另外的一块空间,然后利用减法运算比较两者是否相等.这样就可以实现密码检测的功能. 3。信号分析处理 本单元可以利用查表方式,也可以用简单的语句,稍微长一点的语句实现,例如CASE语句等. 经过翻阅大量的技术资料,对具体要求实现的功能进行完整的系统分析,我认为我的电话遥控系统设计
16、基本符合实际情况,可以完成设计任务所要求实现的基本功能. 第2章 主要模块简介 2.1 PH8810电话接口 1.简介 PH8810模拟电话接口模块是在PH8809的基础上增加了DTMF接收(HT9170)和发射(HT9200)功能.更方便的与单片机相连接,使得单片机操作更灵活;单片机只需对HT9170和HT9200的操作就可以实现对DTMF收发。 PH8810模拟电话接口模块采用电子耦合技术,没有使用继电器及音频耦合变压器器件。所以功耗极低,适合小型产品使用 。由于采用电子耦合方式,电源就要求使用线性隔离电源(变压器).在使用开关电源的环境中,可以使用音频变压
17、器耦合隔离模式的全功能电话板配套. PH8810独特的低功耗电路设计,免除器件发热、负荷过重,延长器件使用寿命。 2.脚位说明 表2-1 脚位说明 引脚 说明 引脚 说明 1 GND 电源地 21 OE HT9170数据输出有效端 2 PHONEA 外接电话线输入 22 D0 HT9170数据端D0 3 PHONEB 外接电话线输入 23 D1 HT9170数据端D1 4 SW 电话摘、挂机控制 24 D2 HT9170数据端D2 5 NC 25 NC 6 NC 26 NC 7 JC外接降压
18、电容到PHONEB 27 NC 8 VCC 电源正5V 28 OUT4音频信号输入端-AGC 9 RING 振铃信号输出 29 OUT3 音频信号输入端-AGC 10 IN1音频信号输入端或输出端 30 OUT2 音频信号输入端—AGC 11 IN2音频信号输入端或输出端 31 OUT1 音频信号输入端—AGC 12 IN3音频信号输入端或输出端 32 GND 电源地 13 IN4音频信号输入端或输出端 33 TEST 备用 14 NC 34 TEST 备用 15 CE HT9200片选端 35 TE
19、ST 备用 16 DATA HT9200数据端 36 NC 17 CLK HT9200时钟端 37 NC 18 VCC 电源正5V 38 DXC 电话线断线检测输出 19 D3 HT9170数据端D3 39 NC 20 DV HT9170检测DTMF有效端 40 VCC 电源正5V 2.脚位封装图 图2.1 脚位封装图 3.电器指标 ① 1)工作频率:300~3400Hz ② 2) 环境温度:-10℃~40℃ 相对湿度:10%~95% 大气压力:86~106kpa ③ 3)环境噪
20、音:≤60dB(A) 工作频率:300~3400Hz ④ 4)拨号指标:低频群697、770、852、941Hz 高频群:1209、1336、1477 Hz 单一频率误差:≤1.5% ⑤ 5)电声特性:发送和接收频响曲线符合GB/T15279—2002规定; 6)模块工作电流:≤1mA(+5V电压); 7)线路要求:挂机电压:>40V;振铃电压:> 交流60V; 4.说明 ① 在应用时,电源端8、18、40脚都必须同时连接到电源上;接地端1、32脚也必须同时连接到地上。 ② 3脚和7脚之间必须接一降压电容0。47uF/250v用于振铃
21、检测。 ③ 当一振铃信号到来时,振铃检测电路检测到振铃信号输出一低电平到单片机,此时单片机可以控制电话的摘挂机,当摘机后电话上的DTMF信号传入HT9170,通过解调输出DTMF有效信号到单片机;单片机也可以控制HT9200发送DTMF信号到电话线上。 ④ 输出到电话线上语音信号在电平幅度较大时可以从28—31端输出、电平信号较小时可以从带有自动增益控制的10-13脚的任意一脚输出到电话线上。 ⑤ 从电话线上输出的语音信号或者DTMF信号一般可以从28-31端输出到自己的开发板上。 ⑥ 9脚RING为振铃检测端. 通常在振铃期间,该端口严格按照程控机振铃信号音标准输出25个脉冲/秒,间
22、隔4秒再次输出25个脉冲/秒。 5.功能描述 1)专业设计的模拟电话接口电路; 2)标准DIP32P封装,体积小巧,适应所有开发、生产等应用场合; 3) 自带振铃检测电路; 4) 配置摘、挂机控制端口; 5) 配置电话线断线检测端口; 6) 配置语音信号输出、输入或者DTMF输出、输入各5个信号口; 7) 独特开发设计的音量自动增益调节电路,满足不同环境使用; 8) 配置测试输出端,用于微功耗直流电源提取或其它控制电路; 9) 独特的低功耗设计,杜绝器件发热、负荷过重,延长使用寿命; 2.2 AT89S52 AT89S52是Atmel公司生产的与MCS—51
23、系列兼容的单片机.是一种低功耗、高性能、CMOS工艺的8位微处理器,片内有4 kB的程序存储器.其工作电压(2。7~6 V)和工作频率(0~24 MHz)范围都很宽。内含:2K字节Flash EEPROM、128字节RAM、15根I/O引线、2个16位定时器/计数器、1个五向量两级中断结构,1个全双工串行口、1个精密模拟比较器等,其引脚如图2。2所示。 图2.2 引脚图 2.3 ISD2560 1.引脚功能 ISD2560具有抗断电、音质好,使用方便,无须专用的开发系统等优点.录音时间为60 s,能重复录放达10万次。芯片采用多电平直接模拟量存储专利技术,省去了A/D、D/A转换器
24、每个采样值直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。ISD2560集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和480 K字节的E2PROM等,ISD2560控制电平与TTL电平兼容,接口简单,使用方便。各引脚功能如表二所示: 表2—2 引脚功能描述 引脚序号 引脚名称 功能 1~7 A0/M0~A6/M6 地址线 8~10 A7~A9 地址线 11 AUX IN 当/CE和P/-R为高,放
25、音不进行,或处入放音溢出状态时,本端的输入信号通过内部功放驱动喇叭输出端。 12,13 VSSD、 VSSA 数字地和模拟地,这两脚最好在引脚焊盘上相连。 14,15 SP+、SP- 扬声器输出。 16,28 VCCA、VCCD 模拟电源、数字电源,尽可能在靠近供电端处相连。 17 MIC 本端连至片内前置放大器,外接话筒应通过串联电容耦合到本端,耦合电容值和本端的10KΩ输入电阻(如图2)决定了芯片频带的低频截止点。 18 MIC REF 本端是前置放大器的反向输入。当以差分形式连接话筒时,可减小噪声,提高共模抑制比。 19 AGC AGC动态调整前置增益
26、以补偿话筒输入电平的宽幅变化,使得录制变化很大的音量时失真都能保持最小。响应时间取决于本端的5KΩ输入阻抗外接的对地电容(即图2中C2)的时间常数.释放时间取决于本端外接的并联对地电容和电阻(即图2中R5和C2)的时间常数。470KΩ和4.7uF的标称值在绝大多数场合下可获得满意的效果。 20 ANA IN 本端为芯片录音信号输出.对话筒输入来说ANA OUT端应通过外接电容连至本端. 21 ANA OUT 前置放大器的输出。前置电压增益取决于AGC端电平 22 /OVF 芯片处于存储空间末尾时本端输出低电平脉冲表示溢出,之后本端状态跟随/CE端的状态,直到PD端变高。本端可
27、用于级联。 23 /CE 本端变低后(而且PD为低),允许进行录放操作。芯片在本端的下降沿锁存地址线和P/R端的状态。 24 PD 本端拉高使芯片停止工作, 进入不耗电的节电状态,芯片发生溢出,即/OVF端输出低电平后,要将本端短暂变高复位芯片,才能使之再次工作。 25 /EOM EOM标志在录音时由芯片自动插入到该信息的结尾。放音遇到EOM时,本端输出低电平脉冲。芯片内部会检测电源电压以维护信息的完整性,当电压低于3。5V时,本端变低,芯片只能放音。 26 XCLK 外部时钟。本端内部有下拉元件,不用时应接地。 27 P/R 本端状态在/CE的下降沿锁存。高电平
28、选择放音,低电平选择录音。录音时,由地址端提供起始地址,录音持续到/CE或PD变高,或内存溢出;如果是前一种情况,芯片自动在录音结束处写入EOM标志。放音时由地址端提供起始地址,放音持续到EOM标志。如果/CE一直为低,或芯片工作在某些操作模式,放音会忽略EOM,继续进行下去。 2。ISD2560内部地址单元寻址与脚位图 图2.3 ISD2560脚位图 ISD2560虽然提供了地址输入线,但它的内部信息段的地址却无法读出。本系统采用单片机来控制,不需读出信息地址,而直接设置信息段起始地址.其实现方式有两种:一是由于ISD2560的地址
29、分辨率为100 ms,所以可用单片机内部定时器定时100 ms,然后再利用一计数器对单片机定时次数进行计数,则计数器的计数值为语音段所占用的地址单元。该方式能充分利用ISD2560内部的E2PROM,在字段较多时可利用该方法。二是语音字段如果较少,则可根据每一字段的内容多少,直接分配地址单元。一般按每1 s说3个字计算,60 s可说180个字,再根据ISD2560的地址分辨率为100 ms,即可计算出语音段所需的地址单元数。本文采用第二种方式。 图 2。3 脚位图 第3章 硬件电路设计 本作品使用
30、了集成的硬件芯片完成部分功能模块,其目的就是充分利用硬件电路的可靠性、稳定性,使整体电路达到比较高的稳定性。 3。1 PH8810与AT89S52的连接电路设计 电话模块PH8810集成了大量的功能,它包括振铃检测、电话断线检测、DTMF解码等功能,使的作品的稳定性和可靠性都在一定程度上得到提高.而与单片机的连接,更使的单片机在控制更加方便、准确、稳定。以下是电话模块PH8810与单片机AT89S52的连接电路图。 1.振铃检测 在没有振铃前,电线路由电活交换机提供大约48 V的直流电压。当用户被呼叫时,电话交换机发来振铃信号。振铃信号为25±3 V的正弦波,电压有效值为90±15
31、V.振铃以5 s为周期,即1 s送,4 s断。当没有振铃信号时,线路上的供电电压为48 V(老式交换机为60 V),因此,振铃检测电路输出一定周期的脉冲信号,把该信号接在单片机的P3。4口(定时器0计数脉冲输入端),如果单片机检测到该口连续有5个脉冲输人信号,即P3.4口计数值为5时,仍无人摘机,便由单片机控制自动模拟摘机。如图3.1 2。摘挂机的控制 根据国家有关标准规定:不论任何电话机,摘机状态的直流电阻应≤300 Ω,在挂机状态下,其漏电流≤5μA.当用户摘机时,电话机通过叉簧接上约300 Ω的负载,使整个电话线回路流过约30 mA的电流.交换机检测到该电流后便停止铃流发送,并将线路
32、电压变为十几伏的直流,完成接通。当单片机检测到系统设定的振铃次数后,送出摘机信号:P3。1输出高电平,驱动三极管T1导通,电阻接人电路,实现摘机.当单片机检测到正确的密码,并按照用户设定要求工作后,或者检测到连续密码错误次数达3次,则单片机取消摘机信号(P3.1输出低电平),三极管截止,系统挂机。如图3.1 3. DTMF信号译码 DTMF双音多频信号是目前在按键电话(固定电话、移动电话)、程控交换机及无线通信设备中广泛应用的一种信号.他是一组由高频信号与低频信号叠加而成的组合信号,电话键盘上的任何一个键都由两个都互不为谐波关系的频率组成,如表3—1 表3-1 数字键盘 高频组/H
33、z 1209 1336 1477 1633 低频组/Hz 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 # D PH8810 4 21 20 19 22 23 24 AT89S52 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 电话模块PH8810就可以将DTMF信号变为单片机可以识别的二进制数信号,来识别每一个按键。输入的DTMF信号经PH8810解调后,在4引脚产生一个控制输出信号,该信号与单片机AT89C51的外部中断输入端INT0相
34、连。当该信号发生由1到0的跳变时,引发中断,单片机响应中断后,使PH8810的OE端产生一个高电平脉冲信号,该信号使PH8810的数据输出端Q0~Q3由原来的高阻状态变为与当前输入的双音频信号相对应的二进制编码,单片机通过P1口将该二进制数读入并识别出键值保存在RAM中。 如图3。1
35、 3.2 语音提示电路设计 电话远程控制系统利用语音提示电路实现用户和系统的交流。语音提示电路预先存储若干段系统提示音,8051中央处理单元电路判断用户发送的DTMF信号后,对语音提示电路进行寻址,播放相应的提示音,从而向用户反馈信息提示下一步该如何操作。 图3.2是ISD2560的录音原理图 本系统选用美国ISD公司的ISD2560单片语音录放集成电路作为语音提示电路的核心部分。ISD2560采用E2PROM存储器,信息可永久保存,零功能存储;它还采用了DA盯直接模拟量存储技术,因而能较好地保留语音信息中的有效成分,提高录放音的清晰度。ISD2560可以
36、存储长达90s的语音,能够实现1~600段语音分段,每段录放音均有一个起始端,该起始端地址选择由A0~A9确定。ISD2590的外围电路也非常简单,只需少许阻容元件即可,并且它易与单片机接口,实现分段寻址功能,图3.2是ISD2560的录音原理图,它通过对S1、S2、S3按键的控制录入不同的语音提示音,从而使不同的提示音存入不同的单元,为将来的放音作好准备. AT89S52 P3.0 P3.1 P3.3 P3.4 P3.5 ISD2560 7 8 9 10 23 图3.3 AT89S52与ISD2560的主要引脚连接原理图
37、 图3.3是AT89S52与ISD2560的主要引脚连接原理图,通过单片机AT89S52对ISD2560的控制使录入语音芯片ISD2560的提示音得到释放,当然是根据单片机程序的流程有关,当用户没有摘机,而是设备自动模拟摘机,就会进入此设备,从而会触发外部中断INT0,使的进入语音提示电路,也就是由单片机控制语音芯片,通过单片机的程序来选择不同的录音单元,单片机的P3。0、P3。1、P3。3、P
38、3.4、P3.5都做为普通引脚来使用,分别控制A6、A7、A8、A9,其中CE是作为语音芯片ISD2560的使能端,也就是控制端,只有控制好它,其它的引脚才会起作用,具体的程序将在下一章中介绍. 3.3 电器控制电路设计 该系统的目的是通过电话遥控,控制不同电器的电源通断.图3。4所示为一路电器控制电路图,在本装置中一共有8路电器可以控制,其他电器控制电路相同,当P2.5输出高电平时,二极管Q1导通,继电器K1得电,常开触点闭合,220 V电压加在电器两端,电器打开,反之电器被关断.凡是电话线到达的地方都可以使用超越电话远程控制器(以下简称控制器).无论何时何地通过固定电话或手机都可以访
39、问本控制器,从而操作家用电器或工业马达等电器设备,达到用电话、手机远程控制电器设备的目的。 图3.4 电器控制电路图 第4章 软件程序设计 4。1 电话远程控制软件设计流程图 图4.1 程序流程图 开始 初始化 振铃响五次 模拟摘机 语音提示 密码正确? 语音提示 功能选择 指令正确? 家用电器 挂机? N Y 满三次 N 挂机 N Y Y Y N N 如何利用有限的16种DTMF信号实现多样的系统控制功能,是系统成功和否的关键,借助于软件编程,系统能够
40、对16种DTMF信号的任意组合进行解释,从而丰富了系统功能。系统软件主要功能如下: (1)系统身份认证功能 为了确保只有合法用户才能操作系统,电话远程控制系统上线以后,用户必须输入密码,待系统确认后才具备对系统的操作权限。 (2)用户信令解释功能 对收到的用户信号,系统按照软件设定加以解释,并决定对语音提示电路寻址,播放相应的系统提示音,实现用户和电话远程控制系统间的交互操作,或对外部受控设备发出相应的驱动信号. (3)软件定时功能 系统软件设定系统自动复位的软件定时器,定时器的配置值规定了系统一次上线工作的最大时间。若一次工作超时,系统自动离线,进入待机状态. 4.
41、2 信号音发声部分 本功能模块主要是产生信号提示音,方便不同的使用者。根据普通人耳的反应频率为20Hz至20KHz的范围,和CCITT规定的电话话音信号的频率范围是300Hz至3400Hz,我在本功能单元的发声频率定为500Hz和1000Hz两种。 主要分为五种提示音: 1、低音,表示装置已经摘机,请输入密码,其参数:频率f=500Hz,延时t=0.5秒/声; 2、两声低音,表示密码已经通过,请选择电器,其参数:频率f=500Hz,延时t=0.5秒/声; 3、三声低音,表示电器已经选定,请控制(开/关),其参数:频率f=500Hz,延时t=0.5秒/声; 4、三声高音,表示密码输入
42、错误,其参数:频率f=1000Hz,延时t=0.3秒/声; 5、一声高音,表示控制已经完成,其参数:频率f=1000Hz,延时t=0.3秒/声; 提示音发生是使用有限循环,反复使单片机的RXD口的电平反转,从而形 ORG 1100H RING10:MOV R6,#20 ;输入密码 RING11:MOV R7,#20 ;800Hz RING12:LCALL DL10 ;sound=1 CPL P3.0 ;延时0.5s DJNZ R7,RING12 DJNZ R6,RING11 CLR P3。0 RET ORG 1150H RING20:MOV R3,#03 RING
43、21:MOV R6,#20 ;判定密码错误 RING22:MOV R7,#20 ;1600Hz RING23:LCALL DL20 ;sound=3 CPL P3。0 ;延时0。25s DJNZ R7,RING23 DJNZ R6,RING22 CLR P3.0 MOV R7,#200 RING24:LCALL DL10 DJNZ R7,RING24 DJNZ R3,RING21 CLR P3.0 RET ORG 1200H RING30:MOV R3,#02 RING31:MOV R6,#20 ;选择用电设备 RING32:MOV R7,#20 ;800Hz
44、 RING33:LCALL DL10 ;sound=2 CPL P3.0 ;延时0.5s DJNZ R7,RING33 DJNZ R6,RING32 CLR P3。0 MOV R7,#200 RING34:LCALL DL10 DJNZ R7,RING34 DJNZ R3,RING31 CLR P3.0 RET ORG 1250H RING40:MOV R3,#03 RING41:MOV R6,#20 ;控制电器 RING42:MOV R7,#20 ;800Hz RING43:LCALL DL10 ;sound=3 CPL P3。0 ;延时0。5s DJNZ
45、 R7,RING43 DJNZ R6,RING42 CLR P3.0 MOV R7,#100 RING44:LCALL DL10 DJNZ R7,RING44 DJNZ R3,RING41 CLR P3。0 RET ORG 1300H RING50:MOV R6,#40 ;完成控制 RING51:MOV R7,#20 ;1600Hz RING52:LCALL DL20 ;sound=1 CPL P3.0 ;延时0.15s DJNZ R7,RING52 DJNZ R6,RING51 CLR P3.0 RET ORG 1500H DL10:MOV R5,#25
46、 ;delay1.25ms,f=800HZ,fosc=12MHz, DL12:MOV R4,#25 DL11:DJNZ R4,DL11 DJNZ R5,DL12 RET ORG 1600H DL20:MOV R5,#12 ;延时0.625ms,f=1600HZ,fosc=12MHz, DL22:MOV R4,#25 DL21:DJNZ R4,DL21 DJNZ R5,DL22 RET ORG 1650H DL30:MOV R5,#50 ;延时20ms DL32:MOV R4,#200 DL31:DJNZ R4,DL31 DJNZ R5,DL32 RET 4。3
47、 密码检测部分 本系统密码校验的基本原理是:在系统初始化的时候把原始密码写入地址为30H开始的存储空间内,密码的位数“5”赋给R7。当系统摘机时,要求输入密码,单片机把解码后的数据(使用者输入的密码)存储在38H开始的存储空间内.然后单片机对进行两个存储地址的内容逐位进行比较,直到完全相等才能转到下一进程,有一位不同,程序就转到出错程序。 子程序代码: ORG 0150H HOKE: CLR 7DH SETB P3.1 ;连接 telephone CLR TR0 ;关闭 T0 MOV R2,#03H ;密码输入错误3次 LCALL RING10 ;输入密码 IN: CLR 7
48、EH ;7EH=0 DTMF: MOV R7,#5H ;PASSWORD:5 R7 MOV R1,#38H ;sign SETB P1.4 SETB P1。5 SETB P1.6 SETB P1.7 WAIT: JBC 7EH,CC ;wait INT0 LJMP WAIT CC: MOV R7,#5H ;密码 5*** MOV R0,#30H ;从第一个密码开始比较 MOV R1,#38H ;sign CMP: MOV A,@R1 MOV R4,A CLR C MOV A,@R1 SUBB A,@R0 ;测试 INC R0 INC R1 JZ AAA ;
49、OK,第一个密码比较结束 LJMP QQ AAA: DJNZ R7,CMP ;R7-1!=0 LJMP LL ;pass QQ: DJNZ R2,IN1 ;密码比较错误&R2!=0 LCALL RING20 LJMP STOP IN1:LCALL RING20 ;密码错误,重新输入密码 LJMP IN 4.4 密码修改部分 本系统是通过在线输入密码而改变特定存储器中的密码值的。 程序代码: ORG 1700H KEYIN: SETB RS1 ;当前工作寄存器第二工作区 CLR RS0 ANL A,#00H ;清零A寄存器 MOV B,#05H LCALL R
50、ING10 ;发提示音:输入密码*** MOV R7,#5H MOV R1,#38H WPIN: JBC 7EH,READ ;等待INT0中断 LJMP WPIN READ: MOV R1,#38H MOV R0,#40H MOV R7,#05H READ1: MOV A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R7,READ1 ;判断输入密码是否为5位,否跳转READ1 LCALL RING10 ;满5位,发提示音:再输入新密码 MOV R7,#5H MOV R1,#38H WRE: JBC 7EH,KEYCMP ;等待中断INT1






