单片机控制12864液晶的应用.docx
- 文档编号:23989857
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:54
- 大小:843.13KB
单片机控制12864液晶的应用.docx
《单片机控制12864液晶的应用.docx》由会员分享,可在线阅读,更多相关《单片机控制12864液晶的应用.docx(54页珍藏版)》请在冰豆网上搜索。
单片机控制12864液晶的应用
课程设计论文开题报告
课程设计应达到的目的
本课程是在《单片机原理与应用B》课程主要容学习之后,通过一个单片机应用系统的设计和调试,训练学生综合运用课本知识,独立解决工程实际问题的能力:
使学生加深对单片机结构、工作原理的理解,提高学生综合应用知识的能力、分析解决问题的能力和单片机应用系统的设计技能;同时培养学生查阅资料和撰写科技报告的能力。
课题名称
单片机控制液晶显示器的应用
设计目的
1.掌握单片机扩展总线的工作原理和操作时序;
2.掌握128*64图形点阵LCD显示模块的工作原理、控制方式和控制命令;
3.掌握通过单片机总线时序控制LCD显示模块的程序的编写方法。
设计要求
1.单片机通过扩展总线和12864图形点阵LCD显示模块相连;
2.单片机扩展总线的地址线和LCD的控制线相连;
3.使用过取字模软件,完本钱人和学号的显示字模;
4.编程实现和学号的显示设置按键;
5.实现不同方式显示本人和学号。
单片机控制12864液晶的应用
摘要:
汉字的使用很广泛,显示汉字始终是计算机在我国应用普与的一个障碍。
随着单片机和显示技术的开展,加上人们不满足单片机系统采用LED数码管的简单显示,利用单片机控制液晶显示成为当前显示系统的主流。
本文主要介绍了89C51单片机为控制设备,12864液晶显示器为显示设备。
实现的一个可以显示汉字、字符和动态显示汉字的液晶显示器设备。
通过按键控制可以实现显示的汉字显示和左右移动。
利用液晶显示器显示汉字操作灵活,汉字显示果可以大大提高。
Abstact:
TheuseofChinesecharactersisverywide,displayChinesecharactersisalwaysanobstacleinthepopularizationofcomputerapplicationinourcountry.WiththedevelopmentofMCUanddisplaytechnology,andpeopledon'tsatisfySCMsystemusingsimpleLEDdigitaldisplaytube,controltheuseofsingle-chipLCDdisplaysystemnowbecomethemainstream.Thispapermainlyintroducesthe89C51microcontrollerasthecontrolequipment,12864LCDasdisplayequipment.AnimplementationcandisplayChinesecharacters,charactersanddynamicdisplayofliquidcrystaldisplayChinesecharacters.ThroughthebuttoncontrolcandisplaytheChinesecharactersdisplayandmovearound.UseLCDdisplayChinesecharactersofflexibleoperation,displayofChinesecharacterscanbegreatlyimproved.
1.液晶控制电路和方案
1.1相关硬件和软件介绍
1.1.1STC89C52
89C52置8位中央处理单元、256字节部数据存储器RAM、8k片程序存储器〔ROM〕32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片时钟振荡电路。
此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片其它功能。
本次设计通过89C52控制12864液晶显示器和矩阵键盘,从而实现汉字和字符的显示。
1.1.2带字库的12864液晶
带字库的12864显示汉字和符号时,不需要使用字模提取软件来提取字模,如果想显示自定义的字符,也可以使用字模提取来实现显示。
下面介绍下带字库12864液晶引脚功能:
引脚
标志
说明
1
GND
接地
2
VCC
接5V
3
V0
接可调电阻
4
RS/CS
并行模式:
RS=0,指令;RS=1,数据。
串行模式:
片选。
5
R/W
并行模式:
R/W=0,写;R/W=1,读。
串行模式:
数据。
6
E
并行模式:
允许信号。
串行模式:
数据。
7
D0-D7
并行模式:
数据
串行模式:
不连接
8
9
10
11
12
13
14
15
PSB
并行模式:
PSB=1;串行模式:
PSB=0
16
NC
不连接
17
RST
复位
18
NC
不连接
19
LED+
背光正极,接5V
20
LED-
背光负极,接地
1.1.3不带字库的12864液晶
不带字库的12864可以通过取字模软件显示各种自定义的字符和图片,液晶本身中不带有字库。
下面介绍不带字库12864的引脚功能:
引脚
标志
说明
1
GND
接地
2
VCC
接5V
3
V0
可调电阻
4
D/I
1:
数据0:
指令
5
R/W
1:
读0:
写
6
E
1:
可读写0:
不可读写
7
D0-D7
数据总线
8
9
10
11
12
13
14
15
CS1
左半屏片选信号。
1:
选中;0:
不选中。
16
CS2
左半屏片选信号。
1:
选中;0:
不选中。
17
RST
复位信号,低电平有效。
18
VEE
LCD负压驱动脚〔-10~18V〕。
19
NC
20
NC
1.1.4取模软件
取字模软件使用的是ZIMO21,在液晶显示时,选取的字体是12号,此字体对应的液晶点阵正好是16X16大小。
所以液晶一页可以显示4X8=32个字。
取字模软件也可以设定各种字体和自定义的图片,使用比拟方便。
1.2液晶显示控制设计电路
12864液晶显示器可以显示字母、数字符号、中文字型与自定图形显示,只要一个最小的微处理系统,将液晶显示模块的接口作为I/O设备直接与之连接,就可以进展控制液晶显示器和数据传输,从而达到理想的显示效果。
选择按键接高电平,即可实现单片机对液晶显示汉字的控制。
1.2.1系统的总体设计思路和框图
整个系统主要由STC89C51芯片、LCD12864液晶和矩阵键盘构成,具体如下列图1所示:
图1.系统整体框图
1.2.2系统方案选择
①时钟模块
利用晶体本身的特性,可以利用晶振与电容搭建振荡电路与89C51引脚XTAL1与XTAL2相连,设计中使用12M的晶振向单片机提供一个频率定度较高的时钟脉冲,具体连接见原理图图2。
②复位电路
STC89C51的复位引脚RST外接开关复位电路,当电路工作后,闭合开关,只要在RST引脚上出现2个机器周期以上的高电平,单片机即可复位。
假设RST始终保持高电平,那么可对STC89C51循环复位。
开关复位电路的组成如原理图〔见原理图图3〕——电阻和开关串联后与电容并联,然后与电阻串联对+5V电压进展分压,电阻一端接地另一端接复位信号引脚RST。
③矩阵键盘
键盘处主要通过按键来显示不同的信息,如班级、等。
本来想使用独立键盘,虽然独立键盘电路简单,使用方便,但是独立键盘按键较多时占用I/O端口多,造成I/O口资源的浪费,所以电路中使用了矩阵键盘,具体电路如原理图图4所示。
④液晶显示模块
Ⅰ.带字库的12864模块
由于在Proteus中无法仿真,只能以实物运行。
具体电路和结果详见后。
Ⅱ.不带字库的12864模块
在Proteus中有不带字库的12864,而实际中不带字库的12864第18脚要接负电平,所以在仿真中进展。
1.2.3系统功能图和流程图
㈠系统功能图
按键
功能
按键
功能
1
显示“单片机课程设计〞
9
显示学号
2
显示课题
10
滚动显示
3
显示课题
11
滚动显示
4
显示指导教师
12
显示“自定义显示字符〞
5
清屏
13
显示自定义字符
6
显示院系
14
显示自定义字符
7
显示
15
显示自定义字符
8
显示班级
16
显示自定义字符
㈡流程图
1.2.4系统电路原理图
由于带字库和不带字库的12864液晶显示系统的区别在于液晶的连接电路不同,其他模块连接是一样的,具体如下:
①时钟模块
图2.时钟模块
②复位模块
图3.复位模块
③矩阵键盘
图4.矩阵模块
④不带字库的12864液晶连接
图5:
不带字库的12864液晶连接
⑤带字库的12864液晶连接
图6:
带字库的12864液晶连接
2.程序的设计和调试
2.1带字库的12864指令
①去除显示
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
0
0
1
功能:
去除显示屏幕,把DDRAM位址计数器调整为“00H〞。
②位址归位
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
0
1
X
功能:
把DDRAM位址计数器调整为“00H〞,游标回原点,该功能不影响显示DDRAM。
③进入设定点
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
1
I/D
S
功能:
把DDRAM位址计数器调整为“00H〞,游标回原点,该功能不影响显示DDRAM功能.执行该命令后,所设置的行将显示在屏幕的第一行。
显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63围任意一行。
Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。
④显示状态开/关
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
1
D
C
B
功能:
D=1;整体显示ONC=1;游标ONB=1;游标位置ON。
⑤游标或显示移位控制
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
S/C
R/L
X
X
功能:
设定游标的移动与显示的移位控制位:
这个指令并不改变DDRAM的容。
⑥功能设定
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
1
DL
X
0
RE
X
X
功能:
DL=1〔必须设为1〕RE=1;扩大指令集动作RE=0:
根本指令集动作。
⑦设定CGRAM位址
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
1
AC5
AC4
AC3
AC2
AC1
AC0
功能:
设定CGRAM位址到位址计数器〔AC〕。
⑧设定DDRAM位址
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
AC6
AC5
AC4
AC3
AC2
AC1
AC0
功能:
设定DDRAM位址到位址计数器〔AC〕。
⑨读取忙碌状态〔BF〕和位址。
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
1
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
功能:
读取忙碌状态〔BF〕可以确认部动作是否完成,同时可以读出位址计数器〔AC〕的值。
⑩写资料到RAM
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
0
D7
D6
D5
D4
D3
D2
D1
D0
功能:
写入资料到部的RAM〔DDRAM/CGRAM/TRAM/GDRAM〕。
⑪读出RAM的值
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
1
D7
D6
D5
D4
D3
D2
D1
D0
功能:
从部RAM读取资料〔DDRAM/CGRAM/TRAM/GDRAM〕。
⑫待命模式〔12H〕
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
0
0
1
功能:
进入待命模式,执行其他命令都可终止待命模式。
⑬卷动位址或IRAM位址选择〔13H〕
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
0
1
SR
功能:
SR=1;允许输入卷动位址SR=0;允许输入IRAM位址。
⑭反白选择〔14H〕
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
1
R1
R0
功能:
选择4行中的任一行作反白显示,并可决定反白的与否。
⑮睡眠模式〔015H〕
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
1
SL
X
X
功能:
SL=1;脱离睡眠模式SL=0;进入睡眠模式。
⑯扩大功能设定〔016H〕
RW
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
1
1
X
RE
G
0
功能:
RE=1;扩大指令集动作RE=0;根本指令集动作G=1;绘图显示ONG=0;绘图显示OFF。
2.2不带字库的12864指令
①行设置命令
RW
RS
D7
D6
D5
D4
D3
D2
D1
D0
0
0
1
1
X
X
X
X
X
X
显示的起始行为0xC0,有规律的改变起始行号,可以实现滚屏的效果。
②页设置指令
RW
RS
D7
D6
D5
D4
D3
D2
D1
D0
0
0
1
0
1
1
1
X
X
X
显示的起始页为0xB8,分为8页,每页有8行。
③列地址设置
RW
RS
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
1
X
X
X
X
X
X
第一列为0x40,一直到0x7F,共64列,两块驱动芯片,共128列。
④读状态指令
RW
RS
D7
D6
D5
D4
D3
D2
D1
D0
1
0
BUSY
0
ON/OFF
RST
0
0
0
0
BUSY为1部忙,不能对液晶操作,为0正常工作;
ON/OFF:
1为显示关闭,为0显示打开;
RST:
1为复位,0为正常。
⑤屏幕选择
CS1
CS2
选屏
0
0
全屏
0
1
左半屏
1
0
右半屏
1
1
不选
2.3程序调试
2.3.1工程的建立和程序编译
1、新建工程
在菜单Project-NewProject中新建工程;
2、选择CPU
根据对话框选择CPU类型〔公司、型号等〕本次课程设计采用ATMEL公司的STC89C51,
3、新建文件
点击File-New,新建文件,并保存为yangjirui.c;
4、添加源文件
点击Project-Window中Target1文件夹右边的“+〞号,,显示子文件夹SourceGroup1,选中
SourceGroup1文件夹并点击鼠标“右键〞,出现快捷菜单。
点击AddFilesToGroup‘SourceGroup1’,在对话框中完成源文件向工程的添加。
添加完成后,在ProjectWorkspace窗口的SourceGroup1项前多了“+〞号,点击“+〞号即可看到所添加的文件。
5、编译
用快捷按钮Buildtarget对工程进展编译,在OutputWindow中有编译提示信息,可根据该信息对源文件进展修改。
6、软件仿真
点击Strat/StopDebugSession,可对程序进展设置断点、单步、连续等执行操作。
7、HEX文件设置
选中Target1文件夹并点击鼠标“右键〞,选择快捷菜单中的OptionforTarget‘Target
1’。
在“Output〞对话框中选中复选框〔CreateHEXFile〕,即可使工程在编译时生成紧凑的机器码。
2.3.2硬件调试
1.按照设计的电路连接电路,并且检查连线无误;
2.将生成的HEX文件下载到STC89C51中,按下矩阵键盘,看相应的按键按下后12864是否有相应的字符显示;
3.如果不能出现相应的字符显示,再修改程序,重新进展硬件调试。
3.液晶设计结果显示
3.1带字库液晶显示结果
通过实物的连接,由最小系统、带字库12864液晶和矩阵键盘的连接,可以通过按键显示相应的汉字和特定字符,液晶显示可以显示课题、、班级、学号、指导教师以与特定字符,而且可以实现字符的循环显示。
3.2不带字库液晶显示结果
不带字库液晶通过仿真实现,通过按下对应的按键,从而实现字符的显示具体实验结果如下列图所示:
左图为相应按键按下的显示,右图为滚动显示过程中截图
4.设计总结
经过一个多星期的准备和实践,我完成了电路的设计和连接,程序的编写和编译调试,最终实现了带字库12864和不带字库12864的字符显示〔包括汉字,自定义字符〕,字符的移动显示。
过程中虽然遇到一些问题,在自己的检查和教师同学同学的帮助下都一一解决。
总的来说,这次的课程设计是成功的。
4.1设计中遇到的问题
1.12864液晶是分为两种的,一种带字库,另一种是不带字库的,在没接触课程设计之前我是不了解12864的,所以对12864的概念很是模糊,所以要分清概念,不同的液晶使用方法和指令是不一样的。
2.在课程设计过程中感觉自己的知识还是很欠缺,所以在查阅资料这方面要尽可能做的充分点,书本是我们知识的主要来源,课程设计是我们平时学习的糅合,要求我们一点一点的将知识复习、归纳、组合、然后将它们应用到课题中。
3.设计过程中,程序根本完善,还是会有很多问题,原理图的设计、修改,程序的调试,文件的烧入等,用什么方式,字符的定位、滚动,这些问题经过反复修改终于一一解决。
4.2设计心得
1.实验最关键是要有耐心,有时实验电路和程序并不能一次成功,所以要有良好的心理素质,有克制一切困难的勇气,勇于寻找问题的根源,一次次反复的实验,才能达到目的。
这同时也是一个学习与进步的过程,可以帮助我们自主寻找问题的根源,自主学习寻找解决问题的方法,最终实实在在地学到知识,提高本领,掌握技能。
2.在器件的选择上要注意,一样类型的器件不同的类型使用方法不同,所以要在使用硬件前先熟悉硬件的用法,这是编写好程序的前提。
5.参考文献
1.单片机原理与应用与C51程序设计〔第二版〕,维成等编著,清华大学,2009.7.
2.单片机的C语言应用程序设计〔第四版〕,马忠梅等编著,航空航天大学。
3.单片机原理与应用实验与课程设计指导书,岳俊生宗慧编,工程学院,2013.3.
4.单片机C语言程序设计实训100例基于8051+Proteus仿真,伟编,电子工业,2009.06。
5.中文图形显示控制芯片ST7920的原理与应用.洪家平编著.
附录
附录1:
带字库12864程序源代码
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineLCD_DATAP0//数据口
sbitRS=P2^0;//并行的指令/数据选择信号,H数据,L命令
sbitRW=P2^1;//并行读写选择信号,H读,L写
sbitE=P2^2;//并行使能端,H有效,L无效
sbitPSB=P2^3;//并/串接口选择,H并,L串
sbitRET=P3^3;//复位,L有效
ucharcodedatas1[]={"单片机课程设计"};
ucharcodedatas2[]={"课题:
单片机控制"};
ucharcodedatas3[]={"液晶显示器的应用"};
ucharcodedatas4[]={"指导教师:
岳俊生"};
ucharcodedatas5[]={"通信工程学院"};
ucharcodedatas6[]={":
济瑞"};
ucharcodedatas7[]={"班级:
光纤101"};
ucharcodedatas8[]={"学号:
208100234"};
//自定义图形“心形〞
ucharcodedatas9[]=
{0x00,0x00,0x00,0x00,0x18,0x30,0x24,0x48,0x42,0x84,0x81,0x02,0x80,0x02,0x40,0x04,0x20,0x08,0x10,0x10,0x08,0x20,0xE4,0x4A,0x92,0x8A,0xE1,0x04,0xA0,0x04,0x90,0x04};
//自定义图形“卐〞
ucharcodedatas10[]=
{0x81,0xFF,0x81,0x00,0x81,0x00,0x81,0x00,0x81,0x00,0x81,0x00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 12864 液晶 应用