C语言遥控器程序,电视遥控器C51解码程序及其控制电动遥控玩具车举例.doc

电视遥控器的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”的条件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值