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

📄 lcd1602.lst

📁 AD89C51单片机控制液晶显示器LCD1602显示时间。
💻 LST
字号:
C51 COMPILER V7.02a   LCD1602                                                              09/12/2008 14:50:32 PAGE 1   


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

stmt level    source

   1          #include <at89x51.h>
   2          
   3          #define         MSB             0x80
   4          #define         LSB             0x00
   5          #define         TRUE            1
   6          #define         FALSE           0
   7          #define         HIGH            1
   8          #define         LOW             0
   9          
  10          #define         LINE1                           0
  11          #define         LINE2                           1
  12          #define         LINE1_HEAD                      0x80
  13          #define         LINE2_HEAD                      0xC0
  14          #define         DATA_MODE                       0x38
  15          #define         OPEN_SCREEN                     0x0C
  16          #define         DISPLAY_ADDRESS                 0x80
  17          #define         CLEARSCREEN                     LCD_en_com(0x01)
  18          
  19          #define  LCDIO     P1
  20          sbit LCD1602_RS=P3^2;   
  21          sbit LCD1602_RW=P3^1;   
  22          sbit LCD1602_EN=P3^0;   
  23          
  24          void LCD_Read_BF(void)
  25          {
  26   1              unsigned char read=0; 
  27   1              
  28   1              LCD1602_RS = LOW;               //RS 0
  29   1              LCD1602_RW = HIGH;              //RW 1
  30   1              LCD1602_EN = HIGH;              //EN 1  Read BF
  31   1              
  32   1              LCDIO = 0xFF;
  33   1              LCDIO = 0xFF;
  34   1              do{
  35   2                      read = LCDIO;
  36   2              }while(read&MSB);
  37   1      }
  38          //*************************************
  39          void LCD_en_com(unsigned char command)
  40          {
  41   1              LCD_Read_BF(); 
  42   1              
  43   1              LCD1602_RS = LOW;       //RS 0 
  44   1              LCD1602_RW = LOW;               //RW 0 
  45   1              
  46   1              LCD1602_EN = HIGH;      //EN --\|/__    Write command
  47   1              LCDIO = command;
  48   1              LCD1602_EN = LOW;
  49   1      }
  50          //*********************************
  51          void LCD_en_dat(unsigned char dat)
  52          {
  53   1              LCD_Read_BF();
  54   1              
  55   1              LCD1602_RS = HIGH;      //RS 1 
C51 COMPILER V7.02a   LCD1602                                                              09/12/2008 14:50:32 PAGE 2   

  56   1              LCD1602_RW = LOW;               //RW 0 
  57   1              
  58   1              LCD1602_EN = HIGH;      //EN --\|/__    Write data
  59   1              LCDIO = dat;
  60   1              LCD1602_EN = LOW;
  61   1      }
  62          //**********************************************
  63          void LCD_set_xy(unsigned char x,unsigned char y)
  64          {
  65   1              unsigned char address;
  66   1              if(x == LINE1)  
  67   1                      address = LINE1_HEAD + y;
  68   1              else                    
  69   1                      address = LINE2_HEAD + y;
  70   1              LCD_en_com(address);     
  71   1      }
  72          //****************************************************************
  73          /*void LCD_write_char(unsigned x,unsigned char y,unsigned char dat)
  74          {
  75                  LCD_set_xy(x,y); 
  76                  LCD_en_dat(dat);
  77          }   */
  78          //*********************************************************************
  79          void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)
  80          {
  81   1              LCD_set_xy(x,y); 
  82   1              while(*s)  
  83   1              {
  84   2                      LCDIO = *s;
  85   2                      LCD_en_dat(*s);   
  86   2                      s++;
  87   2              }
  88   1      }
  89          //****************/*********************
  90          void LCD_init(void)
  91          { 
  92   1              LCD_en_com(DATA_MODE);
  93   1                      //set 8 bit data transmission mode 
  94   1              LCD_en_com(OPEN_SCREEN);
  95   1                      //open display (enable lcd display)
  96   1              LCD_en_com(DISPLAY_ADDRESS);
  97   1                  //set lcd first display address 
  98   1              CLEARSCREEN;
  99   1                      //clear screen
 100   1      }
 101          //**************************************
 102          


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