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

📄 最终成品.lst

📁 点阵led设计
💻 LST
字号:
C51 COMPILER V7.08   最终成品                                                              04/21/2008 05:03:12 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE 最终成品
OBJECT MODULE PLACED IN 最终成品.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 最终成品.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #define BLKN 2            
   3          sbit G=P1^7;              //P1.7为显示允许控制信号端口
   4          sbit RRCLK=P1^6;          //P1.6为输出锁存器时钟信号端
   5          sbit SCLR=P1^5;           //P1.5为移位寄存器清零端
   6          void delay(unsigned int);  //延时函数
   7          unsigned char data dispram[32];  //显示缓存1
   8          unsigned char data huancun[32];  //显示缓存2
   9          void main(void)
  10          {   unsigned char code Cmp[][32]={
  11   1      
  12   1              {0xff,0x07,0xc0,0x6f,0xed,0xef,0xf6,0xdf,
  13   1           0xc0,0x01,0xdd,0xfd,0xbd,0xff,0xc0,0x03,
  14   1               0xfb,0xff,0xf8,0x0f,0xf3,0xdf,0xf4,0xbf,
  15   1           0xef,0x3f,0x9c,0xcf,0x73,0xf1,0xcf,0xfb},//爱
  16   1              {0xf7,0xdf,0xf9,0xcf,0xfb,0xbf,0xc0,0x07,
  17   1           0xde,0xf7,0xc0,0x07,0xde,0xf7,0xde,0xf7,
  18   1               0xc0,0x07,0xde,0xf7,0xfe,0xff,0x00,0x01,
  19   1               0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff},//单
  20   1              {0xff,0xbf,0xef,0xbf,0xef,0xbf,0xef,0xbb,
  21   1               0xe0,0x01,0xef,0xff,0xef,0xff,0xef,0xff,
  22   1               0xe0,0x0f,0xef,0xef,0xef,0xef,0xef,0xef,
  23   1               0xdf,0xef,0xdf,0xef,0xbf,0xef,0x7f,0xef},//片
  24   1          {0xef,0xff,0xef,0x07,0xef,0x77,0x01,0x77,
  25   1               0xef,0x77,0xef,0x77,0xc7,0x77,0xcb,0x77,
  26   1           0xab,0x77,0xaf,0x77,0x6e,0xf7,0xee,0xf5,
  27   1               0xed,0xf5,0xed,0xf5,0xeb,0xf9,0xef,0xff},//机
  28   1          {0xf8,0x3f,0xe7,0xcf,0xdf,0xf7,0xbf,0xfb,
  29   1               0xb3,0x9b,0x73,0x9d,0x7f,0xfd,0x7f,0xfd,
  30   1               0x6f,0xed,0x67,0xcd,0xb3,0x9b,0xb8,0x3b,
  31   1               0xdf,0xf7,0xe7,0xcf,0xf8,0x3f,0xff,0xff},//笑脸
  32   1          {0xf9,0xbf,0xc7,0xaf,0xf7,0xb7,0xf7,0xb7,
  33   1               0xf7,0xbf,0x00,0x01,0xf7,0xbf,0xf7,0xb7,
  34   1               0xf1,0xd7,0xc7,0xcf,0x37,0xdf,0xf7,0xaf,
  35   1               0xf6,0x6d,0xf7,0xf5,0xd7,0xf9,0xef,0xfd}};//我
  36   1        
  37   1       
  38   1              unsigned char code Bmp[][32]={
  39   1          {0xf9,0xbf,0xc7,0xaf,0xf7,0xb7,0xf7,0xb7,
  40   1               0xf7,0xbf,0x00,0x01,0xf7,0xbf,0xf7,0xb7,
  41   1               0xf1,0xd7,0xc7,0xcf,0x37,0xdf,0xf7,0xaf,
  42   1               0xf6,0x6d,0xf7,0xf5,0xd7,0xf9,0xef,0xfd},//我
  43   1              {0xff,0x07,0xc0,0x6f,0xed,0xef,0xf6,0xdf,
  44   1           0xc0,0x01,0xdd,0xfd,0xbd,0xff,0xc0,0x03,
  45   1               0xfb,0xff,0xf8,0x0f,0xf3,0xdf,0xf4,0xbf,
  46   1           0xef,0x3f,0x9c,0xcf,0x73,0xf1,0xcf,0xfb},//爱
  47   1              {0xf7,0xdf,0xf9,0xcf,0xfb,0xbf,0xc0,0x07,
  48   1           0xde,0xf7,0xc0,0x07,0xde,0xf7,0xde,0xf7,
  49   1               0xc0,0x07,0xde,0xf7,0xfe,0xff,0x00,0x01,
  50   1               0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff},//单
  51   1              {0xff,0xbf,0xef,0xbf,0xef,0xbf,0xef,0xbb,
  52   1               0xe0,0x01,0xef,0xff,0xef,0xff,0xef,0xff,
  53   1               0xe0,0x0f,0xef,0xef,0xef,0xef,0xef,0xef,
  54   1               0xdf,0xef,0xdf,0xef,0xbf,0xef,0x7f,0xef},//片
  55   1          {0xef,0xff,0xef,0x07,0xef,0x77,0x01,0x77,
C51 COMPILER V7.08   最终成品                                                              04/21/2008 05:03:12 PAGE 2   

  56   1               0xef,0x77,0xef,0x77,0xc7,0x77,0xcb,0x77,
  57   1           0xab,0x77,0xaf,0x77,0x6e,0xf7,0xee,0xf5,
  58   1               0xed,0xf5,0xed,0xf5,0xeb,0xf9,0xef,0xff},//机
  59   1          {0xf8,0x3f,0xe7,0xcf,0xdf,0xf7,0xbf,0xfb,
  60   1               0xb3,0x9b,0x73,0x9d,0x7f,0xfd,0x7f,0xfd,
  61   1               0x6f,0xed,0x67,0xcd,0xb3,0x9b,0xb8,0x3b,
  62   1               0xdf,0xf7,0xe7,0xcf,0xf8,0x3f,0xff,0xff}  //笑脸
  63   1      };
  64   1      
  65   1      register unsigned char i,j,k,m,l;
  66   1      SCON=0x00;           //串口工作模式0,移位寄存器方式
  67   1      TMOD=0x01;           //定时器T0工作方式1;16位方式
  68   1      TR0=1;               //启动定时器T0
  69   1      P1=0x3f;             //P1端口初值,允许接收,缓存,显示
  70   1      IE=0x82;             //允许定时器T0中断
  71   1      
  72   1      while(1)
  73   1         {
  74   2                 delay(1000);       //显示效果:刷屏
  75   2                      
  76   2                      for(i=0;i<32;i++)   //显示效果:卷帘出
  77   2                      {
  78   3                        dispram[i]=Bmp[5][i];
  79   3                        huancun[i]=Cmp[4][i];
  80   3                        if(i%2)delay(70);
  81   3                      }
  82   2                      delay(100);         //控制显示的停留时间
  83   2      
  84   2      
  85   2            
  86   2            for(i=0;i<6;i++)     //显示效果:上滚屏
  87   2                {
  88   3              for(j=0;j<16;j++)
  89   3                  {
  90   4                           for(k=0;k<15;k++)
  91   4                               {
  92   5                                      huancun[k*BLKN]=huancun[(k+1)*BLKN];
  93   5                                      huancun[k*BLKN+1]=huancun[(k+1)*BLKN+1];
  94   5                                      dispram[k*BLKN]=dispram[(k+1)*BLKN];
  95   5                                      dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1];
  96   5                               }
  97   4                                  huancun[30]=Bmp[i][j*BLKN];
  98   4                                  huancun[31]=Bmp[i][j*BLKN+1];
  99   4                                  dispram[30]=Bmp[i][j*BLKN];
 100   4                                  dispram[31]=Bmp[i][j*BLKN+1];
 101   4                                  delay(70);
 102   4                  }   
 103   3               }   
 104   2            delay(1000);           //控制显示的停留时间
 105   2      
 106   2                 
 107   2            
 108   2            for(i=0;i<32;i++)   //显示效果:半屏卷帘
 109   2                      {
 110   3                        dispram[i]=Bmp[5][i];
 111   3                    huancun[i]=Cmp[5][i];
 112   3                    if(i%2)delay(70);
 113   3                      }
 114   2      
 115   2       
 116   2         for(i=0;i<6;i++)       //显示效果,左移动显示
 117   2               {
C51 COMPILER V7.08   最终成品                                                              04/21/2008 05:03:12 PAGE 3   

 118   3                for(j=0;j<2;j++)
 119   3                   for(k=1;k<9;k++)
 120   3                        {
 121   4                          for(l=0;l<16;l++)
 122   4                                { huancun[l*BLKN]=huancun[l*BLKN]<<1|huancun[l*BLKN+1]>>7;
 123   5                                  huancun[l*BLKN+1]=huancun[l*BLKN+1]<<1|Cmp[i][l*BLKN+j]>>(8-k);
 124   5                          
 125   5                                dispram[l*BLKN]=dispram[l*BLKN]<<1|dispram[l*BLKN+1]>>7;
 126   5                                dispram[l*BLKN+1]=dispram[l*BLKN+1]<<1|Bmp[i][l*BLKN+j]>>(8-k);
 127   5                            }
 128   4                          delay(70);
 129   4                   }
 130   3           }
 131   2          delay(1000);            //控制显示的停留时间
 132   2      
 133   2      
 134   2      
 135   2          for(i=0;i<32;i++)   //显示效果:半屏卷帘
 136   2               {
 137   3                  dispram[i]=Bmp[5][i];
 138   3              huancun[i]=Cmp[4][i];
 139   3              if(i%2)delay(70);
 140   3               }
 141   2            
 142   2          
 143   2        
 144   2         for(i=1;i<7;i++)     //显示效果:向下滚屏
 145   2              {
 146   3                 
 147   3                for(j=16;j>0;j--)
 148   3                 {
 149   4                    for(k=15;k>0;k--)
 150   4                               { huancun[k*BLKN]=huancun[(k-1)*BLKN];
 151   5                             huancun[k*BLKN+1]=huancun[(k-1)*BLKN+1];
 152   5                                 dispram[k*BLKN]=dispram[(k-1)*BLKN];
 153   5                             dispram[k*BLKN+1]=dispram[(k-1)*BLKN+1];
 154   5                               }
 155   4                             huancun[0]=Bmp[i-1][(j-1)*BLKN];
 156   4                                 huancun[1]=Bmp[i-1][(j-1)*BLKN+1];
 157   4                                 dispram[0]=Bmp[i-1][(j-1)*BLKN];
 158   4                                 dispram[1]=Bmp[i-1][(j-1)*BLKN+1];
 159   4                              
 160   4                           delay(70);
 161   4                 }    
 162   3              }
 163   2            delay(1000);         //控制显示的停留时间
 164   2      
 165   2      
 166   2          for(i=0;i<6;i++)     //显示效果,向右移动显示
 167   2               {
 168   3               for(j=2;j>0;j--)
 169   3                for(k=1;k<9;k++)
 170   3                      {
 171   4                              for(l=0;l<16;l++)
 172   4                               {
 173   5                                         for(m=0;m<32;m++)   
 174   5                                              {
 175   6                                   dispram[m]=Bmp[5][m];
 176   6                                          }
 177   5                                              
 178   5                                   huancun[l*BLKN+1]=huancun[l*BLKN+1]>>1|huancun[l*BLKN]<<7;
 179   5                                   huancun[l*BLKN]=huancun[l*BLKN]>>1|Bmp[i][l*BLKN+j-1]<<(8-k);
C51 COMPILER V7.08   最终成品                                                              04/21/2008 05:03:12 PAGE 4   

 180   5                                  
 181   5                               }
 182   4                              delay(70);
 183   4                      }
 184   3               }
 185   2           delay(1000);        //控制显示的停留时间
 186   2      
 187   2          
 188   2              
 189   2                for(i=0;i<32;i++)        //显示效果:卷帘入
 190   2                      {
 191   3                    huancun[i]=0x00;  
 192   3                    dispram[i]=0x00;
 193   3                    if(i%2)delay(70);
 194   3                        
 195   3                      }
 196   2        }
 197   1      }
 198          //延时函数
 199          void delay(unsigned int dt)
 200          {
 201   1              register unsigned char bt;
 202   1              for(;dt;dt--)
 203   1              for(bt=0;bt<255;bt++);
 204   1      }
 205          
 206          //显示屏扫描(定时器T0中断)函数
 207          void leddisplay(void)interrupt 1 using 1
 208          {
 209   1              register unsigned char i,j=BLKN;
 210   1              TH0=0Xf8;         //设定显示屏刷新率每秒62.5
 211   1              TL0=0X30;        
 212   1              i=P1;             //读取当前显示的行号
 213   1              i=++i&0x0f;       //行号加一,屏蔽高四位
 214   1              do {
 215   2              
 216   2                      j--;
 217   2                      SBUF=huancun[i*BLKN+j];  //送显示数据
 218   2                      while(!TI);TI=0;
 219   2                 }while(j);                //完成一行数据的发送
 220   1            
 221   1          j=2; 
 222   1              do {
 223   2              
 224   2                      j--;
 225   2                      SBUF=dispram[i*BLKN+j];  //送显示数据
 226   2                      while(!TI);TI=0;
 227   2                 }while(j);                //完成一行数据的发送
 228   1              
 229   1              
 230   1                                      
 231   1              G=1;                          //消隐(关闭显示)
 232   1              P1&=0xf0;                     //行号端口清零
 233   1              RRCLK=1;                      //显示数据打入输出锁存器
 234   1              P1|=i;                        //写入行号
 235   1                                   
 236   1              RRCLK=0;                      //锁存显示数据
 237   1              G=0;
 238   1                                           //打开显示
 239   1      }


C51 COMPILER V7.08   最终成品                                                              04/21/2008 05:03:12 PAGE 5   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1144    ----
   CONSTANT SIZE    =    384    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     64       4
   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 + -