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

📄 ex3.lst

📁 基于51单片机的16*16点阵
💻 LST
字号:
C51 COMPILER V9.00   EX3                                                                   04/12/2010 15:23:25 PAGE 1   


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

line level    source

   1          #include <reg52.h>
   2          #define BLKN 8
   3          #define A 0
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          uchar i,k,j,l,m=0;                                                                                        
             -                                                                                                                        
             -                                                                                                           
   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   1       }
  17           uint code bmp[][128]=
  18           {
  19                  {
  20                  0xDF,0xFF,0xEF,0xFF,0xFD,0xFF,0xDE,0xFF,0xEC,0x01,0xEF,0xFF,0xFD,0xFF,0xEE,0xFF,
  21                  0xEF,0xFF,0xE7,0xFF,0x80,0x03,0xEE,0x01,0x02,0x03,0xEF,0x81,0xFB,0xFF,0xFD,0xFF,
  22                  0xFA,0xFB,0x01,0xBD,0xF7,0x7F,0x68,0x07,0xF6,0xFB,0xDD,0xBD,0xF7,0x7F,0xAD,0x77,
  23                  0xEE,0x03,0xDD,0xBD,0xEF,0x7F,0xAD,0xB7,0xCF,0xFF,0xDD,0xBD,0xE0,0x07,0xED,0xF7,
  24                  0xA4,0x01,0xDD,0xBD,0xFF,0x7F,0xD0,0x01,0x69,0xDD,0xDB,0xBD,0xF7,0x5F,0xDD,0x77,
  25                  0xED,0xDD,0xEB,0xBD,0xF3,0x6F,0x1D,0xB7,0xEC,0x01,0xF7,0xBD,0xE7,0x77,0xDD,0xF7,
  26                  0xED,0xDD,0xEB,0x81,0xEF,0x73,0xDC,0x01,0xED,0xDD,0xDC,0xBD,0xDD,0x7B,0xDF,0xF7,
  27                  0xEC,0x01,0xBD,0xBD,0xFE,0x7F,0xDF,0xD7,0xED,0xFD,0x7F,0xFF,0xFF,0x7F,0xDF,0xEF
  28                  
  29                  }, //                     0
  30          
  31                  {
  32                  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,
  33                  0xE4,0x00,0xFF,0xFF,0xE0,0x73,0xE7,0xCF,0xF3,0xF9,0xFF,0xF3,0xC3,0x13,0xE7,0xC9,
  34                  0xF3,0xF9,0xC0,0x01,0xF0,0x83,0xE1,0x00,0x80,0x09,0xFE,0x7F,0x80,0x73,0x00,0xC3,
  35                  0xC4,0xC9,0xFE,0x7F,0xE3,0x33,0xE0,0x01,0xE4,0xC9,0xFE,0x7F,0xE0,0x93,0xE6,0x73,
  36                  0xE4,0xC9,0xFE,0x7F,0xC0,0x90,0x87,0x23,0x0C,0x09,0xFE,0x7F,0xC3,0x81,0x87,0x27,
  37                  0xCC,0xC9,0xFE,0x7F,0x92,0x33,0xE7,0x8F,0xCC,0xF9,0xFE,0x71,0xF3,0xF3,0xE7,0x87,
  38                  0xCF,0xC1,0x80,0x00,0xF3,0xF3,0x86,0x20,0xCF,0xF1,0xFF,0xFF,0xF3,0xF3,0xC0,0xF9,
  39                  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
  40                  }                //     1
  41              };
  42          uchar idata dispram[128];
  43           void main()
  44           {
  45   1          SCON=0x00;             //串口工作模式0;移位寄存器方式
  46   1              TMOD=0x01;                         //定时器T0工作方式1:16位方式
  47   1              TR0=1;                 //启动定时器t0
  48   1              P1=0x3f;               //P1端口初值:允许接收、锁定、显示
  49   1          IE=0x82;
  50   1              while(1)
  51   1                {
  52   2                 for(i=0;i<2;i++) 
  53   2                  {
C51 COMPILER V9.00   EX3                                                                   04/12/2010 15:23:25 PAGE 2   

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


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