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

📄 lcd1602-4line.lst

📁 用51单片机驱动 nokia5110和lcd1602的c程序
💻 LST
字号:
C51 COMPILER V7.02a   LCD1602_4LINE                                                        06/12/2007 20:57:57 PAGE 1   


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

stmt 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          #include "LCD1602.h"
  10          
  11          
  12          void LCD1602_Read_BF(void)
  13          {
  14   1              
  15   1              unsigned char read=0; 
  16   1              
  17   1              LCD1602_RW = HIGH;              //RW 1
  18   1              LCD1602_RS = LOW;               //RS 0
  19   1              LCD1602_EN = HIGH;              //EN 1  Read BF
  20   1              
  21   1              LCDIO = 0xFF;
  22   1              
  23   1              do{
  24   2                      read = LCDIO;
  25   2              }while(read&MSB);
  26   1              
  27   1              LCD1602_EN = LOW;               
  28   1      }
  29          
  30          void LCD1602_delay_1us(void)                 //1us延时函数
  31          {
  32   1          unsigned char i;
  33   1          for(i=0;i<1;i++);
  34   1      }
  35          
  36          void LCD1602_en_write(void)        //EN端产生一个高电平脉冲,写LCD
  37            {
  38   1          LCD1602_EN = HIGH;  
  39   1          LCD1602_delay_1us(); 
  40   1          LCD1602_EN = LOW;   
  41   1        }
  42          
  43          //*************************************
  44          void LCD1602_en_com(unsigned char command)
  45          {
  46   1              LCD1602_Read_BF(); 
  47   1              
  48   1              LCD1602_RS = LOW;       //RS 0 
  49   1              LCD1602_RW = LOW;               //RW 0 
  50   1              
  51   1              LCDIO &= 0x0F;
  52   1              LCDIO |= command&0xF0;
  53   1              
  54   1              LCD1602_en_write();
  55   1              
C51 COMPILER V7.02a   LCD1602_4LINE                                                        06/12/2007 20:57:57 PAGE 2   

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

 118   1      }


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