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

📄 lcd1602func.lst

📁 单片机控制单总线DS1820数字温度计,并通过LCD显示出来 有仿真文件,用proteus6.9 sp4看.
💻 LST
字号:
C51 COMPILER V8.08   LCD1602FUNC                                                           04/29/2007 11:52:05 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   1              uchar i;
  37   1              for(i = 0;i < 20;i++)
  38   1              {
  39   2                      ;
  40   2              }
  41   1      }
  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                                                           04/29/2007 11:52:05 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                                                           04/29/2007 11:52:05 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              delay1_64ms();
 164   1              Lcd_Write(Lcd_Command,0x38);           //8位数据端口,2行显示,5*7点阵
 165   1              
 166   1              Lcd_Write(Lcd_Command,0x38);
 167   1              Lcd_Write(Lcd_Command,0x38);
 168   1              Lcd_SetDisplay(Lcd_Display_On|Lcd_Cursor|Lcd_Flash);    //开启显示, 无光标
 169   1              //Lcd_Move(Lcd_CursorMove|Lcd_Left);
 170   1                                                                                                       
 171   1              Lcd_SetInput(Lcd_Ac_Up|Lcd_No_Move);       //AC递增, 画面不动_To        
 172   1      
 173   1              
 174   1      }
 175          
 176          /****************************************************************
 177          **功能:显示位置设置                                                                               **
 178          **参数:x-行;y-列                                                                                         **
 179          ****************************************************************/
C51 COMPILER V8.08   LCD1602FUNC                                                           04/29/2007 11:52:05 PAGE 4   

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


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