基于单片机的家用电器远程遥控装置的设计与制作.docx
- 文档编号:8029844
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:40
- 大小:1.05MB
基于单片机的家用电器远程遥控装置的设计与制作.docx
《基于单片机的家用电器远程遥控装置的设计与制作.docx》由会员分享,可在线阅读,更多相关《基于单片机的家用电器远程遥控装置的设计与制作.docx(40页珍藏版)》请在冰豆网上搜索。
基于单片机的家用电器远程遥控装置的设计与制作
毕业设计论文
专业无线电技术
题目基于单片机的家用电器远程遥控装置
题目:
基于单片机的家用电器远程遥控装置的设计与制作
摘要:
随着电子、计算机科学的发展,我们的生活和工作中都会接触很多的电子产品,而这些电子产品大多都是被称作单片机的微型计算机所控制,本文主要介绍以单片机AT89C51为核心,充分利用单片机的片内外资源,配合使用双音多频接收器MT8870实现远程电话遥控家电开关等功能的仪器。
设计中使用了EEROMX25045来存储密码;采用语音芯片实现操作步骤提示、操作成功反馈提示等功能,操作简单、可靠;为了不额外占用资源,在软件中设计有一段时间内无人操作自动挂机的功能;在设计时为了解决单片机I/O口资源有限的问题,我们选用了CPLD可编程逻辑器件来扩展单片机的I/O口,从而实现电路的逻辑功能。
本次设计基于完备的软硬件系统,很好的实现了自动摘机、语音提示、密码核对、操作提示、状态显示及超时自动挂机等功能。
关键词:
AT89C51MT8870EEROM单片机CPLD
毕业设计(论文)外文摘要
Title:
BasedontheSCMhomeelectricalequipmentremotecontroldevicedesignandproductionof
Abstract:
Withtheelectronics,Suchaselectronics,computersciencedevelopment,wewillbelivingandworkingincontactwithalotofelectronicproducts,electronicproductswhicharemostlyknownasamicro-computercontrolledbythemicrocontroller,thisarticlefocusesonthesingle-chipmicrocomputerAT89C51thecore,makefulluseofon-chipmicrocontrollerinternalandexternalresourcestosupporttheuseofdual-tonemulti-frequencyreceiverMT8870remotetelephoneswitchfeaturessuchasremotecontrolhomeappliancesinstruments.UsedinthedesignofEEROMX25045tostorepasswords;useofvoice-chipstepssuggestthatthesuccessfuloperationoffeaturessuchasfeedbacktips,simpleoperation,reliable;inordernottooccupytheadditionalresourcesinthedesignofsoftwareforsometimetohanguptheunmannedautomaticfunction;inthedesigninordertosolvetheMCUI/Oportresourcesarelimited,weuseaCPLDprogrammablelogicdevicetoexpandtheMCUI/Oport,inordertoachievecircuitlogicfunctions.
Thedesignisbasedonacompletehardwareandsoftwaresystems,agoodimplementationoftheautomaticpicking,voiceprompts,passwordchecking,operatingtips,statusdisplayandautomatichangoutfunctions.
keywords:
AT89C51MT8870EEROMMCUCPLD
第1章绪论
1.1概述
单片机以其强大的控制能力已经被广泛应用于诸多领域,从最初的8位控制器到现在的16位、32位控制器都还有很大的发展和应用空间。
遥控技术是通过一定的手段对被控物体实施一定距离的控制,操作人员可以在远离设备的地方对设备进行操作,从而实现远程控制。
单片机技术与遥控技术结合,并利用现有的电话网路便可实现对家用电器甚至是对工厂机器的远程操作。
电话遥控作为一较新的课题与常规的遥控方式相比,显示出一定的优越性:
电话线路各地联网,不需进行专门的布线;不占用无线电频率资源;避免电磁污染等。
本设计是利用电话的双工通信特点进行遥控的:
操作者可以通过各种提示音及时了解受控对象的有关信息,从而进行进一步的操作,实现了产品的交互式与智能化。
只要您处在可拨打电话的地方,您都可以通过手机或其他方式拨打家中的电话,对家中的电器进行控制:
打开电饭煲煮饭、打开空调、打开照明电灯等,让您一回到家就可轻松享受温馨的生活。
1.2设计要求及主要功能介绍
1.2.1设计要求
根据题目要求,本设计需要完成的以下几项功能:
(1)家用电器电话遥控设备有程控语音接口,并接入家中电话网络中(家用电话号码即为遥控设备控制电话号码)。
(2)当振铃9~10声后,遥控设备模拟摘机,并有语音提示。
(3)遥控设备的密码有两部分组成,硬件和软件部分,遥控设备的密码由这两部分组成。
软件部分密码存入在EEPROM中,硬件密码设置在遥控机器上,共有8位二进制构成2个8421BCD码,硬件密码用户可以随时改动,当遥控者正确输入密码后,方可进入遥控状态。
(4)遥控控制时,有语音提示。
正常控制时,有语音反馈信息。
(6)有显示功能,当操作执行后,遥控装置上有发光管显示,显示电器的工作状态。
(7)有摘机后超时自动挂机功能。
(8)本设备还可以作为家庭家用电器集中控制终端使用:
用电话机即可正常控制。
1.2.2功能介绍
1.遥控设备自动摘机
当用户拨打家中电话时,如果无人接听会在电话振铃8至10次后自动模拟摘机。
2.语音提示功能
本系统设计有语音芯片ISD1420,内录有操作提示,设备自动摘机后,每步操作都会有语音提示,使用户能够正确的进行操作,实现了良好的人机交流。
3.用户密码修改
为了用户操作安全,本设备设有安全密码,密码使用8位按键开关设置。
在每次开机时且未有电话打入时即可设置密码。
8号键为功能选择键,当拨动一下时,表示需要设置密码。
然后分别拨动各位上的按键一下,代表密码各位的数字(可任意设置1~15位密码),密码设置完毕后拨动8号按键一下,表示设置结束。
4.电器状态显示功能
设备的正面面板上设计有四个发光LED灯,四个灯分别代表四个家用电器,灯的亮灭代表各个电器的开与关,这就实现了电器的状态显示,方便用户查看家用电器的开关状态,直观明了。
5.超时自挂机功能
为了防止用户在操作完电器后忘记挂机而影响家中电话的正常使用,同时也是为了节省打电话所带来的费用,本设备设计有超时自挂机功能:
设备接通后20s内无任何操作,设备会自动挂机。
1.3MCS-51系列单片机简介
MCS51单片机的基本结构如图1所示,其基本结构包括:
●8位CPU;
●片内震荡器及时钟电路;
●32根I/O口线;
●外部存储器ROM和RAM寻址范围各为64KB;
●2个16位定时器/计数器;
●5个中断源,2个中断优先级;
●全双工串行口;
●布尔处理器。
图18051单片机的基本结构
8051单片机的存储器结构特点之一是程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式。
这种结构的单片机称为哈佛结构单片机。
8051单片机在物理上有四个存储空间:
片内程序存储器和片外程序存储器;片内数据存储器和片外数据存储器。
8051单片机有4个8位的并行接口,记作P0,P1,P2和P3,共32根口线,实际上它们就是SFR中的4个。
这4个接口特性上主要差别是P0,P2和P3都具有第二功能,而P1口只能用做I/O口。
4个口的驱动能力也是不相同。
P1,P2和P3都能驱动3个LSTTL门,并且不需外加上拉电阻就能驱动MOS电路。
P0能驱动8个LSTTL门,但驱动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语言来编写。
并且使用KeilC51编译器可以产生高效、紧凑的代码,执行效率远远超过使用汇编语言编写的程序。
系统软件的流程图如图3:
图3系统软件的流程图
第3章各模块详细设计
3.1振铃检测模块的设计
振铃的检测是用来判断电话网络是否有电话打入并判断是否启动系统对家用电器进行遥控。
3.1.1振铃检测模块的功能需求
当用户被呼叫时,电话交换机发来铃流信号,振铃为48±3伏的正弦波,谐铃失真不大于10%,电压有效值90±15V。
振铃以5秒为周期,即1秒送,4秒断。
输入至光电耦合器。
经过光耦的隔离转换,从光电耦合器输出的波形是时通时断的近似正弦波,经过反向器及RC回路进行滤波输出方波信号。
方波信号就可以直接输人至单片机的T1中断计数器输入口,完成整个振铃音检测和计数的过程。
3.1.2振铃检测模块原理图
图4振铃检测电路
3.1.3振铃检测模块软件设计
//振铃检测子程序
//主要检测是否振铃达到8次
voidcheck_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.1MT8870工作原理
MT8870是Mitei公司生产的一种功能较强的DTMF发送与接收器。
它体积小、抗干扰性强。
晶振频率为3.58MHz。
输出为二进制编码信号,便于与计算机接口,是目前国际流行的DTMF解码器件。
发送:
当MT8870作为DTMF发送器时,数据总线Q1~Q4上四位二进制码被锁存在发送数据寄存器中,发送的DTMF信号频率由3.58MHz的晶振分频产生。
当按下相应的键时,MT8870会按照表1输出相对应的一组高低频率的信号送到电话网络中去。
表1MT8870解码表
数字键盘
高频组/Hz
低频组/Hz
1209
1336
1477
1633
697
1
2
3
A
770
4
5
6
B
852
7
8
9
C
941
0
*
#
D
接收:
当MT8870作为DTMF发送器时,MT8870会检测出电话网络传送来的一组高低频率信号,并按表1解码,再根据表2进行编码,编码后的数据从MT8870的数据总线Q1~Q4输出,由此便实现了解码。
表2MT8870编码表
Digit
TOE
INH
EST
Q4
Q
Q2
Q1
ANY
L
X
H
Z
Z
Z
Z
1
H
X
H
0
0
0
1
2
H
X
H
0
0
1
0
3
H
X
H
0
0
1
1
4
H
X
H
0
1
0
0
5
H
X
H
0
1
0
1
6
H
X
H
0
1
1
0
7
H
X
H
0
1
1
1
8
H
X
H
1
0
0
0
9
H
X
H
1
0
0
1
0
H
X
H
1
0
1
0
*
H
X
H
1
0
1
1
#
H
X
H
1
1
0
0
A
H
L
H
1
1
0
1
B
H
L
H
1
1
1
0
C
H
L
H
1
1
1
1
D
H
L
H
0
0
0
0
A
H
H
L
Undetectedputputcodewillremainthesameasthepreviousdetectedcode
B
H
H
L
C
H
H
L
D
H
H
L
3.2.2双音多频模块硬件原理图
图5双音多频电路
3.2.2双音多频模块有关软件设计
MT_8870解码程序如下:
voidMT_8870(uchar*TAB)//MT_8870解码电话中输入的数字
{
uchari;
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内没有操作就跳出循环
/****************************************************/
TAB[i]=translate();//存储MT8870解码数据
while(start);//等待一次解码过程的结束
if(TAB[i]==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脚进行操作:
摘机时置高电平,挂机时置低电平。
相关软件编写如下:
//主程序中摘机程序
sbitpick=P3^7;
voidmain()
{
……
check_ring_8();
if(code_signal)//检测是否有修改密码
break;
work=0;
pick=1;//摘机
……
}
//主程序中超时挂机程序
sbitpick=P3^7;
voidmain()
{
……
pick=0;//挂机
……
}
3.4语音提示模块的设计
本模块主要是对语音芯片ISD1420的操作,通过录音放音实现语音提示,方便用户对家用电器的控制。
3.4.1语音芯片的选择
本设计选用的语音芯片为ISD1420,此芯片是美国ISD公司出品的优质单片语音录放电路:
由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。
一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。
录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利--直接模拟存储技术(DASTTM)实现的。
利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器。
直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现。
不仅语音质量优胜,而且具有断电语音保护的功能。
ISD1420具有以下特点:
●使用方便的单片录放系统,外部元件最少;
●重现优质原声,没有常见的背景噪音;
●放音可由边沿或电平触发;
●无耗电信息存储,省掉备用电池;
●信息可保存100年,可反复录放10万次
●无需专用编程或开发系统;
●较强的分段选址能力可处理多达160段信息;
●具有自动节电模式;
●录或放后立即进入维持状态,仅需0.5μA电流;
●单一5伏电源供电。
鉴于ISD1420有如此多的优点故选用此芯片来存储本设计的语音提示。
3.4.2语音提示模块硬件设计
1.语音提示模块硬件原理图
图7语音提示电路
2.语音提示模块硬件原理
ISD1420是采用模拟存取技术集成的可反复录放的20秒语音芯片,掉电语音不丢失,最大可分160段,最小每段语音长度为125ms,每段语音都可由地址线控制输出,每125ms为一个地址,由A0~A7八根地址线控制。
用户录制的语音每一段结束后芯片自动设有段结束标志(EOM),芯片录满后设有溢出标志(OVF)。
如此用单片机控制电路按某一段的起始地址进行放音操作,遇到段结束标志(EOM)即自动停止放音,单片机收到段结束标志(EOM)就开始触发下一段语音的起始地址,即可将录入的多段语音组合并播放出来,实现语音的提示功能。
语音芯片ISD1420,可录制20s语音信号,本装置中录入的语音如下:
“请输入密码”、“密码正确,请输入功能健,按*键结束”、“密码错误,请重新输入”、“电器已开”、“电器已关”等。
3.4.3语音提示模块软件设计
ISD1420语音芯片录放音是通过对相应的管脚置有效的高低电平来实现的:
在不同的模式下送入相应的语音地址,即可完成录放音功能。
录音:
通过P2口送起始地址0x90+Address,然后将语音芯片的27脚拉低,此时即可录音,当录音完毕时再将27脚拉高,录音完毕。
放音:
放音时的软件设计如下:
只需将录音时的地址送到相应的管脚即可播放相应的录音。
voidpaly(ucharAddress)//送入地址播放语音
{
P2=0xd0+Address;//送地址
P2=0x90+Address;
delay(12000);delay(12000);
}
3.5密码设置模块的设计
密码是用来限制用户对家用电器控制的所有权。
此功能的设计非常重要,只有拥有有效密码的用户才可对家用电器进行操作。
3.5.1密码设置模块硬件设计
密码设置模块硬件原理图
图8密码设置电路
密码设置电路如图8所示,RS1为排阻,接在单片机的P0口,SA1为拨码开关,可以对系统进行密码设置。
本系统在开机时即可进行密码的设置。
密码设置步骤如下:
首先拨动8号按键一下,表示需要设置密码,然后分别拨动各位上的按键一下,其数字代表所要设置的密码,可任意设置1~15位密码。
密码设置完毕后拨动8号按键一下,表示设置结束。
例如,拨动8号按键一下(表明需要设置密码),再先后拨动1号按键、2号按键、3号按键、5号按键、7号按键一下,最后拨动8号按键一下。
则密码设定已经完成,密码为12357。
本系统的密码设置只设计在开机时,在电话通话过程中则无法修改密码;同时,在修改密码时,系统不对振铃进行检测,所以不能自摘机,从而不能对家用电器进行遥控。
3.5.2密码设置模块有关软件设计
密码修改:
密码的修改通过8号键的拨动来起停的,第一次拨动表示开始输入密码,第二次表示结束输入密码,密码修改后存储在EEPROM中,即使在断电后密码亦不会丢失。
密码修改程序如下:
voidwrite_code()
{
uchari,MM[15]={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)
{
MM[i]=change();//用于存储修改的密码
if(P0==0x7f)break;//密码中有"8",做为结束语
while(P0!
=0xff){rst_watchdog();}//等待按键松开
}
}
while(P0!
=0xff){rst_watchdog();}//喂狗
for(i=0;;i++)//将修改的密码存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 家用电器 远程 遥控装置 设计 制作