单片机控制液晶显示模块.docx

上传人:b****6 文档编号:10185782 上传时间:2023-02-09 格式:DOCX 页数:21 大小:375.33KB
下载 相关 举报
单片机控制液晶显示模块.docx_第1页
第1页 / 共21页
单片机控制液晶显示模块.docx_第2页
第2页 / 共21页
单片机控制液晶显示模块.docx_第3页
第3页 / 共21页
单片机控制液晶显示模块.docx_第4页
第4页 / 共21页
单片机控制液晶显示模块.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机控制液晶显示模块.docx

《单片机控制液晶显示模块.docx》由会员分享,可在线阅读,更多相关《单片机控制液晶显示模块.docx(21页珍藏版)》请在冰豆网上搜索。

单片机控制液晶显示模块.docx

单片机控制液晶显示模块

摘要

单片机具有控制功能强,集成度高、可靠性高、体积小,低电压、低能耗等特点,并且具有优异的性能价格比。

自20世纪70年代问世以来,受到人们的广泛关注。

几十年间,单片机的发展十分迅猛,在控制领域独占鳌头。

在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习、应用,以单片机为核心,辅以必要的电路,设计了一个简易的液晶屏显示地图的程序,它由直流电源供电,通过LCD显示出来。

LCD还可以显示字母、数字符号、中文字型,具有绘图及文字画面混合显示功能。

现代社会对液晶屏显示一些字体和图形的应用十分普遍,比如公交车上的报站牌,建筑楼上的广告标语等等。

本此课设所要求的是将单片机与LCD液晶屏相结合,并编写相应的程序在液晶屏上显示出辽宁省地图。

关键词:

LCD液晶屏51单片机辽宁省地图

 

目录

摘要I

1绪论1

2总体方案设计2

2.1OCMJ4X8C_3型液晶显示屏的工作原理2

2.2串行接口与串行传输资料4

2.3汉字图形显示步骤5

3硬件设计6

3.1电路设计6

3.2LCD液晶屏外形尺寸图及坐标图6

3.3功能模块设计7

4软件设计9

4.1主程序流程图9

4.2LCD显示模块设计10

5调试分析10

6结论10

7总结11

附录一12

附录二12

 

1绪论

 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:

一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机是了解计算机原理与结构的最佳选择。

  单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。

我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!

它主要是作为控制部分的核心部件。

  它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。

单片机是靠程序的,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。

一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!

但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!

只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

  由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?

很多高级的语言已经达到了可视化编程的水平为什么不用呢?

原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。

一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!

对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。

单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。

一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。

  可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。

不过,这种电脑,通常是指个人计算机,简称PC机。

它由主机、键盘、显示器等组成。

还有一类计算机,大多数人却不怎么熟悉。

这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。

究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

在当今社会中,LCD液晶屏的使用非常广泛,在工业上可以通过液晶屏显示一些数值,比如测量电压表等;在生活中,可以通过液晶屏显示一些人们日常生活中所需的资料。

但液晶屏显示的使用也非常方便,只需要工作人员很简单的操作、控制,人们就可以很直观的去查看一些信息。

液晶屏的使用简单方便,本文介绍的是ocmj4x8c_3型号液晶显示屏,尺寸是128*64DOTS,通过51单片机以8位16进制转换的数据,在液晶屏上显示出来。

此系统核心部件是MCS-51单片机、LCD显示器。

2总体方案设计

2.1OCMJ4X8C_3型液晶显示屏的工作原理

此模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。

提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口(OCMJ4X16A/B无串行接口)。

所有的功能,包含显示RAM,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。

内置2M-位中文字型ROM(CGROM)总共提供8192个中文字型(16x16点阵),16K位半宽字型ROM(HCGROM)总共提供126个符号字型(16x8点阵),64x16位字型产生RAM(CGRAM),另外绘图显示画面提供一个64x256点的绘图区域(GDRAM),可以和文字画面混和显示。

提供多功能指令:

画面清除(Displayclear)、光标归位(Returnhome)、显示打开/关闭(Displayon/off)、光标显示/隐藏(Cursoron/off)、显示字符闪烁(Displaycharacterblink)、光标移位(Cursorshift)、显示移位(Displayshift)、垂直画面卷动(Verticallinescroll)、反白显示(By_linereversedisplay)、待命模式(Standbymode)。

