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

📄 lcd1602func.lst

📁 利用DS18B20
💻 LST
字号:
C51 COMPILER V8.08   LCD1602FUNC                                                           05/10/2007 16:08:32 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE LCD1602FUNC
OBJECT MODULE PLACED IN lcd1602func.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE lcd1602func.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************
   2          **函数功能:LCD的驱动函数                                                                                 **
   3          **创建人:xingyuegu                                                                                               **
   4          **创建日期:2006-7-12                                                                                     **
   5          **版本:1.0                                                                                                               **
   6          **修改日期:2006-10-30                                                                                    **
   7          **版本:2.0                                                                                                               **
   8          *******************************************************************/
   9          
  10          #include "lcd1602.h>
  11          unsigned char data  ac=0;
  12          
  13          /*************************************************************
  14          **功能:延时1.64ms                                                                                      **
  15          **参数:无                                                                                                      **
  16          *************************************************************/
  17          
  18          void delay1_64ms(void)
  19          {
  20   1              uint i;
  21   1              for(i = 0;i < 200;i++)
  22   1              {
  23   2                      ;
  24   2              }
  25   1      }
  26          /*************************************************************
  27          **功能:延时40us                                                                                        **
  28          **参数:无                                                                                                      **
  29          *************************************************************/
  30          
  31          void delay40us(void)
  32          {
  33   1              uchar i;
  34   1              for(i = 0;i < 11;i++)
  35   1              {
  36   2                      ;
  37   2              }
  38   1      }
  39          /*************************************************************
  40          **功能:判断LCD忙                                                                                       **
  41          **参数:无                                                                                              **
  42          *************************************************************/
  43          
  44          unsigned char Lcd_Wait(void)
  45          {
  46   1              LcdRs=0;
  47   1              LcdRw=1;
  48   1              
  49   1              LcdEn=1;
  50   1              _nop_();
  51   1              _nop_();
  52   1              //while(DBPort&0x80);
  53   1              LcdEn=0;
  54   1              return DBPort;
  55   1      }
C51 COMPILER V8.08   LCD1602FUNC                                                           05/10/2007 16:08:32 PAGE 2   

  56          /**************************************************************
  57          **功能:写LCD函数                                                                                        **
  58          **参数:style为写命令/数据,0-命令,1-数据;input为写入的8位 **
  59          **              命令/数据                                                                                        **
  60          **************************************************************/
  61          
  62          
  63          void Lcd_Write(bit style,unsigned char input)
  64          {
  65   1              LcdEn=0;
  66   1              LcdRs=style;
  67   1              LcdRw=0;
  68   1              DBPort=input;
  69   1              LcdEn=1; 
  70   1              LcdEn=0;
  71   1              Lcd_Wait();
  72   1      }
  73          /****************************************************************
  74          **功能:LCD清屏函数                                                                                    **
  75          **参数:无                                                                                             **
  76          ****************************************************************/
  77          void ClrScreen(void)
  78          {
  79   1              
  80   1              Lcd_Write(Lcd_Command,Lcd_Clear_Screen);
  81   1              delay1_64ms();                                                  //必须有,LCD清屏要1.64ms
  82   1              ac=0;
  83   1      }
  84          
  85          /****************************************************************
  86          **功能:LCD归位函数                                                                                    **
  87          **参数:无                                                                                             **
  88          ****************************************************************/
  89          void Screen_home(void)
  90          {
  91   1              
  92   1              Lcd_Write(Lcd_Command,Lcd_Home);
  93   1              delay1_64ms();                                                  //必须有,LCD清屏要1.64ms
  94   1              ac=0;
  95   1      }
  96          /***************************************************************
  97          **功能:设置显示模式                                                                              **
  98          **参数:                                                                                                          **
  99          ***************************************************************/
 100          
 101          void  Lcd_SetDisplay(unsigned char DisplayMode)
 102          {
 103   1              Lcd_Write(Lcd_Command,0x08|DisplayMode);
 104   1              delay40us(); //在真硬件时不需要
 105   1      }
 106          /***************************************************************
 107          **功能:LCD移动设置                                                                                       **
 108          **参数:取值如下                                                                                          **
 109          ***************************************************************/
 110          
 111          
 112          void Lcd_Move(unsigned char MoveMode)
 113          {
 114   1              Lcd_Write(Lcd_Command,0x10|MoveMode);
 115   1              delay40us(); //在真硬件时不需要
 116   1      }
 117          
C51 COMPILER V8.08   LCD1602FUNC                                                           05/10/2007 16:08:32 PAGE 3   

 118          /****************************************************************
 119          **功能:LCD输入设置                                                                                        **
 120          **参数:取值如下                                                                                           **
 121          ****************************************************************/
 122          //
 123          void Lcd_SetInput(unsigned char InputMode)
 124          {
 125   1              Lcd_Write(Lcd_Command,0x04|InputMode);
 126   1              delay40us(); //在真硬件时不需要
 127   1      }
 128          /****************************************************************
 129          **功能:LCD初始化                                                                                      **
 130          **参数:取值如下                                                                                           **
 131          ****************************************************************/
 132          void Lcd_Init(void)
 133          {
 134   1      
 135   1              Lcd_Write(Lcd_Command,0x38);           //8位数据端口,2行显示,5*7点阵
 136   1              delay1_64ms();
 137   1              Lcd_SetDisplay(Lcd_Display_On|Lcd_No_Cursor|Lcd_No_Flash);    //开启显示, 无光标
 138   1              Lcd_Write(Lcd_Command,Lcd_Clear_Screen);   //清屏
 139   1              Lcd_SetInput(Lcd_Ac_Up|Lcd_No_Move);       //AC递增, 画面不动
 140   1              delay1_64ms(); //在真硬件时不需要
 141   1              
 142   1      }
 143          
 144          /****************************************************************
 145          **功能:显示位置设置                                                                               **
 146          **参数:x-行;y-列                                                                                         **
 147          ****************************************************************/
 148          void GotoXY(unsigned char x,unsigned char y)
 149          {
 150   1              if(y==0)
 151   1                      {Lcd_Write(Lcd_Command,0x80|x);
 152   2                      ac=x;}
 153   1              if(y==1)
 154   1                      {Lcd_Write(Lcd_Command,0x80|(x+0x40));
 155   2                       ac=16+x;}
 156   1      }
 157          
 158          /****************************************************************
 159          **功能:LCD显示函数                                                                                        **
 160          **参数:str-要显示的字符串指针                                                             **
 161          ****************************************************************/
 162          void Print(unsigned char *str)
 163          {       
 164   1              while(*str!='\0')
 165   1              {
 166   2                      
 167   2                      if(ac==16)
 168   2                      GotoXY(0,1);
 169   2                      else if(ac==32)
 170   2                      {GotoXY(0,0);
 171   3                      ac=0;}
 172   2                      Lcd_Write(Lcd_Data,*str);
 173   2                      ac++;
 174   2                      str++;
 175   2              }
 176   1      }
 177          
 178                          
 179          
C51 COMPILER V8.08   LCD1602FUNC                                                           05/10/2007 16:08:32 PAGE 4   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    247    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -