📄 lcd.c
字号:
/*****************************************************************************
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -