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

📄 最佳效果2.lst

📁 点阵led设计
💻 LST
字号:
C51 COMPILER V7.08   最佳效果2                                                             04/21/2008 03:49:46 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE 最佳效果2
OBJECT MODULE PLACED IN 最佳效果2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 最佳效果2.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];  //显示缓存
   8          unsigned char data huancun[32];
   9          
  10          void main(void)
  11          {   unsigned char code Cmp[][32]={
  12   1      
  13   1              {0xff,0x07,0xc0,0x6f,0xed,0xef,0xf6,0xdf,0xc0,
  14   1              0x01,0xdd,0xfd,0xbd,0xff,0xc0,0x03,
  15   1              0xfb,0xff,0xf8,0x0f,0xf3,0xdf,0xf4,0xbf,0xef,
  16   1              0x3f,0x9c,0xcf,0x73,0xf1,0xcf,0xfb},//爱
  17   1         {0xf7,0xdf,0xf9,0xcf,0xfb,0xbf,0xc0,0x07,0xde,
  18   1              0xf7,0xc0,0x07,0xde,0xf7,0xde,0xf7,
  19   1              0xc0,0x07,0xde,0xf7,0xfe,0xff,0x00,0x01,0xfe,
  20   1              0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff},//单
  21   1         {0xff,0xbf,0xef,0xbf,0xef,0xbf,0xef,0xbb,0xe0,
  22   1              0x01,0xef,0xff,0xef,0xff,0xef,0xff,
  23   1              0xe0,0x0f,0xef,0xef,0xef,0xef,0xef,0xef,0xdf,
  24   1              0xef,0xdf,0xef,0xbf,0xef,0x7f,0xef},//片
  25   1         {0xef,0xff,0xef,0x07,0xef,0x77,0x01,0x77,0xef,
  26   1              0x77,0xef,0x77,0xc7,0x77,0xcb,0x77,
  27   1          0xab,0x77,0xaf,0x77,0x6e,0xf7,0xee,0xf5,0xed,
  28   1              0xf5,0xed,0xf5,0xeb,0xf9,0xef,0xff},//机
  29   1         {0xf8,0x3f,0xe7,0xcf,0xdf,0xf7,0xbf,0xfb,0xb3,
  30   1              0x9b,0x73,0x9d,0x7f,0xfd,0x7f,0xfd,
  31   1              0x6f,0xed,0x67,0xcd,0xb3,0x9b,0xb8,0x3b,0xdf,
  32   1              0xf7,0xe7,0xcf,0xf8,0x3f,0xff,0xff},//笑脸
  33   1         {0xf9,0xbf,0xc7,0xaf,0xf7,0xb7,0xf7,0xb7,0xf7,
  34   1              0xbf,0x00,0x01,0xf7,0xbf,0xf7,0xb7,
  35   1              0xf1,0xd7,0xc7,0xcf,0x37,0xdf,0xf7,0xaf,0xf6,
  36   1              0x6d,0xf7,0xf5,0xd7,0xf9,0xef,0xfd}};//我
  37   1        
  38   1       
  39   1              unsigned char code Bmp[][32]={
  40   1         {0xf9,0xbf,0xc7,0xaf,0xf7,0xb7,0xf7,0xb7,0xf7,
  41   1              0xbf,0x00,0x01,0xf7,0xbf,0xf7,0xb7,
  42   1              0xf1,0xd7,0xc7,0xcf,0x37,0xdf,0xf7,0xaf,0xf6,
  43   1              0x6d,0xf7,0xf5,0xd7,0xf9,0xef,0xfd},//我
  44   1         {0xff,0x07,0xc0,0x6f,0xed,0xef,0xf6,0xdf,0xc0,
  45   1              0x01,0xdd,0xfd,0xbd,0xff,0xc0,0x03,
  46   1              0xfb,0xff,0xf8,0x0f,0xf3,0xdf,0xf4,0xbf,0xef,
  47   1              0x3f,0x9c,0xcf,0x73,0xf1,0xcf,0xfb},//爱
  48   1         {0xf7,0xdf,0xf9,0xcf,0xfb,0xbf,0xc0,0x07,0xde,
  49   1              0xf7,0xc0,0x07,0xde,0xf7,0xde,0xf7,
  50   1              0xc0,0x07,0xde,0xf7,0xfe,0xff,0x00,0x01,0xfe,
  51   1              0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff},//单
  52   1         {0xff,0xbf,0xef,0xbf,0xef,0xbf,0xef,0xbb,0xe0,
  53   1              0x01,0xef,0xff,0xef,0xff,0xef,0xff,
  54   1              0xe0,0x0f,0xef,0xef,0xef,0xef,0xef,0xef,0xdf,
  55   1              0xef,0xdf,0xef,0xbf,0xef,0x7f,0xef},//片
C51 COMPILER V7.08   最佳效果2                                                             04/21/2008 03:49:46 PAGE 2   

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

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

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


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 + -