首页| 行业标准| 论文文档| 电子资料| 图纸模型
购买积分 购买会员 激活码充值

您现在的位置是:团子下载站 > 单片机编程 > LC7461遥控解码子程序源代码

LC7461遥控解码子程序源代码

  • 资源大小:2 K
  • 上传时间:2021-04-11
  • 下载次数:0次
  • 浏览次数:32次
  • 资源积分:1积分
  • 标      签: 7461 LC 遥控 解码

资 源 简 介

//遥控解码子程序,LC7461,用户码为11C//external interrupt0void isr_4(){  unsigned char r_count;//定义解码的个数 unsigned long use_data=0;//定义16位的用户码,只用到13位 unsigned long use_code=0;//定义16位的用户反码,只用到13位 unsigned long data=0;//定义16位数据码,包括8位数据码和反码 unsigned char data_h=0;//数据反码 unsigned char data_l=0;//数据码 _clrwdt();// _delay(7000);//7461解码,延时7000// _delay(7000);//7461解码,延时7000//_delay(7000);//7461解码,延时7000 if(remote==1)  goto error; while(remote==0);//wait to high //_delay(9744);count_delay=0; while(count_delay<143); if(remote==1)  goto error;     /////用户码解码use_data//////////add//////////////////////////     for(r_count=13;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;     while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&use_data);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&use_data);  }  _nop(); //if(remote==1)  //_delay(1680);//wait to low while(remote==1);//wait to low     _nop();     ////////用户码解码finish/////////add/////////add////////     /////用户码反码解码use_code//////////add//////////////////////////     for(r_count=13;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;         while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&use_code);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&use_code);  } _nop(); //if(remote==1) // _delay(1680);//wait to low while(remote==1);//wait to low     _nop();     ////////用户码反码解码finish/////////add/////////add////////     ////数据码解码开始////data_l为用户码,data_h为数据码反码//////////// for(r_count=16;r_count>0;r_count--)  {  while(remote==0);//wait to high  count_delay=0;         while(count_delay<24);//_delay(1680);  _c=remote;  if(_c==1)   {   _lrrc(&data);   count_delay=0;         while(count_delay<32);//_delay(2200);//wait to low   }  else   _lrrc(&data);  } ////数据码解码结束//////////////////////////////////////////////// data_l=data; data_h=data>>8; ///用户码////// use_data>>=3; use_code>>=3; use_code=~use_code; //////// ////如果用户码等与0x11c并且数据码和数据反码都校验一致,解码成功 //if((~data_h==data_l)&&use_data==0x11c)//使用用户码 //跳过用户码 if(~data_h==data_l)//如果数据码和数据反码(取反后)相等,解码正确  {  _nop();  r_data=data_l;//r_data为解出的最终数据码  } //否则解码不成功 _nop(); _nop();error:  //r_data=nocode; _nop();    _nop(); _nop();}
VIP VIP