51单片机红外遥控解码

51单片机红外遥控解码

ID:43058398

大小:28.01 KB

页数:5页

时间:2019-09-26

51单片机红外遥控解码_第1页
51单片机红外遥控解码_第2页
51单片机红外遥控解码_第3页
51单片机红外遥控解码_第4页
51单片机红外遥控解码_第5页
资源描述:

《51单片机红外遥控解码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、51单片机红外遥控解码红外遥控发射芯片采用PPM编码方式,当发射器按键按下后,将发射一组108ms的编码脉冲。遥控编码脉冲由前导码、8位用户码、8位用户码的反码、8位操作码以及8位操作码的反码组成。通过对用户码的检验,每个遥控器只能控制一个设备动作,这样可以有效地防止多个设备之间的干扰。编码后面还要有编码的反码,用来检验编码接收的正确性,防止误操作,增强系统的可靠性。前导码是一个遥控码的起始部分,由一个9ms的低电平(起始码)和一个4.5ms的高电平(结果码)组成,作为接受数据的准备脉冲。以脉宽为0.56ms、周期为1.12ms的组合表示二进制的“0”;以脉宽为1.68ms、周期为2

2、.24ms的组合表示二进制的“1”。如果按键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。单片机采用外部中断INTI管脚和红外接收头的信号线相连,中断方式为边沿触发方式。并用定时器0计算中断的间隔时间,来区分前导码、二进制的“1”、“0”码。并将8位操作码提取出来在数码管上显示。//解码值在Im[2]中,当IrOK=1时解码有效。/*51单片机红外遥控解码程序*///用遥控器对准红外接收头,按下遥控器按键,在数码管前两位上就会显示对应按键的编码#include#defineucharunsignedchar

3、sbitdula=P2^6;sbitwela=P2^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,                       0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharf;#defineImax14000   //此处为晶振为11.0592时的取值,#defineImin8000   //如用其它频率的晶振时,#defineInum11450   //要改变相应的取值。#defineInum2700#defineInum33000unsigne

4、dcharIm[4]={0x00,0x00,0x00,0x00};ucharshow[2]={0,0};unsignedlongm,Tc;unsignedcharIrOK;voiddelay(uchari){ ucharj,k; for(j=i;j>0;j--)   for(k=125;k>0;k--);}voiddisplay(){  dula=0;  P0=table[show[0]];  dula=1;  dula=0;    wela=0;  P0=0xfe;  wela=1;  wela=0;  delay(5);    P0=table[show[1]];  dula=1

5、;  dula=0;    P0=0xfd;  wela=1;  wela=0;  delay(5);}//外部中断解码程序voidintersvr1(void)interrupt2using1{ Tc=TH0*256+TL0;                                              //提取中断时间间隔时长 TH0=0;   TL0=0;             //定时中断重新置零 if((Tc>Imin)&&(Tc

6、1)     {       if(Tc>Inum1&&Tc>1

7、0x80;m++;     }    if(Tc>Inum2&&Tc>1;m++;//取码  }  if(m==32)  {        m=0;         f=0;       if(Im[2]==~Im[3])     {          IrOK=1;  }       elseIrOK=0;  //取码完成后判断读码是否正确    }              //

8、准备读下一码  } }/*演示主程序*/voidmain(void){   unsignedint a;   m=0;   f=0; EA=1;  IT1=1;EX1=1;  TMOD=0x11;  TH0=0;TL0=0; TR0=1;//ET0=1; while(1) {       if(IrOK==1)  {     show[1]=Im[2]&0x0F;    //取键码的低四位          show[0]=Im[2]>>4;       

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。