lcd.c

来自「MCS8051-III学习板演示程序[LCD演示内容] 功能: 在LCD上显示」· C语言 代码 · 共 141 行

C
141
字号
/*****************************************************************************
						MCS8051-III学习板演示程序
							
				(c) Copyright 2007-2007,广州恒芯电子
						All Rights Reserved
*****************************************************************************/

/*****************************************************************************
程序说明
名称: MCS8051-III学习板演示程序(LCD演示内容)
功能: 在LCD上显示内容
版本:2007-07-01
*****************************************************************************/

/*****************************************************************************
硬件说明
单片机:   兼容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[]=
{"MCU8051 学习板"
};

unsigned char m_ucText2[]=
{"LCD 演示程序"
};

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

	/*LCD参数初始化*/
   	LcdWriteOrder(0x30); 
	LcdWriteOrder(0x04);
	LcdWriteOrder(0x0c);
	LcdWriteOrder(0x01); 
	LcdWriteOrder(0x02); 

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

	for(a=0;a<13;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 + =
减小字号Ctrl + -
显示快捷键?