16x2点阵字符液晶模块设计实现

来源:本站
导读:目前正在解读《16x2点阵字符液晶模块设计实现》的相关信息,《16x2点阵字符液晶模块设计实现》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《16x2点阵字符液晶模块设计实现》的详细说明。
简介:要实现对16x2点阵字符液晶模块的高效控制,必须按照模块设计方式,建立起相关的子程序,下面先详细介绍驱动16x2点阵字符液晶模块的各功能子程序。

要实现对16x2点阵字符液晶模块的高效控制,必须按照模块设计方式,建立起相关的子程序,下面先详细介绍驱动16x2点阵字符液晶模块的各功能子程序。

16x2点阵字符液晶模块设计实现

1.写命令到LCM子函数

vOidLCDWriteCommand(uchar CMD,uchar Attribc)

/*函数名为WriteCommandLCM的写指令到LCM子函数。

定义CMD、Attribc 为无符号字符型变量。*/

{

if(Attribc)WaitForEnable();

/*若Arrribc为“真”,则调用WaitForEnable子函数进行忙检测*/

LCM_RS_0;LCM_RW_0;_NOP0;

/*选中指令寄存器,写模式*/

DataPort=CMD;_NOP();

/*将变量WCLCM中的指令传送至数据口

LCM_EN_1;_NOP0;_NOP();LCM_EN_O:

/*LCM_EN端产生脉冲下降沿。*/

}

/*WriteCommandLCM 子函数结束。*/

2,写数据到LCM子函数

void LcdWritEDAta(dchar dataW)

/*函数名为WriteDataLCM的写数据到LCM子函数。定义

dataW 为无符号字符型变量。*/

{

/*WriteDataLCM子函数开始。*/

WaitForEnable(); */

LCM_RS_1;LCM_RW_0;_NOP0;

/*选中数据寄存器,写模式。*/

DataPort=dataW;_NOP();

/*将变量dataQW中数据传送至数据口。*/

LCM_EN_1;_NOP();_NOP0;LCM_EN_O:

/*LCM_EN端产生脉冲下降沿。WriteDataLCM子函数

结束*/

3.检测LCD忙信号子函数

void WaitForEnable(void)

/*函数名为WaitForEnable的检测忙信号子程序子函数。

/*WaitForEnable子函数开始。*/

uchar val;

/*定义局部变量val。*/

DataPOrt=Oxff;

/*置数据口为全1。*/

LCM_RS_0;LCM_RW_1;_NOP();

/*选中指令寄存器,读模式。*/

LCM_EN_1;_NOP();_NOP();

/*置LCM_EN端为高电平,读使能。*/

DDRA=0x00;

/*数据口置为输入*/

val=PINA:

/*读取数据*/

while(val&Busy)val=PINA:

/*检测忙信号。当数据口内容与0x80相与后不为零时,

程序原地踏步继续读取数据并检测忙信号。*/

LCM_EN_O:

/*置LCM_EN端为低电平。*/

DDRA=0xff;

/*数据口置为输出*/

}

/*WaitForEnable子函数结束。*/

4.显示光标定位子函数

voidLOCateXY(char posx.char posy)

/*显示光标定位子函数,函数名为LocareXY,定义posx,

posxxy为字符型变量。*/

{

/*LocateXY子函数开始。*/

uchar temp;

/*定义temp为无符号字符型变量。*/

temp&=0x7f;

/*temp的变化范围0-15。*/

temp=posx&0xof;

/*屏蔽高4位。*/

posy&=0x01;

/*posy的变化范围0-1。*/

if(posy)tempㄧ=0x40;

/*若posy为1(显示第二行),地址码+0x40*/

tempㄧ=0x80;

/*指令码为地址码+0x80。*/

WriteCommandLCM(temp,0);

/*将指令temp写入LCM,忽略忙信号检测。*/

}

/*LocateXY子函数结束。*/

5.显示指定座标的一个字符(x=0~15,y=0~1)子函数

void DisplayOneChar(uchar x,uchar y,uchar Wdata)

/*显示指定座标的一个字符(x=0-15.y=0-1)子函数,函

数名为DispOneChar,定义x、y、Wdata为无符号字符型变量。

*/

{

/*DispOneChar函数开始*/

LocateXY(x,y):

/*调用LocateXY函数定位显示地址。*/

WriteDataLCM(Wdata);

/*将数据Wdata写入LCM。*/

}

/*DispONeChar函数结束。*/

6.演示第二行移动字符串子函数

void Display(uchar dd)

/*演示第二行移动字符串子函数,函数名为Dispiay,定义

dd为无符号字符型变量。*/

{

/*Display子函数开始。*/

uchari:

/*定义;为无符号字符型变量。*/

提醒:《16x2点阵字符液晶模块设计实现》最后刷新时间 2024-03-14 01:07:43,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《16x2点阵字符液晶模块设计实现》该内容的真实性请自行鉴别。