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

📄 display.lst

📁 本程序是一个WGM-12864LCD的驱动程序。不带字库。用了一晚上的时间终于调出来了。能显示汉字图片。给大家共享享。
💻 LST
字号:
C51 COMPILER V7.10   DISPLAY                                                               08/24/2007 15:17:09 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1           #include "function.h"
   2           #include "lcd.h"
   3          
   4          //unsigned char x        ;
   5           unsigned char y ;
   6           unsigned char *hz ;
   7           unsigned char xpos;
   8           unsigned char ypos;
   9           unsigned char lcddata ;
  10          
  11          
  12          /*********初始化************/
  13          void lcd_init( void )
  14          {
  15   1          Send_cmd( 0x3e,0 );         //关显示
  16   1          Send_cmd( 0x3e,1 );
  17   1      
  18   1              Send_cmd( 0xc0,0 );             //起始行
  19   1              Send_cmd( 0xc0,1 );
  20   1                      
  21   1              Send_cmd( 0x3f,0 );             //开显示
  22   1              Send_cmd( 0x3f,1 );
  23   1      
  24   1              lcd_clr( );                                     //清屏
  25   1      
  26   1      }
  27          
  28          /*******************用于显示汉字或字符的函数*************************************************/
  29          
  30          void write_data(unsigned char xpos,unsigned char ypos,unsigned char lcddata)
  31          {       if(xpos<128)
  32   1      {
  33   2              if( ( xpos & 0x40 )== 0 )
  34   2              {
  35   3                      Send_cmd( 0xb8 | ypos ,0);   
  36   3                      Send_cmd( 0x40 | xpos, 0);    
  37   3                      Send_data( lcddata,0 );
  38   3              }
  39   2              else
  40   2              {
  41   3                      Send_cmd( 0xb8 | ypos ,1 );             
  42   3                      Send_cmd( 0x40 | xpos ,1 );                             
  43   3                      Send_data( lcddata , 1 );
  44   3              }
  45   2       }              
  46   1      }
  47          
  48          
  49          
  50          /*************显示一个字符************/
  51          /*void lcd_putchar8x8( unsigned char x,unsigned char y,unsigned char ch )
  52          {
  53              unsigned char i;
  54                  for( i = 0; i < 8; i ++ )
  55                  {
C51 COMPILER V7.10   DISPLAY                                                               08/24/2007 15:17:09 PAGE 2   

  56                  write_data( x+i, y, zifu[(ch - 0x20)*8 + i] );
  57                 // write_data( x+i, y + 1,zifu[(ch - 0x20)*8 + 8 + i] );
  58                  }       
  59          }
  60          
  61           */
  62          
  63          /************** 显示16*16汉字*****************/
  64          // x  显示列     y  显示行
  65          void hz_disp( unsigned char x, unsigned char y, unsigned char *hz )      //X是判断字从行的那个位置显示.
  66          {                                                                                                                                       //
  67   1              unsigned char i;
  68   1              for( i = 0; i < 16; i++ )
  69   1              {
  70   2              write_data( x + i, y, hz[ i] );         
  71   2              write_data( x + i, y + 1, hz[ 16 + i] );
  72   2          }   
  73   1      }
  74          
  75          /************** 显示32*32汉字*****************/
  76          void hz_disp32x32( unsigned char x, unsigned char y, unsigned char *hz )
  77          {
  78   1              unsigned char i;
  79   1              for( i = 0; i < 30; i++ )
  80   1              {
  81   2              write_data( x + i, y, hz[ i] );         
  82   2              write_data( x + i, y + 1, hz[ 28 + i] );
  83   2                      write_data( x + i, y+2, hz[57+i] );             
  84   2              write_data( x + i, y +3, hz[86 + i] );
  85   2          }   
  86   1      }
  87          
  88          void hz_disp128x32( unsigned char x, unsigned char y, unsigned char *hz )
  89          {
  90   1              unsigned char i;
  91   1              for( i = 0; i < 128; i++ )
  92   1              {
  93   2              write_data( x + i, y, hz[ i] );         
  94   2              write_data( x + i, y + 1, hz[ 128 + i] );
  95   2                      write_data( x + i, y + 2, hz[ 256 + i] );               
  96   2              write_data( x + i, y + 3, hz[ 384 + i] );
  97   2          }   
  98   1      }
  99          
 100          /*
 101          /**************画点  x = 0 -- 128      y = 0 -- 64      *************************
 102          void set_point( unsigned char x, unsigned char y )
 103          {
 104                  unsigned char d = 0;
 105                  unsigned char temp =0;
 106                  unsigned char page1 = 0;
 107                  temp = y % 8;   
 108                  if( x < 64 )
 109                  { 
 110                          write_cmd_L( 0xB8 + (y/8) );
 111                          write_cmd_L( 0x40 + x );
 112                  d = Rddata();    
 113                          write_cmd_L( 0xB8 + (y/8) );
 114                          write_cmd_L( 0x40 + x );
 115                  d = Rddata();           
 116                          write_cmd_L( 0xB8 + (y/8) );
 117                          write_cmd_L( 0x40 + x );
C51 COMPILER V7.10   DISPLAY                                                               08/24/2007 15:17:09 PAGE 3   

 118                          page1 = d | (1<<temp);
 119                          write_dat_L( page1 );
 120                  }
 121                  else if( x <128 )
 122                  {
 123           
 124                          write_cmd_R( 0xB8 + (y/8) );
 125                          write_cmd_R( 0x40 + x -64 );
 126                          d = Rddata();
 127                          write_cmd_R( 0xB8 + (y/8) );
 128                          write_cmd_R( 0x40 + x -64 );
 129                          d = Rddata();           
 130                          write_cmd_R( 0xB8 + (y/8) );
 131                          write_cmd_R( 0x40 + x - 64 );
 132                          page1 = d |(1<<temp);
 133                          write_dat_R( page1 );   
 134                  }
 135              else;
 136              
 137          }  */
 138          
 139          /************清屏***********/
 140          void lcd_clr( void )
 141          {       
 142   1              unsigned char i,j,page;
 143   1              for( i = 0; i < 8; i++ )
 144   1              {
 145   2                      page = i;
 146   2                      page |= 0xb8;
 147   2                      Send_cmd( page,0 );
 148   2                  Send_cmd( 0x40,0 );
 149   2                      for( j = 0; j < 64; j++ )
 150   2                              Send_data( 0 ,0 );
 151   2                      Send_data( page,1 );
 152   2                      Send_data( 0x40,1 );
 153   2                      for( j = 0; j < 64; j++ )
 154   2                              Send_data( 0,1 );
 155   2      
 156   2                      for( i = 0; i < 8; i++ )
 157   2              {
 158   3                      page = i;
 159   3                      page |= 0xb8;
 160   3                      Send_cmd( page,1 );
 161   3                  Send_cmd( 0x40,1 );
 162   3                      for( j = 0; j < 64; j++ )
 163   3                              Send_data( 0 ,1 );
 164   3                      Send_data( page,0 );
 165   3                      Send_data( 0x40,0 );
 166   3                      for( j = 0; j < 64; j++ )
 167   3                              Send_data( 0,0 );
 168   3          }   
 169   2          }   
 170   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    587    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7      18
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.10   DISPLAY                                                               08/24/2007 15:17:09 PAGE 4   

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