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

📄 ex4.lst

📁 基于51单片机的16*16点阵
💻 LST
字号:
C51 COMPILER V9.00   EX4                                                                   04/12/2010 11:29:30 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE EX4
OBJECT MODULE PLACED IN ex4.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ex4.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #define BLKN 8
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          uchar i,j,k;
   6           //uint i;                                                                                                
             -                                                                                                                        
             -                                                                                                     
   7           sbit G  =P1^7;
   8           sbit RCK=P1^6;
   9           sbit SCLR=P1^5;
  10           void delay(uint x)
  11           {
  12   1           uint a,b;
  13   1               for(a=x;a>0;a--)
  14   1                  for(b=110;b>0;b--);
  15   1       }
  16           uchar code bmp[][128]=
  17           {      
  18                  {
  19                  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,
  20                  0xE4,0x00,0xFF,0xFF,0xE0,0x73,0xE7,0xCF,0xF3,0xF9,0xFF,0xF3,0xC3,0x13,0xE7,0xC9,
  21                  0xF3,0xF9,0xC0,0x01,0xF0,0x83,0xE1,0x00,0x80,0x09,0xFE,0x7F,0x80,0x73,0x00,0xC3,
  22                  0xC4,0xC9,0xFE,0x7F,0xE3,0x33,0xE0,0x01,0xE4,0xC9,0xFE,0x7F,0xE0,0x93,0xE6,0x73,
  23                  0xE4,0xC9,0xFE,0x7F,0xC0,0x90,0x87,0x23,0x0C,0x09,0xFE,0x7F,0xC3,0x81,0x87,0x27,
  24                  0xCC,0xC9,0xFE,0x7F,0x92,0x33,0xE7,0x8F,0xCC,0xF9,0xFE,0x71,0xF3,0xF3,0xE7,0x87,
  25                  0xCF,0xC1,0x80,0x00,0xF3,0xF3,0x86,0x20,0xCF,0xF1,0xFF,0xFF,0xF3,0xF3,0xC0,0xF9,
  26                  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
  27                  },               //     0
  28          
  29                  {
  30                  0xF9,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF1,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  31                  0xF1,0x8F,0xFF,0x9F,0xFF,0xFF,0xF3,0x3F,0xF3,0x9F,0xFF,0x8F,0xC7,0x1F,0xF1,0x1F,
  32                  0xE3,0x1F,0xFF,0x99,0xE0,0x40,0xF3,0x39,0xE3,0x1F,0x80,0x00,0xE4,0xCC,0xE6,0x00,
  33                  0xE7,0x3F,0xF8,0x39,0xE4,0xCC,0xE6,0x49,0xC0,0x3F,0xC8,0x03,0x80,0xCC,0xC4,0xC3,
  34                  0xC0,0x33,0xE0,0x8F,0xE4,0xCC,0x80,0x4F,0xCE,0x39,0xE1,0x0F,0xE4,0x0C,0x86,0x43,
  35                  0x8E,0x38,0xF1,0x07,0xE0,0xC0,0xE4,0x49,0x9E,0x38,0xE1,0x27,0xE7,0xCF,0xE4,0xC8,
  36                  0x1C,0x38,0xC8,0x63,0xE7,0xCF,0xE1,0xC8,0x18,0x00,0x9C,0xF0,0x80,0x20,0xE2,0x0F,
  37                  0x18,0x00,0xF1,0xF9,0xFE,0x01,0xE7,0x8F,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  38                  
  39                  } //                      1
  40            };
  41           uchar idata dispram[128];      //显示缓存
  42           void main()
  43           {
  44   1         
  45   1      
  46   1              SCON=0x00;             //串口工作模式0;移位寄存器方式
  47   1              TMOD=0x01;                         //定时器T0工作方式1:16位方式
  48   1              TR0=1;                 //启动定时器t0
  49   1              P1=0x3f;               //P1端口初值:允许接收、锁定、显示
  50   1          IE=0x82;
  51   1                      
  52   1              while(1)
  53   1                {
C51 COMPILER V9.00   EX4                                                                   04/12/2010 11:29:30 PAGE 2   

  54   2                      for(i=0;i<2;i++)
  55   2                       {
  56   3                        for(j=0;j<16;j++)
  57   3                        {
  58   4                          for(k=0;k<15;k++)
  59   4                              {
  60   5                               dispram[k*BLKN]=dispram[(k+1)*BLKN];
  61   5                               dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1];
  62   5                               dispram[k*BLKN+2]=dispram[(k+1)*BLKN+2];
  63   5                               dispram[k*BLKN+3]=dispram[(k+1)*BLKN+3];
  64   5                               dispram[k*BLKN+4]=dispram[(k+1)*BLKN+4];
  65   5                               dispram[k*BLKN+5]=dispram[(k+1)*BLKN+5];
  66   5                               dispram[k*BLKN+6]=dispram[(k+1)*BLKN+6];
  67   5                               dispram[k*BLKN+7]=dispram[(k+1)*BLKN+7];
  68   5                              
  69   5                              }
  70   4                               dispram[120]=bmp[i][j*BLKN];
  71   4                               dispram[121]=bmp[i][j*BLKN+1];
  72   4                               dispram[122]=bmp[i][j*BLKN+2];
  73   4                               dispram[123]=bmp[i][j*BLKN+3];
  74   4                               dispram[124]=bmp[i][j*BLKN+4];
  75   4                               dispram[125]=bmp[i][j*BLKN+5];
  76   4                               dispram[126]=bmp[i][j*BLKN+6];
  77   4                               dispram[127]=bmp[i][j*BLKN+7];
  78   4                               delay(50);
  79   4                        }
  80   3                        delay(1000);
  81   3                      }
  82   2            }
  83   1      
  84   1       }
  85           void leddisplay(void)  interrupt 1 using 1
  86           {
  87   1         uchar i,j=BLKN;                       //设定显示屏刷新率62.5帧/s
  88   1         TH0=0xfd;
  89   1         TL0=0xf0;
  90   1         i=P1;                                         //读取当前显示的行列
  91   1         i=++i&0x0f;                           /*行数自动加一,屏蔽高4位 ,注意P1.0,P1.1,P1.2,P1,3控制行的显示,
  92   1                                     通过4线16线译码器,对16行进行控制*/
  93   1         do
  94   1           {                                                                                          
  95   2                 j--;          
  96   2                 SBUF=dispram[i*BLKN+j];        //送显示数据,SBUF串行数据缓冲寄存器
  97   2                 while(!TI);                             /*串行发送停止位的开始时,由内部硬件使T11,向CPU发出中断请求
  98   2                                              ,在中断服务程序中,必须用软件使其清0*/
  99   2                 TI=0;
 100   2               }
 101   1         while(j);                                      //完成一行数据的发送
 102   1         G=1;                                                   //消隐(关闭显示)
 103   1         P1&=0xf0;                                      //行号端口清0
 104   1         RCK=1;                                                  //显示数据打入输出锁存器
 105   1         P1|=i;                                                  //写入行号
 106   1         RCK=0;                                                  //锁存显示数据
 107   1         G=0;                                                    //打开显示
 108   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    566    ----
   CONSTANT SIZE    =    256    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V9.00   EX4                                                                   04/12/2010 11:29:30 PAGE 3   

   DATA SIZE        =      3    ----
   IDATA SIZE       =    128    ----
   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 + -