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

📄 lcd1602.lst

📁 通过按键控制波形
💻 LST
字号:
C51 COMPILER V8.02   LCD1602                                                               09/17/2008 20:59:59 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN lcd1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd1602.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          ////////////////////////////////////////////////////////////////////
   2          #include <reg52.h>
   3          
   4          #define         lcd_io   P0
   5          sbit    rs              =       P2^7;
   6          sbit    rw              =       P2^6;
   7          sbit    en              =       P2^5;
   8          
   9          #define     command             0
  10          #define         lcd_data        1
  11          
  12          extern  void    delay_ms(unsigned char time);
  13          
  14          unsigned char   disp_buf0[16] = {"Out:     1000 Hz"};
  15          unsigned char   disp_buf1[16] = {"In:           Hz"};
  16          unsigned char code      disp_error[16] = {"out of max range"};
  17          unsigned char code  disp_init [16] = {"input a frequent"};
  18          unsigned char code  disp_max  [16] = {"WARN: max 70 MHz"};
  19          
  20          void    check_busy(void)                   //忙检查
  21          {
  22   1              lcd_io = 0xff;
  23   1              rs = 0;
  24   1              rw = 1;
  25   1              en = 1;
  26   1              while(lcd_io & 0x80);
  27   1              en = 0;
  28   1      }
  29          
  30          
  31          void    write_lcd(unsigned char select,unsigned char dat)          //写LCD
  32          {       
  33   1              check_busy();
  34   1              if (select)                        // 写数据
  35   1                      {
  36   2                              rs = 1;
  37   2                              rw = 0;
  38   2                      }
  39   1              else                               // 写指令
  40   1                      {
  41   2                              rs = 0;           
  42   2                              rw = 0;
  43   2                      }
  44   1              lcd_io = dat;
  45   1              en = 1;
  46   1              en = 0;
  47   1      }
  48          
  49          
  50          void    display_line(unsigned char y, unsigned char *dat)          //显示行数据,y=0(第一行)  y=1(第二行)
  51          {
  52   1              unsigned char cnt;
  53   1      
  54   1              if(y)   y = (y | 0x40) - 1;
  55   1              y = y | 0x80;
C51 COMPILER V8.02   LCD1602                                                               09/17/2008 20:59:59 PAGE 2   

  56   1              write_lcd(command,y);
  57   1      
  58   1              for (cnt=0;cnt<16;cnt++)
  59   1                      {
  60   2                              write_lcd(lcd_data,dat[cnt]);
  61   2                      }
  62   1                      
  63   1      }
  64          
  65          
  66          void    lcd_init(void)                           //液晶初始化
  67          {
  68   1              en      =  0;
  69   1              delay_ms(50);
  70   1              write_lcd(command,0x38);
  71   1              write_lcd(command,0x08);
  72   1              write_lcd(command,0x01);
  73   1              write_lcd(command,0x06);
  74   1              write_lcd(command,0x0c);
  75   1      }
  76          
  77                  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    124    ----
   CONSTANT SIZE    =     48    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     32       3
   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 + -