单片机控制系统的红外遥控器按键识别系统及其使用方法

文档序号:6726555阅读:394来源:国知局
专利名称:单片机控制系统的红外遥控器按键识别系统及其使用方法
技术领域
本发明属于单片机设计技术领域,尤其涉及一种单片机控制系统的红外遥控器按键识别系统及其使用方法。
背景技术
使用单片机设计产品时,设计师往往被要求产品必须有红外遥控功能,他们要从市场上选一种遥控器,用面膜贴掉一些按键,根据方案设计,在适当位置上保留足够数量的按键,然后规定每个按键的功能。作为产品软件的一部分,必须编制红外遥控器按键代码识别程序,以便转到各按键所规定的功能程序去实现相应的功能。现状是市场上各种型号的红外遥控器五花八门,它们的编码格式也不同,设计师往往被卡在这里,不会编制按键代码识别程序,无法进行下一步设计。目前已发表的基于单片机的红外遥控代码识别方法有1、已知遥控器编码芯片的型号(比如UPD6121),而且从资料中查到其编码格式32位编码,一个前导码(9MS高电平,4. 5MS低电平),逻辑O是O. 56MS高电平O. 56MS低电平,逻辑I是1. 68MS高电平O. 56MS低电平,8位用户码,8位用户反码,8位数据码,8位数据反码。超过108MS后是连发码(9MS高电平2. 5MS低电平)。按照如此详尽的编码格式信息,用延时等待方法或者用定时器加外中断方法加以识别,找到各按键的32位二进制代码,然后把它们分别编到产品程序中,以便转到同按键功能相对应的程序段,完成相应的功倉泛。这种方法的缺点是必须在编制产品程序之前先确定遥控器内编码芯片的型号,查找资料,确定编码格式,才能编制该遥控器代码识别程序。但往往无法确定芯片型号,或找不到相关资料,对初次使用红外遥控器设计产品者,自己编按键识别程序是一道难题。按键的物理位置和其功能被程序固定,要想改变其功能,必须改写程序。如果最初所选的遥控器停产,买不到了,或有更便宜的,更好看的,想更换遥控器,则必须改写程序,等于重新设计软件。2、近来,出现了被称为“智能红外遥控系统的解码方法”(潍坊学院学报第10卷第6期),该法不考虑红外编码格式,直接计算同一种逻辑持续的时间,并根据持续时间的比例判断出两种不同的逻辑,用“O”或“ I”表示,经解码后得到红外遥控器上各按键的发射编码,并将这些发射编码存储起来,需要时,再将相应的编码经调制后发射出去。该文中(该方法的目的是)将家中所有的遥控器整合在一起,即实现一个遥控器或一机控制所有能接收红外遥控的电器设备。为此,作者在制作红外接收/解码模块的同时,也设计制作了红外发射模块。显然,这样的方法只是复制其它遥控器的编码发射功能,不能为单片机设计者提供按键识别。不能用于设计各种控制功能的产品上。而且红外线发射器和接收器之间不能有遮挡物,并且应相互对准。家内的电器是分散放置的,该装置若不能手持,怎么用?把各种遥控器的功能集成在一个装置上,其按键功能各不相同,而且数量很多,如何方便直观快捷地选定某个遥控器的某个功能?这些问题都没解决。3,2011年8月15日在“现代电子技术”杂志上发表的“通用红外遥控解码器的设计” ¢3999部队余东锋,国防科技大学刘强),所用数学手段,用矢量量化和聚类法,来解决相同逻辑电平的脉冲宽度有一些分散的问题,用迭代法解决代码重复发送的问题。该方法的缺点在于:其功能同方法2,也不能用于设计各种控制功能的产品上,只是复制某个遥控器的功能而已。其实,只要选择合适的记数脉冲周期来测量逻辑电平的脉冲宽度,其分散度是有限的(同脉冲宽度相比),用简单的逻辑判断(几条指令)就能解决问题;一般,在一个信息发送完毕后,都有一个终结码,其脉冲宽度远大于其它脉冲的宽度,通过逻辑判断就可简单判定信息的结束位置,不存在重复信息占用存储资源问题,不必用那么些数学手段。4、2011年在〈〈微机与应用 >> 杂志第30卷第21期上发表了山东科技大学刘万斌的论文〈〈红外遥控器解码软件设计及应用>>。其功能是:在不掌握遥控器的编码格式的情况下破译每个键的红外编码。其方法是:用外中断加定时计数的方法记录每个脉冲的宽度,判断识别代码。然后同已编在程序中的代码比较,相同时,即转向相应程序段,执行相应的功能。该方法的缺点是:`
要求设计师先确定遥控器,编写它的代码识别程序,确定好每个按键的代码,将其编入程序比较语句中(并不存储所有按键的代码)。有按键按下时,把它的代码同编入程序语句中的代码相比较,再转到各程序段.
该方法的缺点是:只是代码识别,不是按键序号识别,每个按键的功能就被程序固定死了,想改变按键的物理位置,想更换遥控器,就必须重新编写程序,有一定的难度,不是人人都能轻松完成的.即费时又费力。综上所述,到目前为止的任何方法都必须由设计师自行编写遥控器代码识别程序,而且程序编定后,就同遥控器及其上的按键固定在一起了,要更换遥控器,或更动其上按键功能的位置,都必须重写程序。

发明内容
本发明的目的在于:给单片机设计人员提供一个工具,不必自己设计同红外遥控器相关的程序,利用此工具可直接识别在红外遥控器上按的是哪个按键,从而转向同此按键相应的程序,完成相应的功能;各功能键在遥控器上的物理位置可任意设定或改变,遥控器也可随时更换,不必重写程序。完全把设计者从红外遥控器代码识别中解放出来。为了实现上述目的,本发明提出的技术方案是,一种单片机控制系统的红外遥控器按键识别系统,其特征是所述系统包括计算机、单片机在线调试器、按键识别开发器、交流电源适配器和直流稳压电源;其中,所述计算机与单片机在线调试器相连;
所述单片机在线调试器与按键识别开发器相连;所述直流稳压电源与按键识别开发器相连,用于为按键识别开发器提供电能;所述交流电源适配器的一端与单片机在线调试器相连,另一端与交流电源相连,用于将交流电压转换为直流电压后提供给单片机在线调试器;所述按键识别开发器包括可编程芯片、管座、光接收头、模式切换开关电路、运行切换开关电路、按键序号显电路和晶振电路;所述可编程芯片夹到管座上,可编程芯片中包括程序存储器、EEPROM存储器和寄存器;其中,程序存储器用于存储程序、EEPROM存储器用于存储按键代码、寄存器用于存储被按动按键的序号;所述光接收头与可编程芯片相连,用于接收遥控器的红外信号;所述模式切换开关电路和运行切换开关电路分别与可编程芯片相连;所述模式切换开关电路用于选择按键识别开发器的工作模式,所述工作模式包括按键学习模式和按键识别模式;所述运行切换开关电路用于选择所述系统的运行模式,所述运行模式包括在线运行模式和脱机运行模式;所述晶振电路用于产生可编程芯片运行所需的振荡脉冲。所述按键识别开发器包括显示电路,所述显示电路与可编程芯片相连,用于显示被按动按键的序号。一种单片机控制系统的红外遥控器按键识别系统的使用方法,其特征是所述使用方法包括步骤1:设定红外遥控器上需要使用的按键个数N ;步骤2 :为红外遥控器上的按键分配序号,序号从I至N,每个按键只能分配I个序号;步骤3 :将模式切换开关电路切换至按键学习模式,将运行切换开关电路切换至在线运行模式;步骤4 :利用单片机在线调试器将本发明所提供的按键代码识别源程序编译成机器码程序,并将此机器码程序写入可编程芯片的程序存储器中;步骤5 :利用单片机在线调试器在按键识别开发器上运行上述的按键代码识别机器码程序;或者,将运行切换开关电路切换至脱机运行模式,将按键识别开发器同单片机在线调试器断开,直接在按键识别开发器上运行上述的按键代码识别机器码程序;步骤6 :将红外遥控器对准光接收头,每隔至少2秒依次按动序号为I至N的按键;每次按动按键,按键代码识别程序会自动识别所按按键的代码,并将所述按键代码按顺序存储到EEPROM存储器的存储单元中;步骤7 :将运行切换开关电路切换至在线运行模式,将本发明提供的按键序号识别程序和用户程序连结,得到最终用户源程序,利用单片机在线调试器将其编译成最终用户机器码程序并写入可编程芯片中;所述按键序号识别程序在红外遥控器的按键未被按动时处于等待状态,连序不断地查询红外遥控器上是否有按键按动,当查询到红外遥控器上有按键被按动时,识别所按按键的代码,并将所述代码与EEPROM存储器的每个存储单元中的按键代码比较,当被按动按键的代码与储存单元中的按键代码相同时,根据该存储单元所在的位置确定被按动按键的序号,并将该序号存入寄存器;所述用户程序在按键序号识别程序执行后,查询寄存器,获得被按动按键的序号,根据被按动按键的序号调用相应地子程序,执行相应的控制功能;步骤8 :从按键识别开发器上将可编程芯片取下,插入用户板。所述步骤6中,当每次按动按键时,显示电路显示被按动按键的序号。所述步骤6之后与步骤7之前还包括识别按键的步骤,具体为将模式切换开关电路切换至按键识别模式,按动红外遥控器上的任意按键,显示电路显示所按按键的序号。本发明摆脱了红外遥控器按键代码识别的困扰,设计者不必再自己设计同红外遥控器相关的程序,只需用本发明就可简捷而灵活地设计出单片机红外遥控系统,从而减少了设计难度和工作量,缩短了设计周期,提高了工作效率。


图1是单片机控制系统的红外遥控器按键识别系统结构图;图2是单片机控制系统的红外遥控器按键识别系统的使用方法流程图。
具体实施例方式下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。图1是单片机控制系统的红外遥控器按键识别系统结构图。如图1所示,单片机控制系统的红外遥控器按键识别系统包括计算机、单片机在线调试器、按键识别开发器、交流电源适配器和直流稳压电源。其中,计算机与单片机在线调试器相连,单片机在线调试器与按键识别开发器相连。在本实施例中,计算机采用普通PC机,单片机在线调试器的型号为MPLAB-1⑶2。普通PC机与MPLAB-1⑶2通过USB连接。MPLAB-1⑶2通过水晶头连线连接按键识别开发器(图1中 DMSB. DDB) ο直流稳压电源与按键识别开发器相连,用于为按键识别开发器提供电能。交流电源适配器的一端与单片机在线调试器相连,另一端与交流电源相连,用于将交流电压转换为直流电压后提供给单片机在线调试器。按键识别开发器包括可编程芯片、管座、光接收头、模式切换开关电路和运行切换开关电路、晶振电路和按键序号显不电路。本实施例中,可编程芯片的型号为PIC16F876A,可编程芯片夹到管座上,进而可以方便地从按键识别开发器上取下。可编程芯片中包含程序储器、EEPROM存储器和寄存器;其中,程序存储器用于存储程序,EEPROM存储器用于存储按键代码;寄存器用于存储被按动按键的序号。光接收头(图1中TL538)与可编程芯片相连,用于接收遥控器的红外信号。模式切换开关电路(图1中S)和运行切换开关电路(图1中SI)分别与可编程芯片相连。模式切换开关电路用于选择按键识别开发器的工作模式,所述工作模式包括按键学习模式和按键识别模式。运行切换开关电路用于选择所述系统的运行模式,所述运行模式包括在线运行模式和脱机运行模式。按键识别开发器还包括显示电路,在本实施例中,显示电路为LED灯(图1中L5,L4,L3,L2,LI,L0)。该LED灯会以二进制数(L5是最高位,LO是最低位)显示每次所按按键的序号。图2是单片机控制系统的红外遥控器按键识别系统的使用方法流程图。本发明提供的单片机控制系统的红外遥控器按键识别系统首先要进行按键学习过程。由于PIC单片机系统设计师都熟悉MPLAB-1⑶2的用法,因此,本发明对MPLAB-1⑶2的通用操作不作赘述。按键学习过程可以在两种模式下进行模式1、在线运行模式步骤1:按图1所示接好线(先不加220伏电源)。图中虚线框中的“按键识别开发器DMSB. DDB”是本发明提供的硬件(PIC16F876A的管座是带夹紧的活动管座);PC是个人计算机;ICD2是PIC单片机在线调试器(市场上有售,包括9伏电源适配器);5伏直流稳压电源市场上有售。将型号为PIC16F876A的空白芯片夹到DMSB.DDB活动管座上;接通220伏电源,给系统加电。设定红外遥控器上需要使用的按键个数N。步骤2 :为红外遥控器上的按键分配序号,序号从I至N,每个按键只能分配I个序号,按键在红外遥控器上的物理位置可由设计者任意定。步骤3 :将模式切换开关电路切换至按键学习模式,将运行切换开关电路切换至在线运行模式。步骤4 :用I⑶2单片机在线调试器,在Debugger模式下,将本发明提供的按键代码识别源程序DMSB1. ASM编译成机器码程序DMSB1. HEX,并写入PIC16F876A。步骤5 :再用ICD2在硬件DMSB. DDB上运行DMSB1. HEX程序。步骤6 :然后将红外遥控器对准DMSB. DDB上的光接收头TL538,至少隔2秒,依次从I到N按动遥控器上的按键;每按一个按键,DMSB. DDB上的LED灯(L5,L4,L3,L2,LI,L0)会以二进制数(L5是最高位,LO是最低位)显示本次所按按键的序号。请注意观察所按按键的序号是否同显示的一样;一定要按顺序依次按动按键,否则就错位了。本实施例提供的6个LED灯总共可显示63个键,基本够用了,多于63时只不过高位不显示,按键学习过程仍能正常进行。以上操作后,学习过程结束。模式2、脱机运行模式步骤1:按图1所示接好线(先不加220伏电源)。将型号为PIC16F876A的空白芯片夹到DMSB. DDB活动管座上;接通220伏电源,给系统加电。设定红外遥控器上需要使用的按键个数N。步骤2 :为红外遥控器上的按键分配序号,序号从I至N,每个按键只能分配I个序号,按键在红外遥控器上的物理位置可由设计者任意定。步骤3 :将模式切换开关电路切换至按键学习模式,将运行切换开关电路切换至在线运行模式。(即图1中DMSB. DDB上的开关S和SI都打开)。步骤4 :用I⑶2单片机在线调试器,在Progra_er模式下,将本发明提供的按键代码识别源程序DMSB1. ASM编译成DMSB1. HEX程序,并写入PIC16F876A。步骤5 :断开220伏电源,将水晶头从DMSB. DDB上取下;将运行切换开关电路切换至脱机运行模式(即将图1中DMSB.DDB上的SI闭合),模式切换开关电路仍在按键学习模式。将5伏直流稳压电源接到220伏电源上,给DMSB.BBD加电。此时便开始在硬件DMSB.DDB上运行DMSB1.HEX程序了。步骤6:将红外遥控器对准DMSB.DDB上的光接收头TL538,至少隔2秒,依次从I到N按动遥控器上的按键;每按一个按键,DMSB.DDB上的LED灯(L5,L4,L3,L2,LI,L0)会以二进制数(L5是最高位,LO是最低位)显示本次所按按键的序号。请注意观察所按按键的序号是否同显示的一样;一定要按顺序依次按动按键,否则就错位了。以上操作后,学习过程结束。上述按键学习过程结束后,为了重新确认按键的序号是否正确储存,可以执行一次按键识别过程,即步骤7:将模式切换开关电路切换至按键识别模式(即将图1中的S键闭合),使系统处于“按键识别”模式,随意按动任何键,检查LED灯显示值是否同所按按键序号相同。致此,按键学习过程完成,按键的代码识别也自动完成,并已经按先后次序存入PIC16F876A 的 EEPROM 中了。接下来,是将本发明提供的按键序号识别程序(DMSB2.ASM)同用户程序连结起来形成最终用户程序DMSB.ASM,将其编译并写入芯片。步骤8:将运行切换开关电路切换至在线运行模式(即将图1中的DMSB.DDB上的Si打开)。设计者按自己的设计方案,规定未来使用的红外遥控器总共有多少个按键(假定是N个),并依次规定它们的序号为:1,2,…,N。规定这N个按键各自要完成的功能,并根据所要完成的功能编写自己的应用程序(DMSB3.ASM)。按键序号识 别程序(DMSB2.HEX)在没按按键时,处于等待状态,不停地查询遥控器上是否有按键按动,一旦有,就识别出所按动的按键代码,然后将此代码同PIC16F876A中EEPROM储存的代码比较,相同时,就找出此代码在EEPROM中的位置,因为代码是按顺序存储的,程序也就计算出此按键的序号了,序号同按键的对应关系是在“按键学习”阶段确定的;按键序号识别程序把此序号写入单片机芯片PIC16F876A的一个RAM单元中,此单元就是程序DMSB2.ASM中使用的寄存器K。在本发明的DMSB2.ASM程序结尾,设计者应填加查询指令,查询K中数值,根据查询结果,自动转到相应程序段,完成相应的控制功能。如此就完成了(把DMSB2.ASM同用户自己的程序DMSB3.ASM)软件连结。连结后的程序即为最终用户程序(DMSB.ASM)。用ICD2在Programmer模式下,把程序DMSB.ASM编译成DMSB.HEX,然后把它写入PIC16F876A的程序存储器(注意:只写程序,不要破坏EEPROM中的数据)。在这之前(在“按键学习”阶段)已经将N个按键的代码写入PIC16F876A的EEPROM里了。步骤9:最后,将PIC16F876A芯片从DMSB.DDB上取下,插入设计者自己的单片机控制系统上,即可运行其设计的产品了。若要成批烧写芯片,则可以把在上步中写好的PIC16F876A芯片(作为母片),夹在按键识别开发器DMSB.DDB的活动插座上,分别点击PIC单片机在线调试器MPLAB I⑶2上的Read target device 和 Reads device EEPROM,把母片上的 DMSB.HEX 和 EEPROM 中的按键代码读出,之后取下母片,夹上空白PIC16F876A芯片。在Programmer模式下,把DMSB.HEX和EEPROM中的数据写入空白芯片,就完成了烧写过程。如此返复操作,可写多个芯片。长久以来,工程技术人员在设计使用红外遥控器的单片机控制系统时,苦于不知道怎样把红外遥控器用于自己的设计中,而现有的已发表的方法,,存在许多缺点,不易使用,不易掌握,不够灵便。使用本发明提供的系统和方法,设计者可以到市场购买自己喜欢的红外遥控器,设置按键数N,在合适的位置留下N个按键,遥控器上多余的按键用面膜盖住。把这N个按键分别付于序号1,2,…N。按键的序号和应用程序中的控制功能必须一一对应,按键的物理位置可自己选定。不同序号的按键完成不同的控制功能。某个序号可以分配给遥控器上任何物理位置上的按键,唯独要注意的是:不同物理位置上的按键不可分配相同的序号.一个按键只能有一个序号。之后,要先完成上述的按键学习过程,在学习过程完成后,程序已把N个按键的代码都存入PIC16F876A的EEPROM中了。最后,将按键序号识别程序和用户程序连接并写入芯片,即可解决设计人员设计单片机系统时遇到的不知如何用红外遥控器进行设计的难题。本发明给予广大此领域的技术人员一个有力工具:摆脱了红外遥控器按键代码识别的困扰,不必自己设计同红外遥控器相关的程序,只需用本发明提供的硬件和软件,就可简捷而灵活的设计出单片机红外遥控系统了。减少了设计难度和工作量,缩短了设计周期,提高了效率。利用本系统,还可以成批烧写芯片,省去了烧写器,降低了成本。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范 围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种单片机控制系统的红外遥控器按键识别系统,其特征是所述系统包括计算机、单片机在线调试器、按键识别开发器、交流电源适配器和直流稳压电源; 其中,所述计算机与单片机在线调试器相连; 所述单片机在线调试器与按键识别开发器相连; 所述直流稳压电源与按键识别开发器相连,用于为按键识别开发器提供电能; 所述交流电源适配器的一端与单片机在线调试器相连,另一端与交流电源相连,用于将交流电压转换为直流电压后提供给单片机在线调试器; 所述按键识别开发器包括可编程芯片、管座、光接收头、模式切换开关电路、运行切换开关电路、按键序号显电路和晶振电路; 所述可编程芯片夹到管座上,可编程芯片中包括程序存储器、EEPROM存储器和寄存器;其中,程序存储器用于存储程序、EEPROM存储器用于存储按键代码;寄存器用于存储被按动按键的序号; 所述光接收头与可编程芯片相连,用于接收遥控器的红外信号; 所述模式切换开关电路和运行切换开关电路分别与可编程芯片相连; 所述模式切换开关电路用于选择按键识别开发器的工作模式,所述工作模式包括按键学习模式和按键识别模式; 所述运行切换开关电路用于选择所述系统的运行模式,所述运行模式包括在线运行模式和脱机运行模式; 所述晶振电路用于产生可编程芯片运行所需的振荡脉冲。
2.根据权利要求1所述的系统,其特征是所述按键识别开发器包括显示电路,所述显示电路与可编程芯片相连,用于显示被按动按键的序号。
3.一种单片机控制系统的红外遥控器按键识别系统的使用方法,其特征是所述使用方法包括: 步骤1:设定红外遥控器上需要使用的按键个数N ; 步骤2:为红外遥控器上的按键分配序号,序号从I至N,每个按键只能分配I个序号;步骤3:将模式切换开关电路切换至按键学习模式,将运行切换开关电路切换至在线运行模式; 步骤4:利用单片机在线调试器将按键代码识别源程序编译成机器码程序,并将此机器码程序写入可编程芯片的程序存储器中; 步骤5:利用单片机在线调试器在按键识别开发器上运行步骤4中已写入可编程芯片的机器码程序; 或者,将运行切换开关电路切换至脱机运行模式,将单片机在线调试器同按键识别开发器断开,直接在按键识别开发器上运行编译后的按键代码识别程序; 步骤6:将红外遥控器对准光接收头,每隔至少2秒依次按动序号为I至N的按键; 每次按动按键,按键代码识别程序会自动识别所按按键的代码,并将所述按键代码按顺序存储到EEPROM存储器的存储单元中; 步骤7:将运行切换开关电路切换至在线运行模式,将按键序号识别程序和用户程序连结,得到最终用户程序,利用单片机在线调试器编译最终用户程序并写入可编程芯片中;所述按键序号识别程序在红外遥控器的按键未被按动时处于等待状态,连序不断地查询红外遥控器上是否有按键按动,当查询到红外遥控器上有按键被按动时,识别该按键的代码,并将所按按键的代码与EEPROM存储器的每个存储单元中的按键代码比较,当被按动按键的代码与储存单元中的按键代码相同时,根据该存储单元所在的位置确定该按键的序号,而后存入寄存器; 所述用户程序在按键序号识别程序执行后,查询寄存器,获得被按动按键的序号,根据该序号调用相应的子程序,执行相应的控制功能; 步骤8:从按键识别开发器上将可编程芯片取下,插入用户板。
4.根据权利要求3所述的使用方法,其特征是所述步骤6中,当每次按动按键时,显示电路显不被按动按键的序号。
5.根据权利要求4所述的使用方法,其特征是所述步骤6之后与步骤7之前还包括识别按键的步骤,具体为:将模式切换开关电路切换至按键识别模式,按动红外遥控器上的任意按键,显示电路显示该被按动按键的序号。
全文摘要
本发明公开了单片机设计技术领域中的一种单片机控制系统的红外遥控器按键识别系统及其使用方法。系统包括计算机、单片机在线调试器、按键识别开发器、交流电源适配器和直流稳压电源,按键识别开发器包括可编程芯片、管座、光接收头、模式切换开关电路、运行切换开关电路、晶振电路和按键序号显示电路;使用方法是用本发明提供的按键代码识别程序在按键学习步骤,自动将按键代码顺序地存入EEPROM存储单元;在按键识别步骤,可自动验证按键序号与实际按键是否对应;然后将本发明提供的按键序号识别程序和用户程序连结,一起写入可编程芯片;最后将可编程芯片插入用户板卡。本发明使单片机设计人员摆脱了红外遥控器按键代码识别的困扰,减少了设计难度和工作量。
文档编号G08C23/04GK103078649SQ201210563720
公开日2013年5月1日 申请日期2012年12月21日 优先权日2012年12月21日
发明者贾静平 申请人:华北电力大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1