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

📄 led_drv.lst

📁 内部HFGHGFHGFHGFHGFHGFHGFHGFHG
💻 LST
字号:
C51 COMPILER V7.50   LED_DRV                                                               05/11/2009 22:41:46 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LED_DRV
OBJECT MODULE PLACED IN LED_DRV.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LED_DRV.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "config.h"
   2          
   3          Data_595_Str   strData595;              //定义一个595输出数据结构体
   4          
   5          uint8   FLASH_Flag;
   6          uint8   FLASH_Dis_Flag;
   7          uint8   FLASH_Cnt;
   8          
   9          uint8    SegDisTab[CHARLEN] = 
  10          {
  11              SegA|SegB|SegC|SegD|SegE|SegF,          //0
  12              SegB|SegC,                              //1
  13              SegA|SegB|SegG|SegE|SegD,               //2
  14              SegA|SegB|SegC|SegD|SegG,               //3
  15              SegB|SegC|SegF|SegG,                    //4
  16              SegA|SegF|SegG|SegC|SegD,               //5
  17              SegA|SegF|SegG|SegC|SegD|SegE,          //6
  18              SegA|SegB|SegC,                         //7
  19              SegA|SegB|SegC|SegD|SegE|SegF|SegG,     //8
  20              SegA|SegB|SegC|SegD|SegF|SegG,          //9
  21              
  22              SegA|SegB|SegC|SegE|SegF|SegG,          //A
  23              SegC|SegD|SegE|SegF|SegG,               //b
  24              SegA|SegD|SegE|SegF,                    //c
  25              SegB|SegC|SegD|SegE|SegG,               //d
  26              SegA|SegD|SegE|SegF|SegG,               //E
  27              SegA|SegE|SegF|SegG,                    //F
  28              SegB|SegC|SegE|SegF|SegG,               //H
  29              SegD|SegE|SegF,                         //L
  30              SegA|SegB|SegE|SegF|SegG,               //P
  31              SegC|SegE|SegG,                         //n
  32              SegG,                                   //-
  33              SegC|SegD|SegE,                         //v
  34              0                                       //灭
  35          };
  36          
  37          
  38          
  39          void    DisplayInit(void)
  40          {
  41   1          uint8 i;
  42   1          for(i=0; i<6; i++)
  43   1          {
  44   2              strData595.u8DisCode[i] = SegDisTab[Char_0];
  45   2              strData595.u8DisNum[i]  = Char_0;
  46   2          }
  47   1          strData595.u8DisChangeFlag = REFRESH_OFF;
  48   1          DisRefresh();
  49   1      }
  50          
  51          void    ModifyLed(uint8 Pos,uint8 ModifyData,uint8 DotFlag,uint8 FlashFlag)
  52          {
  53   1          uint8 temp;
  54   1          
  55   1          if( DotFlag )  //显示数据到显示码的转换
C51 COMPILER V7.50   LED_DRV                                                               05/11/2009 22:41:46 PAGE 2   

  56   1          {
  57   2              temp = (SegDisTab[ModifyData] | DotFlag);
  58   2          }
  59   1          else
  60   1          {
  61   2              temp = SegDisTab[ModifyData];
  62   2          }
  63   1         
  64   1          if(  strData595.u8DisCode[Pos] != temp )   //是否发生变化的判断和处理
  65   1          {
  66   2              strData595.u8DisCode[Pos]  = temp;
  67   2              strData595.u8DisChangeFlag = REFRESH_ON;
  68   2          }
  69   1          if( FlashFlag != 0 )
  70   1          {
  71   2              FLASH_Dis_Flag |= (1<<Pos);
  72   2          }
  73   1          else
  74   1          {
  75   2              FLASH_Dis_Flag &= ~(1<<Pos);
  76   2          }
  77   1          
  78   1      }
  79          
  80          /* 送显 */
  81          void    DisRefresh(void)
  82          {
  83   1          uint8 i;
  84   1          for(i = 0; i < 6; i++)
  85   1          {
  86   2              SendByte_595(strData595.u8DisCode[i]);
  87   2          }
  88   1          D_ENCLK = 0; 
  89   1          D_ENCLK = 1;
  90   1      }
  91          
  92          /* 刷显 */
  93          void    Display(void)
  94          {                  
  95   1          if(strData595.u8DisChangeFlag == REFRESH_ON)
  96   1          {            
  97   2              DisRefresh();
  98   2              strData595.u8DisChangeFlag = REFRESH_OFF;
  99   2          }
 100   1      }
 101                                         
 102          //闪烁处理
 103          void Flash(void)
 104          {
 105   1          if( FLASH_Flag != 0 )
 106   1          {
 107   2              if( FLASH_Cnt > 50 )
 108   2              {
 109   3                  switch( FLASH_Flag )
 110   3                  {
 111   4                      if ( FLASH_Flag & (1<<0) )
 112   4                                      {
 113   5                          if( FLASH_Dis_Flag & 0x01 )
 114   5                          {
 115   6                              FLASH_Dis_Flag |= 0x00;
 116   6                              ModifyLed(POSITION_1,strData595.u8DisNum[POSITION_1],0,0);    
 117   6                          }
C51 COMPILER V7.50   LED_DRV                                                               05/11/2009 22:41:46 PAGE 3   

 118   5                          else
 119   5                          {
 120   6                              FLASH_Dis_Flag |= 0x01;
 121   6                              strData595.u8DisCode[0] = SegDisTab[Char_Mie];
 122   6                          }                       
 123   5                                      
 124   5                              if ( FLASH_Flag & 0x02 )
 125   5                                              {
 126   6                                  if( FLASH_Dis_Flag & 0x02 )
 127   6                                  {
 128   7                                      FLASH_Dis_Flag |= 0x00;
 129   7                                      ModifyLed(POSITION_2,strData595.u8DisNum[POSITION_2],0,0);    
 130   7                                  }
 131   6                                  else
 132   6                                  {
 133   7                                      FLASH_Dis_Flag |= 0x02;
 134   7                                      strData595.u8DisCode[1] = SegDisTab[Char_Mie];     
 135   7                                  }
 136   6                                          
 137   6                                      if ( FLASH_Flag & 0x04 )
 138   6                                                      {
 139   7                                          if( FLASH_Dis_Flag & 0x04 )
 140   7                                          {
 141   8                                              FLASH_Dis_Flag |= 0x00;
 142   8                                              ModifyLed(POSITION_3,strData595.u8DisNum[POSITION_3],0,0);    
 143   8                                          }
 144   7                                          else
 145   7                                          {
 146   8                                              FLASH_Dis_Flag |= 0x04;
 147   8                                              strData595.u8DisCode[2] = SegDisTab[Char_Mie];      
 148   8                                          }                                     
 149   7                                      
 150   7                                              if ( FLASH_Flag & 0x08 )
 151   7                                                              {
 152   8                                                  if( FLASH_Dis_Flag & 0x08 )
 153   8                                                  {
 154   9                                                      FLASH_Dis_Flag |= 0x00;
 155   9                                                      ModifyLed(POSITION_4,strData595.u8DisNum[POSITION_4],0,0);    
 156   9                                                  }
 157   8                                                  else
 158   8                                                  {
 159   9                                                      FLASH_Dis_Flag |= 0x08;
 160   9                                                      strData595.u8DisCode[3] = SegDisTab[Char_Mie];     
 161   9                                                  }                                     
 162   8                                              
 163   8                                                      if ( FLASH_Flag & 0x10 )
 164   8                                                                      {
 165   9                                                          if( FLASH_Dis_Flag & 0x10 )
 166   9                                                          {
 167  10                                                              FLASH_Dis_Flag |= 0x00;
 168  10                                                              ModifyLed(POSITION_5,strData595.u8DisNum[POSITION_5],0,0);    
 169  10                                                          }
 170   9                                                          else
 171   9                                                          {
 172  10                                                              FLASH_Dis_Flag |= 0x10;
 173  10                                                              strData595.u8DisCode[4] = SegDisTab[Char_Mie];      
 174  10                                                          }                                   
 175   9                                                      
 176   9                                                              if ( FLASH_Flag & 0x20 )
 177   9                                                                              {
 178  10                                                                  if( FLASH_Dis_Flag & 0x20 )
 179  10                                                                  {
C51 COMPILER V7.50   LED_DRV                                                               05/11/2009 22:41:46 PAGE 4   

 180  11                                                                      FLASH_Dis_Flag &= (~0x20);
 181  11                                                                      ModifyLed(POSITION_6,strData595.u8DisNum[POSITION_6],0,0);    
 182  11                                                                  }
 183  10                                                                  else
 184  10                                                                  {
 185  11                                                                      FLASH_Dis_Flag = 0x20;
 186  11                                                                      strData595.u8DisCode[5] = SegDisTab[Char_Mie];     
 187  11                                                                  } 
 188  10                                                                              }
 189   9                                                                      }
 190   8                                                              }
 191   7                                                  }
 192   6                                          }
 193   5                                      }                                                        
 194   4                  }    
 195   3              }
 196   2          }
 197   1      }
 198          
 199          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    138    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     39       5
   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 + -