智能遥控器设计_第1页
智能遥控器设计_第2页
智能遥控器设计_第3页
智能遥控器设计_第4页
智能遥控器设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

iii智能遥控器的设计【摘要】:红外遥控器种类繁多,控制对象单一,具有学习功能的遥控器以单片机为核心,能记忆遥控器编码,并能模拟发射,使一个遥控器可以控制多个电器或代替某一遥控器实现功能,是一种智能化的控制工具。遥控器综合应用了单片机技术、红外遥控技术、无线电遥控技术,具有红外指令接收与学习、无线电指令接收、红外指令发送的功能。本文以hs0038(红外接收频率为38khz)作为红外接收头,详细介绍了红外遥控器的设计原理,红外遥控信号的单片机软件编码解码方法,包括编码、调制、解码以及发射,实现了一种利用MCS-51单片机的外部中断和时钟中断实现红外遥控的接收和发送装置,实现了基于字节的红外数据传输;经试验测试,该方法能使红外信号可靠发送和接收,通用性好,适用于大部分红外遥控控制系统。【关键词】:红外遥控;单片机;编码解码;学习功能iiiAbstract:Infraredremotecontrolawiderangeofcontrolobjectsingleremotecontrolwithlearningfunctionmicrocontrollerasthecore,totheremotememoryencoding,andcansimulatethelaunch,soaremotecontrolcancontrolmultipleappliancesorinsteadofaremotecontroltoachievefunctional,isanintelligentcontroltool.Remotecontrolintegratedapplicationofchiptechnology,infraredremotecontroltechnology,radio-controlledtechnology,withinfraredreceivinginstructionandlearning,radiocommandreceivingfunctioninfraredcommandssent.Inthispaper,hs0038(IRreceiverfrequencyis38khz)astheinfraredreceiver,detailingthedesignprincipleofinfraredremotecontrol,SCMsoftwareinfraredremotecontrolsignalencodinganddecodingmethods,includingcoding,modulation,decodingandtransmitting,toachieveawaytouseMCS-51MCUexternalinterruptandtimerinterruptinfraredremotecontrolforreceivingandtransmittingdevicestoachieveabyte-basedinfrareddatatransmission;throughpilottesting,thismethodcanreliablysendandreceiveinfraredsignals,commongood,forlargepartoftheinfraredremotecontrolsystem.Keywords:Infraredremotecontrol;SCM;encodinganddecoding;learningiii目录前言.2第1章绪论.31.1课题的背景和意义.31.2国内外研究现状.41.3整体思路.5第2章系统分析.62.1红外遥控技术.62.2用户需求.8第3章系统设计.103.1方案选取.103.2矩阵键盘电路.123.3发射电路.133.4接收电路设计.143.5整体电路设计.153.6发射和接收程序设计.163.7学习功能.16第4章整体调试.204.1矩阵键盘.204.2红外发射和接收.214.3学习功能.23结论.26iii参考文献.27致谢.28附录1:实物照片说明.29附录2:部分程序.30第0页前言人们的物质文化生活水平日益提高,各种各样的家用电器走进了千家万户,其中,大多数的家用电器都有各自不同的遥控器,人们常常为了控制某台电器而到处寻找其对应的遥控器,这样,就给人们的生活带来了很多不便。,一个多功能遥控器可以通过自学习而拥有对多台电器的遥控功能,即省时、又省力,从而使人们免除同时面对功能众多遥控器的烦恼。你可以:1.浏览家庭局域网中支持DLNA的设备,比如安装有windows7的PC,将PC上共享的音频、视频、照片等媒体内容通过飞利浦智能遥控器播放到您的飞利浦电视上。也可以把您手机或者平板电脑上的多媒体内容通过互联易享功能播放到您的飞利浦电视上。2.替换您的普通遥控器。实现用您的手机、平板电脑控制您的电视。可以切换电视频道,控制音量大小,快速切换到指定的应用上等。3.模拟无线鼠标。通过模拟无线鼠标,飞利浦智能遥控器让您能够使用更多的智能应用,同时不受传统有线鼠标的羁绊,让您观赏电视更自在。4.模拟无线键盘。使用遥控器输入文字太累?没问题!现在就可以使用飞利浦智能遥控器的模拟键盘功能,直接使用手机、平板电脑,开始进行文字输入随着信息技术的发展,一些生活中常用的东西被越来越多的人所关注,并且希望做到改进。红外遥控器就是其中之一。智能遥控器不同传统的红外遥控器,它具有学习功能,而且还可以按照用户的要求,自行设定编码规则,满足用户更多的需求。现在,遥控器已经渗透到我们生活的方方面面,可以预见,未来我们会像现在不能离开互联网这般离不开智能遥控器。第1页第1章绪论1.1课题的背景和意义随着当今世界经济的快速发展和信息化时代的来临,电子技术也得到迅速的发展,新型大规模遥控集成电路的不断出现,使遥控技术有了日新月异的发展。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度得到了大大提高。很多电器产品需要智能化,就需要用到遥控设备近年来,在多媒体教学系统的使用、开发和研制中,经常遇到同时使用多种设备,如:数字投影机、DVD、VCD、录像机、电视机等,由于各种设备都自带遥控器,而且不同的设备所遵循的红外传输规约也不尽相同,操纵这些设备得使用多种遥控器,给使用者带来了诸多不便。本次毕业设计的主题就是红外遥控电路设计。通过单片机的控制指令来对不同设备进行远程控制,从而方便快捷的实现远程控制Error!Referencesourcenotfound.。红外遥控技术是一种利用红外线进行点对点通信的技术,其相应的软件和硬件技术都已比较成熟。它是把红外线作为载体的遥控方式。由于红外线的波长远小于无线电波的波长,因此在采用红外遥控方式时,不会干扰其他电器的正常工作,也不会影响临近的无线电设备Error!Referencesourcenotfound.。红外遥控是利用波长为0.76m-1.5m之间的近红外线来传递控制信号的。它具有以下特点:1由于为不可见光,因此,对环境影响很小。红外线的波长远小于无线电波的波长,所以,红外遥控不会干扰其它家用电器,也不会影响近邻的无线电设备。2红外线为不可见光,具有很强的隐蔽性和保密性,因此在防盗,警戒等安全保卫装置中也得到了广泛的应用。3红外线遥控的遥控距离一般为几米至几十米或更远一点。4红外线遥控具有结构简单,制作方便,成本低廉,抗干扰能力强,工作可靠性高等一系列优点,特别是室内遥控的优先遥控方式。同时,由于采用红外线遥控器件时,工作电压低,功耗小,外围电路简单,因此它在日常工作生活中的应用越来越广泛。它在技术上的主要优点是:1.无需专门申请特定频率的使用执照;第2页2具有移动通信设备所必需的体积小、功率低的特点;3传输速率适合于家庭和办公室使用的网络;4信号无干扰,传输准确度高;它的缺点是:由于它是一种视距传输技术,采用点到点的连接具有方向性,两个设备之间如果传输数据,中间就不能有阻挡物;而且通讯距离较短,此外红外LED不是一种十分耐用的器件Error!Referencesourcenotfound.Error!Referencesourcenotfound.。由于红外线在频谱上居于可见光之外,所以抗干扰性强,具有光波的直线传播特性,不易产生相互间的干扰,是很好的信息传输媒体。信息可以直接对红外光进行调制传输,例如,信息直接调制红外光的强弱进行传输,也可以用红外线产生一定频率的载波,再用信息对载波进调制,接收端再去掉载波,取到信息。从信息的可靠传输来说,后一种方法更好,这就是我们今天看到的大多数红外遥控器所采用的方法。由于红外线的波长远小于无线电波的波长,因此在采用红外遥控方式时,不会干扰其他电器的正常工作,也不会影响临近的无线电设备。同时,由于采用红外线遥控器件时,工作电压低,功耗小,外围电路简单,因此它在日常工作生活中的应用越来越广泛。1.2国内外研究现状目前国外(主要是欧美市场)的遥控器几乎都是多功能遥控器,它们能够控制全球的绝大部分的视频设备甚至包括空调器。这些遥控器一般由MCU进行控制,其价格一般都比较贵,达上百美金。值得一提的是,目前全球的遥控器的80%是由中国大陆代工贴牌生产的,但关键芯片是别人的。国外的遥控器主要通过超市等渠道进行销售,消费者可以根据自己的需要进行选择,其发展趋势是根据家庭的需要遥控器拥有更多的功能和更人性化的设计。而在国内市场,遥控器绝大部分是单一型的遥控器,也就是一个遥控器控制一个视频设备,这与我国经济状况和消费习惯有关。多功能(所谓万能)遥控器只是单一型的遥控器的补充,在一般的主流渠道是没有多功能遥控器销售的,许多消费者也就不知道有或者如何购买多功能遥控器,因此多功能遥控器的销量是相对很少的。也缘于此多功能遥控器的质量是参差不齐的,大部分使用不方便,或者名为多功能遥控器但对很多设备却难以控制。但正如西方的情况,我国也会经历从使用单一型遥控器走向多功能遥控器,尤其是在信息化迅速发展的情况下,多功能遥控器有着广阔的需求和发展空间。启动这一块市场的关键是使多功能遥控器确实好用,能够完全替代单一型遥控器的功能以及有效的市场推广。第3页1.3整体思路本文是在如今已有的红外遥控技术和较成熟的遥控器设备情况下,研究智能遥控器的一些关键技术,和整个产品的实现。认识、学习现有的技术知识,了解目前最新技术和研究方向,在这之后,结合大学期间学习的知识,深入研究一下部分关键技术,把用户想要的智能遥控器做了出来。本文写作的思路是按照产品设计的一般思路来做的,即:用户需求和已有技术;硬件设计;软件设计;整体调试和结论。详细的来说,就是分析红外遥控的原理,然后针对这个原理来设计电路和程序Error!Referencesourcenotfound.Error!Referencesourcenotfound.。这里电路的设计可以比较复杂,但是考虑到市场上已经有做好的电路,而且集成在一个很小的探头里面,所以接收电路就是直接用的hs0038,而没有自己焊接电路,这样高效适用就行。发射电路,因为采用的是单个三极管的放大,所以效果不是那么好,故发射和接收距离有很大限制。另外,程序控制方面,本来是按照矩阵键盘的检测,然后发射键盘编码,然后红外接收到编码,然后打印出来,这就是一个完整的过程,但是由于程序的原因,矩阵键盘的检测可以做到,数据的发射也没有问题,但是两者结合在一起,就存在未知问题,还需继续考察。另外,学习功能的设计,就是简单的把未知遥控器的按键的代码学习过来,然后打印出来,这里因为没有加入存储设备,所以就没有存在ROM里面,所以,只能表示学习是可以的,但是要发射,还是要对程序进行写入数据才可以。这就是完整的设计过程Error!Referencesourcenotfound.Error!Referencesourcenotfound.。第4页第2章系统分析2.1红外遥控技术红外遥控技术,总得来说就是按一定的编码规则,把一些控制信号编码,再用38k的高频进行调制,然后利用红外发射管,把信号发射出去。接收端通过红外接收头,把接收到的信号,解码,然后再读取它所携带的控制信息,从而发出指令,达到控制作用。2.1.1编码技术控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理,我们使用的超薄型红外线遥控器使用的就是6121编码。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图1所示。0.56ms2.5msbit“1”图2-1遥控码的“0”和“1”上述“0”和“1”组成的32位二进制码经38khz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图2所示。C012C345C67D012D345D67用户识别码用户识别码(反码)操作码操作码(反码)引导码9ms4.5msD012D34567C012C34567图2-2遥控信号编码波形图第5页图2-3遥控信号编码周期波形图UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰,如我们可以同时使用电视机、机顶盒、功放等遥控器,但它们不会产生误触发。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在4563ms之间,图3为发射周期波形图。当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms18ms),高8位地址码(9ms18ms),8位数据码(9ms18ms)和这8位数据的反码(9ms18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。2.1.2解码技术要想解码,首先要知道代码格式。以接收代码为准,接收代码与发射代码是反向的过程,也就是先接收的是9ms的低电平,然后是4.5ms的高电平,之后才是4组8位数据,而且数据的0,1编码,也是反向的,先是0.56ms低电平,然后才是高电平,当然0,1的高电平接收时间也是不一样的。如下图介绍。位定义“”0.56msdatperio(1.2ms)图2-4“0”码的接收格式同理可知“1”的代码格式,就不画图了。单发代码格式第6页4.5ms9ms32位代码(4.5ms63)(A015+D07+D07图2-5一帧数据的接收码格式一般来说,都是发送一帧数据,就是按下一个键,到按第二个键之间的时间足够长,而且没有按着不放这种情况,就是单数据发送。连发代码格式2.5ms9ms图2-6数据连发接收码格式连发情况不多,除特殊用途,不然一般都用不到,这里不作研究。那么在这样的规则下,很多东西都是固定死了的,所以代码宽度是可以计算出来的,计算过程如下:16位地址码的最短宽度:1.1216=18ms16位地址码的最长宽度:2.24ms16=36ms可以得知8位数据代码及其8位反代码的宽度和不变:(1.12ms+2.24ms)8=27ms所有32位代码的宽度为(18ms+27ms)(36ms+27ms)。对于红外线遥控对于很多人来讲,都感觉到非常神奇,看不到,摸不着,但能实现无线遥控,其实控制的关键就是我们要用单片机芯片来识别红外线遥控器发出红外光信号,即我们通常所说的解码,单片机得知发过来的是什么信号,然后再做出相应的判断与控制,如我们按电视机遥控器的频道按钮,则单片机会控制更换电视频道,如按的是遥控器音量键,则单片机会控制增减音量Error!Referencesourcenotfound.。而解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。根据码的第7页格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。2.2用户需求作为用户来说,要求的无非是使用方便,能最大限度的给用户方便的产品就是最好的产品。但是作为我们科研,我们能做的就是做好研究工作。这里出于研究限制和硬件条件,结合用户的需求,我们主要做以下的研究工作。用矩阵键盘把用户的按键检测出来,并用串口传给PC;独立按键选择遥控器是发射还是接收模式;发射模式下,能结合矩阵键盘,把按键的代码作为数据,发送出去;接收模式下,能接收到发送的完整的一帧数据,也就是四个8位数据,前导码不算,然后通过串口打印在PC上;在PC的串口助手上观察接收的数据是否和发送的按键代码是一致的,从而证明遥控器的性能;由于硬件条件和水平有限,遥控器的学习功能,作为辅助模块来设计。针对用户需求,做出的设计方案大致如下。遥控器分为发射模式和接收模式两种,发射模式用来控制设备,发射模式的按键用矩阵键盘实现,节省51单片机的I/O口;接收模式是用来实现学习能力的,学习功能是通过单片机定时器对信号高低电平时间的计数,并存储,然后发射的时候,模拟的是高低电平的时间,从而达到控制作用。不过这准学习不是很准确,可能要学习好几次才能有很好的模拟逼近效果。第8页第3章系统设计3.1方案选取方案一:(简易红外遥控电路)在不需要多路控制的应用场合,可以使用由常规集成电路组成的单通道红外遥控电路。这种遥控电路不需要使用较贵的专用编译码器,因此成本较低。红外发射部分:红外发射产生震荡频率图3-1简易红外遥控电路考虑到本方案电路是简单的单通道遥控器,可直接产生一个控制功能的震荡频率,再通过红外发光二极管发射出去。红外接收部分:解调控制受控电器红外接收图3-2简易接收电路框图当红外接收头接收到控制频率时,由一个电路对其进行解调并产生相应的控制功能。方案二:利用红外遥控开关电路用单片机制作一个红外电器遥控器,为了控制多个电器,且可以有不少功能,所以采用矩阵键盘。红外发射部分结构图如下:单片机按键控制红外发射图3-3单片机控制红外发射电路框图第9页当按下遥控按钮时,单片机通过矩阵键盘的检测,然后生成对应按键的代码,单片机产生38khz的载波,把这些代码数据传给红外管,由红外发光二极管发射出去。红外接收部分结构如下:图3-4单片机控制接收电路框图当红外接收器接收到红外信号时,就可以自动解码,然后把数据传给单片机,然后单片机把数据显示出来,这是做科研,实际产品就不是显示,而是直接控制电器,比方说电视剧的频道或者音量加减等等。方案三:利用430单片机或者STM32做遥控器这里就不给出具体的方案,因为考虑到成本问题,这些单片机固然可以达到低功耗等优点,但是成本上是一个问题,所以,综合考虑,还是不划算。然后比较方案一和方案二,由于方案一功能比较单一,程序固化死了,只能做简单的单一的遥控,不能改进升级,这对用户而言是很难接收的。相比较而言,加入单片机,这样来说,程序可控可修改,用户还可以根据自己要求来实现对遥控器的设置工作。所以,我们在这里选择第二种方案。在元器件的选择方面,核心芯片就是STC89C52,它用来做核心控制和处理,因为只用到了矩阵键盘的检测和串口通信,所以,51系列的单片机就够用了。这里矩阵键盘和串口通信部分也没什么好说明的,都是默认常规电路。主要是红外管的选择和接收探头的选择。红外发射管是由红外发光二级管矩组成发光体,用红外辐射效率高的材料(常用砷化镓)制成PN结,正向偏压向PN结注入电流激发红外光,其光谱功率分布为中心波长830950nm。LED是英文LightEmittingDiode的简称,表现是正温度系数,电流越大温度越高,温度越高电流越大,LED红外灯的功率和电流大小有关,但正向电流超过最大额定值时,红外灯发射功率反而下降。红外发射管选用SE304,因为其功率小,但是做遥控器足够了,大功率的成本会高,压降在1V到1.5V之间,电流在20mA左右,都还是比较适合单片机的I/O口条件的。红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括第10页红外监测二极管,放大器,限幅器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。它能与TTL、COMS电路兼容。HS0038为直立侧面收光型。它接收红外信号频率为38kHz,周期约26s,同时能对信号进行放大、检波、整形,得到TTL电平的编码信号。三个管脚分别是地、5V电源、解调信号输出端。因此,这里就选用HS0038作为红外接收头。3.2矩阵键盘电路遥控器它对按键的数量有要求,因为从用户的角度来说,按键数量,从侧面反映了这个遥控器的功能多少。拿电视机的遥控器来说,至少就要0-9,音量加减,频道加减这十四个键,更别说其他的按键,所以按键数量应该要求有很多。这么多按键,如果都用独立按键,就要求能给出很多可用的I/O口出来,但是单片机没有这么多I/O口,所以只能用矩阵键盘,当然,也要有独立按键,这里就是他们两者相结合使用。矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。电路图如图3-5所示。第11页图3-5矩阵键盘电路3.3发射电路发射电路的原理很简单,就是把按键读取的数据代码通过单片机的I/O口的电平高低来选择定时器的打开或关闭,定时器就是产生38khz的PWM波,这样就可以发送信息数据了。电路的原理框图如下:键盘输入口键入编码器指令编码器码元调制器发射驱动键盘矩阵电路键盘输出口扫描信号产生定时信号发生器红外发射管图3-6发射电路原理框图发射电路主要由矩阵键盘电路和定时器产生38khz的调制信号,以及三极管发射驱动电路组成。编码规则则是由软件控制定时器的时间计数实现的。发射电路图是基于开发板的,如矩阵键盘电路,串口通信电路,显示电路都是直接利用开发板实现的。至于发射驱动电路,就是简单的用9014三极管放大实现SE304红外管的驱动。电路图如下。第12页图3-7发射电路图3.4接收电路设计接收电路的原理也很简单,就是发射的逆过程。而且有专门的接收头,已经把电路都全部做好在接收头里面了,所以,只要把接收头的IR端连到单片机的I/O口上,就可以把解码的数据传给单片机了。电路原理框图如下图所示。单片机存储器振荡器红外发射管键盘扫描显示电路键盘显示接收头图3-8红外接收电路框图其实接收电路和发射电路是一个相反的过程,不过由于红外接收头已经集成了解码等步骤,所以,直接把接收头的信号读取到单片机,然后单片机根据信号,采取相应的操作,也就是控制。当然,学习功能就是基于接收头和单片机的定时器对接收信号的长短的记录,然后再存取起来,当要用时,就发射记录的结果就可以达到模拟效果。接收电路图更简单,因为集成程度很高。电路也是按照开发板的电路基础上,增加接收电路的,因为是用外部中断方式,所以只要把接收电路的一端和单片机的P32口相连就可以。电路如下。第13页图3-9接收电路3.5整体电路设计接收电路和发射电路是分开的,所以要有独立按键进行选择这两种模式。整体电路也是基于开发板已有的电路来设计的,矩阵键盘是遥控器的按键,独立按键是选择发射还是接收模式,串口通信是在上位机监测遥控器状态。整体电路图就是发射和接收电路的合并。电路图如下。1P.04VC2398756RTSEAOGNXLDpFMIH+-U图3-10整体电路图第14页3.6发射和接收程序设计发射程序不是很复杂,但是分为两个部分,就是矩阵键盘的检测和一帧完整数据的发射。矩阵键盘的检测程序,原理很简单,结合电路图来说,就是把P2口的高四位作为行线,低四位作为列线,检测是否有按键按下,就先看是哪一行的按键,再看是那一列的按键。检测时只要看P2的那个口被拉低就是哪行或哪列被按下。至于按键的代码,就用按键顺序来表示。至于一帧数据的发射,因为一帧数据包括前导码,9ms高电平和4.5ms低电平,和16位地址码,以及8位数据码和8位数据反码。所以这里最主要的就是精确延时。我采用的是单片机的定时器来做的延时,发送数据的“0”、“1”就是高低电平的时间长短。9ms的定时是根据计数的次数实现的,38k频率也就是26us,因为是方波,所以按占空比50%来算,也就是13us,发送8位数据的原理很简单,因为刚开始不论是0还是1,都是先以0.56ms的高电平开始的,然后0,1的低电平时间不同,也就是计数时间不同,计算如下:0.56ms也就560us/13us=43次,如果是1的话,就还有1.68ms,也就是1680us/13us=129次,如果是0的话,就还有0.56ms,也就是43次。这样就发送了一个8位数据,这里把地址的16位也按照两个8位数据来处理,所以就是发送4次8位数据。原理和代码也都和这一样。接收程序就是中断处理,就是外部中断0的处理。程序如下。因为接收和发射是相反的过程,所以先判断有9ms低电平,然后4.5ms的高电平,再接收4组数据,然后通过串口把接收到的一帧数据打印出来,用户就可以从PC上看到发送的是什么数据了。接收程序要注意的点就是串口打印部分,要让每次发射的数据都能被打印出来,就要求每次接收完数据后都要重新把外部中断0给复位,让它处于等待状态,这样等到下次要接收数据的时候,它可以正常工作,所以最后一句EX0=1是必须的。3.7学习功能学习功能,顾名思义,就是能够学习别的遥控器,从而代替别的遥控器,从而起到控制作用。对于我们作为研究来说,这个学习功能有广泛和狭窄之分,广泛的学习功能就是随便给我一个遥控器,不管是按什么规则来编码,我都可以模仿这个遥控器来控制。但是这个是第15页很难做到的,或者做到了,也是很不准确的,比方说最常见的方法就是利用记录时间的方法,就是记录发射全过程,所有的高低电平的时间都记录下来,然后在模拟整个过程。但是这存在的问题就是,你接收到的编码的时间本来就不是精准的,其次,记录时间用的是定时器,用程序控制,这都是有延时的,这就会有误差,如果高低电平的时间非常短,这样的误差就会更加明显,这样发射的码就有可能是错误的。所以我这里研究的是狭窄的学习功能。所谓狭窄,就是指只对一类特定的编码的遥控器,我这里是对NEC类型的编码的遥控器。意思是说,所有采用NEC编码规则的遥控器,我都可以通过学习功能,进行学习,然后用我自制的遥控器代替它,这就是我这里研究的学习功能。这样的话就好办多了,因为编码的规则是已知的,所以我要做的就是对陌生遥控器进行精确解码。其实这个过程和接受过程的原理一样,首先陌生遥控器按下第一个按键,也就发送了这个按键的按照NEC编码下的代码,然后我用接收程序和红外接收头接收这个按键按下发送的数据,然后把这个数据解码出来,我这里是简单的通过串口打印出来,就是直观的显示给我们,然后我们依次按下其他按键,把他们的编码都打印在串口上后,我们要代替这个陌生的遥控器,就可以直接把打印的数据写进发射程序里面,其实也就是把矩阵键盘的按键代码改掉,换成我这里面记录下来的数据这样再发射修改后的按键数据,这时识别出来的就和那个陌生遥控器的码是一样的,这样就完成了学习过程。里面学习过程其实很简单,因为是科研,所以我没有按照产品那样,把它做成一体化,也就是学习过程不是完全的自动学习,而是要手动修改程序,然后重新烧录程序,这样才能完成整过过程的学习。但是其实要是做成产品,也很简单,就是增加一个ROM,把记录的数据存储在ROM里面,然后下次发射的时候,读取的就是ROM里面的数据,这样就做成了一体化设备,不过这对产品来说很有必要,这里面研究的价值不是很大。大致的流程图如下:第16页图3-11学习功能流程图从流程图可以看得出来,首先是接收一个遥控器发射的信号,这里面主要是利用高低电平的时间采样来确定信号和编码的。因为高低电平时间的读取会有误差,所以,判断的时候,就必然存在的是在一定误差|s|内是认为可以容许的,也就是说还是能识别出来的。这个误差的判断不是越小越好,因为太小了,就会把正常的判定给误判了,太大也不好,也会把不是正常的给判定为正常的。所以,这里面,是采用多次的读取,然后取平均值,然后把这个开始接收红外信号解码串口打印数据数据存rom读取rom发射多次数据误差在|s|范围内接收多次数据学习成功学习失败结束和串口数据比较多次数据平均值是否第17页平均值和标准的数值进行比较,如果,误差在这个容许的范围内的话,就是认为学习成功了,如果超过了这个误差,那就判定为不成功,要重新学习,也就是要重新接收信号,然后再次测量时间,然后判定编码,在重头来一次。至于读和写。写的时候,就是先要接收到信号,然后判定信号的编码,之后把判定结果,存在一个数组里,不过这个数组是内存里面的,要把数据从内存里面存到EEPROM里面,就要通过写指令,程序里面是相当于发送字节一样,发送到ROM,然后就保存了。读取要在写之后,读取是相反的过程,就是把一个字节数据从ROM里面,发送到内存里定义的一个数组里,然后就可以直接运用这个数组了,也就是对编码进行操作。简单的说,学习功能,其实就是读取数据,然后存储,最后再发射数据的过程。这个过程的关键在于成功的接收数据,如果数据接收都不成功的话,就没办法学习了,更别说发射数据了。这里面增加的一个判断,就是看接收到的数据再次发射出去,是否和再次接收的是一致的,如果一致,那就说明,这个学习是成功的,可以用于控制和实际应用的。第18页第4章整体调试软件设计是分开设计的,所以先按分开调试来说,分为矩阵键盘电路和程序调试;发射电路和发射程序调试;接收电路和接收程序调试;显示电路和显示程序就直接和接收的放在一起调试,因为采用的是上位机,通过串口传给PC然后显示出来的。4.1矩阵键盘矩阵键盘的检测一般是用LED的指示灯来显示的。不过我这里,为了能把矩阵键盘的代码给显示出来,所以采用的是串口打印出对应位置的矩阵键盘的代码数据。这样做的目的也是为了红外发射检测,因为接收端不知道发送的是什么数据,而发送端只知道按下的是那个键也不知道按键的代码数据,这样打印出来,就可以起到提示作用。程序测试结果截图如下,因为按键没有消抖,以及按键时间的不确定性,所以打印的数据不一次的,有可能是很多次,都通过串口打印出来了。图4-1矩阵键盘仿真结果第19页图4-2矩阵键盘测试结果从上图可知,STC-ISP自带的串口调试助手,接收区显示的就是矩阵键盘的测试数据。因为程序中,我默认编码是这样的,就是矩阵键盘的按键共有16个,编号方式是取奇数编号,就是第一个按键我定义为1,第二个按键定义为3,依次类推,一直到第16个我定义为31。然后,从上图的数据显示来看,就是对应的01,03,一直到1F,因为这里是用16进制来显示的,而不是十进制,所以不是31而是1F。很明显,这个结果是正确的,也就表明,矩阵键盘的检测是没有问题的。至于为什么这么编码,其实是程序设计中的需要,因为我不是按照1-16来给按键编码的,而是用间隔一个。实验中发现,程序运行有时间延迟,所以接收程序的时间检测就存在不确定性,不过,我通过实验发现,一般来说,就差几百微秒,为了避免误判的出现,所以我把两个按键的编码扩大,也就是发射时间延长,这样让程序运行的时间造成的误差就降低了,这就避免了误判按键的情况出现,这也就是为什么我采取的是奇数编码的方式。4.2红外发射和接收红外的发射没办法直观的检测出来,因为红外肉眼是看不到的,要通过示波器或者逻辑分析仪来看管脚的高低电平变化。但是可以和接收程序一起测试,就是发送数据,然后接收第20页头直接接收到数据,再把数据打印出来,这样就可以达到检测的目的。程序测试截图如下。这次就是一帧数据会接收到四个十六进制的数,然后打印在串口助手上。我这里就随机测试了几个按键和发射的数据,打印结果如图。图4-3发送仿真测试结果图第21页图4-4发送数据测试结果图红外发射和接收的检测就是通过对数据进行编码,然后红外管发送编码,之后红外接收头接收编码,并解码,然后对解的码进行比对,如果发现是一样的,就说明是接收成功了,反之就是失败了。不过失败也许是发射失败,也有可能是接收失败,这要看具体的情况。我这里是给出了发射一组已知的数据,然后通过解码,传给串口,再打印出来,之后就比对打印的和我预先设置的编码是否是一致的,一致的就说明没有问题,不然就是有问题的。实验结果如下图所示,这是按下矩阵键盘的0号按键时,接收板的串口打印出来的数据。因为接收程序就是检测电平时间,然后根据时间来选择是那个按键被按下了,然后就打印被按下的按键代码。之所以会出现重复打印,是因为手按下按键这个过程,和红外发射时间相比太长了,然后就会出现这种情况。4.3学习功能学习功能的检测就是用一个电视机遥控器来实现的。具体就是按照NEC的一般编码规则,先9ms高电平,再4.5ms低电平,然后依次发送16位地址数据,和8位用户数据,8位数据反码。所以只要解码的是时候,调一下程序,就可以达到接收这段编码的功能,也就读取了这个遥控器的按键的编码。下图就是接收到的数据编码。第22页图4-5接收数据仿真结果图图4-6接收数据测试结果图第23页下面这幅图是依次按下不同键,也就是发送多帧数据,然后接收并打印出来的结果图。这就是测试结果图,如图4-3所示。图4-4多次发送测试结果图这两幅图的数据,可以看出,是可以完全接收并解码电视机的遥控器的编码的。第一幅图就是按下按键,然后显示的一帧完整数据,这组数据是“02BD01FE”,并且显示了两次这边是数据的储存功能。这个其中,02是地址编码,遥控器是地址位是反码关系,类似于用户的数据码和反码关系。其中的01和FE就是用户编码,和用户编码的反码。第二幅图就是很多按键依次按下后的数据帧,从数据帧中,可以找到一定的编码规则,比方说地址码都是一样的,但是用户数据码都是不一样的,但是我按键顺序是1-9,所以明显看得出来,用户编码规则就是用户码都是按顺序来的,比方说01,02,等等。当然也不完全所有编码都是这规则,不过还是可以发现规则的。第24页结论首先说功能。主要是红外的发射和接收和学习功能的实现。即利用51作为主芯片,然后配合红外接收头,它把接收电路一体化了,然后做成了一个很小的探头,就可以接收红外信号。发射电路的选择就是利用三极管放大效果,把单片机的I/O口的信号,放大之后传给红外发射管,红外发射管发射出去,再通过红外接收头接收到信号,解码传给单片机,从而实现了实验的整个过程。使用操作方面,首先是对矩阵键盘的检测,一是程序对矩阵键盘的每个按键都做了统一的编码,然后把矩阵键盘的代码打印在PC上。矩阵键盘测试后,直接接红外管,然后按键,发射,这样就发射了按键的代码,因为没有示波器是没有办法检测到红外信号的,肉眼是没办法看到的,所以就要配合接收板,以及接收程序来测试。只要接收到的信号,解码之后的数据和之前打印在串口上的数据是一致的,这就表明没有问题,发射和接收都是正常的20。至于学习功能的测试,这里也只做了很简单的学习功能,所以,我这里就是那一个电视机的遥控器,首先确定它是按照NEC编码规则的遥控器,然后用它来做为陌生的遥控器,让它发射信号,这边用接收头和接收程序检测,并记录代码。只要能接收,并完整检测到代码,就是正常的,说明测试是成功的,但是可能会有一些解码不正常,这是容许的误差,实验中,遥控器的1,8号按键,检测得到的代码就不是正常的,这可能和我写的程序有关,但是大体上都正确解码了,这就说明是可以实现学习功能的。第25页参考文献1李广弟,朱月秀等.单片机基础M.北京:北京航天航空大学出版社,2001.2沙占友,孟志勇.单片机外围电路设计M.北京:电子工业出版社,2006.3何立民.单片机应用技术选编M.北京:北京航天航空大学出版社,2006.4何立民.单片机高级教程-应用与设计M.北京:北京航空航天大学出版社,2000.5李光飞.单片机C程序设计实例指导M.北京:北京航空航天大学出版社,2005.6李真,付植桐.流行单片机实用子程序及应用实例M.北京:清华大学出版社,2002.7王青.家庭智能化系统之红外遥控系统设计与实现M.设计新技术,2005,9:60-63.8楼然苗,李光飞.51系统单片机设计实例M.北京:北京航空航天大学出版社,2003.9求是科技.单片机典型模块设计实例导航M.北京:人民邮电出版社,2004.10龙勐.智能型红外遥控器J.电子技术,1998,9:23-24.11张仁俭.基于89c2051单片机的红外遥控装置及应用J.航天制造技术,2005,3:21-23.12张俊谟.MCS51和80C51系列单片机J.电子世界M,2001,8:15-17.13美国得克萨斯仪器公司.TTL集成电路特性应用手册M.上海无线电十九厂,1976.14王伟生,郑小真.红外遥控在节能和无线操作方面的应用J.红外技术,2006,28(4):224-226.15李朝青.无线发送/接受IC芯片及其数据通信技术选编M.北京:北京航空航天大学出版社,2004.16刘立枫,赵民建.信号接收机.中国无线电电子学文摘J,2005,31:45-47.17裴彦纯.基于单片机系统的红外遥控应用.电子与封装J,2005,5(12):39-41.18聂诗良,李磊民.采用单片机发送并接收红外遥控信号的方法J.信息技术,2004,28(2):21-2396.19MuhammadHRashid.PowerElectronics.PeasronPrenticeHallJ,2003.20郑宇.可控硅控制模块的应用.中国设备工程J,2006

温馨提示

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

评论

0/150

提交评论