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

📄 lcd.lst

📁 LCD液晶显示代码
💻 LST
字号:
C51 COMPILER V7.50   LCD                                                                   06/03/2005 14:38:11 PAGE 1   


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

line level    source

   1          #include <reg51.h>
   2          #define         LCD_PORT P0
   3          
   4          sbit RS = P1^1;
   5          sbit EN = P1^0;
   6          sbit BF = P0^0;
   7          
   8          LCD_Disp_Buf[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
   9          int     i;
  10          
  11          #define         uchar unsigned char
  12          #define         uint unsigned int
  13          
  14          void Delay(unsigned int j);
  15          void LCD_Display(void);
  16          unsigned char Right_Shift(unsigned char datas);
  17          void Wait_Until_Ready(void);
  18          void En_Toggle(void);
  19          void Write_Command(unsigned char command);
  20          void Write_Data(unsigned char datas);
  21          void Goto_Positionxy(unsigned char x, unsigned char y);
  22          void LCD_clear(void);
  23          void init_LCD(void);
  24          
  25          main()
  26          {
  27   1              unsigned char i = 0;
  28   1              init_LCD();
  29   1              Delay(20000);
  30   1              while(1);
  31   1              {
  32   2                      LCD_Display();
  33   2                      Delay(20000);
  34   2              }//end of while(1);
  35   1      }//end of main()
  36          
  37          
  38          
  39          void Delay(unsigned int j)
  40          {
  41   1              while(j-->0);
  42   1      }
  43          
  44          
  45          void LCD_Display(void)
  46          {
  47   1              Goto_Positionxy(0,0);
  48   1              for(i = 0; i <= 15; i++)
  49   1                      {
  50   2                              Write_Data(LCD_Disp_Buf[i]);
  51   2                      }
  52   1              Goto_Positionxy(0,1);
  53   1              for(i = 0; i <= 15; i++)
  54   1                      {
  55   2                              Write_Data(LCD_Disp_Buf[i]);
C51 COMPILER V7.50   LCD                                                                   06/03/2005 14:38:11 PAGE 2   

  56   2                      }
  57   1      }
  58          
  59          
  60          unsigned char Right_Shift(unsigned char datas)
  61          {
  62   1              unsigned char temp[8], temp1 = 0x00;
  63   1              unsigned char i;
  64   1              for(i = 0; i < 8; i++)
  65   1              {
  66   2                      temp[i] = ((datas>>i)&0x01);
  67   2              }
  68   1              for(i = 0; i < 8; i++)
  69   1              {
  70   2                      if(temp[i] == 0x01)     temp1=((temp1 << 1) | 0x01);
  71   2                      else temp1 = (temp1 << 1);
  72   2              }
  73   1              return(temp1);
  74   1      }
  75          
  76          
  77          void Wait_Until_Ready(void)
  78          {
  79   1              RS = 0;
  80   1              P0 = 0;
  81   1              EN = 1;
  82   1              Delay(10);
  83   1              while(BF == 1);
  84   1              EN = 0;
  85   1      }
  86          
  87          void En_Toggle(void)
  88          {
  89   1              EN = 1;
  90   1              Delay(10);
  91   1              EN = 0;
  92   1              Delay(10);
  93   1      }
  94          
  95          void Write_Command(unsigned char command)
  96          {
  97   1              RS = 0;
  98   1              P0 = Right_Shift(command);
  99   1              En_Toggle();
 100   1              Wait_Until_Ready();
 101   1              Delay(1000);
 102   1      }
 103          
 104          void Write_Data(unsigned char datas)
 105          {
 106   1              RS = 1;
 107   1              P0 = Right_Shift(datas);
 108   1              En_Toggle();
 109   1              Wait_Until_Ready();
 110   1              Delay(1000);
 111   1      }
 112          
 113          void Goto_Positionxy(unsigned char x, unsigned char y)
 114          {
 115   1              unsigned char p;
 116   1              if(y == 0)
 117   1              {
C51 COMPILER V7.50   LCD                                                                   06/03/2005 14:38:11 PAGE 3   

 118   2                      p = 0x80 + x - 1;
 119   2                      Write_Command(p);
 120   2              }
 121   1              else
 122   1              {
 123   2                      if(y == 1)
 124   2                      {
 125   3                              p = 0xc0 + x - 1;
 126   3                              Write_Command(p);
 127   3                      }
 128   2                      else
 129   2                      {
 130   3                              return;
 131   3                      }
 132   2              }
 133   1      }
 134          
 135          void LCD_clear(void)
 136          {
 137   1              Write_Command(0x01);
 138   1              Delay(1000);
 139   1      }
 140          
 141          
 142          void init_LCD(void)
 143          {
 144   1              Write_Command(0x38);
 145   1              Write_Command(0x36);
 146   1              Write_Command(0x0C);
 147   1              LCD_clear();
 148   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    293    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     34       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -