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

📄 led.lst

📁 使用keil开发的用于单片机AT89S52的4汉字16*16点阵显示电路
💻 LST
字号:
C51 COMPILER V8.08   LED                                                                   03/17/2009 23:41:45 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE LED
NO OBJECT MODULE REQUESTED
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE led.c DEBUG OBJECTEXTEND PREPRINT SRC(.\led.SRC)

line level    source

   1          
   2          #include<reg52.h>
   3          #include<math.h>
   4          
   5          #define uchar unsigned char
   6                  uchar code tmp[]=
   7                   {
   8          /*--  文字:  电  --*/
   9          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  10          0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,
  11          0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xFE,0xFD,0xFE,0xFD,0xFF,0x01,0xFF,0xFF,
  12          
  13          /*--  文字:  子  --*/
  14          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  15          0xFF,0xFF,0xC0,0x0F,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,
  16          0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF,
  17          
  18          /*--  文字:  科  --*/
  19          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  20          0xF9,0xF7,0x87,0x77,0xF7,0xB7,0xF7,0xB7,0x01,0xF7,0xE7,0x77,0xE3,0xB7,0xD5,0xB7,
  21          0xD7,0xF1,0xB7,0x87,0x74,0x77,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,
  22          
  23          /*--  文字:  大  --*/
  24          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  25          0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x7F,
  26          0xFD,0x7F,0xFD,0xBF,0xFB,0xBF,0xFB,0xDF,0xF7,0xEF,0xEF,0xE7,0xDF,0xF1,0xBF,0xFB,
  27          /*--  文字:  欢  --*/
  28          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  29          0xFF,0x7F,0xFF,0x7F,0x03,0x7F,0xFA,0x01,0x7A,0xFB,0xB5,0xB7,0xD7,0xBF,0xEF,0xBF,
  30          0xE7,0xBF,0xE7,0x9F,0xDB,0x5F,0xDB,0x6F,0xBE,0xE7,0x79,0xF1,0xC7,0xFB,0xFF,0xFF,
  31          
  32          /*--  文字:  迎  --*/
  33          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  34          0xBF,0xFF,0xDE,0x7F,0xC9,0x83,0xDB,0xBB,0xFB,0xBB,0xFB,0xBB,0x1B,0xBB,0xDB,0xBB,
  35          0xDA,0xBB,0xD9,0xAB,0xDB,0xB7,0xDF,0xBF,0xDF,0xBF,0xAF,0xFF,0x70,0x01,0xFF,0xFF,
  36          
  37          /*--  文字:  你  --*/
  38          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  39          0xF6,0xFF,0xF6,0x7F,0xEE,0xFB,0xEC,0x01,0xDD,0xFB,0xCB,0xB7,0x97,0xBF,0x5D,0xAF,
  40          0xDC,0xB7,0xDD,0xB7,0xDB,0xBB,0xDB,0xB9,0xD7,0xBB,0xDE,0xBF,0xDF,0x7F,0xFF,0xFF  ,
  41          
  42          /*--  文字:  噢  --*/
  43          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  44          0xFF,0x7F,0xFE,0xFF,0x08,0x03,0x69,0xB3,0x6A,0xAB,0x68,0x03,0x6B,0x1B,0x6A,0xAB,
  45          0x69,0xAB,0x0B,0xBB,0x60,0x01,0xFF,0x5F,0xFE,0xEF,0xFD,0xF7,0xFB,0xF9,0xF7,0xFB
  46          
  47                  };
  48          
  49          
  50                  uchar bdata buff[8];    
  51                  sbit  SHCLK =  P3^7;
  52                  sbit  STCLK= P3^6;
  53                  sbit SERIN  = P3^5;     
  54                  sbit EN154 = P2^7;
  55          