表-1OCMJ4X8C_3的引脚说明

引脚

名称

方向

说明

1

VSS

-

GND(0V)

2

VDD

-

SupplyVoltageForLogic(+5V)

3

NC

-

SupplyVoltageForLCD(悬空)

4

RS(CS)

I

H:

DataL:

InstructionCode

5

R/W(STD)

I

H:

ReadL:

Write

6

E(SCLK)

I

EnableSignal,高电平有效

7

DB0

I/O

数据0

8

DB1

I/O

数据1

9

DB2

I/O

数据2

10

DB3

I/O

数据3

11

DB4

I/O

数据4

12

DB5

I/O

数据5

13

DB6

I/O

数据6

14

DB7

I/O

数据7

15

PSB

I

H:

ParallelModeL:

SerialMode

16

NC

-

空脚

17

/RST

I

ResetSignal,低电平有效

18

NC

-

空脚

19

LEDA

-

背光源正极(+5V)

20

LEDK

-

背光源正极(0V)

图5液晶显示电路

2.2串行接口与串行传输资料

当PSB脚接低电位时,模块将进入串行模式。

从一个完整的串行传输流程来看,一开始先传输启始字节,它需先接收到五个连续的〝1〞(同步位字符串),在启始字节,此时传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位(RW)及寄存器选择位(RS),最后第八的位则为〝0〞。

在接收到同步位及RW和RS资料的启始字节后,每一个八位的指令将被分为两个字节接收到:

较高4位(DB7~DB4)的指令资料将会被放在第一个字节的LSB部分,而较低4位(DB3~DB0)的指令资料则会被放在第二个字节的LSB部分,至于相关的另四位则都为0。

串行传输讯号请参考下图说明:

图6液晶显示时序图

图7串行接口时序图

2.3汉字图形显示步骤

1、显示资料RAM(DDRAM)

显示数据RAM提供64x2个字节的空间,最多可以控制4行16字(64个字)的中文字型显示,当输入显示资料RAM时,可以分别显示CGROM,HCGROM与CGRAM的字型;本系列模块可以显示三种字型,分别是半宽的HCGROM字型、CGRAM字型及中文CGROM字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H~0006H的定字型,02H~7FH的编码中将选择半编码中将选择CGRAM的自宽英数字的字型,至于A1以上的编码将自动的结合下一个字节,组成两个字节的编码达成中文字型的编码。

BIG5(A140~D75F)GB(A1A0~F7FF),详细各种字型编码如下:

1).显示半宽字型:

将8位资料写入DDRAM中,范围为02H~7FH的编码。

2).显示CGRAM字型:

将16位资料写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码。

3).显示中文字形:

将16位资料写入DDRAM中,范围为A140H~D75FH的编码(BIG5),A1A0H~F7FFH的编码(GB)。

将16位资料写入DDRAM方式为透过连写入两个字节的资料来完成,先写入高字节(D15~D8)再写入低字节(D7~D0)。

2、绘图RAM(GDRAM)

绘图显示RAM提供64x32个字节的记忆空间(由扩充指令设定绘图RAM地址),最多可以控制256x64点的二维绘图缓冲空间,在更改绘图RAM时,由扩充指令设定GDRAM地址先设垂直地址再设水平地址(连续写入两个字节的数据来完成垂直与水平的坐标地址),再写入两个8位的资料到绘图RAM,而地址计数器(AC)会自动加一,整个写入绘图RAM的步骤如下:

1).先将垂直的字节坐标(Y)写入绘图RAM地址。

2).再将水平的字节坐标(X)写入绘图RAM地址。

3).将D15~D8写入到RAM中(写入第一个Bytes)。

4).将D7~D0写入到RAM中(写入第二个Bytes)。

 

3硬件设计

3.1电路设计

图1电路设计图

3.2LCD液晶屏外形尺寸图及坐标图

图2液晶屏外形尺寸图

图3液晶屏坐标图

3.3功能模块设计

根据分析整个系统主要划分两个主模块,即:

51控制模块和LCD显示模块,以及51控制模块中的调用子程序模块,功能模块图如图2所示。

图4系统功能模块图

(1)51控制模块

该模块实现提供控制字,发送数据和命令。

(2)LCD显示模块

该模块实现将数据扫描成地图在LCD上显示出来。

(3)调用子程序模块

MOVA,#34H:

34H--扩充指令操作

