📄 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 + -