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

📄 lcd1602func.lst

📁 keil环境下ds18b20温度检测1602显示
💻 LST
字号:
C51 COMPILER V7.50   LCD1602FUNC                                                           07/20/2007 17:26:22 PAGE 1   


C51 COMPILER V7.50, 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                                                                                                                            **
   4                                                                                                                                **
   5          *******************************************************************/
   6          
   7          #include "lcd1602.h"
   8          
   9          
  10          /*************************************************************
  11          **功能:延时1.64ms                                                                                      **
  12          **参数:无                                                                                                      **
  13          *************************************************************/
  14          
  15          void delay1_64ms(void)
  16          {
  17   1              uchar i;
  18   1              for(i = 0;i < 250;i++)
  19   1              {
  20   2                      _nop_();
  21   2                      _nop_();
  22   2                      _nop_();
  23   2                      _nop_();
  24   2              }
  25   1      }
  26          /*************************************************************
  27          **功能:延时40us                                                                                        **
  28          **参数:无                                                                                                      **
  29          *************************************************************/
  30          
  31          /*void delay40us(void)
  32          {
  33                  uchar i;
  34                  for(i = 0;i < 20;i++)
  35                  {
  36                          ;
  37                  }
  38          }*/
  39          /*************************************************************
  40          **功能:判断LCD忙                                                                                       **
  41          **参数:无                                                                                              **
  42          *************************************************************/
  43          
  44          uchar Lcd_Wait(void)
  45          {
  46   1              
  47   1              while(1)
  48   1              {
  49   2              DBPort=0xff;
  50   2              LcdEn=0;
  51   2              _nop_();
  52   2              LcdRs=0;
  53   2              _nop_();
  54   2              _nop_();
  55   2              LcdRw=1;
C51 COMPILER V7.50   LCD1602FUNC                                                           07/20/2007 17:26:22 PAGE 2   

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

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    220    ----
   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 + -