单片机LCD12864显示系统课程设计报告书.docx
- 文档编号:11784403
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:40
- 大小:142.83KB
单片机LCD12864显示系统课程设计报告书.docx
《单片机LCD12864显示系统课程设计报告书.docx》由会员分享,可在线阅读,更多相关《单片机LCD12864显示系统课程设计报告书.docx(40页珍藏版)》请在冰豆网上搜索。
单片机LCD12864显示系统课程设计报告书
6.1总电路图..................................................
6.2总程序..................................................
一、概述
随着社会的发展,趣来趣多的地方需要应用显示功能,各种数字显示仪器中的显示、广告牌、数码产品等,传统的数码管显示已经远远不能满足各行各业的需求。
基于单片机的LCD显示是一种用单片机来控制的一种显示系统,它不仅能显示种各数字、字母、还能显示各种字体的汉字以及一些简单的图象,使用起来极为方便,只要通过对单片机写入一定的程序来控制LCD的显示即可完成,根据程序的不同而产生不同不效果以满足各种不同需求。
本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机AT89S51,采用的液晶显示控制器的芯片是SED1520,主要实现由按键控制的中文显示、图片显示、滚屏以及左右移动功能。
同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。
本系统是以单片机的C语言来进行软件设计,指令的执行速度快,可读性强。
为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。
使硬件在软件的控制下协调运作。
其次阐述了部分程序的流程图和实现过程。
本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
最后对我所开发的用单片机实现LCD液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。
二、系统总体方案及硬件设计
2.1系统框图
本系统由电源部分、单片机最小系统部分、LCD12864显示电路部分、按键控制部分组成。
其中,单片机最小系统部分包括晶振电路、复位电路。
2.2单片机最小系统
2.2.1、AT89S52单片机
89S51各引脚功能介绍:
1.VCC:
2.89S51电源正端输入,接+5V。
3.VSS:
4.电源地端。
5.XTAL1:
6.单芯片系统时钟的反相放大器输入端。
7.XTAL2:
8.系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
9.RESET:
10.89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得部特殊功能寄存器之容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
11.EA/Vpp:
12."EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其部无程序存储器空间。
如果是使用8751部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
13.ALE/PROG:
14.端口3的管脚设置:
15.P3.0:
RXD,串行通信输入。
16.P3.1:
TXD,串行通信输出。
17.P3.2:
INT0,外部中断0输入。
18.P3.3:
INT1,外部中断1输入。
19.P3.4:
T0,计时计数器0输入。
20.P3.5:
T1,计时计数器1输入。
21.P3.6:
WR:
外部数据存储器的写入信号。
22.P3.7:
RD,外部数据存储器的读取信号。
2.2.2复位电路
电路图如下:
上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
图2.1单片机复位电路
2.2.3、时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是部时钟方式,另一种为外部时钟方式。
本文用的是部时钟方式。
电路图如下:
图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);
Display_HZ(((num+3)/4)%2+1,0,(num+3)%4,erban);
Display_HZ(((num+4)/4)%2+1,0,(num+0)%4,ban);
//ClearScreen(0);
Display_HZ(((num+2)/4)%2+1,2,(num+2)%4,deng);
Display_HZ(((num+3)/4)%2+1,2,(num+3)%4,xiao);
Display_HZ(((num+4)/4)%2+1,2,(num+0)%4,mao);
Display_HZ(((num+3)/4)%2+1,4,(num+3)%4,dan);
//ucharscreen,ucharpage,ucharcolumn,uchar*p)
Display_HZ(((num+4)/4)%2+1,4,(num+0)%4,pian);
Display_HZ(((num+5)/4)%2+1,4,(num+1)%4,ji);
Display_HZ(((num+6)/4)%2+1,4,(num+2)%4,ke);
Display_HZ(((num+7)/4)%2+1,4,(num+3)%4,se);
Display_HZ(((num+6)/4)%2+1,6,(num+2)%4,erling);
Display_HZ(((num+7)/4)%2+1,6,(num+3)%4,yiwu);
}
四、课程设计总结
经过差不多一个礼拜的单片机课设,让我渐渐喜欢上这门课程,从一头雾水到做出Proteus仿真,期间学到不少。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了,把大一所学的C语言重新捡起来看了一遍,又翻了几次刚学的单片机汇编语言,感觉学习不在那么枯燥、乏味。
其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:
C语言、汇编语言、模拟和数字电路知识等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
除了学到了学习方面的知识还懂得了小组合作的重要性,每当自己不知如何继续下去的时候和同组的伙伴一起探讨,便会有柳暗花明又一村的感觉,其中乐趣无比。
对于我们这个专业,我认为学好汇编和C语言极其重要,毕竟一些东西不是你想做就能做的出来,但是仿真还是能做的。
而且一些课设的方法可以运用到实际问题的解决当中,让我们处理事情更加有条理,思路更加清晰明了,发现、提出、分析、解决问题和实践能力的提高都将受益与我在以后的学习、工作、和生活中。
通过此次学习,我将更加努力的学好专业知识,并将所学的东西运用到实际生活当中,让自己有更深层次的认识和见解。
在生活中要与同学更加友好的相处,让知识互相碰撞产生新的火花。
五、参考文献
[1]广弟,单片机基础[M],:
航空航天大学,1994
[2]余发山,王福忠.单片机原理及应用技术,:
中国矿业大学,2003
[3]郭天祥,51单片机C语言教程,电子工业,2009
[4]徐春辉,单片微机原理及应用,电子工业,2013
六、附录
6.1、附总电路图
6.2、附总程序
取模头文件:
unsignedcharcodeBMP[][64]={/*--调入了一幅图像:
G:
\Users\Administrator\Desktop\hj.bmp--*/
/*--宽度x高度=128x64--*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,
0x00,0x30,0xC0,0x00,0xD8,0x30,0x20,0x48,0x18,0x22,0x04,0x1C,0x00,0x0E,0x2A,0x00,
0x14,0x24,0x02,0x1C,0x20,0x0C,0x38,0x60,0x08,0xE0,0x10,0x90,0xA0,0x00,0xC0,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xB0,0x20,0x68,0x90,0x22,0x1F,0x02,0x84,0x82,
0x63,0x30,0x90,0xD0,0x48,0x2C,0x2C,0x34,0x12,0x16,0x0A,0x1B,0x09,0x0B,0x0A,0x0B,
0x09,0x0B,0x0A,0x1B,0x12,0x16,0x34,0x24,0x2C,0x48,0xD9,0xB0,0x20,0xC7,0x80,0x94,
0x01,0x0D,0x3C,0xC0,0x28,0x60,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xC0,0x28,0x89,0x0A,0xD6,0x0C,0x03,0x00,0xE0,0x38,0x1C,0x42,0x73,0x85,
0x66,0xA1,0x41,0xA0,0x40,0x00,0x20,0x20,0xC0,0x20,0xA0,0x60,0x80,0x60,0x80,0x20,
0x20,0x60,0xE0,0xC0,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,0x01,0x01,0x02,0x04,0x1B,
0x26,0xCC,0x38,0xE0,0x00,0x06,0x71,0x94,0x32,0x28,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xCC,0x84,0x6D,0x41,0x4C,0x00,0x0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 LCD12864 显示 系统 课程设计 报告书