红外线遥控器

上传人:子 文档编号:43605755 上传时间:2018-06-07 格式:DOC 页数:4 大小:1.80MB
返回 下载 相关 举报
红外线遥控器_第1页
第1页 / 共4页
红外线遥控器_第2页
第2页 / 共4页
红外线遥控器_第3页
第3页 / 共4页
红外线遥控器_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《红外线遥控器》由会员分享,可在线阅读,更多相关《红外线遥控器(4页珍藏版)》请在金锄头文库上搜索。

1、 电视遥控器的 C51 解码程序及其控制的电动遥控玩具车举例 彩色电视红外线遥控器小巧方便,抗干扰能力强,遥控距离远,得到广泛应用。其基本原理是通过键盘 产生编码,对 38K 载波调制,经放大,形成一串串脉冲由红外线发射管发射出去,现以 M50462AP 集成电路 的遥控器为例,介绍其编码及其用 C 语言实现的解码程序。 彩电遥控器由键盘、M50462AP 和红外发射管等组成,电原理图如图 1:图 1该遥控器的编码形式为脉宽调制方式,每一条指令由 16 位二进制编码即 17 个脉冲组成,如图 2:引导码用户码图 2脉冲宽度 0.25MS,编码为“1”时,脉冲间隔为 1MS,编码为“0”时,脉冲

2、间隔为 2MS,如图 3: 0.25ms 0.25ms1ms2ms编码“0”编码“1”图 3 指令前 8 位为引导码,后 8 位为功能码,M50462AP 中的引导码 C0C7 由 1110XX10 组成,C4、C5 由外引 脚 C4、C5 控制,当 C4、C5 悬空或为“1”时,C4、C5 为 0,反之为 1,如以熊猫牌遥控器为例,其引导码 为“11100010”即十六进制“E2H” ,按键时间必须大于 18MS 才能被确认,具有自动消抖功能,按键 22MS 后开始发送指令,指令周期为 44MS,如此循环发送,直到按键被释放。其编码及其对应的功能按键如表一:C0C1C2C3C4C5C6C7D

3、0D1D2D3D4D5D6D7序号编码功能序号编码功能序号编码功能100H11298H2+23D8HPIC210H21348HCH-24未知 308H31450HCH+250D0H 418H4150CCHLD+260E8HCLK504H5160DCHLD-270F8HTIME614H61744HVOL+280E4HON-TIME70CH71854HVOL-290F4HSEL81CH8190C4HSD+300ECHINC980H9200D4HSD311090H0/30210D0HBZ321188H1+225CHTV/AV33表一 电视遥控器的解码由一片目前广泛使用、体积小而功能极强的 AT89C

4、2051 单片机作解码芯片, 该单片 机内含 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

5、=6M HZ,脉宽 T=1.75MS,由计算知:count:=T/(1/f)=875=36BH 由于本文为实验,故仅判定 TH0 的值,而又因有误差,认为只要 TH0 大于等 于 3 即为“1” ,否则为“0” ,详细见中断流程图。 因大部分工作都由单片机来完成,故硬件电路异常简单,以一电视红外线遥控器遥控的电动程控玩具车 为例,用 C 语言实现的对 M50462AP 的解码及基本控制, ,其具体电路如图 5 所示:图 5 在电路中,为了简单方便且使成本低廉,变通使用音频放大集成电路 TDA2822 作电机驱动电路,及所有 成品遥控接收头 J1,TDA2822 中的两个运算放大器构成电压比较器

6、,M1,M2 分别为玩具车的前进后退及拐 弯电机,本设计只使用了遥控器的 7 个键,控制前进、后退、前进左拐、前进右拐、后退左拐、后退右拐及 停止,若你有兴趣的话,为了逼真还可加上可遥控的前灯、后灯,加上光电管以实现遇障碍物自动拐弯,加 上语音芯片实现语言功能,加上霍尔元件实现测量行驶距离,并通过数码管显示出来等。中断程序流程:N 值符合条件Y N符合“1”的条件 CY=0YCY=1 左移存数N 满 16 位Y引导码N 为 E2H Y得 KEY 值中断结束原程序如下:本程序在 KIEL V2.30 版调试通过。 #include #include unsigned char key,count

7、,a,b,data1,data2;sbit left = P15;载入定时器值计数器 0 清 0 允许计数sbit right = P14;sbit run = P16;sbit last = P17; void int_e0(void) interrupt 0 /* 中断 0 */ a=TH0;b=TL0;if (a=0x03)| (a=0x01) ) if (a=0x03) CY=1;else CY=0;data1=data1 | CY;data1=1;count-=1;if (count=0x08) data2 = data1;if (count=0x00) count=0x10;if

8、(data2=0xe2) if (data1=0xcc) key=0x19;if (data1=0xd4) key=0x18;if (data1=0x50) key=0x13;if (data1=0x48) key=0x14;if (data1=0x44) key=0x15;if (data1=0x54) key=0x16;if (data1=0xc4) key=0x17; TH0=0;TL0=0;TR0=1; void main(void) TMOD=0x09;EA=1;EX0=1;IT0=1;P1=0X00;P3=0X04;key=0x00;count=0x00;LOOP2: if(key

9、=0x13) left=1;run=1;last=0;right=0; /*前进向左拐*/if(key=0x14) left=0;run=1;right=1;last=0;if(key=0x15) last=0;left=0;right=0;run=1;if(key=0x16) last=1;left=0;right=0;run=0;if(key=0x17) last=1;left=1;right=0;run=0;if(key=0x18) last=0;left=0;right=0,run=0;if(key=0x19) last=1;left=0;right=1,run=0;goto LOOP2;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号