电视遥控器的C51解码程序及其控制的电动遥控玩具车举例
彩色电视红外线遥控器小巧方便,抗干扰能力强,遥控距离远,得到广泛应用。其基本原理是通过键盘产生编码,对38K载波调制,经放大,形成一串串脉冲由红外线发射管发射出去,现以M50462AP集成电路的遥控器为例,介绍其编码及其用C语言实现的解码程序。
彩电遥控器由键盘、M50462AP和红外发射管等组成,电原理图如图1:
图1
该遥控器的编码形式为脉宽调制方式,每一条指令由16位二进制编码即17个脉冲组成,如图2:
C0C1C2C3C4C5C6C7D0D1D2D3D4D5D6D7引导码用户码
图2
脉冲宽度0.25MS,编码为“1”时,脉冲间隔为1MS,编码为“0”时,脉冲间隔为2MS,如图3:
0.25ms 0.25ms
1ms2ms
编码“0”编码“1”
图3
指令前8位为引导码,后8位为功能码,M50462AP中的引导码C0~C7由1110XX10组成,C4、C5由外引脚C4、C5控制,当C4、C5悬空或为“1”时,C4、C5为0,反之为1,如以熊猫牌遥控器为例,其引导码为即十六进制“E2H”,按键时间必须大于18MS才能被确认,具有自动消抖功能,按键22MS后开始发送指令,指令周期为44MS,如此循环发送,直到按键被释放。其编码及其对应的功能按键如表一:
序号编码功能序号编码功能序号编码功能100H11298H2+23D8HPIC210H21348HCH-24未知——》308H31450HCH+250D0H〈——418H4150CCHLD+260E8HCLK504H5160DCHLD-270F8HTIME614H61744HVOL+280E4HON-TIME70CH71854HVOL-290F4HSEL81CH8190C4HSD+300ECHINC980H9200D4HSD—311090H0/30210D0HBZ321188H1+225CHTV/AV33 表一
电视遥控器的解码由一片目前广泛使用、体积小而功能极强的AT89C2051单片机作解码芯片, 该单片机内含128B RAM,2K Flash ROM,15根I/O口线,5个中断源,一个全双工串口,2个定时器/计数器,2个外部中断, 时钟频率最高可达24M HZ,而外部引脚仅为20个。遥控接收头直接接89C2051的INT0端,解码利用了定时器T0的门控位GATE位功能捕捉脉冲间隔宽度,即定时器工作不仅要允许位TR0置位,还要INT0引脚为高电平才能开始定时,定时器T0工作在十六位定时器方式,解码如图4:
处理数据 定时过程
0.25ms
图4
至于定时数值的判定,初值为0,以逻辑“1”为例,晶振f=6M HZ,脉宽T=1.75MS,由计算知:
count:=T/(1/f)=875=36BH 由于本文为实验,故仅判定TH0的值,而又因有误差,认为只要 TH0大于等于3即为“1”,否则为“0”,详细见中断流程图。
因大部分工作都由单片机来完成,故硬件电路异常简单,以一电视红外线遥控器遥控的电动程控玩具车为例,用C语言实现的对M50462AP的解码及基本控制,,其具体电路如图5所示:
图5
在电路中,为了简单方便且使成本低廉,变通使用音频放大集成电路TDA2822作电机驱动电路,及所有成品遥控接收头J1,TDA2822中的两个运算放大器构成电压比较器,M1,M2分别为玩具车的前进后退及拐弯电机,本设计只使用了遥控器的7个键,控制前进、后退、前进左拐、前进右拐、后退左拐、后退右拐及停止,若你有兴趣的话,为了逼真还可加上可遥控的前灯、后灯,加上光电管以实现遇障碍物自动拐弯,加上语音芯片实现语言功能,加上霍尔元件实现测量行驶距离,并通过数码管显示出来等。
中断程序流程:
N
值符合条件
Y
N
符合“1”的条件