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

📄 ledkey.lst

📁 RM0038红外传感器接收电视机摇控的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 180   3                      }
 181   2                      //--------------------
 182   2              }
 183   1              //---------键盘检测
 184   1              key = InIO;
 185   1              if(key)
 186   1              {
 187   2                      if(Prvkey == key)
 188   2                      {
 189   3                              keycount++;
 190   3                              if(keycount == 30)
 191   3                              {
 192   4                                      //AddKey(Prvkey);
 193   4                                      if(KeyPos < 5)
 194   4                                      {
 195   5                                              keybuf[KeyPos++] = Prvkey;
 196   5                                              //Beep(30, 0, 1, 0);
 197   5                                      }//else
 198   4                                      //      Beep(20, 20, 3, 0);
 199   4                              }
 200   3                              if(keycount > 600)
 201   3                              {
 202   4                                      keycount = 450;
 203   4                                      //AddKey(Prvkey);
 204   4                                      if(KeyPos < 5)
 205   4                                      {
 206   5                                              keybuf[KeyPos++] = Prvkey;
 207   5                                              //Beep(30, 0, 1, 0);
 208   5                                      }//else
 209   4                                      //      Beep(20, 20, 3, 0);
 210   4                              }
 211   3                      }
 212   2              }else
 213   1              {
 214   2                      keycount = 0;
 215   2              }
 216   1              Prvkey = key;
 217   1              //----------------------
 218   1              //Beep-------------------------------
 219   1              if(m_BeepDelay <= 0)
 220   1              {
 221   2                      if((m_Times != 0)&&(m_beep == 0))
 222   2                      {
 223   3                              if(m_Times%2)
 224   3                              {
 225   4                                      m_beep = m_CloseDelay;
 226   4                                      BeepIO = 1;
 227   4                              }else
 228   3                              {
 229   4                                      m_beep = m_OpenDelay;
 230   4                                      BeepIO = 0;
 231   4                              }
 232   3                              if(m_Times > 0)
 233   3                              {
 234   4                                      m_Times--;
 235   4                              }else
 236   3                              {
 237   4                                      if(m_Times == -1)
 238   4                                      {
 239   5                                              m_Times = -2;
 240   5                                      }else
 241   4                                      {
C51 COMPILER V7.00  LEDKEY                                                                 07/18/2007 12:16:39 PAGE 5   

 242   5                                              m_Times = -1;
 243   5                                      }
 244   4                              }
 245   3                      }
 246   2                      
 247   2                      if(m_beep > 0)
 248   2                      {
 249   3                              m_beep--;
 250   3                      }
 251   2              }else
 252   1              {
 253   2                      m_BeepDelay--;
 254   2              }
 255   1              //----------------------------------
 256   1              if(g_LedOn%2)m_uFlash++;
 257   1              m_TickCount++;
 258   1      }
 259          
 260          uchar xdata m_uPoint1 = 0;
 261          uchar xdata m_uPoint2 = 0;
 262          
 263          void SetPoint1(uchar uPoint)
 264          {
 265   1              m_uPoint1 = uPoint;
 266   1      }
 267          
 268          void SetPoint2(uchar uPoint)
 269          {
 270   1              m_uPoint2 = uPoint;
 271   1      }
 272          
 273          void ConvetLed(long lShowLed,uchar *p, uchar ws, uchar uPoint)
 274          {
 275   1              uchar i = 0;
 276   1              bit fs = 0;
 277   1              bit fsfirst = 1;
 278   1              if(lShowLed < 0)
 279   1              {
 280   2                      fs = 1;
 281   2                      lShowLed *= -1;
 282   2              }
 283   1              for(i = 0; i < ws; i++)
 284   1              {
 285   2                      if(lShowLed|| (uPoint >= i&& uPoint < ws))
 286   2                      {
 287   3                              p[ws-i-1] = lShowLed%10;
 288   3                              if(uPoint&&(i == uPoint))
 289   3                              {
 290   4                                      p[ws-i-1] |= 0x80;
 291   4                              }
 292   3                              lShowLed /= 10;
 293   3                      }else
 294   2                      {
 295   3                              if(fs&&fsfirst)
 296   3                              {
 297   4                                      fsfirst = 0;
 298   4                                      p[ws-i-1] = 27;
 299   4                              }else
 300   3                              {
 301   4                                      p[ws-i-1] = 0xFF;
 302   4                              }
 303   3                      }
C51 COMPILER V7.00  LEDKEY                                                                 07/18/2007 12:16:39 PAGE 6   

 304   2              }
 305   1      }
 306          
 307          void ConvetLed1(long lShowLed)
 308          {
 309   1              ConvetLed(lShowLed,g_led_buf1,6, m_uPoint1);
 310   1      }
 311          
 312          void ConvetLed2(long lShowLed)
 313          {
 314   1              //ConvetLed(lShowLed,g_led_buf2, 7, m_uPoint2);
 315   1              ConvetLed(lShowLed,g_led_buf2+1, 6, m_uPoint2);
 316   1      }
 317          
 318          void LedCommand(uchar uStart, uchar ledbuf[], uchar *p, uchar uCount)
 319          {
 320   1              uchar i;
 321   1              for(i = uStart; i < uStart + uCount; i++)
 322   1              {
 323   2                      p[i] = ledbuf[i];
 324   2              }
 325   1      }
 326          
 327          void LedCommand1(uchar uStart, uchar ledbuf[], uchar uCount)
 328          {
 329   1              LedCommand(     uStart, ledbuf, g_led_buf1, uCount);
 330   1      }
 331          
 332          void LedCommand2(uchar uStart, uchar ledbuf[], uchar uCount)
 333          {
 334   1              LedCommand(     uStart, ledbuf, g_led_buf2, uCount);
 335   1      }
 336          //打开时间,关闭时间,次数,-1等于一直响着
 337          void Beep(int OpenDelay,int CloseDelay, char Times, int BeepDelay)
 338          {
 339   1              m_BeepDelay = BeepDelay;
 340   1              m_OpenDelay = OpenDelay;
 341   1              m_CloseDelay = CloseDelay;
 342   1              if(Times > 0)
 343   1              {
 344   2                      m_Times = Times*2;
 345   2              }else if(Times == 0)
 346   1              {
 347   2                      m_Times = 0;
 348   2                      BeepIO = 1;
 349   2              }else
 350   1              {
 351   2                      m_Times = -1;
 352   2              }
 353   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1331    ----
   CONSTANT SIZE    =     28    ----
   XDATA SIZE       =     47    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      44
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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