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

📄 lcd1602func.lst

📁 基于DS1820温度传感器,单片机控制的单线多路温度检测
💻 LST
字号:
C51 COMPILER V8.08   LCD1602FUNC                                                           06/04/2007 09:25:14 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE LCD1602FUNC
OBJECT MODULE PLACED IN lcd1602func.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd1602func.c OPTIMIZE(9,SPEED) 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          
  12          
  13          /*************************************************************
  14          **功能:延时1.64ms                                                                                      **
  15          **参数:无                                                                                                      **
  16          *************************************************************/
  17          
  18          void delay1_64ms(void)
  19          {
  20   1              uchar i;
  21   1              for(i = 0;i < 250;i++)
  22   1              {
  23   2                      _nop_();
  24   2                      _nop_();
  25   2                      _nop_();
  26   2                      _nop_();
  27   2              }
  28   1      }
  29          /*************************************************************
  30          **功能:延时40us                                                                                        **
  31          **参数:无                                                                                                      **
  32          *************************************************************/
  33          
  34          /*void delay40us(void)
  35          {
  36                  uchar i;
  37                  for(i = 0;i < 20;i++)
  38                  {
  39                          ;
  40                  }
  41          }*/
  42          /*************************************************************
  43          **功能:判断LCD忙                                                                                       **
  44          **参数:无                                                                                              **
  45          *************************************************************/
  46          
  47          unsigned char Lcd_Wait(void)
  48          {
  49   1              
  50   1              while(1)
  51   1              {
  52   2              DBPort=0xff;
  53   2              LcdEn=0;
  54   2              _nop_();
  55   2              LcdRs=0;
C51 COMPILER V8.08   LCD1602FUNC                                                           06/04/2007 09:25:14 PAGE 2   

  56   2              _nop_();
  57   2              _nop_();
  58   2              LcdRw=1;
  59   2              _nop_();
  60   2              _nop_();
  61   2              LcdEn=1;
  62   2              _nop_();
  63   2              _nop_();
  64   2              
  65   2              _nop_();
  66   2              _nop_();
  67   2              if((DBPort&0x80)==0)
  68   2              {
  69   3                      break;
  70   3                      
  71   3              }
  72   2              LcdEn=0;
  73   2              }
  74   1              //delay40us();
  75   1              return DBPort;
  76   1      }
  77          /**************************************************************
  78          **功能:写LCD函数                                                                                        **
  79          **参数:style为写命令/数据,0-命令,1-数据;input为写入的8位 **
  80          **              命令/数据                                                                                        **
  81          **************************************************************/
  82          
  83          
  84          void Lcd_Write(bit style,unsigned char input)
  85          {
  86   1              LcdEn=0;
  87   1              _nop_();
  88   1              _nop_();
  89   1              LcdRs=style;
  90   1              _nop_();
  91   1              _nop_();
  92   1              LcdRw=0;
  93   1              DBPort=input;
  94   1              _nop_();
  95   1              _nop_();
  96   1              LcdEn=1;
  97   1              _nop_();
  98   1              _nop_(); 
  99   1              LcdEn=0;
 100   1              _nop_();
 101   1              Lcd_Wait();
 102   1              
 103   1      }
 104          /****************************************************************
 105          **功能:LCD清屏函数                                                                                    **
 106          **参数:无                                                                                             **
 107          ****************************************************************/
 108          void ClrScreen(void)
 109          {       
 110   1              Lcd_Write(Lcd_Command,Lcd_Clear_Screen);
 111   1              //delay1_64ms();
 112   1      }
 113          
 114          /****************************************************************
 115          **功能:LCD归位函数                                                                                    **
 116          **参数:无                                                                                             **
 117          ****************************************************************/
C51 COMPILER V8.08   LCD1602FUNC                                                           06/04/2007 09:25:14 PAGE 3   

 118          void Screen_home(void)
 119          {
 120   1              
 121   1              Lcd_Write(Lcd_Command,Lcd_Home);
 122   1              //delay1_64ms();
 123   1      
 124   1      }
 125          /***************************************************************
 126          **功能:设置显示模式                                                                              **
 127          **参数:                                                                                                          **
 128          ***************************************************************/
 129          
 130          void  Lcd_SetDisplay(unsigned char DisplayMode)
 131          {
 132   1              Lcd_Write(Lcd_Command,0x08|DisplayMode);
 133   1      
 134   1      }
 135          /***************************************************************
 136          **功能:LCD移动设置                                                                                       **
 137          **参数:取值如下                                                                                          **
 138          ***************************************************************/
 139          
 140          
 141          void Lcd_Move(unsigned char MoveMode)
 142          {
 143   1              Lcd_Write(Lcd_Command,0x10|MoveMode);
 144   1      
 145   1      }
 146          
 147          /****************************************************************
 148          **功能:LCD输入设置                                                                                        **
 149          **参数:取值如下                                                                                           **
 150          ****************************************************************/
 151          //
 152          void Lcd_SetInput(unsigned char InputMode)
 153          {
 154   1              Lcd_Write(Lcd_Command,0x04|InputMode);
 155   1      
 156   1      }
 157          /****************************************************************
 158          **功能:LCD初始化                                                                                      **
 159          **参数:取值如下                                                                                           **
 160          ****************************************************************/
 161          void Lcd_Init(void)
 162          {
 163   1              Lcd_Write(Lcd_Command,0x38);           //8位数据端口,2行显示,5*7点阵
 164   1      //      Lcd_Write(Lcd_Command,0x38);
 165   1      //      Lcd_Write(Lcd_Command,0x38);
 166   1              Lcd_SetDisplay(Lcd_Display_On);    //开启显示, 无光标|Lcd_Cursor|Lcd_Flash
 167   1              //Lcd_Move(Lcd_CursorMove|Lcd_Left);
 168   1                                                                                                       
 169   1              Lcd_SetInput(Lcd_Ac_Up|Lcd_No_Move);       //AC递增, 画面不动_To        
 170   1      
 171   1              
 172   1      }
 173          
 174          /****************************************************************
 175          **功能:显示位置设置                                                                               **
 176          **参数:x-行;y-列                                                                                         **
 177          ****************************************************************/
 178          void GotoXY(unsigned char x,unsigned char y)
 179          {
C51 COMPILER V8.08   LCD1602FUNC                                                           06/04/2007 09:25:14 PAGE 4   

 180   1              if(y==0)
 181   1                      {Lcd_Write(Lcd_Command,0x80|x);
 182   2                      }
 183   1              if(y==1)
 184   1                      {Lcd_Write(Lcd_Command,0x80|(x+0x40));
 185   2                       }
 186   1                                                                       
 187   1      }
 188          
 189          /****************************************************************
 190          **功能:LCD显示函数                                                                                        **
 191          **参数:str-要显示的字符串指针                                                             **
 192          ****************************************************************/
 193          void Print(unsigned char *str)
 194          {       
 195   1              while(*str!='\0')
 196   1              {
 197   2      
 198   2                      Lcd_Write(Lcd_Data,*str);
 199   2      
 200   2                      str++;
 201   2      
 202   2              }
 203   1      }
 204          
 205          void print_char(uchar a)
 206          {
 207   1              if(a>=0&&a<=9)
 208   1              Lcd_Write(Lcd_Data,a+'0');
 209   1              else if(a>=0x0a &&a<= 0x0f)
 210   1              Lcd_Write(Lcd_Data,a+0x37);
 211   1      
 212   1              //Lcd_Wait();
 213   1      }               
 214          


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