红外遥控器解码软件设计及应用
扫描二维码
随时随地手机看文章
摘 要: 传统的红外遥控器解码,需要预知发射端红外编码格式,不同的编码格式软件不通用,可移植性差。通过对遥控器红外信号的采集、分析,提出基于AT87C52单片机外部中断,利用HS0038红外线接收器的红外遥控器的解码软件的设计及其应用,可以在不掌握遥控器的编码格式的情况下,破译每个键的红外编码,进而将其扩展为单片机的键盘系统。其程序通用性好,装置集成化高,可以方便地应用于其他红外遥控接收装置。
关键词: 单片机;外部中断;红外遥控器;解码;键盘
红外遥控器是一种无线的、非接触控制装置,具有抗干扰能力强、信息传输可靠、功耗低、成本低的特点,广泛应用于日常生活和工业中[1]。由于不同公司生产的遥控器编码码制往往不同,通常不可移植。考虑到C语言与汇编语言相比具有书写方便易于开发等特点,本文设计了一种简单的红外线接收电路,通过C语言软件设计,实现对万用遥控器的解码,可以方便地应用于其他红外遥控设备。
1 系统的实现
1.1 红外信号的构成
红外通信主要由发射和接收两部分组成。发射端将待发送的二进制信号编码成一系列脉冲串信号,通过红外发射管发送。接收端接收信号的同时,对红外信号进行放大、检波、整形后得到TTL电平编码,送入单片机处理[2]。红外发射二极管发送的信号是频率为38 kHz的间断脉冲串,相当于用二进制信号的编码乘以频率为38 kHz的脉冲信号得到的间断脉冲串。如图1所示,A是二进制信号的编码波形,B是频率为38 kHz周期为26 μs的连续脉冲串,C是经调制后的间断脉冲串(相当于C=A×B),用于红外发射二极管发送的波形。图1中,待发送的二进制数据为101。
1.2 红外发射接收部分设计
本文采用的红外遥控器共6个键,分别是开关、震动、气泡、定时、加温、减温。接收的部分选用HS0038红外接收探头,接收频率为38 kHz、周期为26 μs的红外信号。HS0038是黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号的情况下,其接收距离可达35 m;它能与TTL、CMOS电路兼容;HS0038为直立侧面收光型,同时能对信号进行放大、检波、整形得到TTL电平的编码信号。3个管脚分别是地、+5 V电源、解调信号输出端。
红外解码电路如图2所示,当HS0038接收到红外信号时,输出端输出脉冲,触发三极管导通,发光二极管通电发光[3],这样可以直观地看到发射、接收部分是否正常工作。输出端接AT87C52单片机的T0口,下降沿触发T0计数器计数[4]。
2 解码方案
单片机T0口接收到脉冲下降沿后,T0计数器计数,下一次下降沿触发计数器停止,并把结果存在预先设置好的数组中。数组里面的数字代表一个信号的长短。虽然不同厂商的红外遥控器编码形制不同,但在所有的编码中,0、1信号只有长度的区别。根据这个原理,对采集到的信号组进行分析,定义长的信号为1,短的信号为0。反复实验就得到各个按键的编码,破解后的遥控器可以用作单片机的扩展键盘。图3为解码程序主流程图。