您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于AT89C52的学习型遥控器的设计
基于AT89C52的学习型遥控器的设计摘要:本文介绍了一种基于AT89C52的学习型遥控器,并对其工作原理及软、硬件的设计和实现方法进行了详细的阐述。关键词:AT89C52;学习型遥控器;红外遥控编码Abstract:Thispaperintroducesalearningremote-controllerbasedonthesinglechipmicrocomputerofAT89C52,anddescribestheoperatingprincipleandthedesignofsoftwareandhardwareaswellasitsrealization.Keywords:AT89C52;learningremote-controller;infraredremotecoding引言随着人民生活水平的提高,带红外遥控的家用电器种类繁多,比如电视、空调、VCD等,有些设备也常配有红外装置,如汽车和摩托车的防盗系统。但是,由于各种红外遥控编码格式不同,使得各种产品的遥控器并不能兼容,用户在使用过程中容易产生混乱,这给人们的日常生活带来了诸多不便。针对目前市面上已有的学习型遥控器都只能对一些特定的红外遥控编码进行学习的情况,本文介绍了一种基于单片机的学习型遥控器,以AT89C52为核心,通过测量红外遥控信号的脉冲宽度来原封不动地保存红外遥控编码,并直接利用单片机的定时器产生38KHz的载波信号,而不需要其它电路或芯片来完成,节约了成本。该学习型遥控器能成功地学习、记忆和再现各种红外遥控编码,从而实现了对多个红外遥控装置的统一管理。1、学习型遥控器的工作原理当红外遥控器的某个按键按下时,发射出一组串行二进制遥控编码脉冲。该脉冲由引导码、系统码、功能码和反码组成,通过设置这些编码以及码长便可区分不同的红外遥控器。红外接收器负责红外信号的接收和放大并解调出TTL电平信号送至微处理器进行处理,微处理器通过比较和识别接收来的红外遥控编码便可执行相应的遥控功能[1]。本系统的设计思想是不考虑红外编码方式,仅利用单片机AT89C52对多个红外遥控编码的脉冲宽度进行测量,并原封不动地把发射信号中高、低电平的时间宽度记忆至扩展存储区的指定地址。当要发射红外信号时,从扩展存储区中还原出相应的红外遥控编码,并调制到38KHz的载波信号上,最后,通过三极管放大电路驱动红外发光二极管发射红外信号,达到学习和发射的目的,从而实现一个遥控器控制多种红外遥控设备。2、学习型遥控器的硬件设计及实现图1为基于单片机AT89C52的学习型遥控器的结构框图。系统由红外遥控信号发射器、红外遥控信号接收器、单片机及其外围电路构成。采用12MHz晶振,EEPROM用来存储红外遥控编码。P1口扩展一个4×4的矩阵键盘,并设定一个复合键[2],作为学习和发射功能之间的切换。考虑到有些红外遥控编码较长,EEPROM选用AT24LC32,它是可在线电擦除和电写入的存储器,容量为4KB,32×128Bit。图1学习型遥控器结构图红外接收电路如图2所示。一体化红外接收头采用NB1838,其光电检测和前置放大器集成于同一封装,中心频率为37.9kHz。NB1838的环氧树脂封装结构为其提供了一个特殊的红外滤光器,对自然光和电场干扰有很强的防护性。NB1838的目的是对接收到的红外信号放大、检波、整形,并解调出红外遥控编码,得到TTL电平,反相后输入至AT89C52的P2.1口。当系统进入学习功能时,定时器T0先把经P2.1口的红外遥控编码暂存到RAM[3],最后将其存储至EEPROM指定的地址中,以免数据掉电丢失。图2接收硬件电路图红外发射电路图如图3所示。当系统进入发射功能时,AT89C52首先扫描矩阵键盘以识别相应的按键,然后从EEPROM中取出相应键值的遥控基带信号,即红外遥控编码的高、低平持续时间。同时,直接用定时器T1来产生38KHz的载波信号,从而改善了文献[4]中使用振荡器NEC555产生载波信号的缺陷。最后,将遥控基带信号调制到载波上,经三极管9013和8050进行两级放大以驱动红外发射管辐射出940nm的红外脉冲信号。图3发射硬件电路图图4为整个学习型遥控器的硬件电路设计图。图中的P2.2口接LED指示灯是用来显示系统工作时的各种状态。当进入学习状态时,指示灯亮,学习成功后,指示灯闪烁后灭;当进入发射状态时,指示灯闪烁后灭。图4学习型遥控器硬件电路图3、学习型遥控器的软件设计及实现3.1、主程序单片机上电复位后,首先对定时器T0、T1和I/O口进行初始化并不断扫描矩阵键盘,当检测到有键按下时,进入相应的键盘处理程序。图5为系统主程序流程图。3.2、红外接收程序一体化红外接收头NB1838作为输入接至单片机的P2.1口,由于NB1838的反相作用,在无红外信号时为高电平,一旦检测到有红外信号,起始输入变成低电平。当系统进入学习状态时,开启T0来检测P2.1口的电平变化,并记录下每一个高、低电平的脉冲宽度,当脉冲宽度超过66ms(即超出红外信号的电平宽度)时,确认接收红外信号完毕,T0溢出并产生中断,中断程序中把RAM的数据存入EEPROM。这样,红外脉冲信号就被原封不动地全部记忆和存储。若误进入学习状态,则按下复位键,系统自动退出学习状态,单片机重新扫描键盘。图6为系统学习程序流程图。3.3、红外发射程序单片机不断扫描矩阵键盘,若有键按下,从EEPROM中取出对应键值的存储数据取反后作为T0的初始值,同时启动T0和T1,并用T1产生38KHz的载波信号。在高电平且T0没溢出时,从P2.6口不断地输出载波信号,T0溢出后关闭T0、T1。然后重新启动T0,把EEPROM中下一个地址的数据取反并作为T0的初始值,此时关闭T1,在这个脉冲周期内不产生载波。如此循环反复,从P2.6口输出的就是已调制到载波上的红外脉冲信号,经三极管两级放大来驱动红外发射管输出红外遥控信号。图7为系统发射程序流程图。4、结束语该学习型遥控器操作灵活,可以很好地学习市面上流行的各种遥控器的红外遥控编码,并且能够学习和控制各种不同类型的红外遥控设备,系统稳定可靠。该项技术已经应用到我院自行研制的智能住宅保安系统中,获得了令人满意的效果。若应用OKI公司的MSM7512芯片稍加改造就可以在学习红外遥控编码后实现远程无线遥控。参考文献[1]李建华.实用遥控器原理与制作[M].北京:人民邮电出版社,1996.[2]周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,2002.[3]何立明.MCS-51系列单片机应用系统设计[M].北京:北京航空航天大学出版社,1990.[4]安颖,刘丽娜.具有学习功能的智能遥控器[J].微计算机信息,2005,21(3):23.
本文标题:基于AT89C52的学习型遥控器的设计
链接地址:https://www.777doc.com/doc-2568512 .html