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

📄 12864.lst

📁 89C51系列CPU编程器接收CPU程序
💻 LST
字号:
C51 COMPILER V8.12   12864                                                                 08/07/2008 18:06:59 PAGE 1   


C51 COMPILER V8.12, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN 12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<regx51.h>
   2          #define uchar unsigned char
   3          #define uint  unsigned int
   4          sbit  cs2=P2^1;
   5          sbit  cs1=P2^0;
   6          sbit   di=P2^2;
   7          sbit   rw=P2^3;
   8          sbit   en=P2^4;
   9          uchar code xiao1[]={
  10          /*--  文字:  郑  --*/
  11          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  12          0x80,0x91,0x96,0x90,0xF8,0x94,0x93,0x90,0x90,0x00,0xFE,0x02,0x62,0x9A,0x06,0x00,
  13          0x20,0x20,0x10,0x0C,0x03,0x02,0x04,0x18,0x00,0x00,0xFF,0x08,0x08,0x10,0x0F,0x00,
  14          
  15          /*--  文字:  州  --*/
  16          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  17          0x00,0xE0,0x00,0x00,0xFF,0x20,0xC0,0x00,0xFE,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,
  18          0x01,0x80,0x60,0x18,0x07,0x00,0x00,0x00,0x7F,0x00,0x00,0x01,0x00,0xFF,0x00,0x00,
  19          
  20          /*--  文字:  轻  --*/
  21          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  22          0xC4,0xB4,0x8F,0xF4,0x84,0x84,0x04,0x82,0x42,0x22,0x12,0x2A,0x46,0xC2,0x00,0x00,
  23          0x08,0x08,0x08,0xFF,0x04,0x44,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x00,
  24          
  25          /*--  文字:  工  --*/
  26          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  27          0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
  28          0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  29          /*--  文字: 业 --*/
  30          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  31          0x00,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x80,0x60,0x38,0x10,0x00,
  32          0x20,0x20,0x20,0x23,0x21,0x3F,0x20,0x20,0x20,0x3F,0x22,0x21,0x20,0x30,0x20,0x00,
  33          
  34          /*--  文字:  学  --*/
  35          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  36          0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
  37          0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
  38          
  39          /*--  文字:  院  --*/
  40          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  41          0xFE,0x02,0x32,0x4A,0x86,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x0C,0x04,0x00,
  42          0xFF,0x00,0x02,0x04,0x83,0x41,0x31,0x0F,0x01,0x01,0x7F,0x81,0x81,0x81,0xF1,0x00
  43          };
  44          
  45          uchar code ming[]={
  46          /*--  文字:  吕  --*/
  47          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  48          0x00,0x00,0x00,0x3F,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x3F,0x00,0x00,0x00,0x00,
  49          0x00,0x00,0x7F,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,
  50          
  51          /*--  文字:  效  --*/
  52          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  53          0x00,0x08,0xC8,0x39,0x0E,0x18,0xA8,0x48,0x40,0xF0,0x1F,0x12,0x10,0xF0,0x10,0x00,
  54          0x40,0x41,0x21,0x12,0x0C,0x0A,0x51,0x40,0x20,0x20,0x13,0x0C,0x33,0x60,0x20,0x00,
  55          
C51 COMPILER V8.12   12864                                                                 08/07/2008 18:06:59 PAGE 2   

  56          /*--  文字:  军  --*/
  57          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  58          0x00,0x18,0x26,0x22,0xA2,0x72,0x2E,0xAA,0x22,0x22,0x22,0x32,0x22,0x0A,0x06,0x00,
  59          0x00,0x10,0x10,0x12,0x13,0x12,0x12,0xFF,0x12,0x12,0x12,0x13,0x12,0x18,0x10,0x00};
  60          void delay(uint ms)
  61          {
  62   1              while(--ms)     ;
  63   1      }
  64          void write_com(uchar com)
  65          {
  66   1        //  check_busy();
  67   1          di=0;
  68   1              rw=0;
  69   1              en=0;
  70   1              P0=com;
  71   1              en=1;
  72   1      //      delay(10);
  73   1              en=0;   
  74   1      }
  75          void write_data(uchar date)
  76          {
  77   1              di=1;
  78   1          rw=0;
  79   1              en=0;
  80   1              P0=date;
  81   1              en=1;
  82   1      //      delay(10);
  83   1              en=0;
  84   1      }
  85          void clear_lcd()          //清屏
  86          {
  87   1              uchar i,j;
  88   1              cs1=0;
  89   1              cs2=0;
  90   1              write_com(0x3f);
  91   1              write_com(0xc0);
  92   1              for(i=0;i<8;i++)
  93   1              {
  94   2                      write_com(0xb8+i);
  95   2                      write_com(0x40);
  96   2                      for(j=0;j<64;j++)
  97   2                        write_data(0);
  98   2              }
  99   1      }
 100          void init_lcd()
 101          {
 102   1              write_com(0x3f);        //开显示
 103   1              write_com(0xc0);        //设置显示的开始坐标,从屏幕左边0点开始显示
 104   1          write_com(0xb8);   //设置页数,x坐标
 105   1              write_com(0x40);   //设置y坐标
 106   1              clear_lcd();
 107   1      }
 108          /*--------------全屏显示图片(宽*高=128*64)----------------*/    
 109          void display_picture(uchar code *img)
 110          {
 111   1        uchar i,j;
 112   1        for(j=0;j<8;j++)
 113   1        {
 114   2          cs1=0;cs2=1;
 115   2          write_com(0x3f);
 116   2          write_com(0xb8+j);
 117   2          write_com(0xc0);
C51 COMPILER V8.12   12864                                                                 08/07/2008 18:06:59 PAGE 3   

 118   2          write_com(0x40);
 119   2          for(i=0;i<64;i++)
 120   2            write_data(img[j*128+i]);
 121   2          cs1=1;cs2=0;
 122   2          write_com(0x3f);
 123   2          write_com(0xb8+j);
 124   2          write_com(0xc0);
 125   2          write_com(0x40);
 126   2          for(i=64;i<128;i++)
 127   2            write_data(img[j*128+i]);
 128   2        }
 129   1      }         
 130          
 131          /*---指定位置(x,y)显示row_xl行(每行row_yl个)汉字(大小8xl*yl)---*/
 132          void display(uchar x,uchar y,uchar xl,uchar yl,uchar row_xl,uchar row_yl,uchar code *chn)
 133          {
 134   1        uchar i,j,k,l,a;
 135   1        write_com(0x3f);
 136   1        for(l=0;l<row_xl;l++)
 137   1        {
 138   2          for(k=0;k<row_yl;k++)
 139   2          {
 140   3            for(j=0;j<xl;j++)
 141   3            {
 142   4              write_com(0xb8+x+l*xl+j);
 143   4              write_com(0xc0);
 144   4              write_com(0x40+y+k*yl);
 145   4              a=l*xl*yl*row_yl+k*xl*yl+j*yl;
 146   4              for(i=0;i<yl;i++)
 147   4                write_data(chn[a+i]);
 148   4            }
 149   3          }
 150   2        }
 151   1      } 
 152          void write_one(uchar x,uchar y,uchar *hanzi)    //对LCD在指定位置写入单个汉字
 153          {                                                                                               //16*16
 154   1              uchar i;
 155   1              if(y < 4)               //posy < 4 在左半部写
 156   1              {
 157   2                      cs1=0;
 158   2                      cs2=1;
 159   2                      write_com(0xb8+2*x);    //x页数
 160   2                      write_com(0x40+16*y);    //y坐标
 161   2                      for(i = 0; i < 16; i++)
 162   2                      {
 163   3                              write_data(hanzi[i]);   
 164   3                      }
 165   2                      write_com(0xb8+2*x+1);
 166   2                      write_com(0x40+16*y);
 167   2                      for(i = 16; i < 32; i++)
 168   2                      {
 169   3                              write_data(hanzi[i]);
 170   3                      }
 171   2              }
 172   1              else            //否则在右半部写
 173   1              {
 174   2                      cs1=1;
 175   2                      cs2=0;
 176   2                      write_com(0xb8+x*2);
 177   2                      write_com(0x40+16*(y-4));
 178   2                      for(i = 0; i < 16; i++)
 179   2                      {
C51 COMPILER V8.12   12864                                                                 08/07/2008 18:06:59 PAGE 4   

 180   3                              write_data(hanzi[i]);   
 181   3                      }
 182   2                      write_com(0xb8+2*x+1);
 183   2                      write_com(0x40+16*(y-4));
 184   2                      for(i = 16; i < 32; i++)
 185   2                      {
 186   3                              write_data(hanzi[i]);
 187   3                      }
 188   2              }
 189   1      }
 190          //row行col列写入n个汉字
 191          void write_string(uchar row,uchar col,uchar n,uchar *str)
 192          {
 193   1              uchar i;
 194   1              for(i = 0 ; i < n; i++)
 195   1              {
 196   2                      if( col > 7)
 197   2                      {
 198   3                              row++;
 199   3                              col = col - 8;  
 200   3                      }
 201   2                  write_one(row,col,str+i*32);
 202   2                      col++;  
 203   2              }
 204   1      }
 205          
 206          void main()
 207          {
 208   1      
 209   1              init_lcd();
 210   1              cs1=1;
 211   1              cs2=0;
 212   1              display(5,2,2,16,1,3,ming);
 213   1          write_string(0,0,7,xiao1);
 214   1              while(1);
 215   1              
 216   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    628    ----
   CONSTANT SIZE    =    320    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      22
   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 + -