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

📄 lcd.lst

📁 单片机的键盘控制程序和Led显示程序
💻 LST
字号:
C51 COMPILER V7.50   LCD                                                                   09/07/2007 13:44:04 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "lcd.h"
   2          
   3          void LCD_Initial()
   4          {
   5   1              LcdEn = 0 ;
   6   1              Delay10ms(1) ;
   7   1              LCD_Write(LCD_COMMAND,0x30);           //8位数据端口,1行显示,5*7点阵
   8   1              Delay10ms(1) ;
   9   1              LCD_Write(LCD_COMMAND,0x30);
  10   1              Delay10ms(1) ;
  11   1              LCD_Write(LCD_COMMAND,0x30);           //8位数据端口,1行显示,5*7点阵
  12   1              LCD_Wait() ;
  13   1          LCD_Write(LCD_COMMAND,0x30);
  14   1              LCD_SetDisplay(LCD_HIDE) ;             //关闭显示
  15   1              LCD_Wait() ;
  16   1              LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  17   1              LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR) ;
  18   1              LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC递增, 画面不动
  19   1      
  20   1      }
  21          /*void LCD_Initial()
  22          {
  23                  LcdEn=0;
  24                  LCD_Write(LCD_COMMAND,0x38);           //8位数据端口,2行显示,5*7点阵
  25                  LCD_Write(LCD_COMMAND,0x38);
  26                  LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //开启显示, 无光标
  27                  LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  28                  LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);  
  29          }*/
  30          
  31          void LCD_Write(bit style, unsigned char input)
  32          {
  33   1              LcdEn = 0 ;
  34   1              LcdRs = style ;
  35   1              LcdRw = 0 ;                     _nop_();
  36   1              DBPort = input ;        _nop_();//注意顺序
  37   1              LcdEn = 1 ;                     _nop_();//注意顺序
  38   1              LcdEn = 0 ;                     _nop_();
  39   1      }
  40          
  41          void LCD_SetDisplay(unsigned char DisplayMode)
  42          {
  43   1              LCD_Wait() ;
  44   1              LCD_Write(LCD_COMMAND, 0x08|DisplayMode) ;      
  45   1      }
  46          
  47          void LCD_SetInput(unsigned char InputMode)
  48          {
  49   1              LCD_Wait() ;
  50   1              LCD_Write(LCD_COMMAND, 0x04|InputMode) ;
  51   1      }
  52          
  53          void LCD_Display(unsigned char NumDisplay)
  54          {
  55   1              unsigned char ASC_Num = 0 ;
C51 COMPILER V7.50   LCD                                                                   09/07/2007 13:44:04 PAGE 2   

  56   1              ASC_Num = NumDisplay + 0x30 ;
  57   1              LCD_Wait() ;
  58   1              LCD_Write(LCD_DATA, ASC_Num) ;
  59   1      }
  60          
  61          void LCD_Wait(void)
  62          {
  63   1              LcdRs = 0;
  64   1              LcdRw = 1;      _nop_() ;
  65   1              LcdEn = 1;      _nop_() ;
  66   1              while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,
  67   1                                                       //可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80
  68   1                                                       //实际硬件时打开此语句
  69   1              LcdEn = 0 ;     
  70   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    156    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   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 + -