lcd1602显示流程图

#include"reg51.h"#include"lcd1602.h"sbitLCM_RS=P3^5;//控制IOsbitLCM_RW=P3^6;sbitLCM_E=P... #include "reg51.h"
#include "lcd1602.h"

sbit LCM_RS = P3^5; //控制IO
sbit LCM_RW = P3^6;
sbit LCM_E = P3^7;
#define LCM_Data P1 //Data Port

void Delay5Ms(void);
void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCM,BuysC);
//unsigned char ReadDataLCM(void);
//unsigned char ReadStatusLCM(void);
void ReadStatusLCM(void);

//unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'};

//写数据
void WriteDataLCM(unsigned char WDLCM)
{
ReadStatusLCM(); //
LCM_Data = WDLCM;
LCM_RS = 1;
LCM_RW = 0;
LCM_E = 0; //
LCM_E = 0; //
LCM_E = 1;
}

//写命令
void WriteCommandLCM(unsigned char WCLCM,BuysC) //
{
if (BuysC) ReadStatusLCM(); //检测忙信号
LCM_Data = WCLCM;
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
}

//读数据
//unsigned char ReadDataLCM(void)
//{
// LCM_RS = 1;
// LCM_RW = 1;
// LCM_E = 0;
// LCM_E = 0;
// LCM_E = 1;
// return(LCM_Data);
//}

//读状态
//unsigned char ReadStatusLCM(void)
//{
// LCM_Data = 0xFF;
// LCM_RS = 0;
// LCM_RW = 1;
// LCM_E = 0;
// LCM_E = 0;
// LCM_E = 1;
// while (LCM_Data & Busy); //?ì2a?|D?o?
// return(LCM_Data);
//}
void ReadStatusLCM(void)
{
Delay5Ms();
}

//初始化LCD1602
void LCMInit(void)
{
LCM_Data = 0;
WriteCommandLCM(0x38,0);//3次显示模式设置,不检测忙信号
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();
WriteCommandLCM(0x38,0);
Delay5Ms();

WriteCommandLCM(0x38,1); //3次显示模式设置,检测忙信号
WriteCommandLCM(0x08,1); //关闭显示
WriteCommandLCM(0x01,1); //显示清屏
WriteCommandLCM(0x06,1); //显示光标移动设置
WriteCommandLCM(0x0C,1); // 显示开关
}

//显示一个字符
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF;
if (Y) X |= 0x40; // 限制一行字符不能超过16个,否则换行
X |= 0x80; //算上基地址
WriteCommandLCM(X, 1); //发送命令字
WriteDataLCM(DData); //·发送数据
}

//显示一串字符
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength;

ListLength = 0;
Y &= 0x1;
X &= 0xF; //限制位置不能超限
while (DData[ListLength]>0x19)
{
if (X <= 0xF) //
{
DisplayOneChar(X, Y, DData[ListLength]); //显示一个字符
ListLength++;
X++;
}
}
}

//延时
void Delay5Ms(void)
{
unsigned int TempCyc = 1552;
while(TempCyc--);
}
画一个流程图。
展开
 我来答
百度网友19d0e82
高粉答主

2020-05-27 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:549
采纳率:98%
帮助的人:16.1万
展开全部

lcd1602显示流程图

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。

不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多数制造商都直接将裸片做到板子上。

扩展资料:

LCD1602与单片机的连接有两种方式,一种是直接控制方式,另一种是所谓的间接控制方式。它们的区别只是所用的数据线的数量不同,其他都一样。

1、直接控制方式

LCD1602的8根数据线和3根控制线E,RS和R/W与单片机相连后即可正常工作。一般应用中只须往LCD1602中写入命令和数据,因此,可将LCD1602的R/W读/写选择控制端直接接地,这样可节省1根数据线。

VO引脚是液晶对比度调试端,通常连接一个10kΩ的电位器即可实现对比度的调整;也可采用将一个适当大小的电阻从该引脚接地的方法进行调整,不过电阻的大小应通过调试决定。

2、间接控制方式

间接控制方式也称为四线制工作方式,是利用HD44780所具有的4位数据总线的功能,将电路接口简化的一种方式。为了减少接线数量,只采用引脚DB4~DB7与单片机进行通信,先传数据或命令的高4位,再传低4位。

采用四线并口通信,可以减少对微控制器I/O的需求,当设计产品过程中单片机的I/O资源紧张时,可以考虑使用此方法。

参考资料来源:百度百科-LCD1602

奥蕾达
2024-11-14 广告
如果说原理的话,液晶是起到一个开关的作用。好比水龙头控制水量,液晶控制着光的通过量。 1 A:透明的不是液晶,而是整个显示系统。液晶显示器中的液晶显示系统在未浮花第拘郢饺电邪钉矛通电时是透明的(而且是Normaly White模式的)。 2... 点击进入详情页
本回答由奥蕾达提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式