C51 COMPILER V8.08   LED                                                                   03/17/2009 23:41:45 PAGE 2   

  56                  void display(uchar line);
  57                  void trans(void);
  58                  void delay(void);
  59                  
  60          void main(void)
  61          {       
  62   1              trans();
  63   1      }
  64          
  65          void trans(void)
  66          {       
  67   1              uchar data line2,line;
  68   1              unsigned int data m1,m2,j;
  69   1              unsigned int data size =  sizeof(tmp) - 31;
  70   1              unsigned int data i = 1;
  71   1              unsigned int k = 0;
  72   1              signed char num ;
  73   1      //数据宽度的大小很重要,这里i的宽度就可能影响程序的执行
  74   1      
  75   1              while ( k++ < sizeof(tmp))
  76   1              {
  77   2                      for(line = 0; line < 16; ++line )
  78   2                      {       num = i/8;
  79   3                              line2 = 2 * line;
  80   3                              if(num < 8)
  81   3                                      buff[num] = ((tmp[line2]>> ((num + 1) * 8 - i)) | buff[num]) ;
  82   3                              for(--num,j=0; num >= 0 ; --num,++j)
  83   3                              {
  84   4                                      if (num >= 8) { j = (num - 7); num =7;  } 
  85   4                                      m1 = (j/2)*30 + j; 
  86   4                                      m2 = ((j+1) / 2) * 30 +(j+1);   
  87   4                                      if(m2 > size )          m2 -= sizeof(tmp) ;     
  88   4                                      if(m1 > size )          m1 -= sizeof(tmp) ;
  89   4                                      buff[num] = (tmp[line2+m1] << (i-(num+j)*8-8) | tmp[line2+m2]>>((num+j)*8-i+16)); 
  90   4                              }
  91   3                      display(16-line);
  92   3                      for(num = 8; num != 0; --num)   buff[num-1] = 0xff;
  93   3                      }
  94   2                      if(i > (sizeof(tmp) + 63))  i = 0x40;
  95   2                      ++i;    
  96   2              }
  97   1      
  98   1      }
  99          
 100                                          
 101          void display(uchar line)
 102          {
 103   1              uchar i = 8;
 104   1              uchar j = 0;    
 105   1              EN154 = 1;
 106   1              STCLK = 0;
 107   1      
 108   1         for(i = 8; i!=0; --i)
 109   1         {
 110   2              ACC = buff[i-1];
 111   2              #pragma asm
 112   2                      MOV R1,#8
 113   2                      PUSHONE:
 114   2                              CLR P3.7
 115   2                              RLC A
 116   2                              MOV P3.5, C
 117   2                              SETB P3.7
C51 COMPILER V8.08   LED                                                                   03/17/2009 23:41:45 PAGE 3   

 118   2                              DJNZ    R1,PUSHONE
 119   2              #pragma endasm
 120   2              }
 121   1      
 122   1              STCLK = 1;
 123   1      
 124   1              P2 = (16-line) * 8 ;                       
 125   1      }
 126          
 127          
 128          
 129          
 130          
 131                  
 132          /*
 133          void display(uchar line)
 134          {
 135                  uchar i = 8;    
 136                  EN154 = 1;
 137                  STCLK = 0;
 138                  B = line;
 139                  ACC = buff;
 140                  do{      
 141                           ACC = buff[i-1];
 142          
 143                           #pragma asm
 144                                  MOV R1,#8
 145                           PUSHONE:
 146                                  CLR P3.7
 147                                  RLC A
 148                                   MOV P3.5, C
 149                                  SETB P3.7
 150                           DJNZ   R1,PUSHONE
 151                    #pragma endasm
 152                           --i;
 153                   }while(i != 0)  ;
 154          
 155                  #pragma asm
 156                   SETB P3.6
 157                   MOV  A,#16
 158                   CLR C
 159                   SUBB A,B
 160                   RLC A
 161                   RLC A
 162                   RLC A
 163                   MOV P2,A
 164                  #pragma endasm                     
 165          }                        */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    440    ----
   CONSTANT SIZE    =    256    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8      14
   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 + -