微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
2000　Vol.19　No.4　P.29-30



ＬＣ７４６２编码分析及单片机解码实现
丁福庆 李利军
摘 要： 对遥控编码发射集成块ＬＣ７４６２的编码及输出波形进行了分析，给出了用单片机对其解码的方法。
关键词： ＬＣ７４６２芯片 ＬＣ７４６２编码 单片机解码
1　LC7462简介
　　LC7462是红外遥控发送编码芯片，双列扁平20脚封装。本文分析了LC7462的发射波形进行了分析，并利用8031单片机对其进行了解码，它的典型应用如图1所示。

图1　LC7462的典型应用
　　由K10～K13共4条列线和K00～K07共8条行线组成了4×8矩阵也就是共32个键的按键电路。每个按键相当1个开关，当键按下时将对应的行线和列线相连接，每个键的键值即为键符号中的数字。整个编码信号经三级管放大后由红外发射管发射出去。
2　LC7462的输出波形
　　LC7462是一个能发送0～31共32个编码的发送芯片。发送的信号如图2所示由二部分组成，第1个108ms是信号的关键，携带了编码信息。而从第2个108ms开始，将重复1个固定的脉冲，它标志着遥控器的按键没有抬起，表示上1个指令仍在重复。需要注意的是，图2所示的波形是解调后的波形，实际的波形是1个约38kHz的方波载波被图2所示信号所调制。

图2 遥控信号的组成
　　指令的编码由第1个108ms的前67．5ms所携带，它的组成如图3所示。第1部分为1个9ms宽的头信号，停4．5ms后由4个8位二进制数组成，这个13．5ms部分是起同步作用的。第1个8位二进制数为定制码custom，第2个8位二进制数为定制码custom 的反码，第3个8位二进制数为遥控器的指令（即键值），第4个又为指令的反码。整个指令为67．5ms。

图3 遥控信号的指令部分
　　对于任意1个键值发射时宽度是不固定的，这是因为信号的发送是宽度调制。1个二进制位的0和1的宽度不同，而1个8位的二进制数中含有1和0的个数是不固定的，所以1个8位的二进制数宽度并不固定。但2个互为反码的8位二进制数的总宽度应该是固定的。因为共有16个二进制位，1和0各有8个。1为2．25ms0为1．125ms，而不论是0还是1它们的头宽度都是0．56ms。1个具体的8位二进制数发送波形如图4所示。按照低位在前的原则这个数应该是01100100B，即64H。

图4　1个二进制数的8个位
　　编码中设置了定制码是为了使用相同的芯片的遥控器在控制不同种类的设备时不出现互相干扰以及控制错误等现象。
3　单片机解码的实现
　　以8031单片机为例进行说明。红外信号被接收后，首先是放大、解调，然后再倒相、整形，使之成为TTL标准的电平。可以利用8031的中断功能对信号的脉冲与脉冲之间的宽度进行计算达到对指令的解码目的。处理后的负极性信号送到8031的INT1脚，并将INT1设为脉冲触发中断方式。另外再设置1个计数器，每到来1个脉冲，INT1就中断1次，每次中断就读取1次计数器的值，并将计数器的值清零，为下一次计数做好准备，同时脉冲序号变量＋1。待1个完整的信号的共34个脉冲（4×8＋1个头＋1个尾）的33个脉冲间隔计数得到后，就可通过对其进行计算再比较后计算出每1位的值，以得到定制码和命令码，从而实现了解码，也就是得到了定制码、定制码的反码、指令码以及指令的反码。通过比较定制码和反码以及指令码和反码可实现软件校验的目的。
　　编程时应注意的是同步头的获得，也就是9ms＋4．5ms＝13．5ms宽的同步时间。只有获得了这个同步头以后才能开始对各位脉冲进行计数，否则按干扰处理。
　　在读取计数值时，因为计数器有高字节TH0和低字节TL0之分，所以读数必有先后之分，比如先读高字节，则在读低字节时高字节可能因低字节的进位而发生了变化。为了克服这种情况的出现，在读完低字节后再读1次高字节，将前后2次的高字节读数进行比较，如果相等则此读数有效；否则重复上述过程，直到读数有效为止。
　　因篇幅关系，这里没有给出源程序，感兴趣的读者可同作者联系。
丁福庆（黑龙江呼兰师范专科学校教务处150500）
李利军（黑龙江呼兰师范专科学校教务处150500）
收稿日期：１９９９－１１－２７
