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

📄 sumaguan.lst

📁 AT89S52单片机中数码管的循环显示的实现例子
💻 LST
字号:
C51 COMPILER V7.20   SUMAGUAN                                                              08/09/2008 18:52:33 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE SUMAGUAN
OBJECT MODULE PLACED IN sumaguan.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE sumaguan.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include <intrins.h>
   3          
   4          unsigned char code dis_code[16]={0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,
   5                                            0x30,0x25,0xa9,0x26,0xa1,0xb1};
   6          unsigned char dis_buf0(unsigned char tab);
   7          unsigned char dis_buf1(unsigned char tab);
   8          void show(unsigned char adr_num ,unsigned char num_ma);
   9          void delayms(unsigned char ms);
  10          void main( )
  11          {
  12   1       P0=0x00;
  13   1       P2=0xff;
  14   1       while(1)
  15   1       {
  16   2        show(0x01,0xFE);
  17   2        show(0x02,0xDC);
  18   2        show(0x03,0xBA);
  19   2        show(0x04,0x98);
  20   2       }
  21   1      }
  22          void show(unsigned char adr_num ,unsigned char num_ma)
  23          { 
  24   1       unsigned char dis_digit=0xfe;
  25   1       unsigned char dis_buf[2];
  26   1       dis_buf[0]=dis_buf0(num_ma);
  27   1       dis_buf[1]=dis_buf1(num_ma);
  28   1       dis_digit = _crol_(dis_digit,2*adr_num-2);
  29   1       P2 = 0xff;                                     
  30   1       P0 = dis_buf[1];                       
  31   1       P2 = dis_digit;
  32   1       delayms(1);
  33   1       dis_digit = _crol_(dis_digit,1);
  34   1       P2 = 0xff;;                                            
  35   1       P0 = dis_buf[0];                       
  36   1       P2 = dis_digit;
  37   1       delayms(1);                                            
  38   1      }
  39          
  40          unsigned char dis_buf0(unsigned char tab)
  41          {
  42   1       unsigned char ltab;
  43   1       unsigned char i; 
  44   1       ltab=tab&0x0f;
  45   1       for(i=0x00;i<0x10;i++)
  46   1       {
  47   2        if(ltab==i)
  48   2        {
  49   3        return dis_code[i];
  50   3        }
  51   2       }
  52   1      }
  53          
  54          
  55          unsigned char dis_buf1(unsigned char tab)
C51 COMPILER V7.20   SUMAGUAN                                                              08/09/2008 18:52:33 PAGE 2   

  56          {
  57   1       unsigned char htab;
  58   1       unsigned char i,j; 
  59   1       htab=tab&0xf0;
  60   1       j=0x00;
  61   1       for(i=0x00;i<0x10;i++)
  62   1       {
  63   2        if(htab==j)
  64   2        {
  65   3        return dis_code[i];
  66   3        }
  67   2        j=j+0x10;
  68   2       }
  69   1      }
  70          
  71          void delayms(unsigned char ms)  
  72          // 延时子程序
  73          {                                               
  74   1              unsigned char i;
  75   1              while(ms--)
  76   1              {
  77   2                      for(i = 0; i <120; i++);
  78   2              }
  79   1      }


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