教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 资料大全 >

液晶显示技术HD44780U的使用(C语言)

来源:网络收集 时间:2026-09-03
导读: 液晶显示技术 HD44780U的使用(C语言) 字符型液晶显示模块的接口技术 字符型液晶显示模块的外接口信号实际上就是HD44780U与计算机接口部的信号,信号时序为M6800系列时序。当使用8080时序的AT89C51系列的计算机与其连接时,关键就是注意E信号的使用。 计算

液晶显示技术

HD44780U的使用(C语言)

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

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

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

1 直接访问方式

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

在这种方式下,控制信号由AT89C51的读操作信号RD和写操作信号WR与地址信号合成产生。本文推荐的直接访问方式的实用接口电路如图1所示。

图1 直接访问方式的接口电路

上图所示的电路,对于完成液晶显示模块的显示来说,所用的硬件是相对比较少的,但是如果计算机需要进行扩展的话,使用上图的话不是很经济(浪费了太多的地址空间)。这个时候,可以考虑使用全地址译码或者部分地址译码的方式。

在上图所示的电路中:

液晶显示技术

●8位数据总线与AT89C51的数据总线连接

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

●R/W由地址A14提供

●RS信号由地址A13提供

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

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

同时,上图所示的电路不经过任何改变就可以仿真出4位计算机对字符型液晶显示模块的接口,主要是驱动软件的改变。

以下将给出直接访问方式的8位和4位接口的驱动程序。

(1)地址定义

#include <reg51.h>

#include <intrins.h>

#include <stdio.h>

#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

{

}

while(temp>=0x80);

WC_ADD=CMD;

}

4位接口:

void WRCMD(uchar CMD)

{

uchar temp;

do

{

}

while(temp>=0x80);

WC_ADD=CMD;

CMD<<=4; temp=RdBFAC(); temp=RdBFAC();

液晶显示技术

WC_ADD=CMD;

}

(4)写显示数据

8位接口:

void WRDAT(uchar DAT)

{

uchar temp;

do

{

}

while(temp>=0x80);

WD_ADD=DAT;

}

4位接口:

void WRDAT(uchar DAT)

{

uchar temp;

do

{

}

while(temp>=0x80);

WD_ADD=DAT;

DAT<<=4;

WD_ADD=DAT;

}

(5)读显示数据

8位接口:

uchar RdDAT(void) temp=RdBFAC(); temp=RdBFAC();

液晶显示技术

{

uchar DAT,temp;

do

{

}

while(temp>=0x80);

DAT=RD_ADD;

return DAT;

}

4位接口:

uchar RdDAT(void)

{

uchar DAT,DATtemp,temp;

do

{

}

while(temp>=0x80);

DAT=RD_ADD;

DATtemp=RD_ADD;

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

return DAT;

}

2 间接控制方式

间接控制方式是计算机把字符型液晶显示模块作为终端与计算机的并行接口连接,计算机通过对该并行接口的操作间接的实现对字符型液晶显示模块的控制。本文以AT89C51的P1和P2接口为并行接口与字符型液晶显示模块连接,图2给出了本文推荐的实用接口电路。 temp=RdBFAC(); temp=RdBFAC();

液晶显示技术

图2 间接控制方式的接口电路

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

在编制驱动函数的时候,要注意时序的配合,根据M6800时序的规范:

●在写操作时,使能信号E的下降沿有效,在软件设置顺序上,先设置RS、R/W状态,再设置数据,然后产生E信号的脉冲,最后复位RS和R/W状态

●在读操作时,使能信号E的高电平有效,所以在软件设置顺序上,先设置RS,R/W状态,再设置E信号为高,这时从数据口读取数据,然后将E信号置低,最后复位RS和R/W状态。

间接控制方式通过软件执行产生操作时序,所以在时间上是足够满足要求的。因此间接控制方式能够实现高速计算机与字符型液晶显示模块的连接。

同时,上图所示的电路不经过任何改变就可以实现4位计算机对字符型液晶显示模块的接口,主要是驱动软件的改变。

以下将给出间接控制方式的8位和4位接口的驱动程序。

(1)接口定义

#include <reg51.h>

#include <intrins.h>

液晶显示技术

#include <stdio.h>

#define uchar unsigned char

#define uint unsigned int

#define nop() _nop_()

sbit E=P2^7;

sbit RW=P2^6;

sbit RS=P2^5;

(2)读入BF与AC的值

8位接口:

uchar RdBFAC(void)

{

uchar status;

P1=0xFF;

RS=0;

RW=1;

E=1;

status=P1;

E=0;

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

return status;

}

uchar RdBFAC(void)

{

uchar status,temp;

P1=0xF0;

RS=0;

RW=1;

E=1;

status=P1;

E=0;

液晶显示技术

P1=0xF0;

E=1;

temp=P1;

E=0;

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

return status;

}

(3)写指令代码

8位接口:

void WRCMD(uchar CMD)

{

uchar temp;

do

{

}

while(temp>=0x80);

RW=0;

P1=CMD;

E=1;

nop();

E=0;

}

4位接口:

void WRCMD(uchar CMD)

{

uchar temp;

do

{

temp=RdBFAC(); temp=RdBFAC();

液晶显示技术

}

while(temp>=0x80);

RW=0;

P1=CMD;

E=1;

nop();

E=0;

CMD<<=4;

P1=CMD;

E=1;

nop();

E=0;

}

(4)写显示数据

8位接口:

void WRDAT(u …… 此处隐藏:4499字,全部文档内容请下载后查看。喜欢就下载吧 ……

液晶显示技术HD44780U的使用(C语言).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/2192734.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)