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

📄 lcd1602-4line.lst

📁 1602四线液晶通过AVR单片机来控制实现四根线来控制液晶显示
💻 LST
字号:
C51 COMPILER V6.12  LCD1602_4LINE                                                          12/23/2008 22:40:20 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE LCD1602_4LINE
OBJECT MODULE PLACED IN .\LCD1602-4line.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\LCD1602-4line.c 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          
  10          #include "LCD1602.h"
  11          
  12          
  13          void LCD_Read_BF(void)
  14          {
  15   1      	
  16   1      	unsigned char read=0; 
  17   1      	
  18   1      	LCD1602_RW = HIGH;		//RW 1
  19   1      	LCD1602_RS = LOW;		//RS 0
  20   1      	LCD1602_EN = HIGH;		//EN 1	Read BF
  21   1      	
  22   1       	LCDIO = 0xFF;
  23   1      	
  24   1      	do{
  25   2      		read = LCDIO;
  26   2      	}while(read&MSB);
  27   1      	
  28   1      	LCD1602_EN = LOW;		
  29   1      }
  30          
  31          void delay_1us(void)                 //1us延时函数
  32          {
  33   1          unsigned char i;
  34   1          for(i=0;i<1;i++);
  35   1      }
  36          
  37          void LCD_en_write(void)        //EN端产生一个高电平脉冲,写LCD
  38            {
  39   1          LCD1602_EN = HIGH;	
  40   1          delay_1us(); 
  41   1          LCD1602_EN = LOW;	
  42   1        }
  43          
  44          //*************************************
  45          void LCD_en_com(unsigned char command)
  46          {
  47   1      	LCD_Read_BF(); 
  48   1      	
  49   1      	LCD1602_RS = LOW;   	//RS 0 
  50   1      	LCD1602_RW = LOW;		//RW 0 
  51   1      	
  52   1      	LCDIO &= 0x0F;
  53   1      	LCDIO |= command&0xF0;
  54   1      	
  55   1      	LCD_en_write();
C51 COMPILER V6.12  LCD1602_4LINE                                                          12/23/2008 22:40:20 PAGE 2   

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

 118   1      }


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