LCD12864不带字库Word文档格式.docx

上传人:b****6 文档编号:18980216 上传时间:2023-01-02 格式:DOCX 页数:10 大小:17.52KB
下载 相关 举报
LCD12864不带字库Word文档格式.docx_第1页
第1页 / 共10页
LCD12864不带字库Word文档格式.docx_第2页
第2页 / 共10页
LCD12864不带字库Word文档格式.docx_第3页
第3页 / 共10页
LCD12864不带字库Word文档格式.docx_第4页
第4页 / 共10页
LCD12864不带字库Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

LCD12864不带字库Word文档格式.docx

《LCD12864不带字库Word文档格式.docx》由会员分享,可在线阅读,更多相关《LCD12864不带字库Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

LCD12864不带字库Word文档格式.docx

)this.width='

;

if(this.height>

)this.height='

"

>

在使用12864LCD前先必须了解以下功能器件才能进行编程。

12864内部功能器件及相关功能如下:

1.指令寄存器(IR)IR是用于寄存指令码,与数据寄存器数据相对应。

当D/I=0时,在E信号下降沿的作用下,指令码写入IR。

2.数据寄存器(DR)DR是用于寄存数据的,与指令寄存器寄存指令相对应。

当D/I=1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7∽DB0数据总线。

DR和DDRAM之间的数据传输是模块内部自动执行的。

3.忙标志:

BFBF标志提供内部工作情况。

BF=1表示模块在内部操作,此时模块不接受外部指令和数据。

BF=0时,模块为准备状态,随时可接受外部指令和数据。

利用STATUSREAD指令,可以将BF读到DB7总线,从检验模块之工作状态。

4.显示控制触发器DFF此触发器是用于模块屏幕显示开和关的控制。

DFF=1为开显示(DISPLAYOFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAYOFF)。

DDF的状态是指令DISPLAYON/OFF和RST信号控制的。

5.XY地址计数器XY地址计数器是一个9位计数器。

高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。

X地址计数器是没有记数功能的,只能用指令设置。

Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。

6.显示数据RAM(DDRAM)DDRAM是存储图形显示数据的。

数据为1表示显示选择,数据为0表示显示非选择。

DDRAM与地址和显示位置的关系见DDRAM地址表。

7.Z地址计数器Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。

当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。

Z地址计数器可以用指令DISPLAYSTARTLINE预置。

因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。

此模块的DDRAM共64行,屏幕可以循环滚动显示64行。

12864LCD的指令系统及时序该类液晶显示模块(即KS0108B及其兼容控制驱动器)的指令系统比较简单,总共只有七种。

其指令表如表2所示:

其他的自己下个datasheet好好看吧,这里不再截图了。

不过我要强调关于行列和页的解释:

从上向下共64行,每8行为一页,共八页,从左到右共128列,左半屏0到63列,右半屏0到63列。

显示的时候,每页以列为单位显示。

TWO&

程序实例:

#############################################

*********************************************

程序名称:

LCD12864

主控芯片:

89c51,12MHZ

编者心得:

看别人程序不如仔细看datasheet

移用核心:

看datasheet按需要修改即可

程序编写者:

buyixin(不亦心)

编写时间:

2009年10月10日20:

33;

不亦心的博客:

//////变量申明///////////////////////////////

EBITP3.0;

LCD使能端

RWBITP3.1;

LCD读/写端

RSBITP3.2;

命令/数据控制端

CS1BITP3.3;

左半屏

CS2BITP3.4;

右半屏

WR_DATADATA30H;

数据暂存区

YDATA31H;

列数据暂存区

//////主程序开始//////////////////////////////

ORG0000H

AJMPSTART

ORG0030H

START:

MOVSP,#60H;

设置堆栈

LCALLCLR_Screen;

调用清屏子程序

LCALLInit;

调用初始化子程序

------左半屏显示------------------------------

REP:

MOVR2,#00H;

用于记录显示个数

MOVY,#00H;

用于增加LCD列数

MOVDPTR,#TAB;

取字码

------左上半字显示------------------------------

REP1:

MOVR3,#10H;

记录列数

MOVWR_DATA,#0C0H;

设置行数(第一行开始显示)

LCALLWR_Left_COM;

调用左半屏写命令子程序

MOVWR_DATA,#0BBH;

设置页数(第4页)

LCALLWR_Left_COM

CLRA;

设置显示开始列数

ADDA,Y

ADDA,#50H

MOVWR_DATA,A

LCALLWR_Left_COM

REP2:

MOVA,#00H

MOVCA,@A+DPTR

LCALLWR_Left_Byte;

调用左半屏写数据子程序

INCDPTR

DJNZR3,REP2

------左下半字显示--------------------------------

MOVR3,#10H;

左下

MOVWR_DATA,#0C0H

MOVWR_DATA,#0BCH;

第五页

CLRA

REP3:

LCALLWR_Left_Byte

DJNZR3,REP3

------实现左半屏显示3个字---------------------------

INCR2

MOVA,y

