单片机控制液晶显示模块.docx
- 文档编号:10185782
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:21
- 大小:375.33KB
单片机控制液晶显示模块.docx
《单片机控制液晶显示模块.docx》由会员分享,可在线阅读,更多相关《单片机控制液晶显示模块.docx(21页珍藏版)》请在冰豆网上搜索。
单片机控制液晶显示模块
摘要
单片机具有控制功能强,集成度高、可靠性高、体积小,低电压、低能耗等特点,并且具有优异的性能价格比。
自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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 液晶显示 模块