LCALLSEND_I:

写指令子程序,扩充指令操作

MOVA,#30H:

30H--基本指令操作

LCALLSEND_I:

写指令子程序,基本指令操作

MOVA,#80H

LCALLSEND_I:

设定绘图RAM地址

MOVCA,@A+DPTR

LCALLSEND_D:

查表指令,调用数据

MOVA,#01H

LCALLSEND_I:

待命模式

MOVDPTR,#TAB5:

显示图形

LCALLPHO_DISP

A,#34H

LCALLSEND_I:

调用count的数值

MOVA,LCD_Y

LCALLSEND_I:

输出Y轴值

MOVA,LCD_X

LCALLSEND_I:

输出X轴值

4软件设计

4.1主程序流程图

图8主程序流程图

4.2LCD显示模块设计

图9LCD显示模块设计图

5调试分析

在设计本系统的过程中,LCD液晶屏上的汉字显示出现乱码和字体不对齐的现象,经过研究,发现一个汉字代表两个byte,所以在源程序中改正对齐,最后显示的结果符合要求。

6结论

经过这五周的努力,反复的调试与修改,最终顺利的完成了本次课设,任务书上所要求的效果也在实验箱上实现出来,并通过了老师的检查。

本程序可以实现辽宁省地图的图形显示。

但编写的程序还是有些许不足,比如在调用子程序上就略显冗余不够精炼,反映出自己在处理一些细节方面的基本功不够扎实,如果今后有机会一定要做到更好。

7总结

为期五周的课程设计结束了,经过不断的努力,在老师的主导帮助下,终于完成了《液晶屏显示辽宁省地图》这个课程设计。

在此期间,我学到了很多新的东西,让我更丰富了自己,经过这些课设的锻炼,发现自己的不足,并开始有意识的去找寻未知,更积极的去探索自己不足的东西,使我更渴望了对新事物的研究与学习。

通过查看相关的资料和书籍,反复对比与摘取,把最精髓的部分挑出来用在实验中,让此程序最接近课设的要求。

每一次否定自己先前的选择都是一种进步,我会告诉自己总会有更合适的方法使其达到同样的效果。

不满足的心态也是我此次试验的一大收获。

虽然过程很艰难,程序的调试也是很枯燥的,但当实验的效果出来时,我非常的开心,觉得再多的付出也是值得的。

虽然编写的程序不是很完美,但我相信,通过今后的磨练,自己会做的一次比一次好。

这次做论文的经历也会使我终身受益,我感受到做设计是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,是对自己所有努力的一个交代,不得有半点马虎。

我感觉通过这次试验,使我更加体会到了程序的魅力,我会更加严谨的对待每次难得的提高自己的机会,相信以后自己会做的更好。

 

附录一

附录二

;******************OCM4x8C串口******************

RSEQUP3.0;接收信号

STDEQUP3.1;读写指令

SCLKEQUP3.2;时钟信号

PSBEQUP3.3;行列选

RSTEQUP3.5;复位

RS_STUEQU20H.0

LCD_XEQU30H

LCD_YEQU31H

COUNTEQU34H

COUNT1EQU35H

COUNT2EQU36H

COUNT3EQU37H

LCD_DATAEQU38H

LCD_DATA1EQU39H

LCD_DATA2EQU3AH

DA_INEQU3BH

WR_COUNT1EQU3CH

WR_COUNT2EQU3DH

;***********************************************

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

NOP

NOP

MOVSP,#5FH

SETBRST

CLRPSB

;********************初始化**********************

LGS0:

MOVA,#34H;34H--扩充指令操作

LCALLSEND_I;写指令子程序,扩充指令操作

MOVA,#30H;30H--基本指令操作

LCALLSEND_I;写指令子程序,基本指令操作

MOVA,#01H;清除显示

;***********************************************

LGS3:

MOVA,#34H

LCALLSEND_I

MOVA,#30H

LCALLSEND_I

MOVDPTR,#TAB3;显示汉字和字符

MOVCOUNT,#40H

MOVA,#80H

LCALLSEND_I;设定绘图RAM地址

LGS31:

CLRA

MOVCA,@A+DPTR

LCALLSEND_D

INCDPTR

DJNZCOUNT,LGS31

LCALLDELAY3

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

LGS4:

MOVA,#01H

LCALLSEND_I;待命模式

LCALLDELAY2

