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

📄 remote_led.lst

📁 一个非常好的微处理器检测遥控器编码的C++ 原代码项目文件,直接可用,LED显示
💻 LST
📖 第 1 页 / 共 3 页
字号:
 119   5                                                                                      if      ((bInKey_Valid)&&(Key_Data==Display_MODE))
 120   5                                                                                              {bDISP_DATA_TYPE=!bDISP_DATA_TYPE;}
 121   5                                                                                      else {;}
 122   5                                                                                      bInKey_Valid=LOW;
 123   5                                                                                      if  (bDISP_DATA_TYPE==UserCode) 
 124   5                                                                                              {       disp_buff[0]=Disp_00To0F[0x0c];//////////////display usercode
 125   6                                                                                                      if      (UsercodeL==UsercodeH)//////////usercode is 8 bit address
 126   6                                                                                                              {       disp_buff[1]=Disp_00To0F[UsercodeL&0x0f];
 127   7                                                                                                                      disp_buff[2]=Disp_00To0F[UsercodeL>>4];
 128   7                                                                                                                      disp_buff[3]=Disp_00To0F[16];
 129   7                                                                                                                      disp_buff[4]=Disp_00To0F[0];
 130   7                                                                                                              }
 131   6                                                                                                      else///////////////////////////////usercode is 16 bit address
 132   6                                                                                                      {       disp_buff[1]=Disp_00To0F[UsercodeL&0x0f];
 133   7                                                                                                                      disp_buff[2]=Disp_00To0F[UsercodeL>>4];
 134   7                                                                                                                      disp_buff[3]=Disp_00To0F[UsercodeH&0x0f];
 135   7                                                                                                                      disp_buff[4]=Disp_00To0F[UsercodeH>>4];
 136   7                                                                                                              }
 137   6                                                                                              }
 138   5                                                                                      else/////////////////////////////////////////////////display keydata 
 139   5                                                                                              {       disp_buff[0]=Disp_00To0F[0x0d];
 140   6                                                                                                      disp_buff[1]=Disp_00To0F[Keydata&0x0f];
 141   6                                                                                                      disp_buff[2]=Disp_00To0F[Keydata>>4];
 142   6                                                                                                      disp_buff[3]=Disp_00To0F[16];
 143   6                                                                                                      disp_buff[4]=Disp_00To0F[0];
 144   6                                                                                              }//end of       if  (bDISP_DATA_TYPE==UserCode)
 145   5                                                                                      disp_str=disp_buff;  //&&(Key_Data==Display_MODE)
 146   5                                                                                      for     (;(!(bInKey_Valid)&&(!bInRemote_Flag)&&(!bDelay30s_Overflow));) 
 147   5                                                                                              Display_Str();
 148   5                                                                                      Delay_DEC30s=DELAY30s;
 149   5                                                                                      if      (bInRemote_Flag)
 150   5                                                                                              {       if      (!InRemote())   Display_Message();
 151   6                                                                                                      bInRemote_Flag=LOW;//////////////display error or noise char
 152   6                                                                                              }
 153   5                                                                              }//end of       for     (;!bDelay30s_Overflow;)
 154   4                                                                      bDelay30s_Overflow=LOW; Delay_DEC30s=0;
 155   4                                                              }//end of       if      (InRemote())
 156   3                                                      else    {Delay_DEC30s=DELAY30s; Display_Message();}///////display error or noise char
 157   3                                              }//end of       if      (bInRemote_Flag)
 158   2                              }   while       (1);
 159   1              }
 160          //////////////////////////////////////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.06   REMOTE_LED                                                            12/06/2004 10:42:26 PAGE 4   

             -//
 161          ///////////////////////////////////////InRemote function//////////////////////////////////////////////////
             -//
 162          bit     InRemote()///////////////////////////////////////the leader signed equal to 1.12ms is PHILIP SAA3010
 163                  {       bit     return_bit;////////////////////////////////////////the leader signed equal to 9ms is NEC PD6122G
 164   1                      if      (bInRemote_T0)  
 165   1                              {
 166   2                                      TR0=LOW; TMOD=0x15; TL0=TH0=0xff; 
 167   2                                      bTimerOrCounter_Flag=COUNT_T0; TR0=TR1=HIGH;    
 168   2                                      bNoise_IR=HIGH; return_bit=LOW;
 169   2                              }
 170   1                      else
 171   1                              {       for     (;(!bInRemote_T0)&&(Counter<=93);){;}// Display_Str();////////////chek 9ms or 1.12ms
 172   2                                      TR0=LOW;TL0=Copy_TL0;
 173   2                                      if      (bInRemote_T0)
 174   2                                              {       if      ((Counter>10)&&(Counter<12)) return_bit=InRemote_Philip();////////PHILIP SAA3010
 175   3                                                      else
 176   3                                                              {       if (Counter>85) return_bit=InRemote_Nec();//85/////////////////////NEC PD6122G
 177   4                                                                      else    {       if      (Counter<=8)
 178   5                                                                                                      {       bNoise_IR=LOW; return_bit=HIGH;}
 179   5                                                                                              else 
 180   5                                                                                                      {       bNoise_IR=LOW; return_bit=LOW;}  //ease error
 181   5                                                                                      }
 182   4                                                              }
 183   3                                              }
 184   2                                      else    
 185   2                                              {       bNoise_IR=LOW; return_bit=LOW;}
 186   2                                      TR0=LOW; TMOD=0x15; TL0=TH0=0xff; bTimerOrCounter_Flag=COUNT_T0; TR0=TR1=HIGH;
 187   2                              }
 188   1                      return  (return_bit);
 189   1              }
 190          //////////////////////////////////////////////////////////////////////////////////////////////////////////
             -//
 191          //////////////////////InRemote_Philip function/////1.5 bit leader 5 bit control and 6 bit data////////////
             -//
 192          bit             InRemote_Philip()/////////////////////////////////////////////////////////////////////PHILIP SAA3010
 193                  {       uchar   Temp1,Temp2,i;////////////////the leader signed is low 1.12ms high 0.56ms low 0.84ms
 194   1                      bit             bTemp;///////////////////////////////////the data is high(or low) 0.84ms low(or high) 0.84ms
 195   1                      Temp1=0x00; 
 196   1                      for     (;(bInRemote_T0)&&(Counter<7);) {;}// Display_Str();
 197   1                      if      (!((!bInRemote_T0)&&(Counter>=4))) { bNoise_IR=LOW;return (LOW);}
 198   1                              {       TL0=Copy_TL0;
 199   2                                      for     (Counter=0;Counter<10;) {;}// Display_Str();
 200   2                                      if      (!bInRemote_T0)/////////////the 1ms delay include 0.84ms leader signed and 0.16ms data
 201   2                                              {       Temp1=0x01;
 202   3                                                      for     (Counter=0;(!bInRemote_T0)&&(Counter<8);) {;}// Display_Str();
 203   3                                                      if      ((bInRemote_T0)&&(Counter>=6))/////////the remainder 0.68ms delay is last data
 204   3                                                                      {       for (;Counter<16;) {;}}
 205   3                                                      else    {       bNoise_IR=LOW;return (LOW);} 
 206   3                                              }
 207   2                                      else
 208   2                                              {       for     (Counter=0;((bInRemote_T0)&&(Counter<9));) {;} //Display_Str();
 209   3                                                      if      ((!bInRemote_T0)&&(Counter>=6))
 210   3                                                                      {       for (;Counter<16;) {;}}
 211   3                                                      else    {       bNoise_IR=LOW;return (LOW);}
 212   3                                              }
 213   2                                      for     (i=0;i<5;i++)
 214   2                                              {       Temp1<<=1;
 215   3                                                      bTemp=bInRemote_T0;
 216   3                                                      for     (Counter=0;Counter<8;) {;} //Display_Str();
 217   3                                                      if      (bInRemote_T0==bTemp) { bNoise_IR=LOW;return (LOW);}
 218   3                                                      if      (bInRemote_T0) Temp1|=0x01;
C51 COMPILER V7.06   REMOTE_LED                                                            12/06/2004 10:42:26 PAGE 5   

 219   3                                                      for     (Counter=0;Counter<8;) {;} //Display_Str();
 220   3                                              }
 221   2                                      Temp2=0x00;
 222   2                                      for     (i=0;i<6;i++)
 223   2                                              {       Temp2<<=1;
 224   3                                                      bTemp=bInRemote_T0;
 225   3                                                      for     (Counter=0;Counter<8;) {;} //Display_Str();
 226   3                                                      if      (bInRemote_T0==bTemp) { bNoise_IR=LOW;return (LOW);}
 227   3                                                      if      (bInRemote_T0) Temp2|=0x01;
 228   3                                                      for     (Counter=0;Counter<8;) {;} //Display_Str();
 229   3                                              }
 230   2                                      UsercodeL=UsercodeH=Temp1; Keydata=Temp2;
 231   2                                      if      (DISP_CHIP_TYPE==NEC_PD6122G)   {DISP_CHIP_TYPE=PHILIP_SAA3010; bCHIP_TYPE_STAU=HIGH;}
 232   2                              }//end of       if      (!((!bInRemote_T0)&&(Counter>=4)))
 233   1                      bNoise_IR=LOW;return    (HIGH);
 234   1              }
 235          //////////////////////////////////////////////////////////////////////////////////////////////////////////
             -//
 236          //////////////////InRemote_Nec function 8 bit usercode 8 bit keydata and it con-code//////////////////////
             -//
 237          bit             InRemote_Nec()///////////////////////////////////////////////////////////////////////////NEC PD6122G
 238                  {       uchar   i,j;////////////////////////////////////////////////the leader is low 9ms high 4.5ms
 239   1                      uchar   Temp[4];//////////////////////////////the data is low 0.56ms high 0.56ms("0") or 1.68ms("1")
 240   1                      TR0=HIGH;
 241   1                      for     (Counter=0;(bInRemote_T0)&&(Counter<48);) {;} //Display_Str();
 242   1                      if      ((!bInRemote_T0)&&(Counter>=19)&&(Counter<=24))
 243   1                              {
 244   2                                      for     (Counter=0;(!bInRemote_T0)&&(Counter<7);) {;}// Display_Str();
 245   2                                      if      ((bInRemote_T0)&&(Counter>=3)) {        bNoise_IR=LOW;return    (HIGH);}
 246   2                                      bNoise_IR=LOW;return (LOW);
 247   2                              }
 248   1                      if      (!((!bInRemote_T0)&&(Counter>=40))) {   bNoise_IR=LOW;return (LOW);}
 249   1                              {       for     (i=0;i<4;i++)
 250   2                                              {       Temp[i]=0x00;
 251   3                                                      for     (j=0;j<8;j++)
 252   3                                                              {       //TL0=Copy_TL0;
 253   4                                                                      for     (Counter=0;(!bInRemote_T0)&&(Counter<7);) {;}// Display_Str();//6
 254   4                                                                      if      (!((bInRemote_T0)&&(Counter>=3))) {  bNoise_IR=LOW;return (LOW);}//ease error
 255   4                                                                      //TL0=Copy_TL0; TH0=Copy_TH0;
 256   4                                                                      for     (Counter=0;(bInRemote_T0)&&(Counter<24);) {;}// Display_Str();
 257   4                                                                      Temp[i]>>=1;
 258   4                                                                      if      (bInRemote_T0) {        bNoise_IR=LOW;return (LOW);}

⌨️ 快捷键说明

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