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

📄 lcd.c

📁 实现液晶LCD 显示的程序
💻 C
字号:
/*****************************************************************************
程序说明
名称: MCS8051-III学习板演示程序(LCD演示内容)
功能: 在LCD1602上显示内容
版本:
*****************************************************************************/
/*****************************************************************************
硬件说明
单片机:   兼容MCS-51单片机/STC89C51
晶振频率: 12MHz
*****************************************************************************/

#include "regx52.h"

/****************************************************************************
说明: 程序预定义
*****************************************************************************/
#define LCD_DELAY 255/*LCD延时参数*/
#define LCD_DATA P0/*LCD八位数据引脚*/
#define LCD_RW P3_5/*LCD读写引脚*/
#define LCD_E P3_6/*LCD使能引脚*/
#define LCD_A0 P3_4/*LCD数据/指令引脚*/

/****************************************************************************
名称: LCDWriteOrder()
说明: LCD写指令
参数: unsigned char ucOrder 指令值
返回: 无
****************************************************************************/
void LcdWriteOrder(unsigned char ucOrder);

/****************************************************************************
名称: LCDWriteData()
说明: LCD写数据
参数: unsigned char ucData 数据值
返回: 无
****************************************************************************/
void LcdWriteData(unsigned char ucData);

/****************************************************************************
名称: LCDDelay()
说明: LCD延时
参数: 无
返回: 无
****************************************************************************/
void LcdDelay();
/****************************************************************************
待显示的文本
*****************************************************************************/
unsigned char m_ucText1[]=
{"WELLCOME"
};

unsigned char m_ucText2[]=
{"LCD TESTING"
};

/*****************************************************************************
程序开始
*****************************************************************************/
void main()
{
	unsigned char a;
	
	LcdDelay();		

	/*LCD参数初始化*/
   	LcdWriteOrder(0x01);	//清屏			
	LcdWriteOrder(0x02); 	//游标归位
	LcdWriteOrder(0x06);	//进入模式,关屏
	LcdWriteOrder(0x0F);	//关闭显示器开显示器、游标、闪烁
	LcdWriteOrder(0x38); 	//8位,2行
	LcdWriteOrder(0x18); 	//
	
	

	LcdWriteOrder(0x00);/*光标定位到第一行左边第一个字节*/
											
	for(a=0;a<16;a++)/*写数据*/
		LcdWriteData(m_ucText1[a]); 
   	
	LcdWriteOrder(0x40);/*光标定位到第二行左边第一个字节*/

	for(a=0;a<16;a++)/*写数据*/
		LcdWriteData(m_ucText2[a]); 

	while(1);
}

/****************************************************************************
名称: LCDWriteOrder()
说明: LCD写指令
参数: unsigned char ucOrder 指令值
返回: 无
****************************************************************************/
void LcdWriteOrder(unsigned char ucOrder)
{
	LCD_E=1;
	LCD_A0=0;
	LCD_RW=0;
	LCD_DATA=ucOrder;
	LCD_E=0;
		
	LcdDelay();

}

/****************************************************************************
名称: LCDWriteData()
说明: LCD写数据
参数: unsigned char ucData 数据值
返回: 无
****************************************************************************/
void LcdWriteData(unsigned char ucData)
{	
	LCD_E=1;
	LCD_A0=1;
	LCD_RW=0;
	LCD_DATA=ucData;
   	LCD_E=0;
	
	LcdDelay();
} 

/****************************************************************************
名称: LCDDelay()
说明: LCD延时
参数: 无
返回: 无
****************************************************************************/
void LcdDelay()
{
	unsigned char a;

	for(a=0;a<LCD_DELAY;a++);
}

⌨️ 快捷键说明

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