电视机红外遥控和接收的制作(完整的电路、程序、照片).pdf

电视机红外遥控和接收的制作(完整的电路、程序、照片).pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电视机红外遥控和接收的制作(完整的电路、程序、照片)

电视机红外遥控和接收的制作 2011-04-28 12:18 红外遥控器发送数据时,是将二进制数据调制成一系列的脉冲信号红外发射管发射出去,红外载波为频率 38KHz 的方波,红外接收端在收到 38KHz 的载波信号时,会输出低电平,否则输出高电平,从而可以将“时断时续”的 红外光信号解调成一定周期的连续方波信号,再经过 1838 一体化红外接收头解调便可以恢复出原数据信号。 红外遥控器的原理到处是,这里就不多废话了,直接上图: 程序: #includereg52.h #includeintrins.h #includestdio.h #define uint unsigned int #define uchar unsigned char sbit ir=P3^2 ; //红外端口 sbit P2_0=P2^0 ; //LED1 端口 sbit P2_1=P2^1 ; //LED2 端口 sbit P2_2=P2^2 ; //LED3 端口 sbit P2_3=P2^3 ; //LED4 端口 sbit P2_4=P2^4 ; //LED5 端口 sbit P2_5=P2^5 ; //LED6 端口 sbit P2_6=P2^6 ; //LED7 端口 sbit P2_7=P2^7 ; //LED8 端口 uchar key_code=0 ; //遥控键值 uchar new_code=0 ; //有无新按键 uint buf_key_code=0 ; //键值暂存 uchar key_bit_count=0 ; //键编码脉冲计数 uint count 0 ; //定时中断次数计数 uint buf_count=0 ; //定时中断计数暂存 uchar common_code_count=0 ; //前导码脉冲计数 uchar ir_status=0 ; //脉冲接收器所处的状态,0:无信号,1:系统码接收区,2:数据编码接收区 ///延时子程序 10us void delay_10us(unsigned char y) { unsigned char x ; for(x=y;x0;x--); } /////初始化 void init(void) { ir=1 ; //红外端口写 1 EA=1 ; //开总中断 TMOD=0x02 ; //定时器 0,模式 2,8 位自动装载模式 TH0=0Xd1 ; //定时 50us TL0=0Xd1 ; IT0=1 ; //INT1 下降沿触发 ET0=1 ; //允许定时器中断 EX0=1 ; //允许外部中断 } /*********************************************** 定时器中断 ***********************************************/ ///定时器中断 void time0()interrupt 1 { count++; //定时器中断次数累加 } /********************************************** 外部中断,红外解码程序 **********************************************/ ///外部中断 void int1()interrupt 0 { TR0=1 ; //开定时器中断 //如果信号合法,则放入buf_count,count 清 0,对下一个脉冲信号计时 if(count12count270) { buf_count=count ; count=0 ; } delay_10us(10); //延时 100us 以消除下降沿跳变抖动 //INT1 引脚稳定为低电平, 则表法确实是信号, count 重新计时, 因上面延时了 50us,故要 补偿 1 次 TO 中 断 if(ir

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档