LCALLDELAY2

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

LGS5:

MOVDPTR,#TAB5;显示图形

LCALLPHO_DISP

LCALLDELAY3

LCALLDELAY3

LJMPLGS5

;***********************************************

PHO_DISP:

MOVCOUNT3,#02H;全屏显示图形子程序

MOVLCD_X,#80H

PHO_DISP1:

MOVLCD_Y,#80H

MOVCOUNT2,#20H

PHO_DISP2:

MOVCOUNT1,#10H

LCALLWR_ZB

PHO_DISP3:

CLRA

MOVCA,@A+DPTR

LCALLSEND_D

INCDPTR

DJNZCOUNT1,PHO_DISP3

INCLCD_Y

DJNZCOUNT2,PHO_DISP2

MOVLCD_X,#88H

DJNZCOUNT3,PHO_DISP1

MOVA,#36H

LCALLSEND_I;调用count2的数值

MOVA,#30H

LCALLSEND_I;X轴坐标数值

RET

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

CLRRAM:

MOVLCD_DATA1,#00H;GDRAM写0子程序

MOVLCD_DATA2,#00H

RET

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

WR_ZB:

MOVA,#34H

LCALLSEND_I;调用count的数值

MOVA,LCD_Y

LCALLSEND_I;输出Y轴值

MOVA,LCD_X

LCALLSEND_I;输出X轴值

MOVA,#30H

LCALLSEND_I;X轴坐标数值

RET

;***********************************************

SEND_D:

SETBRS_STU;写数据子程序

MOVDA_IN,A

LCALLSERIAL_WR

RET

SEND_I:

CLRRS_STU;写指令子程序

MOVDA_IN,A

LCALLSERIAL_WR

RET

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

;DA_IN:

数据或指令

;RS_STU:

数据指令选择

;WR_COUNT1:

计数器1

;WR_COUNT2:

计数器2

 

SERIAL_WR:

PUSHACC

MOVA,DA_IN

SETBCS

MOVWR_COUNT1,#05H

SETBSTD;1

SERIAL_WR1:

CLRSCLK

SETBSCLK

DJNZWR_COUNT1,SERIAL_WR1

CLRSTD;RW

CLRSCLK

SETBSCLK

JNBRS_STU,CLR_RS

SETBSTD;写数据

SJMPSETB_RS

CLR_RS:

CLRSTD;写指令

SETB_RS:

CLRSCLK

SETBSCLK

CLRSTD;0

CLRSCLK

SETBSCLK

MOVWR_COUNT1,#02H

SERIAL_WR2:

MOVWR_COUNT2,#04H

SERIAL_WR21:

RLCA

MOVSTD,C

CLRSCLK

SETBSCLK

DJNZWR_COUNT2,SERIAL_WR21

MOVWR_COUNT2,#04H

CLRSTD;0

SERIAL_WR22:

CLRSCLK

SETBSCLK

DJNZWR_COUNT2,SERIAL_WR22

DJNZWR_COUNT1,SERIAL_WR2

CLRSCLK

CLRCS

LCALLDELAY2

POPACC

RET

;***********************************************

DELAY3:

MOVR5,#16H

DEL31:

MOVR6,#0FFH

DEL32:

MOVR7,#0FFH

DEL33:

DJNZR7,DEL33

DJNZR6,DEL32

DJNZR5,DEL31

RET

DELAY2:

MOVR6,#06H

DEL21:

MOVR7,#18H

DEL22:

DJNZR7,DEL22

DJNZR6,DEL21

RET

;***********************************************

TAB3:

DB'辽宁省地图'

DB''

DB''

DB''

 

TAB5:

DB00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

DB00,00,00,00,00,00,00,00,00,00,3EH,00,00,00,00,00

DB00,00,00,00,00,00,00,00,00,00,23,80,00,00,00,00

DB00,00,00,00,00,00,00,00,00,00,0C0H,7EH,00,00,00,00

DB00,00,00,00,00,00,00,00,00,00,80,03,07,80,00,00

DB00,00,00,00,00,00,00,00,00,00,80,00,8CH,0C0H,00,00

DB00,00,00,00,00,00,00,00,00,00,80,00,0C8H,40,00,00

DB00,00,00,00,00,00,00,00,00,07,00,00,70,40,00,00

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

当前位置:首页 > 解决方案 > 学习计划

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

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