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

📄 lcd1602.c

📁 LCD1602.rar
💻 C
字号:
#include <reg51.h>

/*********************************端口定义**********************************/

sbit RS = P2^0;

sbit RW = P2^1;

sbit EP = P2^2;

#define   DATA   P1

/********************************显示数据表*********************************/

unsigned char code DISP1[] = {"www.swust.edu.cn"};

unsigned char code DISP2[] = {"0816-6082308-cx"};

/*****************************************************************************

函数功能:LCD延时子程序

入口参数:time

出口参数:

*****************************************************************************/

void delayns(unsigned char time)
{
 unsigned char i;

 for(;time>0;time--)

 for(i = 0; i< 250; i++)	;
}

/*****************************************************************************

函数功能:测试LCD忙碌状态

入口参数:

出口参数:result

*****************************************************************************/

bit lcd_buzy()
{
 bit result;

 RS = 0;

 RW = 1;

 EP = 1;

 delayns(1);              //此处延时特别重要 (必不可少)

 result = (bit)(DATA & 0x80);

 delayns(1);

 EP = 0;

 return result;
}

/*****************************************************************************

函数功能:写指令数据到LCD子程序

入口参数:cmd

出口参数:

*****************************************************************************/

void lcd_w_order(unsigned char cmd)
{
 while(lcd_buzy());   //判断LCD是否忙碌

 RS = 0;

 RW = 0;

 EP = 1;

 DATA = cmd;

 delayns(1);

 EP = 0;
}

/*****************************************************************************

函数功能:写入显示数据到LCD子程序

入口参数:dat

出口参数:

*****************************************************************************/

void lcd_w_data(unsigned char dat)
{
 while(lcd_buzy());      //判断LCD是否忙碌

 RS = 1;

 RW = 0;

 EP = 1;

 DATA = dat;

 delayns(1);

 EP = 0;
}

/*****************************************************************************

函数功能:设定显示位置子程序

入口参数:pos

出口参数:

*****************************************************************************/

void lcd_post(unsigned char pos)

{
 lcd_w_order(pos | 0x80);
}

/*****************************************************************************

函数功能:LCD初始化子程序

入口参数:

出口参数:

*****************************************************************************/

void lcd_init()
{
 lcd_w_order(0x38);	      //显示模式设置

 delayns(1);

 lcd_w_order(0x0c);	      //显示光标设置,开显示

 delayns(1);

 lcd_w_order(0x06);	      //显示光标移动(右移) 

 delayns(1);

 lcd_w_order(0x01);	      //清屏

 delayns(1);
}

/*****************************************************************************

函数功能:主程序

入口参数:

出口参数:

*****************************************************************************/

void main(void)
{
 unsigned char i=0;

 lcd_init();               // 初始化LCD

 delayns(10);

 lcd_post(0x00);           //设置显示位置
						 
 while(DISP1[i] != '\0')
 {
  lcd_w_data(DISP1[i]);    //显示字符

  i++;
 }

 lcd_post(0x40);           // 设置显示位置
						 
 i = 0;

 while(DISP2[i] != '\0')
 {
  lcd_w_data(DISP2[i]);   // 显示字符

  i++;
 }
 while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -