⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p87lpc762+nb9148红外线遥控.lst

📁 P87LPC762+NB9148红外线遥控.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
 123   4                                      case 10:                                                //检验重复发送的第11位数据 
 124   4                                                      if(RedBit!=RedData10) goto RClear;
 125   4                                                      break;
 126   4                                      case 11:                                                //检验重复发送的第12位数据 
 127   4                                                      if(RedBit!=RedData11) goto RClear;
 128   4                                                      RedMsg=1;                               //接受到经过检验正确的编码后置位遥控消息 
 129   4                                                      RedBit=0;                               //复位接收位 
 130   4                                                      RSend=0;                                //复位重新发送标志 
 131   4                                                      RedRead=0;                              //复位接收过程标志 
 132   4                                                      RedCon=0;                               //复位载波计数 
 133   4                                                      return;
 134   4                                      default:                                                //重复发送的数据多于12位时判断为错误 
 135   4                                                      goto RClear;
 136   4                                      }
 137   3                              }
 138   2                      else
 139   2                              {switch(RedDataL&0xF)
 140   3                                      {case 0:                                                //保存首次发送的第1位数据 
 141   4                                                      RedData0=RedBit;
 142   4                                                      break;
 143   4                                      case 1:                                                 //保存首次发送的第2位数据 
 144   4                                                      RedData1=RedBit;
 145   4                                                      break;
 146   4                                      case 2:                                                 //保存首次发送的第3位数据 
 147   4                                                      RedData2=RedBit;
 148   4                                                      break;
 149   4                                      case 3:                                                 //保存首次发送的第4位数据 
 150   4                                                      RedData3=RedBit;
 151   4                                                      break;
 152   4                                      case 4:                                                 //保存首次发送的第5位数据 
 153   4                                                      RedData4=RedBit;
 154   4                                                      break;
 155   4                                      case 5:                                                 //保存首次发送的第6位数据 
 156   4                                                      RedData5=RedBit;
 157   4                                                      break;
 158   4                                      case 6:                                                 //保存首次发送的第7位数据 
 159   4                                                      RedData6=RedBit;
 160   4                                                      break;
 161   4                                      case 7:                                                 //保存首次发送的第8位数据 
 162   4                                                      RedData7=RedBit;
 163   4                                                      break;
 164   4                                      case 8:                                                 //保存首次发送的第9位数据 
 165   4                                                      RedData8=RedBit;
 166   4                                                      break;
 167   4                                      case 9:                                                 //保存首次发送的第10位数据 
 168   4                                                      RedData9=RedBit;
 169   4                                                      break;
 170   4                                      case 10:                                                //保存首次发送的第11位数据 
 171   4                                                      RedData10=RedBit;
 172   4                                                      break;
 173   4                                      case 11:                                                //保存首次发送的第12位数据 
 174   4                                                      RedData11=RedBit;
 175   4                                                      break;
 176   4                                      default:                                                //首次发送的数据多于12位时判断为错误 
 177   4                                                      goto RClear;
 178   4                                      }
 179   3                              }
C51 COMPILER V7.09   P87LPC762_NB9148_焱_线襙控                                            11/13/2006 09:35:10 PAGE 4   

 180   2                      RedDataL++;                                                     //位位移加1 
 181   2                      RedBit=0;                                                               //复位接收位 
 182   2                      RedRead=0;                                                              //复位接收过程标志 
 183   2                      RedCon=0;                                                               //复位载波计数 
 184   2                      nTimer=423;                                                     //用定时140a 检测同步信号208a 
 185   2                      TF1=0;                                                                  //复位定时器T01益出标志 
 186   2                      ET1=1;                                                                  //启动定时器 
 187   2                      }
 188   1              else if(RSend)                                                          //在位接收没有结束时发生定时中断需要复位接收信息(同步) 
 189   1                              {RClear:
 190   2                              RedDataL=0;                                             //复位红外数据 
 191   2                              RedDataH=0;                                             //复位红外数据 
 192   2                              RedBit=0;                                                       //复位接收位 
 193   2                              RedRead=0;                                                      //复位接收过程标志 
 194   2                              RSend=0;                                                        //复位重新发送标志 
 195   2                              RedCon=0;                                                       //复位载波计数 
 196   2                              ET1=0;                                                          //关闭T01定时 
 197   2                              }
 198   1              }
 199          
 200          void main(void)
 201          {       
 202   1              IEN0=0x14;                                                                      //只打开INT1中断 
 203   1              WDRST=0x1E;                                                             //看门狗清0 
 204   1              WDRST=0xE1;
 205   1              WDCON=0x12;                                                             //40-90ms看门狗(>最大延时37ms) 
 206   1              TCON=0x40;                                                                      //定时器1开始工作,INT1低电平触发 
 207   1              TMOD=0x23;                                                                      //定时器0扩展成两个8位定时器T00和T01用于同步控制 
 208   1      
 209   1              if((WDCON&0x30)!=0x30)                                          //看门狗陷阱复位时无需初始化 
 210   1                      {Message=0;                                             //无消息 
 211   2                      State=0;                                                                //正常复位无任何状态 
 212   2                      }
 213   1              while(1)                                                                        //消息循环 
 214   1                      {WDRST=0x1E;                                                    //看门狗清0 
 215   2                      WDRST=0xE1;
 216   2                      EX1=RedControl;                                                 //设置遥控中断INT1  
 217   2                      if(RedMsg)                                                              //执行遥控指令 
 218   2                              {EX1=0;                                                         //在指令没有处理完之前不能重复中断 
 219   3                              switch(RedDataH)                                        //这里加入红外指令的控制过程 
 220   3                                      {case 0x82:                                     //Channel 1 
 221   4                                                              break;
 222   4                                      case 0xA0:                                              //Channel 2 
 223   4                                                              break;
 224   4                              }
 225   3                              EX1=1;
 226   3                              RedDataL=0;                                             //复位红外数据 
 227   3                              RedDataH=0;                                             //复位红外数据 
 228   3                              RedMsg=0;                                                       //复位红外遥控消息 
 229   3                              }
 230   2                      }
 231   1      
 232   1      
 233   1      }
 234          
 235            
 236          
 237          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    607    ----
C51 COMPILER V7.09   P87LPC762_NB9148_焱_线襙控                                            11/13/2006 09:35:10 PAGE 5   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -