16X2字符型液晶显示模块驱动.docx

上传人:b****7 文档编号:9791991 上传时间:2023-02-06 格式:DOCX 页数:17 大小:516.59KB
下载 相关 举报
16X2字符型液晶显示模块驱动.docx_第1页
第1页 / 共17页
16X2字符型液晶显示模块驱动.docx_第2页
第2页 / 共17页
16X2字符型液晶显示模块驱动.docx_第3页
第3页 / 共17页
16X2字符型液晶显示模块驱动.docx_第4页
第4页 / 共17页
16X2字符型液晶显示模块驱动.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

16X2字符型液晶显示模块驱动.docx

《16X2字符型液晶显示模块驱动.docx》由会员分享,可在线阅读,更多相关《16X2字符型液晶显示模块驱动.docx(17页珍藏版)》请在冰豆网上搜索。

16X2字符型液晶显示模块驱动.docx

16X2字符型液晶显示模块驱动

数理与信息工程学院

课程设计

题目:

16X2字符型液晶显示模块驱动

专业:

计算机科学与技术(专升本)

班级:

姓名:

学号:

实验地点:

指导老师:

成绩:

 

(2006.6)

目录

第1节引言………………………………………………………………………3

1.116×2液晶显示模块概述……………………………3

1.2本设计任务………………………………………3

1.3系统基本功能………………………………………3

第2节系统硬件设计……………………………………………………………4

2.1系统的硬件构成及功能…………………………………………………4

2.2AT89C2051单片机及其引脚说明………………………………………5

2.3MD—162液晶显示模块及其引脚说明…………………………………6

第3节系统软件设计……………………………………………………………7

3.1系统主程序设计…………………………………………………………7

3.2字符发生存储器…………………………………………………………8

3.3MD-162内部控制器的指令……………………………………………9

3.4字符发生器RAM地址设置 ……………………………………………9

第4节系统调试与测试结果分析…………………………………………

第5节结束语………………………………………………………………………10

液晶显示模块的比较并举例其在实际中的应用等

参考文献…………………………………………………………………………11

附录……………………………………………………………………………12

1.液晶显示字符使用说明……………………………………………12

2.在第一行显示”HELLO”全部源程序………………………13

3.采用查表的方法实现字符显示……………………………………15

 

16X2字符型液晶显示模块的驱动

数理与信息工程学院05计算机专升本吴光均

指导教师:

余水宝

第1节引言

液晶显示器(LCD)以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。

 字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等.这里以常用的2行16个字的DM-162液晶模块来驱动显示字符.

1.116×2液晶显示模块的驱动概述

16×2液晶显示模块的驱动采用AT89C2051芯片及DM-162显示模块实现16×2个字符的左移或者右移显示.AT89C2051用以控制显示字符的位置,字符的显示方式,及传递字符字码.

1.2本设计任务

使用AT89C2051实现液晶模块的字符控制显示.

1.3系统主要功能

16×2液晶显示模块的外观如图1所示。

其主要功能有:

在液晶显示模块的某个具体的存储位置显示指定的字符;控制一连串字符向左或者向右移动;控制单行或者双行显示。

图1:

 

第2节

系统硬件设计

本系统主要实现的硬件设计,包括三个方面的内容:

第一,我们所熟悉的单片机AT89C2051的引脚定义及设置;第二,DM—162与TA89C2051的引脚连接;第三,DM—162的电源部分.

2.1系统的硬件构成及功能

液晶显示模块的原理框图如图2所示。

它由以下几个部件组成:

单片机AT89C2051、电源、液晶字符显示部件DM-162、电源供电部分。

单片机部分:

采用AT89C2051芯片实现对DM-162的控制显示

字符显示模块:

选择2行16个字的显示容量.

电源部分:

+5V电压供电,维持系统的正常工作,同时加载10K电位器以适应不用亮度的显示字符即对比度的调整.

图2液晶显示系统原理框图

2.2AT89C2051单片机及其引脚说明

AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。

内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。

由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。

AT89C2051是一个有20个引脚的芯片,引脚配置如图3所示。

与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减小。

图3AT89C2051引脚配置

AT89C2051芯片的20个引脚功能为:

VCC电源电压。

GND接地。

RST复位输入。

当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。

XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2来自反向振荡放大器的输出。

P1口8位双向I/O口。

引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。

P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LCD显示器;P1口引脚写入“1”后,可用作输入。

在闪速编程与编程校验期间,P1口也可接收编码数据。

P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。

P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。

P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。

P3口也可用作特殊功能口,其功能见表1。

P3口同时也可为闪速存储器编程和编程校验接收控制信号。

表1P3口特殊功能

P3口引脚

特殊功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

(外部中断0)

P3.3

(外部中断1)

P3.4

T0(定时器0外部输入)

P3.5

T1(定时器1外部输入)

2.3DM-162液晶模块及其引脚说明

DM-162采用标准的14脚接口,其中:

VSS为地电源

VDD接5V正电源

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

D0~D7为8位双向数据线。

2.4DM-162液晶模块与单片机连接图

DM-162液晶显示模块可以和单片机AT89C2051直接相连,电路如图4所示

 

图4芯片连接图

 

第3节系统的软件设计

本系统的软件设计主要考虑到几个方面:

第一,显示控制的初始设置,即控制指令的选择;第二,显示字符的位置选择即显示存储单位的确定;第三,显示字符的内码的对应选择.

3.1系统主程序设计

 

 

图8系统程序流程图

3.2字符发生存储器

DM-162液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表2所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”.

表2字符代码对应表

3.3MD-162内部控制器的指令

DM-162液晶模块内部的控制器共有11条控制指令,如表3所示,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:

1为高电平、0为低电平)

 

表311条指令表

 

指令1:

清显示,指令码01H,光标复位到地址00H位置

 指令2:

光标复位,光标返回到地址00H 

指令3:

光标和显示模式设置 I/D:

光标移动方向,高电平右移,低电平左移 S:

屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效 

指令4:

显示开关控制。

 D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:

控制光标的开与关,高电平表示有光标,低电平表示无光标 B:

控制光标是否闪烁,高电平闪烁,低电平不闪烁 

指令5:

光标或显示移位 S/C:

高电平时移动显示的文字,低电平时移动光标

指令6:

功能设置命令 .DL:

高电平时为4位总线,低电平时为8位总线 N:

低电平时为单行显示,高电平时双行显示 F:

 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 

指令7:

字符发生器RAM地址设置 

指令8:

DDRAM地址设置 

指令9:

读忙信号和光标地址 BF:

为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

 

指令10:

写数据 

指令11:

读数据 

3.4字符发生器RAM地址设置 

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表4是DM-162的内部显示地址,比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?

这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H).

 

表4字符发生器RAM地址

结束语

本系统的实现相对比较简单,主要了解了AT89C2051与DM-162的连接显示.AT89C2051对液晶字符的控制显示.通过本系统的学习也让我比较深刻的认识到DM-162的显示原理及内部结构特征.这与书上8051芯片与HD44780显示模块的连接显示功能相近,也是经过两个主要的过程显示控制字符,首先就是对液晶显示模块进行初始化设置,即包括清除显示,功能设置,开关显示,方式设置等.然后,在判断为不忙的情况下写入显示的字符数据.看起来功能可能比较单一,只是涉及到了单处机对DM-162液晶字符模块的控制显示,而且这个字符的字码是每次经过人为的改变而实现其显示,所以从实用性方面考虑不怎么理想.但是从AT89C2051本身的功能特性考虑,我们可以设想,通过AT89C2051的串口自动得到外部的可变数据,再经过字码对照表所得待显示的数据不失为一种好的办法.在这里,自动获得的数据可以通过传感器来实现.比如,加油站里面的加油量控制显示,就可以通过测量检测传感器来实现输出的油量,然后输入到单片机的串口,再经过字码对应表来获得在液晶显示字符模块中显示的数据.再比如由温度传感器获取的温度经A/D转换后,读入到AT89C2051单片机中,就可以显示出当时的温度.总之,DM-162作为一种小型的字符显示器,在日常生活中碰到的一些仪器设备中还是比较有实用价值,因此值得我们去了解它,掌握如何去运用它.

参考文献

[1]高锋.《单片机应用系统设计及实用技术》.机械工业出版社.2004.4

附录

1.液晶显示字符使用说明

DM-162液晶显示模块的字符显示,可分为好几种显示模式,这主要取决于对具体的应用.如静态的显示,还是动态的左移或者右移显示.那么这个主要是在程序设计的过程中,进行初始化所决定的.因此,在使用之前先确定使用的目的,选择好显示的方式,当然得找出相应的显示字符的字符代码及在DM-162液晶显示模块的相应显示位置的RAM地址.然后进行每个字符的写入显示.在使用的过程中,还得注意的一点是,可能是显示驱动电压的不稳定性,或者是由于驱动电压的过高,会形成一种"鬼影"的现象,因此需要手动对10K的电位器进行对比度调整以达到显示的良好效果.

2.在第一行显示”HELLO”全部源程序

程序设计步骤详解:

参照图

 

显示HELLO字符的位置情况如表5:

表5:

H

E

L

L

O

根据所给字符首先确定它的字码对应情况:

H:

01001000B

E:

01000101B

L:

01001100B

O:

01001111B

根据表5所显示字符的具体位置找出相应的RAM地址位置:

H:

00000000B(00H)+00000110B(06H)=00000110B(06H)

E:

00000000B(00H)+00000111B(07H)=00000111B(07H)

L

(1):

00000000B(00H)+00001000B(08H)=00001000B(08H)

L

(2):

00000000B(00H)+00001001B(09H)=00001001B(09H)

O:

00000000B(00H)+00001010B(0A0H)=00001010B(0A0H)

这里须注意的地方:

如果HELLO显示在第二行的话,那么公式中前的00H应该换成40H,即最高位D7应保持高电平状态.

 

具体程序如下:

ORG0000H

RSEQUP3.7;确定硬件连接方式

RWEQUP3.5;确定硬件连接方式

EEQUP3.4;确定硬件连接方式

MOVP1,#00000001B;清屏并光标复位

ACALLENABLE;调用写入命令子程序

MOVP1,#00111000B;设置显示模式:

8位2行5x7点阵

ACALLENABLE;调用写入命令子程序

MOVP1,#00001111B;显示器开、光标开、光标允许闪烁

ACALLENABLE;调用写入命令子程序

MOVP1,#00000110B;文字不动,光标自动右移

;显示H

ACALLENABLE;调用写入命令子程序

MOVP1,#06H;写入显示起始地址(第一行第六个位置)

ACALLENABLE;调用写入命令子程序

MOVP1,#01001000B;字母H的代码

SETBRS;RS=1

CLRRW;RW=0;准备写入数据

CLRE;E=0;执行显示命令

ACALLDELAY;判断液晶模块是否忙?

SETBE;E=1;显示完成,程序停车

;显示E

ACALLENABLE;调用写入命令子程序

MOVP1,#07H;写入显示起始地址(第一行第七个位置)

ACALLENABLE;调用写入命令子程序

MOVP1,#01000101B;字母E的代码

SETBRS;RS=1

CLRRW;RW=0;准备写入数据

CLRE;E=0;执行显示命令

ACALLDELAY;判断液晶模块是否忙?

SETBE;E=1;显示完成,程序停车

;显示第一个L

ACALLENABLE;调用写入命令子程序

MOVP1,#08H;写入显示起始地址(第一行第八个位置)

ACALLENABLE;调用写入命令子程序

MOVP1,#01001100B;字母L的代码

SETBRS;RS=1

CLRRW;RW=0;准备写入数据

CLRE;E=0;执行显示命令

ACALLDELAY;判断液晶模块是否忙?

SETBE;E=1;显示完成,程序停车

;显示第二个L

ACALLENABLE;调用写入命令子程序

MOVP1,#08H;写入显示起始地址(第一行第九个位置)

ACALLENABLE;调用写入命令子程序

MOVP1,#01001100B;字母L的代码

SETBRS;RS=1

CLRRW;RW=0;准备写入数据

CLRE;E=0;执行显示命令

ACALLDELAY;判断液晶模块是否忙?

SETBE;E=1;显示完成,程序停车

;显示O

ACALLENABLE;调用写入命令子程序

MOVP1,#0A0H;写入显示起始地址(第一行第十个位置)

ACALLENABLE;调用写入命令子程序

MOVP1,#01001111B;字母L的代码

SETBRS;RS=1

CLRRW;RW=0;准备写入数据

CLRE;E=0;执行显示命令

ACALLDELAY;判断液晶模块是否忙?

SETBE;E=1;显示完成,程序停车

;完成显示原地踏步

AJMP$

;命令使能

ENABLE:

CLRRS;写入控制命令的子程序

CLRRW

CLRE

ACALLDELAY

SETBE

RET

;判断忙

DELAY:

MOVP1,#0FFH;判断液晶显示器是否忙的子程序

CLRRS

SETBRW

CLRE

NOP

SETBE

JBP1.7,DELAY;如果P1.7为高电平表示忙就循环等待

RET

END

3.采用查表的方法实现字符显示

程序开始时对液晶模块进行了功能设置,约定了显示的格式。

注意显示字符时光标是自动右移的,无需人工干预。

每次输入指令都先调用判断是否忙子程序DELAY,然后输入显示位置的地址0C0H,最后输入要显示的字符“A”的代码41H。

如果要显示很多字符,可以用查表的方法。

可以在表的末尾设置结束码,比如00H,如果查表查得00H,说明字符已经全部显示完。

以下是用查表法一次显示“GOOD”的程序。

(部分显示功能设置同上程序,调用功能写入部分及判断忙否的功能子程序略)

MOVDPTR,#TAB;表入口地址

REITE1:

MOVR1,00H;写入要显示的字符

SATRT:

MOVA,R1

MOVCA,@A+DPTR

MOVP1,A;写入P1口

CLRRE

CLRE

ACALLDELAY

SETBE

INCR1

CJNEA,#00H,START;非00H继续显示其它的字符

TAB:

DB47H,4FH,4FH,44FH,00H;字符代码GOOD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1