资讯详情

HD44780U的使用(C语言).doc

HD44780U的使用(C语言)

字符液晶显示模块的接口技术

字符液晶显示模块的外接口信号实际上是HD44780U信号时序为与计算机接口的信号M6800系列时序。使用8080时序AT89C在连接51系列计算机时,关键是要注意E信号的使用。

计算机与字符液晶显示模块有两种连接方式,一种是直接访问,另一种是间接控制。本书将详细介绍这两种方法的接口技术。

1 直接访问方式

直接访问的方式是计算机将字符液晶显示模块作为存储器或I/O设备直接挂在计算机总线上。

这样,种方式,控制信号AT89C51读操作信号RD并编写操作信号WR与地址信号合成。本文推荐的实用接口电路,如图所示。

图直接访问接口电路

对于完成液晶显示模块的显示,上图所示的电路使用的硬件相对较少,但如果计算机需要扩展,使用上图并不经济(浪费了太多的地址空间)。此时,您可以考虑使用全地址代码或部分地址代码。

在上图所示的电路中:

●8位数据总线和AT89C数据总线连接51

●E信号由WR和RD地址由信号逻辑和非后产生A15选通控制

●R/W由地址A14提供

●RS信号由地址A13提供

这样就确定了AT89C51操作字符型液晶显示模块的唯一地址选择。

图中的电位器是V0为实现显示对比度的调节提供可调驱动电压。

同时,上图所示的电路可以模拟四位计算机对字符液晶显示模块的接口,主要是驱动软件的变化。

以下是直接访问8位和4位接口的驱动程序。

(1)地址定义

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define nop() _nop_()

xdata uchar WC_ADD _at_ 0x8000;

xdata uchar RC_ADD _at_ 0xC000;

xdata uchar WD_ADD _at_ 0xA000;

xdata uchar RD_ADD _at_ 0xE000;

(2)读入BF与AC的值

8位接口:

uchar RdBFAC(void)

{

uchar status;

status=RC_ADD&0x80; /*屏蔽低7位*/

return status;

}

4位接口:

uchar RdBFAC(void)

{

uchar status,temp;

status=RC_ADD;

temp=RC_ADD;

status=status&0x80; /*屏蔽低7位*/

return status;

}

(3)写指令代码

8位接口:

void WRCMD(uchar CMD)

{

uchar temp;

do

{

temp=RdBFAC();

}

while(temp>=0x80);

WC_ADD=CMD;

}

4位接口:

void WRCMD(uchar CMD)

{

uchar temp;

do

{

temp=RdBFAC();

}

while(temp>=0x80);

WC_ADD=CMD;

CMD<<=4;

WC_ADD=CMD;

}

(4)写显示数据

8位接口:

void WRDAT(uchar DAT)

{

uchar temp;

do

{

temp=RdBFAC();

}

while(temp>=0x80);

WD_ADD=DAT;

}

4位接口:

void WRDAT(uchar DAT)

{

uchar temp;

do

{

temp=RdBFAC();

}

while(temp>=0x80);

WD_ADD=DAT;

DAT<<=4;

WD_ADD=DAT;

}

(5)读取显示数据

8位接口:

uchar RdDAT(void)

{

uchar DAT,temp;

do

{

temp=RdBFAC();

}

while(temp>=0x80);

DAT=RD_ADD;

return DAT;

}

4位接口:

uchar RdDAT(void)

{

uchar DAT,DATtemp,temp;

do

{

temp=RdBFAC();

}

while(temp>=0x80);

DAT=RD_ADD;

DATtemp=RD_ADD;

DAT=DAT|(DATtemp>>=4);

return DAT;

}

2 间接控制模式

间接控制方法是计算机将字符液晶显示模块作为终点

标签: wd电位器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台