LCD12864液晶显示模块(中文资料)
FYD12864液晶中文显示模块
(一) (一)概述 (3)
(二)(二)外形尺寸
1 方框图 (3)
2 外型尺寸图 (4)
(三)(三)模块的接口 (4)
(四)(四)硬件说明 (5)
(五) 指令说明 (7)
(五)(五)读写操作时序 (8)
(六)(六)交流参数 (11)
(七)(七)软件初始化过程 (12)
(八)(八)应用举例 (13)
(九)(九)附录
1半宽字符表 (20)
2 汉字字符表 (21)
一、概述
FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:
●●低电源电压(VDD:+3.0--+5.5V)
●●显示分辨率:128×64点
●●内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
●●内置 128个16×8点阵字符
●●2MHZ时钟频率
●●显示方式:STN、半透、正显
●●驱动方式:1/32DUTY,1/5BIAS
●●视角方向:6点
●●背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 ●●通讯方式:串行、并口可选
●●内置DC-DC转换电路,无需外加负压
●●无需片选信号,简化软件设计
●●工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃
二、方框图
3、外形尺寸图
三、模块接口说明
*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口
*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
四.模块主要硬件构成说明
控制器接口信号说明:
1、1、RS,R/W的配合选择决定控制界面的4种模式:
●忙标志:BF
BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.
利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态.
●字型产生ROM(CGROM)
字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。
DFF 的状态是指令DISPLAY ON/OFF和RST信号控制的。
●显示数据RAM(DDRAM)
模块内部显示数据RAM提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM 字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H—0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H—7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB (A1A0-F7FFH)。
●字型产生RAM(CGRAM)
字型产生RAM提供图象定义(造字)功能, 可以提供四组16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。
●地址计数器AC
地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6——DB0中。
●●光标/闪烁控制电路
此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。
五、指令说明
模块控制芯片提供两套控制命令,基本指令和扩充指令如下:
指令表1:(RE=0:基本指令)
指令表2:(RE=1:扩充指令)
备注;当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。
六、读写时序图
6.1 数据传输过程
8位和4位数据线的传输过程
串口数据线模式数据传输过程
6.2 时序图
MPU写资料到ST7920(8位数据线模式)
MPU 从ST7920读资料(8位数据线模式)6.3 串口读写时序:
串口方式下MPU写数据到ST7920 七、交流参数
交流参数(T A = 25o C, V DD = 4.5 V - 5.5 V)
八、软件初始化
九.应用举例:
1 、使用前的准备
先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显示出黑色的底影。
此过程亦可以初步检测LCD有无缺段现象。
2、字符显示
FYD12864-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中
文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。FYD12864-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM (自定义字形)的内容。三种不同字符/字型的选择编码范围为:0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。
先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址)
垂直地址范围AC5...AC0
水平地址范围AC3…AC0
绘图RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时会重新设为00H 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。GDRAM的坐标地址与资料排列顺序如下图:
3、应用说明
用FYD12864-0402B显示模块时应注意以下几点:
①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。
②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。
③当字符编码为2字节时,应先写入高位字节,再写入低位字节。
④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指
令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。
4、4、YD12864-0402B与单片机80C51的一种接口如图所示
5、5、编程参考(部分)
;*********************************************
;Controller:ST7920
;MCU:AT89C52 ,晶体频率:12MHz
;LCM:128*64
;LCM型号:FYD12864-0402
;LCM 接口:1:GND 2:VCC 3:V0 4.RS 5:RW 6:E 7--14:DB0-DB7 15:PSB 16:NC 17:RST 18:Vout
;**********************************************
RS EQU P1.3
RW EQU P1.4
E EQU P1.5
PSB EQU P1.6
RST EQU P2.7
COM EQU 20H
DAT EQU 21H
;******************************以上是接口定义
START:
ORG 0000H
MOV SP,#60H
LJMP DISP
;*********************************主程序入口地址
ORG 0040H
DISP: CLR PSB
LCALL DELAY
SETB PSB ;将PSB置1,通信方式为8位数据并口
LCALL DELAY
MOV COM,#30H ;功能设置---8BIT控制界面,基本指令集 ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#0CH ;显示打开,光标关,反白显示关
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#01H ;清除屏幕显示,将DDRAM的地址计数器归零 ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#06H ;DDRAM的地址计数器(AC)加1
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
;****************************************************
DISPLAY5A:
MOV R2,#64 ;DDRAM地址记数器设为最大值
MOV R1,#10H
MOV COM,#80H ;DD RAM 地址-----0000000
ACALL WRI
DISP5A: MOV DAT,R1
ACALL WRD ;写入第二字节数据
INC R1
DJNZ R2,DISP5A
LCALL DELAY1 ;1S延时子程序
;*************************************以上是写入半角字符
DISPLAY5:
MOV R2,#64 ;DDRAM地址记数器设为最大值
MOV R1,#0DEH
MOV COM,#80H ;DD RAM 地址-----0000000
ACALL WRI
DISP5: MOV DAT,#0B4H
ACALL WRD ;写入第一字节数据
MOV DAT,R1
ACALL WRD ;写入第二字节数据
INC R1
DJNZ R2,DISP5
LCALL DELAY1 ;1S延时子程序
;**********************************以上是从字库中“崔”字处开始显示
MOV COM,#01H ;清屏
ACALL WRI ;调用写指令子程序
LCALL DELAY
MOV COM,#32H ;功能设置---8BIT控制界面,绘图显示ON ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#36H ;功能设置---8BIT控制界面,扩充指令集 ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
DISPLAY6:
MOV DPTR,#DAB2 ;图形数据入口地址
MOV R2,#32 ;32行,(双屏结构中上半屏)
MOV R3,#80H ;Y地址寄存器
DISP6: MOV COM,R3 ;设置绘图区的Y地址坐标
INC R3 ;Y地址加1
LCALL WRI
MOV COM,#80H ;设置绘图区的X地址坐标
LCALL WRI
MOV R1,#16 ;16*8列
DISP7: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP7
DJNZ R2,DISP6 ;写满全屏的16*8字节X64
MOV R2,#32 ;32行,(双屏结构的下半屏)
MOV R3,#80H ;Y地址寄存器
DISP8: MOV COM,R3 ;设置绘图区的Y地址坐标
INC R3 ;Y地址加1
LCALL WRI
MOV COM,#88H ;设置绘图区的X地址坐标
LCALL WRI
MOV R1,#16 ;16*8列
DISP9: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP9
DJNZ R2,DISP8 ;写满全屏的16*8字节X64
LCALL DELAY1 ;1S延时子程序
;*******************************************以上是写入一幅图画(电脑桌面图) DISPLAY6A:
MOV DPTR,#DAB3 ;图形数据入口地址
MOV R2,#32 ;32行,(双屏结构中上半屏)
MOV R3,#80H ;Y地址寄存器
DISP6A: MOV COM,R3 ;设置绘图区的Y地址坐标
INC R3 ;Y地址加1
LCALL WRI
MOV COM,#80H ;设置绘图区的X地址坐标
LCALL WRI
MOV R1,#16 ;16*8列
DISP7A: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP7A
DJNZ R2,DISP6A ;写满全屏的16*8字节X64
MOV R2,#32 ;32行,(双屏结构的下半屏)
MOV R3,#80H ;Y地址寄存器
DISP8A: MOV COM,R3 ;设置绘图区的Y地址坐标
INC R3 ;Y地址加1
LCALL WRI
MOV COM,#88H ;设置绘图区的X地址坐标
LCALL WRI
MOV R1,#16 ;16*8列
DISP9A: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP9A
DJNZ R2,DISP8A ;写满全屏的16*8字节X64
LCALL DELAY1 ;1S延时子程序
LJMP START ;从开始处循环显示
;***************************************以上是写入一幅图画(电子制作实验室)WRI: PUSH ACC
CLR RS
SETB RW
WRI1: MOV P0,#0FFH
SETB E
MOV A,P0
CLR E
JB ACC.7,WRI1
CLR RW
MOV P0,COM
SETB E
CLR E
POP ACC
RET
;******************************************以上是写指令子程序
WRD: PUSH ACC
CLR RS
SETB RW
WRD1: MOV P0,#0FFH
SETB E
MOV A,P0
CLR E
JB ACC.7,WRD1
SETB RS
CLR RW
MOV P0,DAT
SETB E
CLR E
POP ACC
RET
;******************************************以上是写数据子程序
DELAY: MOV R7,#0FFH
DELAY4: MOV R6,#00FH
LOOP2: DJNZ R6,LOOP2
DJNZ R7,DELAY4
RET
DELAY1: MOV R4,#08H
DELAY11:MOV R7,#0FFH
DELAY41:MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,DELAY41
DJNZ R4,DELAY11
RET
XX: MOV R5,#0FFH
XX1: MOV R6,#0FFH
XX2: DJNZ R6,XX2
DJNZ R5,XX1
RET
;******************************************以上是延时子程序
DAB2:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,03FH,0FFH,0F0H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,040H,000H,018H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0BFH,0FFH,0DCH,000H,001H DB 080H,000H,01FH,0FFH,0FFH,000H,000H,000H,000H,000H,000H,0BFH,0FFH,0BCH,000H,001H DB 080H,000H,030H,000H,001H,080H,000H,000H,000H,000H,001H,07FH,0FFH,0B8H,000H,001H DB 080H,000H,030H,000H,000H,080H,000H,000H,000H,000H,001H,07FH,0FFH,078H,000H,001H DB 080H,000H,019H,0FFH,0FEH,0C0H,000H,000H,000H,000H,002H,0FFH,0FFH,070H,000H,001H DB 080H,000H,018H,000H,000H,040H,000H,000H,000H,000H,002H,0FFH,0FEH,0F0H,000H,001H DB 080H,000H,00CH,001H,0FFH,060H,000H,000H,000H,000H,005H,0FFH,0FEH,0E0H,000H,001H DB 080H,000H,00CH,07FH,0D0H,020H,000H,000H,000H,000H,005H,0FFH,0FDH,0E0H,000H,001H DB 080H,000H,006H,000H,00FH,0B0H,000H,000H,000H,000H,00BH,0FFH,0FDH,0C0H,000H,001H DB 080H,000H,006H,003H,0FCH,010H,000H,000H,000H,000H,00BH,0FFH,0FBH,0C0H,000H,001H DB 080H,000H,003H,01FH,000H,018H,000H,000H,000H,000H,017H,0FFH,0FBH,080H,000H,001H DB 080H,000H,003H,000H,000H,008H,000H,000H,000H,000H,017H,0FFH,0F7H,080H,000H,001H DB 080H,000H,001H,080H,000H,00CH,000H,000H,000H,000H,017H,0FFH,0F7H,000H,000H,001H DB 080H,000H,001H,080H,000H,004H,000H,000H,000H,000H,009H,0FFH,0EFH,000H,000H,001H DB 080H,000H,000H,0C0H,000H,0F6H,000H,000H,000H,000H,006H,07FH,0EEH,000H,000H,001H DB 080H,000H,000H,0C0H,003H,0C2H,000H,000H,000H,000H,001H,09FH,0DEH,000H,000H,001H DB 080H,000H,000H,060H,000H,03BH,000H,000H,000H,000H,000H,067H,0DFH,000H,000H,001H DB 080H,000H,000H,060H,000H,0E3H,000H,000H,000H,000H,000H,019H,0BFH,000H,000H,001H DB 080H,000H,000H,030H,003H,08EH,000H,000H,000H,000H,000H,006H,03FH,000H,000H,001H DB 080H,000H,000H,030H,006H,03CH,000H,000H,000H,000H,000H,001H,0FFH,000H,000H,001H DB 080H,000H,000H,018H,000H,0F0H,000H,000H,000H,000H,000H,000H,0FFH,000H,000H,001H DB 080H,000H,000H,018H,003H,0C0H,000H,000H,000H,000H,000H,00FH,07FH,080H,000H,001H DB 080H,000H,000H,00CH,00FH,000H,000H,000H,000H,000H,000H,030H,01FH,0C0H,000H,001H DB 080H,000H,000H,00CH,03CH,000H,000H,000H,000H,000H,000H,040H,007H,0E0H,000H,001H DB 080H,000H,000H,006H,0F0H,000H,000H,000H,000H,000H,000H,0E0H,01FH,0E0H,000H,001H DB 080H,000H,000H,007H,0C0H,000H,000H,000H,000H,000H,000H,0F8H,03FH,0C0H,000H,001H DB 080H,000H,000H,003H,000H,000H,000H,000H,000H,000H,000H,07EH,0FFH,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,01FH,0FCH,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,007H,0F0H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,0C0H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,005H,040H,088H,004H,001H,008H,000H,000H,00AH,081H,010H,004H,000H,020H,001H DB 080H,079H,021H,008H,002H,021H,049H,000H,000H,0F2H,042H,010H,004H,047H,010H,001H DB 080H,009H,007H,0DFH,07FH,0F7H,0AAH,000H,000H,012H,00FH,0BEH,07FH,0E5H,0FEH,001H DB 080H,07FH,0F4H,051H,008H,081H,02CH,000H,000H,0FFH,0E8H,0A2H,044H,047H,000H,001H DB 080H,009H,004H,061H,008H,081H,07FH,000H,000H,012H,008H,0C2H,07FH,0C5H,04AH,001H
DB 080H,00BH,024H,051H,008H,083H,081H,000H,000H,016H,048H,0A2H,044H,045H,06AH,001H DB 080H,01DH,047H,0C9H,005H,005H,001H,000H,000H,03AH,08FH,092H,044H,047H,052H,001H DB 080H,068H,084H,049H,005H,005H,07FH,000H,000H,0D1H,008H,092H,07FH,0C5H,06AH,001H DB 080H,009H,094H,041H,002H,001H,001H,000H,000H,013H,028H,082H,044H,005H,04AH,001H DB 080H,00EH,057H,0C1H,00DH,081H,001H,000H,000H,01CH,0AFH,082H,004H,029H,042H,001H DB 080H,038H,034H,04EH,070H,071H,07FH,000H,000H,070H,068H,09CH,003H,0EBH,07EH,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DAB3:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,030H,000H,00FH,0F0H,000H,060H,020H,004H,0C0H,000H,000H,000H,000H,000H,001H DB 084H,030H,080H,01FH,038H,003H,060H,030H,03CH,0C0H,000H,000H,000H,000H,000H,001H DB 087H,0FFH,0C0H,001H,0F8H,003H,0FBH,030H,0F9H,0FFH,0C0H,000H,000H,000H,000H,001H DB 086H,030H,080H,000H,0C0H,006H,061H,020H,05BH,061H,080H,000H,000H,000H,000H,001H DB 087H,0FFH,080H,07FH,0FFH,0CFH,0FDH,020H,01CH,060H,000H,000H,000H,000H,000H,001H DB 086H,030H,080H,0FCH,0DFH,09CH,061H,020H,018H,07FH,000H,000H,000H,000H,000H,001H DB 087H,0FFH,080H,080H,041H,083H,0F9H,020H,018H,060H,000H,000H,000H,000H,000H,001H DB 083H,0FFH,080H,000H,060H,003H,06BH,020H,018H,07FH,080H,000H,000H,000H,000H,001H DB 080H,030H,000H,000H,0C0H,003H,068H,020H,018H,060H,000H,000H,000H,000H,000H,001H DB 080H,01FH,0F8H,000H,0C0H,002H,068H,020H,018H,060H,000H,000H,000H,000H,000H,001H DB 080H,00FH,0F0H,00FH,0C0H,006H,069H,0E0H,018H,060H,000H,000H,000H,000H,000H,001H DB 080H,003H,0E0H,003H,000H,000H,040H,0C0H,000H,060H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,060H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,030H,000H,000H,0E0H,000H,070H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,038H,003H,0F8H,0E0H,000H,030H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,030H,060H,018H,0E0H,00FH,0FFH,0E0H,000H,001H DB 080H,000H,000H,000H,000H,000H,00FH,0FFH,0F0H,0D9H,0B0H,018H,000H,0C0H,000H,001H DB 080H,000H,000H,000H,000H,000H,01CH,018H,0C0H,0DBH,018H,018H,001H,080H,000H,001H DB 080H,000H,0FFH,0FFH,0FFH,000H,019H,0D8H,001H,0B3H,00CH,00FH,0FFH,0C0H,000H,001H DB 080H,000H,0FFH,0FFH,0FFH,000H,000H,0D8H,001H,0B6H,01FH,000H,0ECH,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,006H,018H,001H,0BFH,0FCH,001H,087H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,003H,098H,001H,0FCH,00CH,003H,001H,080H,000H,001H DB 080H,000H,000H,000H,000H,000H,001H,098H,001H,09EH,0CCH,007H,0FFH,080H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,018H,0E0H,01BH,0CCH,000H,039H,080H,000H,001H DB 080H,000H,001H,0FFH,0FFH,000H,01FH,0FFH,080H,0FBH,078H,000H,031H,080H,000H,001H DB 080H,000H,001H,0FFH,0FFH,000H,000H,030H,003H,09BH,078H,007H,0FFH,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,07EH,000H,01BH,030H,000H,030H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,0E3H,080H,018H,030H,000H,030H,060H,000H,001H DB 080H,000H,000H,000H,000H,000H,003H,081H,0C0H,0F0H,037H,01FH,0FFH,0F0H,000H,001H DB 080H,000H,000H,000H,000H,000H,01EH,000H,0C0H,007H,0FCH,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,003H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,07EH,0FDH,0F8H,007H,0E7H,007H,03FH,01FH,039H,0F0H,0F8H,003H,0C7H,03EH,001H DB 080H,07EH,0FDH,0F8H,003H,0C3H,00DH,080H,036H,06CH,0D9H,0B0H,006H,0CDH,0BFH,001H DB 080H,03CH,078H,0F0H,001H,083H,00FH,080H,01CH,03CH,0D8H,0E0H,006H,00DH,0BFH,001H DB 080H,03CH,078H,0F0H,003H,0C3H,00CH,000H,030H,06CH,0D9H,080H,006H,00DH,0BFH,001H DB 080H,03CH,078H,0F1H,087H,0E7H,087H,080H,03EH,03FH,0FDH,0F3H,003H,0C7H,03FH,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,033H,000H,001H,098H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,01EH,000H,000H,0F0H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
END
十、附录部分
附录1:ASCII码表
16*8半宽字符表
LCD12864显示程序
;实验目的:熟悉12864LCD的使用 ;12864LCD带中文字库 ;编程让12864LCD显示公司名称“深圳乾龙盛电子”,公司电话“0975”,公司传真“6”;硬件设置: ;关断所有拨码开关。 #include<> ;__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_H S_OSC ;芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 #define RS PORTA,5 ;命令/数据选择 #DEFINE RW PORTA,4 ;读/写选择 #DEFINE E PORTA,3 ;使能信号 #DEFINE PSB PORTA,2 ;并口/串口选择(H/L) #DEFINE RST PORTA,0 ;复位信号 ;----------------------------------------------- LCD_X EQU 30H ;页地址 LCD_Y EQU 31H ;Y地址 COUNT EQU 32H ;循环计数用 COUNT1 EQU 33H ;循环计数用 COUNT2 EQU 34H ;循环计数用 POINT EQU 35H ;查表偏移地址 POINT1 EQU 36H ;查表偏移地址 POINT2 EQU 37H ;查表偏移地址 TEMP EQU 38H ;临时寄存器 TEMP1 EQU 39H ;临时寄存器 ;----------------------------------------------- ORG 0000H ;复位地址 NOP ;ICD需要的空指令 GOTO MAIN ;跳转到主程序 ;**********************主程序************************ MAIN BANKSEL TRISA CLRF TRISA ;A口输出 CLRF TRISD ;D口输出 BANKSEL ADCON1 MOVLW 06H MOVWF ADCON1 ;A口全为数字口 CLRF STATUS
LCD12864显示程序
本例程为通过用A T89C52芯片操作LCD12864显示的程序,使用的晶振为12M。 /********************************************************** 程序说明:LCD12864显示主程序 程序调试员:莫剑辉 调试时间:2010-6-7 **********************************************************/ #include 本例程为通过用AT89C52芯片操作LCD12864显示的程序,使用的晶振为12M。 /********************************************************** 程序说明:LCD12864显示主程序 程序调试员:莫剑辉 调试时间:2010-6-7 **********************************************************/ #include 基于STM32--LCD12864驱动程序 STM32 LCD12864驱动程序(头文件)(2012-05-29 21:25:08)转载▼ 标签:杂谈 #ifndef LCD12864_H #define LCD12864_H #define LCD_CONTROL GPIOD //默认LCD12864的控制口在PD口 #define LCD_DATAPORT GPIOD //默认LCD12864的数据口在PD口 #define LCD_RESET_Pin GPIO_Pin_12 //默认LCD12864的复位引脚连接到PD.12 也可不用 #define LCD_RS_Pin GPIO_Pin_13 //默认LCD12864 RS -- PD.13 #define LCD_RW_Pin GPIO_Pin_14 //默认LCD12864 RW -- PD.14 #define LCD_EN_Pin GPIO_Pin_15 //默认LCD12864 E -- PD.15 #define LCD_CONTROL_CLOCK RCC_APB2Periph_GPIOD //默认LCD12864的控制口时钟 #define LCD_DATAPORT_CLOCK RCC_APB2Periph_GPIOD //默认LCD12864的数据口时钟 #define LCD_RS_1 LCD_CONTROL->BSRR &=~LCD_RS_Pin;LCD_CONTROL->BSRR |=LCD_RS_Pin //RS置高电平 #define LCD_RS_0 LCD_CONTROL->BRR &=~LCD_RS_Pin;LCD_CONTROL->BRR |=LCD_RS_Pin //RS置低电平 #define LCD_RW_1 LCD_CONTROL->BSRR &=~LCD_RW_Pin;LCD_CONTROL->BSRR |=LCD_RW_Pin //RW置高电平 #define LCD_RW_0 LCD_CONTROL->BRR &=~LCD_RW_Pin;LCD_CONTROL->BRR |=LCD_RW_Pin //RW置低电平 #define LCD_EN_1 LCD_CONTROL->BSRR &=~LCD_EN_Pin;LCD_CONTROL->BSRR |=LCD_EN_Pin //EN置高电平 #define LCD_EN_0 LCD_CONTROL->BRR &=~LCD_EN_Pin;LCD_CONTROL->BRR |=LCD_EN_Pin //EN置低电平 #include 简介:第一行显示,距离系统爆炸时间 第二行显示,还剩 第三行显示,00时,00分,00秒 第四行显示,周林 按下旋钮开关,开始设定秒,秒编辑位闪动。左右旋转设定数值, 在按下开关,秒确定,设定分,分编辑位闪动左右调数值, 再按下,分确定,小时位闪动。左右转调小时,再按一下。时间确定,开始倒计时。到达定时时间后停止,并闪动。 #include signed char second=0,minute=0,hour=0,count=0,keycount=0; signed char key=0; unsigned char code DIS1[] = { "距离系统爆炸时间" }; unsigned char code DIS2[] = { "还剩:" }; unsigned char code DIS31[] = { "时" }; unsigned char code DIS32[] = { "分" }; unsigned char code DIS33[] = { "秒" }; #ifndef jh_f330 #define jh_f330 #include #include delay(5); } /**********写串口指令*************/ void write_com(uchar com) { CS=1; //每次传数据前把CS端拉高 send_bit(0xf8); //写指令 send_bit(com&0xf0); //0xf0为1111 0000,送高四位 send_bit((com<<4)&0xf0); //0xf0为1111 0000,送低四位delay(10); CS=0; } /**********写串口数据*************/ void write_date(uchar date) { CS=1; //每次传数据前把CS端拉高 send_bit(0xfa); //写指令 send_bit(date&0xf0); //0xf0为1111 0000,送高四位 send_bit((date<<4)&0xf0); //0xf0为1111 0000,送低四位delay(10); CS=0; } /*********初始化函数****************/ /*********初始化液晶****************/ void init() { delay(100); write_com(0x30); //基本指令模式 delay(10); write_com(0x0c); //开显示,关游标,关反白 delay(10); write_com(0x01); //清屏 delay(100); /***显示初始化***/ /////* write_com(0x80); for(num=0;num<16;num++) { /************************************************* 名称:LCD12864_ST7920并行测试程序 试验功能:测试基于ST7920控制芯片的LCD12864的显示 并行方式连接;晶振11.0592M 编写:https://www.360docs.net/doc/324239608.html, *************************************************/ #include 这个程序写得很好,自己也是看的别人写的很好的程序,但是它代码不够完整,注释不详细,经过自己的修改加以完善。另外我发现很多的测试代码都没有附上测试代码效果图,在本人的代码下面有自己拍的效果图,填补不足之处。 自己在找资料的过程中花掉很多的财富值,如果大家看得起该代码请评五分加以下载,在下感激不尽! /******************************************* 程序名称:12864液晶经典驱动程序(带中文字库) 功能:12864测试程序 修改作者:王程 修改时间:2014年2月5日23:22:32 ********************************************/ #include #include psb=1; rw=0; write_com(0x30); write_com(0x0c); write_com(0x01); } void main() { int i; init(); write_com(0x81); for(i=0;i<12;i++) { write_dat(dis1[i]); delayms(5); } write_com(0x92); for(i=0;i<8;i++) { write_dat(dis2[i]); delayms(5); } write_com(0x8a); for(i=0;i<10;i++) { write_dat(dis3[i]); delayms(5); } write_com(0x99); for(i=0;i<12;i++) { write_dat(dis4[i]); delayms(5); } while(i); } ;********************************************* ;Controller:ST7920 ;MCU:AT89C51 ,晶体频率:12MHz ;LCM:128*64 ;LCM型号:带中文字库的128X64-0402 ;LCM 接口:1:GND 2:VCC 3:V0 4.RS 5:RW 6:E 7--14:DB0-DB7 15:PSB 16:NC 17:RST 18:Vout ;********************************************** ;占用单元30H,31H,32H,33H,A,DPTR,R2,R4,R6,R7 ;功能:显示浙江工业职业技术 ; 学院电子协会欢迎 ; 您 ; RS EQU P2.4 ;RS=“H”,表示DB7——DB0为显示数据 ;RS=“L”,表示DB7——DB0为显示指令数据 RW EQU P2.5 ;R/W=“H”,E=“H”,数据被读到DB7——DB0 ;R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR E EQU P2.6 ;使能信号 PSB EQU P2.7 ;H:8位或4位并口方式,L:串口方式(见注释1) RST EQU P2.0 ;复位端,低电平有效 ;模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空 COM EQU 30H ;DD RAM 地址存放单元 DAT EQU 31H ;汉字代码数据存放单元 DAT1 EQU 32H ;汉字码址表低位存放单元 DAT2 EQU 33H ;汉字码址表高位存放单元 ;******************************以上是接口定义 ORG 0000H AJMP START ORG 0030H START: MOV SP,#60H LJMP DISP LCD lgm12864 程序代码 /************************************** LCD:lgm12864, LCD control IC:KS0108 **************************************/ #define uchar unsigned char #define uint unsigned int #define DataPort P0 //LCD:D0-D7 sbit RS=P2^1; //Data or Instrument Select sbit RW=P2^2; //Write or Read sbit E=P2^3; // Enable single sbit CS1=P2^4; //Master chip enable sbit CS2=P2^5; sbit RST=P2^6; //Lcm reset /*数字数组*/ unsigned char code suzidot[160] ={ /*0 CHAR_30 */ 0x00,0xE0,0xF0,0x18,0x08,0x18,0xF0,0xE0,0x00,0x0F,0x1F,0x30,0x20,0x30,0x1F,0x0F, /*1 CHAR_31 */ 0x00,0x10,0x10,0xF8,0xF8,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x3F,0x20,0x20,0x00, /*2 CHAR_32 */ 0x00,0x70,0x78,0x08,0x08,0x88,0xF8,0x70,0x00,0x30,0x38,0x2C,0x26,0x23,0x31,0x30, /*3 CHAR_33 */ 0x00,0x30,0x38,0x88,0x88,0xC8,0x78,0x30,0x00,0x18,0x38,0x20,0x20,0x31,0x1F,0x0E, /*4 CHAR_34 */ 0x00,0x00,0xC0,0xE0,0x30,0xF8,0xF8,0x00,0x00,0x07,0x07,0x24,0x24,0x3F,0x3F,0x24, /*5 CHAR_35 */ 0x00,0xF8,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x19,0x39,0x21,0x20,0x31,0x1F,0x0E, /*6 CHAR_36 */ 0x00,0xE0,0xF0,0x98,0x88,0x98,0x18,0x00,0x00,0x0F,0x1F,0x31,0x20,0x31,0x1F,0x0E, /*7 CHAR_37 */ /////LCD12864液晶屏测试程序(已通过)////// ////////液晶屏型号:HJ12864M-1////////// #include //毫秒延时函数 void delay(uint xms) { uint i,j; for(j=0;i 最新12864LCD与4*4键盘人机交互界面源程序 0.95版 [ 2006-12-18 15:36:00 | By: ZZM@HAS ] 有朋友问我要源程序,这个源程序是我最近修改过的最新版本的12864与4*4 键盘的人机交互界面,我只给出关键交互界面菜单的源程序,至于12864和4*4键盘的驱动,相信大家都有了。 最新版本的使用反白表示选择行,增加了详细的注释。给需要的朋友一个参考。希望朋友们能写出更好的菜单程序。 //---------------------------------------- // 12864M四行多级菜单 // 文件名称12864menu1。c // 作者张子墨 // 版本 0.95 // 最后更新2006/12/16 //---------------------------------------- #i nclude #include "stm32f10x.h" #define read_busybit() GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7 ) #define DATAOUT GPIOC->ODR// unsigned char table1[]={"65"}; unsigned char table2[]={"大学"} ; unsigned char table3[]={"学院"} ; unsigned char table4[]={"电子信息"} ; unsigned char table5[]={"姓名"} ; unsigned char hy5; unsigned char k=0; void delay(unsigned int x) { while(x--); } // 外设时钟使能 /*************************************************************************/ void RCC_Configuration(void) //在208页这里是引脚时钟配置 { /* 使能外设时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); } /****************************************************************************** * 全部用到1602的引脚将在在配置 ******************************************************************************* / void GPIO_Configuration(void) // 1602引脚配置 目录 一、概述 (2) 二、系统总体方案及硬件设计 (2) 系统框图 (3) 单片机最小系统 (4) 显示电路 (6) 按键控制电路 (6) 三、系统软件设计 (9) 软件设计概述 (9) 汉字显示 (10) 上下移屏 (10) 左右移屏 (11) 四、课程设计体会 (13) 五、参考文献 (13) 六、附录 (14) 总电路图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 总程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 一、概述 随着社会的发展,趣来趣多的地方需要应用显示功能,各种数字显示仪器中的显示、广告牌、数码产品等,传统的数码管显示已经远远不能满足各行各业的需求。基于单片机的LCD显示是一种用单片机来控制的一种显示系统,它不仅能显示种各数字、字母、还能显示各种字体的汉字以及一些简单的图象,使用起来极为方便,只要通过对单片机写入一定的程序来控制LCD 的显示即可完成,根据程序的不同而产生不同不效果以满足各种不同需求。 本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机AT89S51,采用的液晶显示控制器的芯片是SED1520,主要实现由按键控制的中文显示、图片显示、滚屏以及左右移动功能。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。本系统是以单片机的C语言来进行软件设计,指令的执行速度快,可读性强。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。使硬件在软件的控制下协调运作。其次阐述了部分程序的流程图和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。最后对我所开发的用单片机实现LCD液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。 二、系统总体方案及硬件设计 系统框图LCD显示程序
基于STM32--LCD12864驱动程序
12864液晶显示程序(图案+文字)
12864LCD显示倒计时程序
LCD12864(串口)显示程序
LCD12864串行显示程序
lcd12864显示程序
12864液晶经典驱动程序,一看就懂,有详细的注释(C语言编写,不看后悔)
基于51单片机的12864液晶显示程序
LCD12864显示程序(汇编)
LCD lgm12864 程序代码
LCD12864液晶屏测试程序
最新12864LCD菜单程序
(完整版)基于stm32的LCD12864显示+16个矩阵键盘程序
单片机LCD12864显示系统课程设计