基于单片机的俄罗斯方块设计与实现.docx
《基于单片机的俄罗斯方块设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机的俄罗斯方块设计与实现.docx(25页珍藏版)》请在冰豆网上搜索。
基于单片机的俄罗斯方块设计与实现
深圳市锦昌电子有限公司
1
一、液晶显示模块概述
DM12864M汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、
128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:
电源:
VDD3.3V~+5V(内置升压电路,无需负压);
显示内容:
128列×64行
显示颜色:
黄绿
显示角度:
6:
00钟直视
LCD类型:
STN
与MCU接口:
8位或4位并行/3位串行
配置LED背光
多种软件功能:
光标显示、画面移位、自定义字符、睡眠模式等
二、外形尺寸
外观尺寸:
93×70×12.5mm视域尺寸:
73×39mm
外形尺寸图
外形尺寸
ITEMNOMINALDIMENUNIT
模块体积93×70×12.5mm
视域73.0×39.0mm
行列点阵数128×64dots
点距离0.52×0.52mm
点大小0.48×0.48mm
深圳市锦昌电子有限公司
2
二、模块引脚说明
128X64HZ引脚说明
引脚号引脚名称方向功能说明
1VSS-模块的电源地
2VDD-模块的电源正端
3V0-LCD驱动电压输入端
4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号
5R/W(SID)H/L并行的读写选择信号;串行的数据口
6E(CLK)H/L并行的使能信号;串行的同步时钟
7DB0H/L数据0
8DB1H/L数据1
9DB2H/L数据2
10DB3H/L数据3
11DB4H/L数据4
12DB5H/L数据5
13DB6H/L数据6
14DB7H/L数据7
15PSBH/L并/串行接口选择:
H-并行;L-串行
16NC空脚
17/RETH/L复位低电平有效
18NC空脚
19LED_A-背光源正极(LED+5V)
20LED_K-背光源负极(LED-OV)
逻辑工作电压(VDD):
4.5~5.5V
电源地(GND):
0V
工作温度(Ta):
0~60℃(常温)/-20~75℃(宽温)
三、接口时序
模块有并行和串行两种连接方法(时序如下):
8位并行连接时序图
MPU写资料到模块
深圳市锦昌电子有限公司
3
MPU从模块读出资料
2、串行连接时序图
深圳市锦昌电子有限公司
4
串行数据传送共分三个字节完成:
第一字节:
串口控制—格式11111ABC
A为数据传送方向控制:
H表示数据从LCD到MCU,L表示数据从MCU到LCD
B为数据类型选择:
H表示数据是显示数据,L表示数据是控制指令
C固定为0
第二字节:
(并行)8位数据的高4位—格式DDDD0000
第三字节:
(并行)8位数据的低4位—格式0000DDDD
串行接口时序参数:
(测试条件:
T=25℃VDD=4.5V)
深圳市锦昌电子有限公司
5
四、用户指令集
1、指令表1:
(RE=0:
基本指令集)
指令码
指令R
S
R
W
DB
7
DB
6
DB
5
DB
4
DB
3
DB
2
DB
1
DB
0
说明
执行时
间
(540
KHZ)
清除显
示
0000000001
将DDRAM填满“20H”,并且
设定DDRAM的地址计数器
(AC)到“00H”
4.6ms
地址归
位
000000001X
设定DDRAM的地址计数器
(AC)到“00H”,并且将游
标移到开头原点位置;这个指
令并不改变DDRAM的内容
4.6ms
进入点
设定
00000001I/DS
指定在资料的读取与写入时,
设定游标移动方向及指定显示
的移位
72us
显示状
态
开/关
0000001DCB
D=1:
整体显示ON
C=1:
游标ON
B=1:
游标位置ON
72us
游标或
显示移
位控制
000001
S/
C
R/
L
XX
设定游标的移动与显示的移位
控制位元;这个指令并不改变
DDRAM的内容
72us
功能设
定
00001DLX
0
RE
XX
DL=1(必须设为1)
RE=1:
扩充指令集动作
RE=0:
基本指令集动作
72us
设定
CGRA
M地
址
0001
AC
5
AC
4
AC
3
AC
2
AC
1
AC
0
设定CGRAM地址到地址计数
器(AC)
72us
设定
DDRA
M
地址
001
AC
6
AC
5
AC
4
AC
3
AC
2
AC
1
AC
0
设定DDRAM地址到地址计数
器(AC)
72us
读取忙
碌标志
(BF)
和地址
01BF
AC
6
AC
5
AC
4
AC
3
AC
2
AC
1
AC
0
读取忙碌标志(BF)可以确认
内部动作是否完成,同时可以
读出地址计数器(AC)的值
0us
写资料
到
RAM
10D7D6D5D4D3D2D1D0
写入资料到内部的RAM
(DDRAM/CGRAM/IRAM/G
DRAM)
72us
读出
RAM
11D7D6D5D4D3D2D1D0
从内部RAM读取资料
(DDRAM/CGRAM/IRAM/G
72us
深圳市锦昌电子有限公司
6
的值DRAM)
指令表—2:
(RE=1:
扩充指令集)
指令码
指令
RS
R
W
DB
7
DB
6
DB
5
DB
4
DB
3
DB
2
DB
1
DB
0
说明
执行时间
(540KHZ
)
待命模
式
0000000001
将DDRAM填满
“20H”,并且设定
DDRAM的地址计数
器(AC)到“00H”
72us
卷动地
址或
IRAM地
址选择
000000001SR
SR=1:
允许输入垂直
卷动地址
SR=0:
允许输入IRAM
地址
72us
反白选
择
00000001R1R0
选择4行中的任一行
作反白显示,并可决定
反白与否
72us
睡眠模
式
0000001SLXX
SL=1:
脱离睡眠模式
SL=0:
进入睡眠模式
72us
扩充功
能设定
000011X
1
RE
G0
RE=1:
扩充指令集动
作
RE=0:
基本指令集动
作
G=1:
绘图显示ON
G=0:
绘图显示OFF
72us
设定
IRAM地
址或卷
动地址
0001
AC
5
AC
4
AC
3
AC
2
AC
1
AC0
SR=1:
AC5—AC0为
垂直卷动地址
SR=0:
AC3—AC0为
ICONIRAM地址
72us
设定绘
图RAM
地址
001
AC
6
AC
5
AC
4
AC
3
AC
2
AC
1
AC0
设定CGRAM地址到
地址计数器(AC)
72us
备注:
1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,
方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延
迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后
的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。
具体指令介绍:
深圳市锦昌电子有限公司
7
1、清除显示
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLLLLH
功能:
清除显示屏幕,把DDRAM位址计数器调整为“00H”
2、位址归位
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLLLHX
功能:
把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM
3、位址归位
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLLHI/DS
功能:
把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM功能:
执行该命令
后,所设置的行将显示在屏幕的第一行。
显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地
址送入Z地址计数器,起始地址可以是0-63范围内任意一行。
Z地址计数器具有循环计数功能,用于显示
行扫描同步,当扫描完一行后自动加一。
4、显示状态开/关
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLHDCB
功能:
D=1;整体显示ONC=1;游标ONB=1;游标位置ON
5、游标或显示移位控制
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLHS/CR/LXX
功能:
设定游标的移动与显示的移位控制位:
这个指令并不改变DDRAM的内容
6、功能设定
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLHDLX0REXX
功能:
DL=1(必须设为1)RE=1;扩充指令集动作RE=0:
基本指令集动作
7、设定CGRAM位址
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLHAC5AC4AC3AC2AC1
AC0
深圳市锦昌电子有限公司
8
功能:
设定CGRAM位址到位址计数器(AC)
8、设定DDRAM位址
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLHAC6AC5AC4AC3AC2AC1
AC0
功能:
设定DDRAM位址到位址计数器(AC)
9、读取忙碌状态(BF)和位址
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LHBFAC6AC5AC4AC3AC2AC1
AC0
功能:
读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值
10、写资料到RAM
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
HLD7D6D5D4D3D2D1D0
功能:
写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM)
11、读出RAM的值
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
HHD7D6D5D4D3D2D1D0
功能:
从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM)
12、待命模式(12H)
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLLLLH
功能:
进入待命模式,执行其他命令都可终止待命模式
13、卷动位址或IRAM位址选择(13H)
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLLLHSR
功能:
SR=1;允许输入卷动位址SR=0;允许输入IRAM位址
14、反白选择(14H)
深圳市锦昌电子有限公司
9
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLLHR1R0
功能:
选择4行中的任一行作反白显示,并可决定反白的与否
15、睡眠模式(015H)
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLLLHSLXX
功能:
SL=1;脱离睡眠模式SL=0;进入睡眠模式
16、扩充功能设定(016H)
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLLHHX1REGL
功能:
RE=1;扩充指令集动作RE=0;基本指令集动作G=1;绘图显示ONG=0;绘图显示OFF
17、设定IRAM位址或卷动位址(017H)
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLLHAC5AC4AC3AC2AC1
AC0
功能:
SR=1;AC5~AC0为垂直卷动位址SR=0;AC3~AC0写ICONRAM位址
18、设定绘图RAM位址(018H)
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
LLHAC6AC5AC4AC3AC2AC1
AC0
功能:
设定GDRAM位址到位址计数器(AC)
五、显示坐标关系
1、图形显示坐标
水平方向X—以字节单位
垂直方向Y—以位为单位
深圳市锦昌电子有限公司
10
2、
汉字显示坐标
X坐标
Line180H81H82H83H84H85H86H87H
Line290H91H92H93H94H95H96H97H
Line388H89H8AH8BH8CH8DH8EH8FH
Line498H99H9AH9BH9CH9DH9EH9FH
3、字符表
深圳市锦昌电子有限公司
11
代码
(02H---7FH)
六、显示RAM
1、文本显示RAM(DDRAM)
1、文本显示RAM(DDRAM)
文本显示RAM提供8个×4行的汉字空间,当写入文本显示RAM时,可以分别显示CGROM、HCGROM
与CGRAM的字型;ST7920A可以显示三种字型,分别是半宽的HCGROM字型、CGRAM字型及中文
CGROM字型。
三种字型的选择,由在DDRAM中写入的编码选择,各种字型详细编码如下:
显示半宽字型:
将一位字节写入DDRAM中,范围为02H-7FH的编码。
显示CGRAM字型:
将两字节编码写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码
显示中文字形:
将两字节编码写入DDRAMK,范围为A1A0H-F7FFH(GB码)或A140H-D75FH(BIG5码)
的编码。
绘图RAM(GDRAM)
绘图显示RAM提供128×8个字节的记忆空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,
再写入两个字节的数据到绘图RAM,而地址计数器(AC)会自动加一;在写入绘图RAM的期间,绘图
显示必须关闭,整个写入绘图RAM的步骤如下:
1、关闭绘图显示功能。
2、先将水平的位元组坐标(X)写入绘图RAM地址;
再将垂直的坐标(Y)写入绘图RAM地址;
将D15——D8写入到RAM中;
将D7——D0写入到RAM中;
打开绘图显示功能。
绘图显示的缓冲区对应分布请参考“显示坐标”
游标/闪烁控制
ST7920A提供硬件游标及闪烁控制电路,由地址计数器(addresscounter)的值来指定DDRAM中的游标
或闪烁位置。
深圳市锦昌电子有限公司
12
八、中文字符表:
深圳市锦昌电子有限公司
13
深圳市锦昌电子有限公司
14
深圳市锦昌电子有限公司
15
深圳市锦昌电子有限公司
16
*************************************文档结束*******************************************