基于单片机的家用电器远程遥控装置的设计与制作毕业论文.doc_第1页
基于单片机的家用电器远程遥控装置的设计与制作毕业论文.doc_第2页
基于单片机的家用电器远程遥控装置的设计与制作毕业论文.doc_第3页
基于单片机的家用电器远程遥控装置的设计与制作毕业论文.doc_第4页
基于单片机的家用电器远程遥控装置的设计与制作毕业论文.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的家用电器远程遥控装置的设计与制作毕业论文目 录第1章 绪论51.1 概述51.2 设计要求及主要功能介绍51.3 MCS-51系列单片机简介7第2章 系统总体设计92.1 系统功能模块的划分92.2 系统原理框图92.3 系统软件主要特色10第3章 各模块详细设计123.1 振铃检测模块的设计123.2 双音多频模块的设计133.3 自动摘机及超时挂机模块的设计163.4 语音提示模块的设计173.5 密码设置模块的设计213.6 EEPROM及看门狗模块的设计233.7 继电器驱动模块的设计273.8 系统总程序的设计28第4章 系统的组装、调试和测试304.1 系统的组装、调试304.2 振铃检测及自动摘机功能的测试304.3 语音及双音多频功能的测试304.4 密码设置功能的测试304.5 EEPROM密码存储功能的测试314.6 继电器驱动、电器状态显示及语音提示功能的测试314.7 超时自动挂机功能的测试31第5章 系统方案总评32结论33致谢33参考文献34附录A 家用电器远程遥控装置的功能及使用351 家用电器远程遥控装置的功能352 家用电器远程遥控装置的使用方法36图1 家用电器远程遥控装置原理图38图2 家用电器远程遥控装置印制板图39图3 家用电器远程遥控装置CPLD内部电气图40表1 家用电器远程遥控装置元器件清单41第1章 绪论1.1 概述单片机以其强大的控制能力已经被广泛应用于诸多领域,从最初的8位控制器到现在的16位、32位控制器都还有很大的发展和应用空间。遥控技术是通过一定的手段对被控物体实施一定距离的控制,操作人员可以在远离设备的地方对设备进行操作,从而实现远程控制。单片机技术与遥控技术结合,并利用现有的电话网路便可实现对家用电器甚至是对工厂机器的远程操作。电话遥控作为一较新的课题与常规的遥控方式相比,显示出一定的优越性:电话线路各地联网,不需进行专门的布线;不占用无线电频率资源;避免电磁污染等。本设计是利用电话的双工通信特点进行遥控的:操作者可以通过各种提示音及时了解受控对象的有关信息,从而进行进一步的操作,实现了产品的交互式与智能化。只要您处在可拨打电话的地方,您都可以通过手机或其他方式拨打家中的电话,对家中的电器进行控制:打开电饭煲煮饭、打开空调、打开照明电灯等,让您一回到家就可轻松享受温馨的生活。1.2 设计要求及主要功能介绍1.2.1 设计要求根据题目要求,本设计需要完成的以下几项功能:(1)家用电器电话遥控设备有程控语音接口,并接入家中电话网络中(家用电话号码即为遥控设备控制电话号码)。(2)当振铃910声后,遥控设备模拟摘机,并有语音提示。(3)遥控设备的密码有两部分组成,硬件和软件部分,遥控设备的密码由这两部分组成。软件部分密码存入在EEPROM中,硬件密码设置在遥控机器上,共有8位二进制构成2个8421BCD码,硬件密码用户可以随时改动,当遥控者正确输入密码后,方可进入遥控状态。(4)遥控控制时,有语音提示。正常控制时,有语音反馈信息。(6)有显示功能,当操作执行后,遥控装置上有发光管显示,显示电器的工作状态。(7)有摘机后超时自动挂机功能。(8)本设备还可以作为家庭家用电器集中控制终端使用:用电话机即可正常控制。1.2.2 功能介绍1遥控设备自动摘机当用户拨打家中电话时,如果无人接听会在电话振铃8至10次后自动模拟摘机。2语音提示功能本系统设计有语音芯片ISD1420,内录有操作提示,设备自动摘机后,每步操作都会有语音提示,使用户能够正确的进行操作,实现了良好的人机交流。3用户密码修改为了用户操作安全,本设备设有安全密码,密码使用8位按键开关设置。在每次开机时且未有电话打入时即可设置密码。8号键为功能选择键,当拨动一下时,表示需要设置密码。然后分别拨动各位上的按键一下,代表密码各位的数字(可任意设置115位密码),密码设置完毕后拨动8号按键一下,表示设置结束。4电器状态显示功能设备的正面面板上设计有四个发光LED灯,四个灯分别代表四个家用电器,灯的亮灭代表各个电器的开与关,这就实现了电器的状态显示,方便用户查看家用电器的开关状态,直观明了。5超时自挂机功能为了防止用户在操作完电器后忘记挂机而影响家中电话的正常使用,同时也是为了节省打电话所带来的费用,本设备设计有超时自挂机功能:设备接通后20s内无任何操作,设备会自动挂机。1.3 MCS-51系列单片机简介MCS51单片机的基本结构如图1所示,其基本结构包括: 8位CPU; 片内震荡器及时钟电路; 32根I/O口线; 外部存储器ROM和RAM寻址范围各为64KB; 2个16位定时器/计数器; 5个中断源,2个中断优先级; 全双工串行口; 布尔处理器。图1 8051单片机的基本结构8051单片机的存储器结构特点之一是程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛结构单片机。8051单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器;片内数据存储器和片外数据存储器。8051单片机有4个8位的并行接口,记作P0,P1,P2和P3,共32根口线,实际上它们就是SFR中的4个。这4个接口特性上主要差别是P0,P2和P3都具有第二功能,而P1口只能用做I/O口。4个口的驱动能力也是不相同。P1,P2和P3都能驱动3个LS TTL门,并且不需外加上拉电阻就能驱动MOS电路。P0能驱动8个LS TTL门,但驱动MOS电路时,若作为地址/数据总线,则可以直接驱动;而作为I/O口时,需外接上拉电阻才能驱动MOS电路。第2章 系统总体设计2.1 系统功能模块的划分按照设计要求,系统可以分为以下几个基本功能模块:振铃检测模块、双音多频模块、自动摘机及超时挂机模块、语音提示模块、密码设置模块、EEPROM及看门狗模块和继电器驱动模块等。有些模块的功能是由硬件完成,有些模块的功能由软、硬件配合完成,有些模块则是由软件、硬件、机械三部分共同完成。将系统拆分成以上的这些基本功能模块后,再根据各个模块所要完成的功能分别去设计,也就是按照“逐步求精”的思想去设计本系统,这将使设计工作细化,也有助于制定进度安排。2.2 系统原理框图图2 系统原理框图2.3 系统软件主要特色软件在一个智能系统中扮演着举足轻重的作用,软件设计的好坏直接关系着整个系统的性能。目前已经有很多种嵌入式实时多任务操作系统,如:Linux、RTX51及UC/OS等,可以更有效的利用系统的各种资源,简化编程,缩短开发周期。签于本系统采用AT89C51单片机为控制器,本身的各种资源都很有限,引入一个操作系统代价太大,所以考虑直接来优化系统的软件结构,同样可以达到“多任务” 、“实时”等要求。单片机的开发语言主要有汇编语言和C语言,本系统选用的是C语言。目前很多人认为汇编语言没有太多的语法,使用起来简单明了,但是对于一个较大规模的软件系统使用汇编语言开发将遇到很大的困难:开发周期长、代码可读性差、不易维护等;而C语言就克服了汇编语言的诸多缺点,和汇编语言相比,C语言的开发具有以下几个显著的优点:(1)C语言是一种结构化的编程语言,可以减轻程序员的负担,让程序员把更多的精力放在功能的实现上;(2)代码的可读性好、容易理解、结构清晰、易于维护;(3)可移植性好,因为C语言不依赖于任何一种硬件系统。鉴于以上几点,本系统的软件部分全部采用C语言来编写。并且使用Keil C51编译器可以产生高效、紧凑的代码,执行效率远远超过使用汇编语言编写的程序。系统软件的流程图如图3:图3 系统软件的流程图第3章 各模块详细设计3.1 振铃检测模块的设计振铃的检测是用来判断电话网络是否有电话打入并判断是否启动系统对家用电器进行遥控。3.1.1 振铃检测模块的功能需求当用户被呼叫时,电话交换机发来铃流信号,振铃为483伏的正弦波,谐铃失真不大于10%,电压有效值9015V。振铃以5秒为周期,即1秒送,4秒断。输入至光电耦合器。经过光耦的隔离转换,从光电耦合器输出的波形是时通时断的近似正弦波,经过反向器及RC回路进行滤波输出方波信号。方波信号就可以直接输人至单片机的T1中断计数器输入口,完成整个振铃音检测和计数的过程。3.1.2 振铃检测模块原理图图4 振铃检测电路3.1.3 振铃检测模块软件设计/振铃检测子程序/主要检测是否振铃达到8次void check_ring_8(void) TMOD=0X50; /TIMER1工作方式设定 TH1=0XFF; TL1=0XF9; TR1=1; /开启计数器 while(!TF1) if(P0=0x7f) /在有电话来之前检测是否修改密码 delay(120); if(P0=0x7f) code_signal=1;/code_signal修改密码标志 while(P0=0x7f); break; TF1=0; /软件清除中断标志位3.2 双音多频模块的设计双音多频模块的主要器件为MT8870,它主要用来对电话网络信号解码编码。3.2.1 MT8870工作原理MT8870是Mitei公司生产的一种功能较强的DTMF发送与接收器。它体积小、抗干扰性强。晶振频率为3.58 MHz。输出为二进制编码信号,便于与计算机接口,是目前国际流行的DTMF解码器件。发送:当MT8870作为DTMF发送器时,数据总线Q1Q4上四位二进制码被锁存在发送数据寄存器中,发送的DTMF信号频率由3.58 MHz的晶振分频产生。当按下相应的键时,MT8870会按照表1输出相对应的一组高低频率的信号送到电话网络中去。表1 MT8870解码表数字键盘高频组/Hz低频组/Hz1209133614771633697123A770456B852789C9410*#D接收:当MT8870作为DTMF发送器时,MT8870会检测出电话网络传送来的一组高低频率信号,并按表1解码,再根据表2进行编码,编码后的数据从MT8870的数据总线Q1Q4输出,由此便实现了解码。表2 MT8870编码表DigitTOEINHESTQ4QQ2Q1ANYLXHZZZZ1HXH00012HXH00103HXH00114HXH01005HXH01016HXH01107HXH01118HXH10009HXH10010HXH1010*HXH1011#HXH1100AHLH1101BHLH1110CHLH1111DHLH0000AHHLUndetected putput code will remain the same as the previous detected codeBHHLCHHLDHHL3.2.2 双音多频模块硬件原理图图5 双音多频电路3.2.2 双音多频模块有关软件设计MT_8870解码程序如下:void MT_8870(uchar *TAB) / MT_8870解码电话中输入的数字 uchar i; for(i=0;i+) while(!start) /等待P3.2电平置高 no_signal=check_15s();if(no_signal) break; time_no=0; /未超时而检测到信号即刻清除 time_s=0; / 计时数据 if(no_signal) break; /15s内没有操作就跳出循环 /*/ TABi=translate(); /存储MT8870解码数据 while(start); /等待一次解码过程的结束 if(TABi=0x0a) break;/密码含有#键即刻结束解码 3.3 自动摘机及超时挂机模块的设计在本系统中,摘机和挂机实际上就是对家用电器控制的“开始”和“结束”:自动摘机表示系统启动控制;超时挂机表示对家用电器操作结束。3.3.1 自动摘机及超时挂机模块硬件设计1.摘机及超时挂机模块硬件原理图图6 自动摘机及延时挂机电路2 .动摘机及超时挂机模块硬件原理由于该设备为家用电器电话远端遥控设备,当设备检测到铃流信号的振铃次数达到规定的次数(大约8次)时以达到接受控制信号的能力,设备应该有一个模拟摘机的功能;同时为了不影响电话功能的正常使用,在遥控电器操作结束后设备应该能够自动挂机。根据系统设计有关技术指标,自动摘机及超时挂机电路设计如图6所示。自动摘机:当单片机计数器计到8次时给P3.7口输出高电平,这一高电平即为模拟摘机脉冲控制信号PICK,PICK信号经一非门驱动控制继电器K1吸合,继电器K1吸合使模拟电话机电阻RV接入电话线路中,使回路电流变大,交换机检测到电话线路的电流变化后便停止铃流发送,并将线路电压变为十几伏的直流,完成模拟摘机过程。超时挂机:当遥控电器操作过程结束后,如果用户未执行挂机动作,则设备在用户停止操作以后,自动延时20s后挂机。延时时间由软件编写时设定。3.3.2 自动摘机及超时挂机模块软件设计摘挂机的程序设计很简单,就是对P3.7脚进行操作:摘机时置高电平,挂机时置低电平。相关软件编写如下:/主程序中摘机程序sbit pick=P37;void main()check_ring_8( ); if(code_signal) /检测是否有修改密码 break; work=0; pick=1;/摘机/主程序中超时挂机程序sbit pick=P37;void main()pick=0;/挂机3.4 语音提示模块的设计本模块主要是对语音芯片ISD1420的操作,通过录音放音实现语音提示,方便用户对家用电器的控制。3.4.1 语音芯片的选择本设计选用的语音芯片为ISD1420,此芯片是美国ISD公司出品的优质单片语音录放电路:由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利-直接模拟存储技术(DAST TM)实现的。利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器。直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现。不仅语音质量优胜,而且具有断电语音保护的功能。ISD1420具有以下特点:使用方便的单片录放系统,外部元件最少;重现优质原声,没有常见的背景噪音;放音可由边沿或电平触发;无耗电信息存储,省掉备用电池;信息可保存100年,可反复录放10万次无需专用编程或开发系统;较强的分段选址能力可处理多达160段信息;具有自动节电模式;录或放后立即进入维持状态,仅需0.5A电流;单一5伏电源供电。鉴于ISD1420有如此多的优点故选用此芯片来存储本设计的语音提示。3.4.2 语音提示模块硬件设计1.语音提示模块硬件原理图图7 语音提示电路2.语音提示模块硬件原理ISD1420是采用模拟存取技术集成的可反复录放的20秒语音芯片,掉电语音不丢失,最大可分160段,最小每段语音长度为125ms,每段语音都可由地址线控制输出,每125ms为一个地址,由A0A7八根地址线控制。用户录制的语音每一段结束后芯片自动设有段结束标志(EOM),芯片录满后设有溢出标志(OVF)。如此用单片机控制电路按某一段的起始地址进行放音操作,遇到段结束标志(EOM)即自动停止放音,单片机收到段结束标志(EOM)就开始触发下一段语音的起始地址,即可将录入的多段语音组合并播放出来,实现语音的提示功能。语音芯片ISD1420,可录制20s语音信号,本装置中录入的语音如下:“请输入密码”、“密码正确,请输入功能健,按*键结束”、“密码错误,请重新输入”、“电器已开”、“电器已关”等。3.4.3 语音提示模块软件设计ISD1420语音芯片录放音是通过对相应的管脚置有效的高低电平来实现的:在不同的模式下送入相应的语音地址,即可完成录放音功能。录音:通过P2口送起始地址0x90+Address,然后将语音芯片的27脚拉低,此时即可录音,当录音完毕时再将27脚拉高,录音完毕。放音:放音时的软件设计如下:只需将录音时的地址送到相应的管脚即可播放相应的录音。void paly(uchar Address) /送入地址 播放语音 P2=0xd0+Address;/送地址 P2=0x90+Address; delay(12000); delay(12000); 3.5 密码设置模块的设计密码是用来限制用户对家用电器控制的所有权。此功能的设计非常重要,只有拥有有效密码的用户才可对家用电器进行操作。3.5.1 密码设置模块硬件设计密码设置模块硬件原理图图8 密码设置电路密码设置电路如图8所示,RS1为排阻,接在单片机的P0口,SA1为拨码开关,可以对系统进行密码设置。本系统在开机时即可进行密码的设置。密码设置步骤如下:首先拨动8号按键一下,表示需要设置密码,然后分别拨动各位上的按键一下,其数字代表所要设置的密码,可任意设置115位密码。密码设置完毕后拨动8号按键一下,表示设置结束。例如,拨动8号按键一下(表明需要设置密码),再先后拨动1号按键、2号按键、3号按键、5号按键、7号按键一下,最后拨动8号按键一下。则密码设定已经完成,密码为12357。本系统的密码设置只设计在开机时,在电话通话过程中则无法修改密码;同时,在修改密码时,系统不对振铃进行检测,所以不能自摘机,从而不能对家用电器进行遥控。3.5.2 密码设置模块有关软件设计密码修改:密码的修改通过8号键的拨动来起停的,第一次拨动表示开始输入密码,第二次表示结束输入密码,密码修改后存储在EEPROM中,即使在断电后密码亦不会丢失。密码修改程序如下:void write_code() uchar i,MM15=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; /清零,如第一次输入密码321,而第二次输入12,而实际密码为121 for(i=0;i+) while(P0=0xFF) rst_watchdog();/喂狗 delay(200); /消抖 if(P0!=0xFF) MMi=change();/用于存储修改的密码 if(P0=0x7f) break;/密码中有8,做为结束语 while(P0!=0xff) rst_watchdog();/等待按键松开 while(P0!=0xff) rst_watchdog();/喂狗 for(i=0;i+) /将修改的密码存储到25045 Write_B(MMi,i,0);/ 0x08(8)结束符也存储到EEPROM中 if(MMi=0X08) break;/遇到结束符就停止存储 密码验证:在系统自摘机后,系统会以语音的形式提示您输入密码,当您输入密码后系统会对您输入的密码进行验证,验证的过程大致如下:系统的密码和EEPROM中的密码进将您通过电话输入的密码与系统EEPROM存入的密码相比较,当您输入的密码与所存的密码完全一致时才可进入下一步操作。密码验证的有关程序如下: uchar check_code(uchar *TAB)/密码检验 uchar n,i=0; uchar YZ15;/*yz中不含有0x08,EEPROM第一次读的数据有误,所以进行两次读操作*/ for(;Read_B(i,0)!=0x08;i+) YZi=Read_B(i,0); for(;Read_B(i,0)!=0x08;i+) YZi=Read_B(i,0); n=strlen(YZ); for(i=0;i=n) return 1;/密码正确 else return 0;/密码错误3.6 EEPROM及看门狗模块的设计EEPROM是用来存储用户设置的密码和一些初始化数据,看门狗是为了防止程序跑飞而设计,增强了系统的可靠性。3.6.1 EEPROM及看门狗模块硬件设计EEPROM及看门狗模块硬件原理图图9 EEPROM及看门狗电路X25045是美国Xicor公司的生产的标准化8脚集成电路,它集上电复位控制、看门狗定时器、降压管理以及具有块保护功能的串行EEPROM四种功能于一体,有助于简化应用系统的设计,减少印制板的面积,提高系统的可靠性,降低了成本和系统功耗。其中的串行EEPROM是具有Xicor公司的块锁保护CMOS串行EEPROM,它被组织成8位的结构,它由一个由四线构成的SPI总线方式进行操作,其擦写周期至少有1000000次,并且写好的数据能够保存100年,综上可知X25045是一款理想的单片机外围芯片,故此设计选用X25045。3.6.2 EEPROM及看门狗模块软件设计X25045与单片机的数据交换通过SPI串行总线进行。在对X25045读写操作之前,需要先对X25045发出指令,指令名及指令格式如表3所示:表3 X25045指令及其含义指令指令格式操作WREN00000110设置写使能锁存器(允许写操作)WRDI00000100复位写使能锁存器(禁止写操作)RDSR00000101读状态寄存器WRSR00000001写状态寄存器READ00000A8011读出开始于所选地址的存储器中的数据WRITE00000A8010把写入开始于所选地址的存储器X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。如表4所示,X25045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。表4 X25045状态寄存器D7D6D5D4D3D2D1D0XXWD1WD0BL1BL0WELWIPWD1、WD0设置和看门狗复位时间的关系如表5所示:表5 看门狗预置时间设置WD1WD0预置时间/s001.4010.6100.211禁止工作相关软件设计如下:/*/* SPI总线读指令、数据程序*/*/uchar Read(void) uchar i; bit bData; uchar cData; for(i=0;i8;i+) /8位数据 sck=1; /下降沿输出 sck=0; bData=so; cData=cData1; if(bData) cData|=0x01; return cData; /返还读出的指令或数据/*/*SPI总线写指令、数据程序*/*/void Write(uchar cData) uchar i; for(i=0;i8;i+) if(cData&0x80)=0) si=0; /如果cData的高位为0,则输入为0,故SI为0./否则SI为0. else si=1; sck=0; /上降沿输入 sck=1; cData=cData1; /*/*读状态寄存器*/*/uchar Read_SR(void)/读状态寄存器 uchar cData; cs=0; Write(RDSR); /写入读状态寄存器允许 cData=Read(); /读状态寄存器 cs=1; return cData;void Write_SR(uchar cData)/写状态寄存器 uchar busy; busy=Read_SR(); while(busy&0x01)=1);/判断是否处于忙中 cs=0; Write(WREN); /写入写允许 cs=1; cs=0; Write(WRSR); /写入写状态寄存器允许 Write(cData); cs=1;/*/*写数据*/*/void Write_B(uchar cData,uchar Address,bit page)/ 写入一个字节,cData为写入的数,Address为写入地址,page为页 while(Read_SR()&0x01)=1);/ 判断是否处于忙中 cs=0; Write(WREN); /写入写允许 cs=1; cs=0; if(page=0) Write(WRITE0); /写入第一页起始地址 else Write(WRITE1); /写入第二页起始地址 Write(Address); /写入地址 Write(cData); /写入数据 sck=0; cs=1;/*/*读数据*/*/uchar Read_B(uchar Address,bit page)/ 读入一个字节,Address为读入地址,page为页 uchar cData; while(Read_SR()&0x01)=1); cs=0; if(page=0) Write(READ0); /写入第一页起始地址 else Write(READ1); /写入第二页起始地址 Write(Address); /写入地址 cData=Read(); /读出数据 cs=1; return cData;在程序正常运行的时候,应该在适当的地方加一条喂狗指令,使系统正常运行时的定时时间达不到预置时间。系统就不会复位。喂狗指令如下:void watchdog_init()/看门狗的初始化 uchar cData=0x00;/定时1.4S Write_SR(cData);void rst_watchdog() /复位DOG cs=1;/下降沿使看门狗复位 cs=0;3.7 继电器驱动模块的设计由于单片机的驱动能力有限,所以设计有继电器驱动电路来增强对家用电器的驱动。3.7.1 继电器驱动模块硬件设计继电器驱动模块硬件原理图图10 继电器驱动电路此系统是用来控制家用电器的工作的,但由于单片机输出的是TTL电平,功率很低,无法驱动220V的家用大功率用电器,由此考虑用继电器来驱动家用电器,首先解决了单片机的驱动能力弱的问题,其次使220V的交流电与系统的5V直流电相隔开,使操作更安全,由此设计如图10所示的驱动电路。3.7.2继电器驱动模块软件设计电器的开关是通过对继电器的控制来实现的,而对继电器操作的信息则来自MT8870的解码。用户通过手机键盘按下操作键后,由双音多频电路解码,根据解码所得数据来控制相应的继电器开启与闭合。相应的程序代码如下:void machine_on() uchar i,ZX5; for(i=0;i+) while(!start) no_signal=check_15s();if(no_signal) break; time_no=0; time_s=0; if(no_signal) break; ZXi=translate(); if(ZXi=0x0b) /*键 signal=1; break; if(ZXi=0X0a) break;/#键 while(start); if(ZX1=0X0a ) switch(ZX0) case 0X01: OUT1=1;paly(0x18);break; /1:机器1开 case 0X05: OUT1=0;paly(0x1c);break; /5:机器1关 case 0X02: OUT2=1;paly(0x18);break; /2: case 0X06: OUT2=0;paly(0x1c);break; / 6 case 0X03: OUT3=1;paly(0x18);break; / 3 case 0X07: OUT3=0;paly(0x1c);break; / 7 case 0X04: OUT4=1;paly(0x18);break; / 4 case 0X08: OUT4=0;paly(0x1c);break; / 8 3.8 系统总程序的设计系统总程序主要完成系统各功能的正确实现,它将系统各模块整合到一起进行协调的工作,以达到最终功能的实现。按照程序流程图编写代码如下:void main() uchar k,count=0; uchar TAB15; EA=0; work=1; pick=0; P2=0XFF; OUT1=0; OUT2=0; OUT3=0; OUT4=0; code_signal=0; watchdog_init(); while(1) if(code_signal) write_code(); code_signal=0; while(1) check_ring_8();/铃流检测 if(code_signal) /检测到有修改密码就回去修改密码 break; work=0; pick=1; /摘机 delay(12000);paly(0x00); /播放语音:请输入密码 count=0; signal=0; while(count3) /密码输入错误是否超过三次 MT_8870(TAB); if(no_signal) break; /超时挂机 k=check_code(TAB); if(k)break; else count+; if(count3 )/第三次错误就不放语直接挂机 paly(0x12); /播放语音:密码错误,请重输 if(count3&no_signal=0) paly(0x04);/播放语音:密码错误,请操作 while(signal=0) machine_on(); /对电器操作 if(no_signal)break;/超时挂机 work=1; pick=0;/结束,挂机 no_signal=0;第4章 系统的组装、调试和测试4.1 系统的组装、调试系统在硬件设计基本完成后开始购买元器件进行组装,在组装的过程中充分考虑各种因素,确保每个元器件安装正确,没有虚焊漏焊,这样为以后的调试带来了方便。系统的调试过程主要分模块调试和系统统调。其中系统的模块调试在各模块的设计过程中完成,基本上按照“设计调试修改”这样的过程反复进行直到能达到设计要求。系统的统调主要是系统软件的调试。在软件的设计过程中使用了伟福仿真器,用仿真器代替单片机能够及时的看到程序的运行结果,使用这个软件给调试带来了很大的方便。4.2 振铃检测及自动摘机功能的测试将家中电话接口插入本仪器后,接通电源,用手机拨打家中的电话,等待系统自动摘机。经测试可知,当无人接听电话,电话振铃响起8次后系统自动摘机,表明系统正确检测铃流并实现自动摘机功能。4.3 语音及双音多频功能的测试当系统自动摘机后我们设计了一个语音提示“请输入密码”,经测试得系统摘机后有“请输入密码的提示”,在输入密码错误的情况下会有“密码错误,请重新输入”的提示,在正确输入密码后系统提示“密码正确,请输入功能健,按*键结束”,然后按手机对应的键会提示电器的“开启”与“关闭”,由此说明语音功能的测试良好,同时也说明了系统的双音多频电路工作正常,MT8870的解码与编码都正确无误。4.4 密码设置功能的测试在本设备刚开机且未有电话打进时拨动系统的拨码开关的8号键一下,告诉系统接下来要进行密码设置,然后再按动1号按键、2号按键、3号按键、5号按键、7号按键一下,最后按动8号按键一下,至此密码设置完毕,系统的新密码设定为12357。用手机拨打家中电话,当系统自摘机并语音提示“请输入密码”时输入先前设定的新密码“12357”,然后系统提示“密码正确,请输入功能健,按*键结束”,说明先前的密码修改正确,系统可实现密码的修改。4.5 EEPROM密码存储功能的测试通过“密码设置功能测试”我们可知,系统密码修改后,系统已把新密码正确地存储到EEPROM中,并在密码校验时正确的读出比较,说明对EEPROM的操作正确,密码存储功能实现。4.6 继电器驱动、电器状态显示及语音提示功能的测试系统的面板上有四盏灯分别代表四个电器的开与关,同时在对电器操作时有语音提示,这三种功能测试如下表6所示:表6 指示灯状态显示、电器状态显示及语音提示测试结果表手机按键指示灯(1表示亮、0表示灭)电器(1表示开、0表示关)语音提示1234123411xxx1xxx电器已开20xxx0xxx电器已关3x1xxx1xx电器已开4x0xxx0xx电器已关5xx1xxx1x电器已开6xx0xxx0x电器已关7xxx1xxx1电器已开8xxx0xxx0电器已关4.7 超时自动挂机功能的测试在对家中家用电器操作完毕后,保持手机接通状态,不挂机,等待20s后系统会自动挂机,实现了超时自挂机功能,保证了家中电话的正常使用。第5章 系统方案总评在系统测试中,我们主要对系统的一些主要性能指标进行了测试,并对测试结果进行了分析,基本实现了预定的性能指标,但是由于时间的仓促,设计难免会有一些不足,故作了如下分析,并提出相应的解决方案。不足一:遥控方案单一此设备虽可实现电话远程遥控,但控制方式单一:只可通过拨打电话的方式控制。解决方案:1.可在双音多频接收器MT8870接入电话网络处设计一跳转开关,通过开关将系统与电话机直接相连,这就跳过交换机直接进行控制。2.在系统上加一个红外接收头,通过单片机解码控制,即可实现使用家用电器的红外遥控器来进行控制。还有其他的很多方案,在此不一一列举。这两个方案适用于在家中或可视范围内的“远程遥控”,这样做的好处是避免了拨号所带来的花费。不足二:语音提示较少由于时间的仓促,语音芯片的选型做的不够好,选择的芯片录放时间仅为20s,可录内容有限,因此不能提供丰富的语音提示。解决方案:选择可录音更长的芯片来代替ISD1420,这样可以存储更多的提示音,提供更丰富的语音提示,方便用户的操作,同时也方便了以后拓展其它的功能的提示。不足三:没有状态查询功能由于设计的不足,该系统未有设计状态查询功能。解决方案:用单片机的四个脚去读取四个继电器的开关状态。当用户进入查询状态时,通过单片机对四个继电器状态的读取,调用语音芯片中的对应的提示音,用户便可得到电器的状态提示。系统还存在很多的不足,还有待改善与解决。结论本设计家用电器遥控设备是基于现成的电话通道资源而设计的一款家用电器遥控装置,它以单片机为核心器件,充分利用单片机的片内外资源,配合使用双音多频接收器MT8870实现远程电话遥控家电开关等功能。设计中为了保证设备的安全性,选用EEPROM存储密码和一些初始化数据,同时亦实现了看门狗功能。为了使用户操作界面良好,采用语音芯片ISD1420提示用户操作,使用户操作简便、系统运行安全可靠。本次设计使我们了解了protel99se的使用;熟悉了电原理图、印制板布线图的绘制以及电路板的装配、焊接和调试等工艺;掌握了51单片机的C语言编程;学会了keil、Proteus等调试软件的正确使用;熟练运用wave仿真器进行电路的调试;熟悉了万用表、示波器等常用仪器的使用方法。通过本次设计,我们了解了电子产品的设计方法和产品研发的一般流程,同时也提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论