ADDA,#10H

MOVY,A

CJNER2,#03H,REP1

------右半屏显示------------------------------------

MOVR2,#00H

MOVY,#00H

------右上半字显示----------------------------------

REP4:

MOVR3,#10H

LCALLWR_Right_COM;

调用右半屏写入命令子程序

MOVWR_DATA,#0BBH

LCALLWR_Right_COM

ADDA,#40H

REP5:

LCALLWR_Right_Byte;

调用右半屏写入数据子程序

DJNZR3,REP5

------右下半字显示----------------------------------

MOVR3,#10H

LCALLWR_Right_COM

MOVWR_DATA,#0BCH

REP6:

LCALLWR_Right_Byte

DJNZR3,REP6

------实现右半屏显示2个字-----------------------------

CJNER2,#02H,REP4

------循环显示----------------------------------------

LJMPREP

//////初始化子程序///////////////////////////////////

Init:

MOVWR_DATA,#3EH;

关显示

LCALLWR_COM;

调用全屏写入命令子程序

MOVWR_DATA,#3FH;

开显示

LCALLWR_COM

RET

//////左半屏写入字节子程序///////////////////////////

WR_Left_Byte:

CLRCS1;

选择左半屏

SETBCS2

CLRRW;

SETBRS;

选择写命令

MOVA,WR_DATA

SETBE

MOVP0,A

CLRE

LCALLDELAY;

调用延时子程序,这里用延时来代替忙信号检测

RET

//////右半屏写入字节子程序///////////////////////////////

WR_Right_Byte:

SETBCS1

CLRCS2

CLRRW

SETBRS

LCALLDELAY

//////全屏写入字节子程序////////////////////////////////

WR_Byte:

CLRCS1

//////左半屏写入命令子程序/////////////////////////////

WR_Left_COM:

SETBCS2

CLRRS

//////右半屏写入命令子程序//////////////////////////////////

WR_Right_COM:

SETBCS1

//////全屏写入命令字程序/////////////////////////////////////

WR_COM:

//////全屏清屏子程序//////////////////////////////////////////

CLR_Screen:

MOVWR_DATA,#0C0H

MOVR0,#0B8H

MOVR1,#00H

LOOP:

MOVWR_DATA,R0

MOVWR_DATA,#40H

LOOP1:

MOVWR_DATA,#0FFH;

全屏清黑(这里我是用反色显示汉字的)

LCALLWR_Byte

INCR1

CJNER1,#40H,LOOP1

INCR0

CJNER0,#0C0H,LOOP

//////延时子程序//////////////////////////////////

DELAY:

MOVR7,#25H

DJNZR7,$

//////字型码表////////////////////////////////////

TAB:

--文字:

不--

--隶书12;

此字体下对应的点阵为:

宽x高=16x16--

DB0FFH,0FFH,0FFH,0DFH,0CFH,0CFH,0DFH,1FH,1FH,5FH,0DFH,0DFH,0DFH,0FFH,0FFH,0FFH

DB0FFH,0F7H,0F7H,0F3H,0FBH,0F9H,0FCH,0C0H,0C0H,0FFH,0FEH,0FCH,0F1H,0F3H,0F7H,0F7H;

亦--

DB0FFH,0BFH,0BFH,0BFH,3FH,0DFH,1FH,0CFH,0CFH,1FH,0DFH,9FH,9FH,0BFH,0BFH,0FFH

DB0FFH,0FFH,0EBH,0ECH,0E6H,0F3H,0F8H,0EFH,0EFH,0E0H,0FFH,0FEH,0FDH,0FBH,0FFH,0FFH;

心--

DB0FFH,0FFH,7FH,0FFH,7FH,0FFH,0FFH,3FH,8FH,0FFH,7FH,3FH,0BFH,0FFH,0FFH,0FFH

DB0F7H,0F1H,0F8H,0FFH,0FEH,0FEH,0FCH,0F9H,0F3H,0F1H,0E6H,0E7H,0C7H,0E7H,0E7H,0FFH;

制--

DB0FFH,7FH,0BFH,8FH,0BFH,0FH,2FH,3FH,0BFH,0FFH,1FH,0FFH,0CFH,0FH,0FFH,0FFH

DB0FEH,0FEH,0EEH,0E0H,0FCH,0C0H,0FCH,0F9H,0E1H,0EFH,0E8H,0CFH,0C7H,0E0H,0FFH,0FFH;

作--

DB0FFH,9FH,9FH,1FH,1FH,6FH,0BFH,9FH,0CFH,0FH,9FH,9FH,9FH,0BFH,0BFH,0FFH

DB0FFH,0FFH,0FFH,0E0H,0E0H,0FFH,0FFH,0FFH,0FFH,0C0H,0FAH,0FAH,0FAH,0FAH,0FBH,0FFH

//////程序结束/////////////////////////////////////////////

END以上程序我用的是反显。

THREE&

硬件连接及仿真效果图(仅为仿真目的,不做实际应用)'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1