首页 > 微机单片机 >单片机制作 > 基于AT89C2051的红外线接收控制器的制作

基于AT89C2051的红外线接收控制器的制作

来源:互联网发布者:拿铁三分糖 更新时间: 2013/09/20

红外线接收控制器的制作 在生活中,我们常用到红外线控制各类电器,如彩电、空调、电风扇等。为我们带来较多的方便。但有时我们仍感到不方便。如看完电视后,用遥控器只能关掉电视主电源,电视仍处于待机状态。使用者还得走到电视跟前.按下电小 视电源开关方能放心。若想看电视。还得动身开电视,显得很麻烦。尤其是冬天躺在床上看电视,上上下下,深感不便。本文以利用红外遥控器来遥控风扇的制作方法为例(可任选一只红外线遥控器.能调速,软件稍作改变,可增加 定时功能等),来介绍红外线接收控制器的制作方法,如果制作电视交流电源的开、关控制器,可与电视共用一只遥控器,制作也较简单些。 制作思路 红外遥控发射器是利用红外线作载体传送信息的,发射周期不等的经过调制后串行码.该串行码一般由引导码、用户识别码、操作码组成。经红外接收头解码后得到一串周期不等的矩形波。如示意图1。 不同型号的遥控发射器的波形宽度不同。即周期T1、T2……不同.在不知手头遥控发射器的波形周期的情况下.首先要制作一个检测红外线周期的工具。根据测得的周期规律来制作红外线接收控制器。 制作方法 检测红外周期的器件制作.见图2。 当红外接收头没有接收到发射器发送来的红外线.其输出端输出高电平(约+5V)。当接收到红外线,输出端电平变低.送到单片机AT89C2051的外部中断1口即INT1,使其发生中断而进入中断服务:启动定时器1并开M-I-数。相当于在图1的A点.1个周期后即C点。单片机第二次中断。关定时器1.记下周期T1(实际上只记下TH1的数值。 TL1的值可以丢弃)。然后清TH1、TL1,再启动定时器1重新计数,第二个周期完后,同样会引起单片机发生中断.再记 下周期T2"…一,如此记下40-50个周期(一般红外编码为4字节.即32BIT.之前还有引导码。又因接收到的红外数据不一定是从引导码开始,要分析一次完整的串行码,应尽可能多记下红外矩形波周期数)。接收完后,通过按轻触开关将各记下的各周期的THl在数码管显示出来以作分析(每按一次轻触开关,显示下一个周期数)。 编程方法 在main()中开中断。启动定时器1.即EA=I;EX1=1:IT1=1;TRI=I: 在外部中断1的服务程序中编写如下语名:#defineCNT50//预测50个红外线周期 DATA Byte value_h://记录周期的变量(数组) DATA Byte count=0;//接收到的周期数 void int1(void)interrupt 2{ if(TH1==TL1%26;amp;%26;amp;TL1==0)//判断是否是第一次接收到红外数据 { TR1=1: }elseI TRl=0;value_h:THl; THl=TLl=0;TRI=I:count++; if(count==CNT) { EXl=0:count=u; l} l 假设接收到的TH的数值为:30,50.04,08,08,08,04,04,04,04,04,08,08,08,04,04,04,04。08,04,04,08,04,04,04,04,04,04,08,08,04.08,08,08,08,3f,50.... 稍作分析可知。表示高低电平的有效数为:04,08。若将04定作低电平.08定作高电平.舍弃其他数据,得到4字节数据即:01110000。01110000,10010000。01101111。转为十六进制后得:70h,70h,90h,6fh,至此得到遥控发射器刚才按下的键值码.用同样的方法可以测得其他键键值码。假设有:70h,70h,0x90,0x6f。//0键70h,70h.0x00,0xff。//1键70h,70h.0xd0,0x2f//power键 根据以上数据分析得.每键码为4字节.前2字节固定不变,为用户识别码。后2字节均不同,是操作码。将遥控器上的各键键值码测出后,根据这些数据可以根据制作需要进行编程了。因键值码为4字节太长。不利于编程,需要将各键键值转为相对应的1字节的数据,如:70h,70h,0x90,0x6f,对应于O,70h,70h,0x00,0xff对应于1..…· 转换方法: 建立一个数组,将上述测得的各键码按顺序放入数组中(去掉用户识别码) code Byte arr[]= { 0x90,0x6f.//0,尽可能按键0、键1..·…的先后顺序放,以符合习惯 0x00,0xff,//1 …… Oxl0,0xef.//9
提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-24 18:26

如何读prolific usb转串口转过来的串口
也是用createfile读吗 和普通的com特性一样吗 如何读prolific usb转串口转过来的串口 不知道usb转串口是什么原理
 laobushi嵌入式系统
探秘DLP® NIRscan™ Nano评估模块
作为工程师和开发人员,我们的工作就是找到一个将所有元件组合在一起的最佳方法。不管是对于摩天大楼、还是集成电路,内部工程结构都是决定是否能够运转良好的关键之一。但说回来,又有谁不曾幻想做个“破坏王”,把东西都拆开来一探究竟呢?我们最初的与工程设计有关的记忆大部分都来自小时候把看起
 mayloveDSP 与 ARM 处理器
TMS320F280049C学习-GPIO
F28069的GPIO学习,F280049基本大同小异 F280049的MUX有两个,其他的差不多 关于输入部分,C2000有个特色的地方就是 去抖单元或者是去毛刺 ,中断还有一些其他的输入先不了解 然后我在做流水灯实验输出的时候,GPADAT这个寄存器是写入要输出的
 fish001微控制器 MCU
如何设计汽车瞬态和过流保护滤波器
如今在世界的某个地方,已经有汽车工程师开始构想新的汽车信息娱乐系统,但该系统在未来五年或更长时间内不会实现。这是因为,信息娱乐系统应用对电源有很多要求,而且该应用目前仅处于概念阶段。随着信息娱乐系统具有日益复杂的电子功能,其所需的集成电路(IC)数量越来越多,而且这些IC都会共
 alan000345模拟与混合信号
功率放大器经典实验案例——介电弹性体驱动
功率放大器经典实验案例 介电弹性体驱动 功率放大器经典实验案例——介电弹性体驱动 新材料: 介电弹性体。 将获得极大的广泛的应用!前景无限! 是哇~感觉应用领域还是很广的
 aigtekatdz测试/测量
GPS串口输出格式介绍
lm3s8962开发板gps记录器项目,来介绍下gps输出的格式,uart弄好后,弄了好多天,今天终于能够简单的解码gps的输出了 开始用GPS NMEA格式输出的解码库,似乎和lm3s8962有冲突,具体什么原因暂不清楚。 简单的应用只用分析gprmc行的数据就可以得到定位信
 ssawee微控制器 MCU

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved