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

📄 ledkey.lst

📁 RM0038红外传感器接收电视机摇控的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.00  LEDKEY                                                                 07/18/2007 12:16:39 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE LEDKEY
OBJECT MODULE PLACED IN LedKey.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LedKey.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "LedKey.h"
   2          
   3          xdata DWORD m_TickCount = 0;
   4          DWORD GetTickCount(){return m_TickCount;}
   5          
   6          void Sleep(DWORD iMilliseconds)
   7          {
   8   1              DWORD TickCount = GetTickCount();
   9   1              while((GetTickCount() - TickCount) < iMilliseconds)
  10   1              {
  11   2                      //WDT_CONTR = 0x3C; //复位看门狗
  12   2              }
  13   1      }
  14          
  15          //数码管显示娩冲区
  16          uchar xdata g_led_buf1[8] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
  17          uchar xdata g_led_buf2[8] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
  18          
  19          // 这里定义的是数码管对应的字符字根
  20          code uchar  disbuf_u[]={        
  21                          0xC0,/*0*/
  22                  0xF9,/*1*/
  23                  0xA4,/*2*/
  24                  0xB0,/*3*/
  25                  0x99,/*4*/
  26                  0x92,/*5*/
  27                  0x82,/*6*/
  28                  0xF8,/*7*/
  29                  0x80,/*8*/
  30                  0x90,/*9*/
  31                  0x88,/*A*/
  32                  0x83,/*b*/
  33                  0xC6,/*C*/
  34                  0xA7,/*c*/
  35                  0xA1,/*d*/
  36                  0x86,/*E*/
  37                  0x8E,/*F*/
  38                  0x89,/*H*/
  39                  0x8B,/*h*/
  40                  0xC7,/*L*/
  41                  0xAB,/*n*/
  42                  0xC8,/*N*/
  43                  0xA3,/*o*/
  44                  0x8C,/*P*/
  45                  0xAF,/*r*/
  46                  0x87,/*t*/
  47                  0xC1,/*U*/
  48                  0xBF,/*-*/
  49          };
  50          
  51          #define StateIO StateIO_1
  52          #define bSerialRSLed bSerialRSLed_1
  53          
  54          char bdata OutIO _at_ 0x21;
  55          char bdata InIO = 0;
C51 COMPILER V7.00  LEDKEY                                                                 07/18/2007 12:16:39 PAGE 2   

  56          char bdata StateIO _at_ 0x20;
  57          
  58          sbit bSerialRSLed = StateIO^7;
  59          uchar xdata bSerialRSLedDelay = 0;
  60          sbit BeepIO = P4^3;
  61          
  62          #define Refurbish(x) x = 1;x = 0;
  63          #define GledIO P2_2
  64          #define Led1IO P2_0
  65          #define Led2IO P2_1
  66          
  67          uchar xdata g_LedOn = 0;
  68          
  69          //-----------beep------------
  70          int xdata m_OpenDelay = 0;
  71          int xdata m_CloseDelay = 0;
  72          //延时多久执行
  73          int xdata m_BeepDelay = 0;
  74          char xdata m_Times = 0;
  75          int xdata m_beep = 0;
  76          
  77          //Key--------------------------
  78          xdata uchar key;
  79          xdata uchar Prvkey;
  80          xdata uint keycount = 0;
  81          xdata uchar keybuf[6];
  82          xdata uchar KeyPos = 0;
  83          
  84          void AddKey(uchar ukey)
  85          {
  86   1              if(KeyPos < 5)
  87   1              {
  88   2                      keybuf[KeyPos++] = ukey;
  89   2                      Beep(30, 0, 1, 0);
  90   2              }else
  91   1                      Beep(20, 20, 3, 0);
  92   1      }
  93          
  94          uchar GetKey(void)
  95          {
  96   1              if(KeyPos)
  97   1              {
  98   2                      Beep(30, 0, 1, 0);
  99   2                      return keybuf[--KeyPos];
 100   2              }
 101   1              return 0;
 102   1      }
 103          //---------------------------Key
 104          uchar xdata m_uFlash = 0;//闪...
 105          uchar xdata m_uFlashBit1 = 0;
 106          uchar xdata m_uFlashBit2 = 0;
 107          void SetLedFlash1(uchar uFlash)
 108          {
 109   1              m_uFlashBit1 = uFlash;
 110   1      }
 111          
 112          void SetLedFlash2(uchar uFlash)
 113          {
 114   1              m_uFlashBit2 = uFlash;
 115   1      }
 116          
 117          //数码管显示中断
C51 COMPILER V7.00  LEDKEY                                                                 07/18/2007 12:16:39 PAGE 3   

 118          void IntLed(void)
 119          {
 120   1              P2_4 = 0;
 121   1              InIO = ~P0;
 122   1              P2_4 = 1;
 123   1              g_led_buf1[6] = ~OutIO;
 124   1              g_led_buf1[7] = ~InIO;
 125   1              g_led_buf2[7] = ~StateIO;
 126   1              P0 = ~OutIO;
 127   1              Refurbish(P2_5);
 128   1              //----------------------------------------
 129   1              P0 = 0xFF;
 130   1              Refurbish(Led1IO);
 131   1              Refurbish(Led2IO);
 132   1              P0 = ~(0x01 << g_LedOn);
 133   1              Refurbish(GledIO);
 134   1      
 135   1              if(g_LedOn < 6)
 136   1              {
 137   2                      if((m_uFlashBit1&(0x20 >> g_LedOn))&&(m_uFlash < 125))
 138   2                      {
 139   3                              P0 = 0xFF;
 140   3                      }else
 141   2                      {
 142   3                              if(g_led_buf1[g_LedOn] != 0xFF)
 143   3                              {
 144   4                                      P0 = disbuf_u[g_led_buf1[g_LedOn]&0x7F];
 145   4                                      if(g_led_buf1[g_LedOn]&0x80)
 146   4                                              P0 &= 0x7F;
 147   4                              }else P0 = 0xFF;
 148   3                      }
 149   2              }else P0 = g_led_buf1[g_LedOn];
 150   1              Refurbish(Led1IO);
 151   1              if(g_LedOn < 7)
 152   1              {
 153   2                      if((m_uFlashBit2&(0x40 >> g_LedOn))&&(m_uFlash < 125))
 154   2                      {
 155   3                              P0 = 0xFF;
 156   3                      }else
 157   2                      {
 158   3                              if(g_led_buf2[g_LedOn] != 0xFF)
 159   3                              {
 160   4                                      P0 = disbuf_u[g_led_buf2[g_LedOn]&0x7F];
 161   4                                      if(g_led_buf2[g_LedOn]&0x80)
 162   4                                              P0 &= 0x7F;
 163   4                              }else P0 = 0xFF;
 164   3                      }
 165   2              }else P0 = g_led_buf2[g_LedOn];
 166   1              Refurbish(Led2IO);
 167   1      
 168   1              g_LedOn++;
 169   1              if(g_LedOn > 8)
 170   1              {
 171   2                      g_LedOn = 0;
 172   2                      //--------------------
 173   2                      if(bSerialRSLed)
 174   2                      {
 175   3                              bSerialRSLedDelay++;
 176   3                              if(bSerialRSLedDelay > 2)
 177   3                              {
 178   4                                      bSerialRSLed = bSerialRSLedDelay = 0;
 179   4                              }
C51 COMPILER V7.00  LEDKEY                                                                 07/18/2007 12:16:39 PAGE 4   

⌨️ 快捷键说明

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