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

📄 led2.lst

📁 51单片机实验例程
💻 LST
字号:
C51 COMPILER V7.10   LED2                                                                  05/19/2010 17:12:10 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE LED2
OBJECT MODULE PLACED IN led2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          *  标题:                  试验数码管上显示数字( 单片机直接实现位选 共阴极)     *
   3          *                                                                                                                                                          *
   4          *  连接方法:P0与J12 用8PIN排线连接      P1与JP16 用排线连接  
   5          ********************************************************************************
   6          *                                                                                                                      *
   7          * 请学员认真消化本例程,用573锁存器控制和单片机脚直接位选控制数码管            *
   8          ********************************************************************************/
   9          
  10          
  11          #include <reg51.h> 
  12          #include <intrins.h>
  13          
  14          void delay(unsigned int i);      //函数声名
  15          
  16          char DelayCNT;
  17           
  18          //此表为 LED 的字模, 共阴数码管 0-9  - 
  19          unsigned char code   Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; 
  20          unsigned char code   dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};    //位码   查表的方法控制
  21          
  22          /************主函数**********************/ 
  23          main()
  24          {  
  25   1         unsigned int i,LedNumVal=1 ;
  26   1         unsigned int LedOut[10];
  27   1         
  28   1         DelayCNT=0;
  29   1      
  30   1        while(1)
  31   1        {      
  32   2           if(++DelayCNT>=20)   //控制数字变化速度
  33   2               {
  34   3                      DelayCNT=0;               //20个扫描周期清零一次
  35   3                  ++LedNumVal;          //每隔20个扫描周期加一次
  36   3               }
  37   2      
  38   2               LedOut[0]=Disp_Tab[LedNumVal%10000/1000];
  39   2           LedOut[1]=Disp_Tab[LedNumVal%1000/100]|0x80;
  40   2           LedOut[2]=Disp_Tab[LedNumVal%100/10];
  41   2           LedOut[3]=Disp_Tab[LedNumVal%10];
  42   2               
  43   2               LedOut[4]=Disp_Tab[LedNumVal%10000/1000];         //千位
  44   2           LedOut[5]=Disp_Tab[LedNumVal%1000/100]|0x80;  //百位带小数点
  45   2           LedOut[6]=Disp_Tab[LedNumVal%100/10];                 //十位
  46   2           LedOut[7]=Disp_Tab[LedNumVal%10];             //个位        
  47   2      
  48   2         
  49   2              
  50   2               for( i=0; i<9; i++) 
  51   2               {       
  52   3                P0 = LedOut[i];
  53   3                P1 = dispbit[i];   //使用查表法进行位选 
  54   3                                      
  55   3      /*        switch(i)                        //使用switch 语句控制位选      
C51 COMPILER V7.10   LED2                                                                  05/19/2010 17:12:10 PAGE 2   

  56   3                   {      
  57   3                              case 0:P1 = 0x7F;  break;         
  58   3                      case 1:P1 = 0xbF;  break;               
  59   3                      case 2:P1 = 0xdF;  break; 
  60   3                      case 3:P1 = 0xeF;  break; 
  61   3                              case 4:P1 = 0xf7;  break;
  62   3                              case 5:P1 = 0xfb;  break;
  63   3                              case 6:P1 = 0xfd;  break;
  64   3                              case 7:P1 = 0xfe;  break;
  65   3                        
  66   3                   }     */
  67   3                       
  68   3                      delay(150);              //扫描间隔时间   太长会数码管会有闪烁感
  69   3                }
  70   2               
  71   2        }   
  72   1      }       
  73          
  74          
  75          void delay(unsigned int i)
  76          {
  77   1          char j;
  78   1          for(i; i > 0; i--)
  79   1              for(j = 200; j > 0; j--);
  80   1      }
  81          
  82          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    385    ----
   CONSTANT SIZE    =     19    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      24
   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 + -