单片机LCD12864显示系统课程设计.docx
- 文档编号:341810
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:35
- 大小:143.47KB
单片机LCD12864显示系统课程设计.docx
《单片机LCD12864显示系统课程设计.docx》由会员分享,可在线阅读,更多相关《单片机LCD12864显示系统课程设计.docx(35页珍藏版)》请在冰豆网上搜索。
单片机LCD12864显示系统课程设计
单片机LCD12864显示系统课程设计
6.1总电路图..................................................
6.2总程序..................................................
一、概述
随着社会的发展,趣来趣多的地方需要应用显示功能,各种数字显示仪器中的显示、广告牌、数码产品等,传统的数码管显示已经远远不能满足各行各业的需求。
基于单片机的LCD显示是一种用单片机来控制的一种显示系统,它不仅能显示种各数字、字母、还能显示各种字体的汉字以及一些简单的图象,使用起来极为方便,只要通过对单片机写入一定的程序来控制LCD的显示即可完成,根据程序的不同而产生不同不效果以满足各种不同需求。
本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机AT89S51,采用的液晶显示控制器的芯片是SED1520,主要实现由按键控制的中文显示、图片显示、滚屏以及左右移动功能。
同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。
本系统是以单片机的C语言来进行软件设计,指令的执行速度快,可读性强。
为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。
使硬件在软件的控制下协调运作。
其次阐述了部分程序的流程图和实现过程。
本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
最后对我所开发的用单片机实现LCD液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。
二、系统总体方案及硬件设计
2.1系统框图
内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
电路图如下:
图2.2晶振电路
2.2.4LCD12864显示电路
管脚名称及功能:
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0~+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:
8位或4位并口方式,L:
串口方式(见注释1)
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效(见注释2)
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)(见注释3)
20
K
VSS
背光源负端(见注释3)
电气参数:
项目
符号
最小
典型
最大
单位
电源电压
VDD-VSS
4.75
5.0
5.25
V
液晶驱动电压
VDD-VADJ
Ta=0
-11.0
-11.5
-12.0
Ta=25
-10.5
-11.0
-11.5
Ta=50
-10.0
-10.5
-11.0
输入信号电压
VIH
0.8VDD
-
VDD+0.3
VIL
0
-
0.2VDD
LCM工作电流
IDD
-
3
8
mA
背光驱动电流
ILED
-
60
80
液晶驱动电流
IEE
基本指令系统:
模块控制芯片提供两套控制命令,基本指令和扩充指令如下:
指
指令码
功能
令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清除显示
0
0
0
0
0
0
0
0
0
1
将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"
地址归位
0
0
0
0
0
0
0
0
1
X
设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM的内容
显示状态开/关
0
0
0
0
0
0
1
D
C
B
D=1:
整体显示ONC=1:
游标ONB=1:
游标位置反白允许
进入点设定
0
0
0
0
0
0
0
1
I/D
S
指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位
游标或显示移位控制
0
0
0
0
0
1
S/C
R/L
X
X
设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容
功能设定
0
0
0
0
1
DL
X
RE
X
X
DL=0/1:
4/8位数据RE=1:
扩充指令操作RE=0:
基本指令操作
设定CGRAM地址
0
0
0
1
AC5
AC4
AC3
AC2
AC1
AC0
设定CGRAM地址
设定DDRAM地址
0
0
1
0
AC5
AC4
AC3
AC2
AC1
AC0
设定DDRAM地址(显示位址)第一行:
80H-87H第二行:
90H-97H
读取忙标志和地址
0
1
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值
写数据到RAM
1
0
数据
将数据D7——D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)
读出RAM的值
1
1
数据
从内部RAM读取数据D7——D0(DDRAM/CGRAM/IRAM/GRAM)
2.2.5、按键控制电路
电路由三个独立按键开关组成,分别与单片机的I/O相连,控制调整电路的加、减以及确定。
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。
P3.0口表示下移功能键,当开关闭合时,控制显示屏内容整体向下滚动。
P3.1口表示上移功能键,当开关闭合时,控制显示屏内容整体向上滚动。
P3.2口表示右移功能键,当开关闭合时,控制显示屏内容整体向右移动。
P3.3口表示左移功能键,当开关闭合时,控制显示屏内容整体向左移动。
按键控制电路
三、软件部分
3.1、软件系统概论
此设计是由单片机控制的LCD显示系统,外设四个按钮来控制显示的方式。
对于按钮的工作方式可以是中断也可以是查询,在此设计中所选用的顺序结构。
用单片机的P3口的低4来作为LCD的显示控制端,即控制LCD使能端、读写控制揣、数据指令选择端及两个选屏端。
对于此设计课题,因为要求是用128×64的显示器来显示汉字,而汉字及字符(如空格等)是需要显示代码的。
所以,首先是通过一定的软件如ZIMO等来获取你想要显示的汉字的编码代码。
有了这款软件,就方便多了,只在要软件中打入你想要显示的汉字或是字符,它就会自动生成代码,使用起来非常方便,而不需要人工去编写相应的代码。
开始——显示图形——检测按键——显示相应内容。
3.2、汉字显示
对于此设计课题,因为要求是用128×64的显示器来显示汉字,而汉字及字符(如空格等)是需要显示代码的。
所以,首先是通过一定的软件如ZIMO等来获取你想要显示的汉字的编码代码。
有了这款软件,就方便多了,只在要软件中打入你想要显示的汉字或是字符,它就会自动生成代码,使用起来非常方便,而不需要人工去编写相应的代码。
由于此LCD的显示屏是被分为了两部分的,即左半屏和右半屏,分别由CS1和CS2来控制,两个半屏的内存都分别由X和Y两个地址来确定,X地址共64位,而Y地址两边各64位,一共128位,所以有的时候就称其为12864显示器。
X地址共有8个值,从0到7,即每个值有8位,每显示一个字符要2个X值,而Y共128个值,分为两块即左右两块,分别从0到63,即每个值一位。
每显示一个汉字要16个Y值,每显示一个字符要8个Y值。
所以应该对两半屏分别编程取显示地址。
同时还得用一个显示子程序来显示显示地址中保存的显示代码(汉字代码)。
由此LCD的显示时序图可知,在显示过程中还需要一定的延时(不同的型号,延时时间是不同的)并且在显示前需将一些特定的控制端置相应的电平,比如说还所有输入之关需先把LCD总使能端打开,即置E端为高电平,然后应再输入指令代码,对其进行相关的设置。
所以还需要一个适当的延时子程序以及输入数据前的准备程序。
除了这些外,还应写一个初始化程序,用来对中断等一些程序所需要的端口进行初始。
对于开中断,应打开总中断EA以及相应的低级中断EX0和EX1。
再者就是两个中断程序,对于这两个中断程序比较简单,只需对要执行相关控制(即常规显示和滚动显示)所需要的每件进行满足即可。
最后就是主函数,它的主要功能就是判断中断是否来临,来临了,然后判断是外部中断0还是外部中断1,然后根据是0还是1来执行相应的程序,选择相应的显示方式。
当四行全显示完了后,中断失效,即不管你是否还按键,都不再会对显示造成影响。
显示出来的内容将一直保持。
3.3、图片显示
显示图片和显示汉字类似,都是先通过字模软件先取模,然后再显示。
3.4、上下移动
由此可见12864的显示起始行为0xc0,有规律的改变起始行的位置,就可以改实现上下移的效果。
代码如下
3.5左右移动
在本设计中,通过循环改变汉字字符在单片机上显示的左右半屏以及在左右半屏上显示的列位,行位不变,达到了左右移屏的效果。
for(i=0;i<64;i++)//下滚屏
{
SelectScreen(0);
display(0,i);
delay(5000);
}
voiddisplay(intunm,intnum)
{
Set_line(unm);
ClearScreen(0);//显示开始行
Display_HZ(((num+0)/4)%2+1,0,(num+0)%4,yier);//ucharscreen,ucharpage,ucharcolumn,uchar*p)
Display_HZ(((num+1)/4)%2+1,0,(num+1)%4,dian);
Display_HZ(((num+2)/4)%2+1,0,(num+2)%4,hua)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 LCD12864 显示 系统 课程设计