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

📄 sh_display.lst

📁 可以实现多路数据采集和传输系统
💻 LST
字号:
C51 COMPILER V7.20   SH_DISPLAY                                                            08/19/2007 15:13:45 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE SH_DISPLAY
OBJECT MODULE PLACED IN sh_display.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE sh_display.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include "LCD12864.h"
   3          #include <intrins.h>
   4          #include "zifu8_8.h"
   5          
   6          /*********初始化************/
   7          void lcd_init( void )
   8          {
   9   1              write_cmd_L( 0x3e );            //关显示
  10   1              write_cmd_R( 0x3e );
  11   1              write_cmd_L( 0xc0 );            //起始行
  12   1              write_cmd_R( 0xc0 );    
  13   1              write_cmd_L( 0x3f );            //开显示
  14   1              write_cmd_R( 0x3f );
  15   1              lcd_clr();                                      //清屏
  16   1      
  17   1      }
  18          
  19          /************全清屏***********/
  20          void lcd_clr( void )
  21          {       
  22   1              unsigned char i,j,page;
  23   1              for( i = 0; i < 8; i++ )
  24   1              {
  25   2                      page = i;
  26   2                      page |= 0xb8;
  27   2                      write_cmd_L( page );
  28   2                      write_cmd_L( 0x40 );
  29   2                      for( j = 0; j < 64; j++ )
  30   2                              write_dat_L( 0 );
  31   2                      write_cmd_R( page );
  32   2                      write_cmd_R( 0x40 );
  33   2                      for( j = 0; j < 64; j++ )
  34   2                              write_dat_R( 0 );
  35   2          }   
  36   1      }
  37          /******************************/
  38          /*------------------显示12864图片---------------------------*/
  39          void Disp_Img(unsigned char code *img)
  40          {                                                                                
  41   1          unsigned char j,k,page = 0; 
  42   1          for( k = 0; k < 8; k++ )
  43   1          {   
  44   2              page = k;
  45   2              page |= 0xb8;
  46   2              write_cmd_L( page );
  47   2              write_cmd_L( 0x40 );
  48   2              for( j = 0; j < 64; j++ )
  49   2                      write_dat_L(img[k*128+j]);
  50   2              write_cmd_R( page );
  51   2              write_cmd_R( 0x40 );
  52   2              for(j=64;j<128;j++) 
  53   2                      write_dat_R(img[k*128+j]);
  54   2          }
  55   1      }
