引言
红外遥控技术因其性能稳定、结构简单、技术成熟等优点而在工业控制、仪器仪表、家电等领域中得到了广泛的应用。一般通常使用专用的配对编、解码芯片,组成红外发射和接收电路,完成对设备或电器的远动控制。图1所示为按此方法进行红外遥控的一般工作过程。
使用专用的配对编、解码芯片来组成红外发射电路和红外接收电路,在控制路数较少时矛盾并不突出。但是当控制路数较多时,其接口的设计和实现就显得比较繁琐;此外因为编、解码芯片通常是专用配对使用的,即某种解码芯片只能识别某种编码芯片的编码,对其他型号的编码芯片的编码则不能识别。因此,不同的编、解码芯片几乎没有互换性。
1 工作原理
通常,红外编码芯片可发出不同脉宽的脉冲组成的脉冲序列,最为常见的脉冲载波频率有38和36kHz,其脉冲序列组成如图2所示。图中,引导段和同步段对于相同的编码芯片是相同的,即9ms低电平和4.5ms高电平;地址段为两个字节数据,第二个字节是第一个字节的反码,针对不同的遥控器,其编码也不相同;数据段也是两个字节组成,第二个字节是第一个字节的反码,对于不同的按键,数据段会不相同,按键的识别也正是根据数据段来判定。
在对脉冲序列的解码中,最主要的就是对0和1的判定,以38kHz的载波频率为例,其0为0.56ms的低电平和0.56ms的高电平组成,1为1.68ms的高电平和0.56ms的低电平组成。因而,准确地定时在解码中至关重要,利用单片机的中断系统和定时器可方便准确地实现这一功能。
2 实施方案
本设计采用由HOLTEK公司生产的212位编码芯片HT12C和MCS??51系列的8051单片机。
提出了一种实现红外遥控技术的方案,即:
(1)由编码电路根据按键发出不同的编码,由红外接收电路接收,经放大、整形、反相后送入外部中断0(INT0)引脚。
(2)每输入一个数位引起一次中断,在中断处理程序中测量该数位的脉宽。
(3)记录代表该数位的TH0值,存入数位暂存表中。
(4)当存入一个完整的编码以后,用查表的方法找出代表0的TH0值。
(5)用该数位的位置值作为特征值,在散转处理程序中找出相应的处理功能。
2.1 硬件实施方案
根据编码芯片HT12C的信号形式和8051单片机的中断系统和定时器的工作原理,设计了利用8051单片机实现红外遥控技术的硬件线路示意图如图3所示。
2.2 编码及解码软件设计
在MCS51系列单片机中,其内置计数器T0,T1可以受门控位GATE的控制而进行定时计数。
当门控位GATE=1时,T0或T1的计数受INT0(对T0)和INT1(对T1)控制,即当TR0或TR1被置1,T0或T1被允许计数时,在INT0或INT1=0时T0或T1并不马上开始工作,仅当INT0或INT1状态由低变高时T0或T1才开始计数[2]。利用T0和T1的这一特性即可实现对脉宽的计量,本设计中正是通过将定时器0设置为受门控位控制的方法来测量脉宽,采用了汇编语言来编制相应的实现接收编、解码程序,设计流程如图4和图5所示。
3 结语
本文提出了一种用单片机直接对红外遥控信号进行解码的方案,一方面,简化了单片机系统的输入接口电路,只使用了P3口的一根位线,因而节省了硬件的开销;另一方面,由于采用软件解码,只要知道编码的格式,就可作相应的处理,很大程度上改善了编码器和解码器的互换性,在使用和设计上增加了更大的灵活性。此外,由于充分利用了单片机的内部资源,使整个应用系统结构更为紧凑,从而降低了系统的设计和实施的成本。