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

📄 lcd1602-4line.lst

📁 单片机与时钟芯片ds1302接口程序
💻 LST
字号:
C51 COMPILER V7.50   LCD1602_4LINE                                                         11/20/2007 23:46:12 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD1602_4LINE
OBJECT MODULE PLACED IN LCD1602-4line.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE LCD1602-4line.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2                  LCD1602.c File
   3                  
   4                  Created by Zhao liang
   5                  email: zhaoliang_0801@dl.cn
   6                  May 2006
   7                  
   8          */
   9          
  10          #include "LCD1602.h"
  11          
  12          
  13          
  14          
  15          void LCD_Read_BF(void)
  16          {
  17   1              
  18   1              unsigned char read=0; 
  19   1              
  20   1              LCD1602_RW = HIGH;              //RW 1
  21   1              LCD1602_RS = LOW;               //RS 0
  22   1              LCD1602_EN = HIGH;              //EN 1  Read BF
  23   1              
  24   1              LCDIO = 0xFF;
  25   1              
  26   1              do{
  27   2                      read = LCDIO;
  28   2              }while(read&MSB);
  29   1              
  30   1              LCD1602_EN = LOW;               
  31   1      }
  32          
  33          void delay_1us(void)                 //1us延时函数
  34          {
  35   1          unsigned char i;
  36   1          for(i=0;i<1;i++);
  37   1      }
  38          
  39          void LCD_en_write(void)        //EN端产生一个高电平脉冲,写LCD
  40            {
  41   1          LCD1602_EN = HIGH;  
  42   1          delay_1us(); 
  43   1          LCD1602_EN = LOW;   
  44   1        }
  45          
  46          //*************************************
  47          void LCD_en_com(unsigned char command)
  48          {
  49   1              LCD_Read_BF(); 
  50   1              
  51   1              LCD1602_RS = LOW;       //RS 0 
  52   1              LCD1602_RW = LOW;               //RW 0 
  53   1              
  54   1              LCDIO &= 0x0F;
  55   1              LCDIO |= command&0xF0;
C51 COMPILER V7.50   LCD1602_4LINE                                                         11/20/2007 23:46:12 PAGE 2   

  56   1              
  57   1              LCD_en_write();
  58   1              
  59   1              command = command << 4; 
  60   1              LCDIO &= 0x0F;
  61   1              LCDIO |= command&0xF0;
  62   1              LCD_en_write();
  63   1      }
  64          //*********************************
  65          void LCD_en_dat(unsigned char dat)
  66          {
  67   1              LCD_Read_BF();
  68   1              
  69   1              LCD1602_RS = HIGH;      //RS 1 
  70   1              LCD1602_RW = LOW;               //RW 0 
  71   1              
  72   1              LCDIO &= 0x0F;
  73   1              LCDIO |= dat&0xF0;
  74   1              
  75   1              LCD_en_write();
  76   1              
  77   1              dat = dat << 4;
  78   1              LCDIO &= 0x0F;
  79   1              LCDIO |= dat&0xF0;
  80   1              LCD_en_write();
  81   1      }
  82          //**********************************************
  83          void LCD_set_xy(unsigned char x,unsigned char y)
  84          {
  85   1              unsigned char address;
  86   1              if(x == LINE1)  
  87   1                      address = LINE1_HEAD + y;
  88   1              else                    
  89   1                      address = LINE2_HEAD + y;
  90   1              LCD_en_com(address); 
  91   1      }
  92          //****************************************************************
  93          void LCD_write_char(unsigned char x,unsigned char y,unsigned char dat)
  94          {
  95   1              LCD_set_xy(x,y); 
  96   1              LCDIO = dat;
  97   1              LCD_en_dat(dat);
  98   1      }
  99          
 100          //*********************************************************************
 101          void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)
 102          {
 103   1              LCD_set_xy(x,y); 
 104   1              while(*s)  
 105   1              {
 106   2                      LCDIO = *s;
 107   2                      LCD_en_dat(*s);   
 108   2                      s++;
 109   2              }
 110   1      }
 111          //****************/*********************
 112          void LCD_init(void)
 113          { 
 114   1              LCD_en_com(DATA_MODE);
 115   1                      //set 8 bit data transmission mode 
 116   1              LCD_en_com(OPEN_SCREEN);
 117   1                      //open display (enable lcd display)
C51 COMPILER V7.50   LCD1602_4LINE                                                         11/20/2007 23:46:12 PAGE 3   

 118   1              LCD_en_com(DISPLAY_ADDRESS);
 119   1                      //set lcd first display address 
 120   1              CLEARSCREEN;
 121   1                      //clear screen
 122   1      }


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