lcd1602.lst

来自「8563实时时钟」· LST 代码 · 共 101 行

LST
101
字号
C51 COMPILER V8.05a   LCD1602                                                              05/08/2009 21:03:45 PAGE 1   


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

line level    source

   1          #include <INIF.h>   
   2          uchar qq;
   3          bit flag=0;
   4          void delay3(uchar dat)
   5          {
   6   1              while(dat--);
   7   1      }
   8          void busy(void)
   9          {
  10   1              PORT_A=0xff;
  11   1              rs=0;
  12   1              rw=1;
  13   1              en=1;
  14   1              PORT=0x00;                       //把8155A口由输出状态转为输入状态
  15   1              while(PORT_A & 0x80);
  16   1              PORT=0x03;                       //把8155A口由输入状态转为输出状态
  17   1      }
  18          void wri(uchar dat)//写指令
  19          { 
  20   1       
  21   1              busy();
  22   1              rs=0;
  23   1              rw=0;
  24   1              en=1;  
  25   1          PORT_A=dat;
  26   1              en=0;
  27   1      }
  28          void wrd(uchar dat)//写数据
  29          { 
  30   1       
  31   1              busy();
  32   1              rs=1;
  33   1              rw=0;
  34   1              en=1;
  35   1          PORT_A=dat;
  36   1              en=0;
  37   1      }
  38          void lcd1602init( )
  39          {
  40   1              wri(0x01);/*清除显示*/ 
  41   1              wri(0x38);/*设置8位格式,2行,5*7*/ 
  42   1              wri(0x06);/*设定输入方式,增量不移位*/
  43   1              wri(0x0c);/*整体显示,关光标,不闪烁*/ 
  44   1      }
  45          void lcd_clear()
  46          {
  47   1              wri( 0x01 );
  48   1      }
  49          //=========================
  50          //显示
  51          //函数:显示数据首地址,显示行数
  52          //=========================
  53          void lcd_string( uchar *p, uchar flag )
  54          {
  55   1              if( flag == 1 )
C51 COMPILER V8.05a   LCD1602                                                              05/08/2009 21:03:45 PAGE 2   

  56   1              {       
  57   2                      qq = 0x80;
  58   2                      while( *p != '\0' )
  59   2              { 
  60   3                              wri( qq );      qq++;
  61   3                              wrd( *p );      p++;
  62   3                      delay3( 100 );
  63   3              }
  64   2              }
  65   1              if( flag == 2 )
  66   1              {
  67   2                      qq = 0xc0;
  68   2              while( *p != '\0' )
  69   2              { 
  70   3                              wri( qq );      qq++;
  71   3                      wrd( *p );      p++;
  72   3                      delay3( 100 );
  73   3                      }
  74   2              }
  75   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    157    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?