C51 COMPILER V7.20   SH_DISPLAY                                                            08/19/2007 15:13:45 PAGE 2   

  56          
  57          /***********-写左命令************/
  58          void write_cmd_L( unsigned char cmd )
  59          {
  60   1              CSB = 1;
  61   1              CSA = 0;
  62   1              DI = 0;
  63   1              RW = 1;
  64   1              do
  65   1              {
  66   2                      DataLine = 0xff;
  67   2                      E = 1;
  68   2                      _nop_();                        
  69   2              }while( BUSY );
  70   1              E = 0;
  71   1              RW = 0;
  72   1              DataLine = cmd;
  73   1              E = 1;
  74   1              _nop_();
  75   1              E = 0;
  76   1      }
  77          /***********-写右命令**********-*/
  78          void write_cmd_R( unsigned char cmd )
  79          {
  80   1              CSB = 0;
  81   1              CSA = 1;
  82   1              DI = 0;
  83   1              RW = 1;
  84   1              do
  85   1              {
  86   2                      DataLine = 0xff;
  87   2                      E = 1;
  88   2                      _nop_();        
  89   2                      
  90   2              }while( BUSY );
  91   1              E = 0;
  92   1              RW = 0;
  93   1              DataLine = cmd;
  94   1              E = 1;
  95   1              _nop_();
  96   1              E = 0;
  97   1      }
  98          /***********写左数据***********/
  99          void write_dat_L( unsigned char dat )
 100          {
 101   1              CSB = 1; 
 102   1              CSA = 0;
 103   1              DI = 0;
 104   1              RW = 1;
 105   1              do
 106   1              {
 107   2                      DataLine = 0xff;
 108   2                      E = 1;
 109   2                      _nop_();                
 110   2              }while( BUSY );
 111   1              E = 0;
 112   1              DI = 1;
 113   1              RW = 0;
 114   1              DataLine = dat;
 115   1              E = 1;
 116   1              _nop_();
 117   1              E = 0;
C51 COMPILER V7.20   SH_DISPLAY                                                            08/19/2007 15:13:45 PAGE 3   

 118   1      }
 119          
 120          /***********写右数据***********/
 121          void write_dat_R( unsigned char dat )
 122          {
 123   1              CSB = 0; 
 124   1              CSA = 1;
 125   1              DI = 0;
 126   1              RW = 1;
 127   1              do
 128   1              {
 129   2                      DataLine = 0xff;
 130   2                      E = 1;
 131   2                      _nop_();                
 132   2              }while( BUSY );
 133   1              E = 0;
 134   1              DI = 1;
 135   1              RW = 0;
 136   1              DataLine = dat;
 137   1              E = 1;
 138   1              _nop_();
 139   1              E = 0;
 140   1      }
 141          void write_data(unsigned char xpos,unsigned char ypos,unsigned char lcddata)
 142          {       if(xpos<128)
 143   1      {
 144   2              if( ( xpos & 0x40 )== 0 )
 145   2              {
 146   3                      write_cmd_L( 0xb8 | ypos );   
 147   3                      write_cmd_L( 0x40 | xpos);    
 148   3                      write_dat_L( lcddata );
 149   3              }
 150   2              else
 151   2              {
 152   3                      write_cmd_R( 0xb8 | ypos );             
 153   3                      write_cmd_R( 0x40 | xpos );                             
 154   3                      write_dat_R( lcddata );
 155   3              }
 156   2       }              
 157   1      }
 158          
 159          /************显示一个字符************/
 160          void lcd_putchar8x8( unsigned char x,unsigned char y,unsigned char ch )
 161          {                                                 
 162   1          unsigned char i;
 163   1              for( i=0;i<8;i++)
 164   1              {
 165   2              write_data( x+i, y, zifu[(ch - 0x20)*8 + i] );
 166   2            
 167   2              }       
 168   1      }
 169          
 170          /************** 显示汉字*****************/
 171          // x  显示列     y  显示行  16*16
 172          void hz_disp( unsigned char x, unsigned char y, unsigned char *hz )
 173          {
 174   1              unsigned char i;
 175   1              for( i = 0; i < 16; i++ )
 176   1              {
 177   2              write_data(x+i,y,hz[i]);                
 178   2              write_data(x+i,y+1,hz[16+i]);
 179   2          }   
C51 COMPILER V7.20   SH_DISPLAY                                                            08/19/2007 15:13:45 PAGE 4   

 180   1      }
 181          void hz_disp32x32( unsigned char x, unsigned char y, unsigned char *hz )
 182          {
 183   1              unsigned char i;
 184   1              for( i = 0; i < 30; i++ )
 185   1              {
 186   2              write_data( x+i,y,hz[i] );              
 187   2              write_data( x+i,y+1,hz[28+i] );
 188   2                      write_data( x+i,y+2,hz[57+i] );         
 189   2              write_data( x+i,y+3,hz[86+i] );
 190   2          }   
 191   1      }
 192          
 193          void hz_disp128x32( unsigned char x, unsigned char y, unsigned char *hz )
 194          {
 195   1              unsigned char i;
 196   1              for( i = 0; i < 128; i++ )
 197   1              {
 198   2              write_data( x + i, y, hz[ i] );         
 199   2              write_data( x + i, y + 1, hz[ 128 + i] );
 200   2                      write_data( x + i, y + 2, hz[ 256 + i] );               
 201   2              write_data( x + i, y + 3, hz[ 384 + i] );
 202   2          }   
 203   1      }
 204          
 205          void hz_disp12x12( unsigned char x, unsigned char y, unsigned char *hz )
 206          {
 207   1              unsigned char i;
 208   1              for( i = 0; i < 12; i++ )
 209   1              {
 210   2              write_data( x + i, y, hz[ i] );         
 211   2              write_data( x + i, y + 1, hz[ 12 + i] );
 212   2          }   
 213   1      }
 214          void hz_disp12x120( unsigned char x, unsigned char y, unsigned char *hz )
 215          {
 216   1              unsigned char i;
 217   1              for( i = 0; i < 12; i++ )
 218   1              {
 219   2              write_data( x + i, y, ~hz[ i] );                
 220   2              write_data( x + i, y + 1, ~hz[ 12 + i] );
 221   2          }   
 222   1      }
 223          
 224          
 225          //画点  x = 0 -- 128      y = 0 -- 64
 226          void set_point( unsigned char x, unsigned char y )
 227          {
 228   1              unsigned char d = 0;
 229   1              unsigned char temp =0;
 230   1              unsigned char page1 = 0;
 231   1              temp = y % 8;   
 232   1              if( x < 64 )
 233   1              { 
 234   2                      write_cmd_L( 0xB8 + (y/8) );
 235   2                      write_cmd_L( 0x40 + x );
 236   2              d = Rddata();    
 237   2                      write_cmd_L( 0xB8 + (y/8) );
 238   2                      write_cmd_L( 0x40 + x );
 239   2              d = Rddata();           
 240   2                      write_cmd_L( 0xB8 + (y/8) );
 241   2                      write_cmd_L( 0x40 + x );
C51 COMPILER V7.20   SH_DISPLAY                                                            08/19/2007 15:13:45 PAGE 5   

 242   2                      page1 = d | (1<<temp);
 243   2                      write_dat_L( page1 );
 244   2              }
 245   1              else if( x <128 )
 246   1              {
 247   2       
 248   2                      write_cmd_R( 0xB8 + (y/8) );
 249   2                      write_cmd_R( 0x40 + x -64 );
 250   2                      d = Rddata();
 251   2                      write_cmd_R( 0xB8 + (y/8) );
 252   2                      write_cmd_R( 0x40 + x -64 );
 253   2                      d = Rddata();           
 254   2                      write_cmd_R( 0xB8 + (y/8) );
 255   2                      write_cmd_R( 0x40 + x - 64 );
 256   2                      page1 = d |(1<<temp);
 257   2                      write_dat_R( page1 );   
 258   2              }
 259   1          else;
 260   1          
 261   1      }
 262          unsigned char Rddata( void )
 263          {
 264   1          unsigned char dd = 0;
 265   1          DataLine = 0xff;
 266   1          DI = 1;
 267   1          RW = 1;
 268   1          E = 1;
 269   1          _nop_();
 270   1          dd = DataLine;
 271   1          E = 0;
 272   1          return dd;   
 273   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1101    ----
   CONSTANT SIZE    =    768    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      43
   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 + -