基于单片机电话远程遥控系统.doc
《基于单片机电话远程遥控系统.doc》由会员分享,可在线阅读,更多相关《基于单片机电话远程遥控系统.doc(17页珍藏版)》请在沃文网上搜索。
1、一、 总体设计分析1二、模块单元设计22.1 模拟摘机电路22.2 振铃检测电路22.3 控制部分电路3三、结束语5一、 总体设计分析电话远程遥控电器系统由单片机构成主控部分,进行主要的信息处理,接收外部操作指令形成各种控制信号,并完成对于各种信息的记录;接口电路提供单片机与电话外线的接口。其中包括铃流检测、摘挂机控制、忙音检测及双音频DTMF识别。本装置并联于电话机的两端,不会影响到电话机的正常使用。用户通过异地的电话机拨通本装置所连接外线的电话号码,通过市局交换机向电话机发出振铃信号,振铃检测电路将检测到的振铃信号送至系统的中央控制单元,如果本装置检测到振铃来的时间超过15s后无人接,自动
2、摘机,进入密码检测,输入正确后选择被控制电器,然后输入开或关进行遥控电器,完成后返回。 根据电话机和交换机发出的不同信号音以及电话线各种状态的不同要求,结合实际情况对具体的单元功能模块作出软件或硬件上的不同分工,具体如下:1、理论上交换机所发出的各种信号音都可以通过软件编程而识别,即通过单片机发出的脉冲信号来检测信号音单位时间内的脉冲个数计算出其频率,从而完成信号音识别。但是从系统的可靠性和程序的结构设计上分析,选择了硬件来解决振铃音检测、忙音检测、双音频信号解码等功能模块。2、 自动摘挂机和电器的控制必须使用具体硬件电路来实现。3、振铃音计数、忙音计数、密码校验、在线修改密码、输入信息分析等
3、功能模块使用软件编程方式要比硬件电路简单的多,实现也很容易。综上所述,本设计的信号音检测、自动摘挂机、控制电器、双音频解码等功能模块使用硬件电路实现。而信号音计数、密码校验、在线修改密码、信息分析等功能模块使用软件编程完成。二、模块单元设计2.1 模拟摘机电路因为程控电话交换机对电话摘机的响应是电话线回路电流突然变大为约30mA的电流,交换机检测到回路电流变大就认为电话机已经摘机。当用户摘机时,电话机通过叉簧接上约250的负载,使整个电话线回路流过约30mA的电流。交换机检测到该电流后便停止铃流发送,并将线路电压变为十几伏的直流,完成接续。如图所示,当单片机检测到电话有八次振铃后给P0.7口一
4、个低电平,三极管9012和9013均导通发光二极管发亮,250电阻接入,线路上电流约为30mA,模拟摘机成功。2.2 振铃检测电路当没有振铃信号时,线路上的供电电压为48V(老式交换机为60V),经过整流桥整流后不足以使稳压管V5导通,振铃信号输出端电压接近0V,当振铃信号到来时,线路上的90V交流信号经过整流桥变换成为峰值90V的脉动直流电,其峰值足以击穿稳压管V5,经R1对C1充电,振铃输出端电压升高,单片机可以通过P3.0口根据振铃信号的高低检测有无振铃。电路中的稳压管V6限制振铃信号的幅度不超过CPU端口的允许电压,保护CPU。2.3 控制部分电路当单片机89S52没接收信号,ULN输
5、出低电平,电磁继电器常闭开关闭合,常开开关断开,系统没有接入220V交流电压,家电无法正常工作。当80C52的P2接口输出低电平,经过ULN2003芯片由其输出端输出高电压,电磁继电器的常闭开关断开,常开开关闭合,将220V的交流家庭用电接入系统,接入插头的家用电器开始正常工作。从而达到控制家电的目的。 2.4 双音解码电路此部分是整个系统的关键,它的工作情况直接决定了系统的可靠性。经过翻阅大量的文献资料,发现使用电话专用的双音频编解码芯片进行输入双音频信号的解码,是比较常用的一种方法。使用集成电路不但外围电路简单,而且可靠性强。经过专用集成电路的解码,信号转换成为不同的码制信号,可以直接被单
6、片机读取。一般常用的电话双音频编解码集成电路有MT8870、MT8880、MT8888等,经过反复论证比较,决定采用双音频解码集成片MT8870来完成此功能模块。有关MT8870的详细介绍请参阅本报告的后面附录C部分。远程用户通过电话按键发送的DTMF信号,经耦合电容的隔直、滤波后,由MT8870接收并进行硬件译码,输出的四位二进制数据直接与AT89C51单片机的P1.0P1.3口连接, MT8870接收到有效的DTMF信号并解出正确的BCD数据时,会使CID端置高电平,通知CPU取走数据。CPU从P1口读入数据,去掉高四位后将数据保存于内部R7寄存器单元,并对读入的数值进行判断,从而得到远程
7、控制者的输入命令。 解码电路MT8870解码表三、结束语在这次的电子设计竞赛中,虽然我们这个小组没有完成整个设计,但是我们都有努力过,并且学到了很多东西,对protel、keil等软件更加熟悉,为今后设计作品打下了坚实的基础。没完成作品很遗憾,但是我们不会放弃,为了学到更多的东西,我们会坚持把这个系统做完的。NNYYNN延时开电器1YNYY开电器1N延时开电器1延时开电器2开电器2YY开电器1延时开电器1开电器2关电器2输入要设的密码Y延时关电器2N延时开电器2N控制电器2YNN开电器1修改密码NN延时关电器1YY挂机输入密码输错2次密码输入错误计数关电器1延时开电器1开电器1设置成功控制电器
8、NY控制电器1Y密码正确摘机Y15秒时间到延时有振铃吗初始化N程序流程图:附: 程序/*用户头文件*/#include #include #include #include/*宏定义*/#define uchar unsigned char#define uint unsigned int#define I2CReadAdr 0xA1 /写地址,格式为:(命令1010+器件3位地址+读/写)。#define I2CWriteAdr 0xA0 /AT24C02读地址/*管脚定义*/sbit I2CSCK =P16; /24C02时钟信号sbit I2CSDA =P17; /24C02数据信号sb
9、it HoldOn =P07; /模拟摘机控制端,为0时摘机sbit Control1 =P24; /继电器1控制端,低电平有效sbit Control2 =P25; /继电器2控制端,低电平有效sbit RingInt =P30; /振铃信号检测端/*全局变量*/uchar allow;uchar GRingCount;uchar shumima;uchar dat;uchar dat1;uchar open;uchar close;uchar a;uint dlycount;uint dlyGRingCount;uint openGRingCount1;uint openGRingCoun
10、t2;uint closeGRingCount1;uint closeGRingCount2; / 延时计数值uchar ucGPassward6=0x00,0x00,0x00,0x00,0x00,0x00; /初始密码为123456,存储在24C02中uchar data16=0x00,0x00,0x00,0x00,0x00,0x00;/输入密码暂存/*Function name:延时函数,共三个*/void Delay1ms() /1ms定时 uint s=0; for (s=150;s0;s-); void Delay20ms() /延时20ms uchar m=0; uchar n=0
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电话 远程 遥控 系统
