基于Proteus仿真的12864液晶的显示.docx

上传人:b****7 文档编号:16791953 上传时间:2023-07-17 格式:DOCX 页数:30 大小:531.13KB
下载 相关 举报
基于Proteus仿真的12864液晶的显示.docx_第1页
第1页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第2页
第2页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第3页
第3页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第4页
第4页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第5页
第5页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第6页
第6页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第7页
第7页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第8页
第8页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第9页
第9页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第10页
第10页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第11页
第11页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第12页
第12页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第13页
第13页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第14页
第14页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第15页
第15页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第16页
第16页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第17页
第17页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第18页
第18页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第19页
第19页 / 共30页
基于Proteus仿真的12864液晶的显示.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Proteus仿真的12864液晶的显示.docx

《基于Proteus仿真的12864液晶的显示.docx》由会员分享,可在线阅读,更多相关《基于Proteus仿真的12864液晶的显示.docx(30页珍藏版)》请在冰点文库上搜索。

基于Proteus仿真的12864液晶的显示.docx

基于Proteus仿真的12864液晶的显示

基于Proteus仿真的12864液晶的显示

 

 

Proteus实验报告

课程题目:

基于Proteus仿真的12864液晶的显示

班级:

XXX

姓名:

XXX

学号:

XXX

完成时间:

XXX

 

一、概述…………………………………………………3

1、1LCD简介…………………………………………………3

1、2LCD引脚说明……………………………………………3

1、3LCD原理简图..................................................................4

1、4LCD主要功能介绍……………………………………..4

1、5指令说明………………………………………………...6

二、液晶显示原理………………………………………8

2.1汉字和英文显示原理………………………………………8

2.2图形显示……………………………………………………9

三、软件仿真……………………………………10

3.1汉字显示……………………………………………………10

3.2向上滚动显示………………………………………………11

3.3PCB图………………………………………………………11

四、部分实验代码………………………………12

五、总结…………………………………………18

 

一、概述

1、LCD简介

在Protues仿真软件中,AMPIRE12864是一种图形点阵液晶显示器。

它主要采用动态驱动原理由行驱动—控制器和列驱动器两部分组成了128(列)×64(行)的全点阵液晶显示。

软件中不提供中文字库,但可完成图形显示,也可以通过汉字取模软件显示8×4个(16×16点阵)汉字。

2、LCD引脚说明

管脚名称

LEVER

管脚功能描述

3VSS

0

电源地

4VDD

+5.0V

电源电压

5V0

-

液晶显示器驱动电压

6D/I(RS)

H/L

D/I=“H”,表示DB7∽DB0为显示数据

D/I=“L”,表示DB7∽DB0为显示指令数据

7R/W

H/L

R/W=“H”,E=“H”数据被读到DB7∽DB0

R/W=“L”,E=“H→L”数据被写到IR或DR

8E

H/L

R/W=“L”,E信号下降沿锁存DB7∽DB0

R/W=“H”,E=“H”DDRAM数据读到DB7∽DB0

9DB0

H/L

数据线

10DB1

H/L

数据线

11DB2

H/L

数据线

12DB3

H/L

数据线

13DB4

H/L

数据线

14DB5

H/L

数据线

15DB6

H/L

数据线

16DB7

H/L

数据线

1CS1

H/L

H:

选择芯片(右半屏)信号

2CS2

H/L

H:

选择芯片(左半屏)信号

17RET

H/L

复位信号,低电平复位

18VOUT

-10V

LCD驱动负电压

19LED+

-

LED背光板电源

20LED-

-

LED背光板电源

 

3、LCD原理简图

4、LCD主要功能介绍

 

1)显示数据RAM(DDRAM)

DDRAM(64×8×8bits)是存储图形显示数据的。

此RAM的每一位数据对应显示面板上一个点的显示(数据为H)与不显示(数据为L)。

DDRAM的地址与显示位置关系对照图(见附录一)

2)I/O缓冲器(DB0~DB7)

I/O缓冲器为双向三态数据缓冲器。

是LCM(液晶显示模块)内部总线与MPU总线的结合部。

其作用是将两个不同时钟下工作的系统连接起来,实现通讯。

I/O缓冲器在片选信号/CS有效状态下,I/O缓冲器开放,实现LCM(液晶显示模块)与MPU之间的数据传递。

当片选信号为无效状态时,I/O缓冲器将中断LCM(液晶显示模块)内部总线与MPU数据总线的联系,对外总线呈高阻状态,从而不影响MPU的其他数据操作功能。

3)输入寄存器

输入寄存器用于接收在MPU运行速度下传送给LCM(液晶显示模块)的数据并将其锁存在输入寄存器内,其输出将在LCM(液晶显示模块)内部工作时钟的运作

下将数据写入指令寄存器或显示存储器内。

4)输出寄存器

输出寄存器用于暂存从显示存储器读出的数据,在MPU读操作时,输出寄存器将当前锁存的数据通过I/O缓冲器送入MPU数据总线上。

5)指令寄存器

指令寄存器用于接收MPU发来的指令代码,通过译码将指令代码置入相关的寄存器或触发器内。

6)状态字寄存器

状态字寄存器是LCM(液晶显示模块)与MPU通讯时唯一的“握手”信号。

状态字寄存器向MPU表示了LCM(液晶显示模块)当前的工作状态。

尤其是状态字中的“忙”标志位是MPU在每次对LCM(液晶显示模块)访问时必须要读出判别的状态位。

当处于“忙”标志位时,I/O缓冲器被封锁,此时MPU对LCM(液晶显示模块)的任何操作(除读状态字操作外)都将是无效的。

7)X地址寄存器

X地址寄存器是一个三位页地址寄存器,其输出控制着DDRAM中8个页面的选择,也是控制着数据传输通道的八选一选择器。

X地址寄存器可以由MPU以指令形式设置。

X地址寄存器没有自动修改功能,所以要想转换页面需要重新设置X地址寄存器的内容。

8)Y地址计数器

Y地址计数器是一个6位循环加一计数器。

它管理某一页面上的64个单元。

Y地址计数器可以由MPU以指令形式设置,它和页地址指针结合唯一选通显示存储器的一个单元,Y地址计数器具有自动加一功能。

在显示存储器读/写操作后Y地址计数将自动加一。

当计数器加至3FH后循环归零再继续加一。

9)Z地址计数器

Z地址计数器是一个6位地址计数器,用于确定当前显示行的扫描地址。

Z地址计数器具有自动加一功能。

它与行驱动器的行扫描输出同步,选择相应的列驱动的数据输出。

10)显示起始行寄存器

显示起始行寄存器是一个6位寄存器,它规定了显示存储器所对应显示屏上第一行的行号。

该行的数据将作为显示屏上第一行显示状态的控制信号。

11)显示开/关触发器

显示开/关触发器的作用就是控制显示驱动输出的电平以控制显示屏的开关。

在触发器输出为“关”电平时,显示数据锁存器的输入被封锁并将输出置“0”,从而使显示驱动输出全部为非选择波形,显示屏呈不显示状态。

在触发器输出为“开”电平时,显示数据锁存器被控制,显示驱动输出受显示驱动数据总线上数据控制,显示屏将呈显示状态。

12)复位端/RES

复位端/RES用于在LCM(液晶显示模块)上电时或需要时实现硬件电路对LCM(液晶显示模块)的复位。

该复位功能将实现:

A设置显示状态为关显示状态

B显示起始寄存器清零。

显示RAM第一行对应显示屏上的第一行。

C在复位期间状态字中RESET位置1。

5、指令说明

1.指令表指令名称

控制信号

控制代码

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

显示开关设置

0

0

0

0

1

1

1

1

1

D

显示起始行设置

0

0

1

1

L5

L4

L3

L2

L1

L0

页面地址设置

0

0

1

0

1

1

1

P2

P1

P0

列地址设置

0

0

0

1

C5

C4

C3

C2

C1

C0

读取状态字

0

1

BUSY

0

ON/OFF

RESET

0

0

0

0

写显示数据

1

0

数据

读显示数据

1

1

数据

详细解释各个指令功能

1)读状态字格式

BUSY

0

ON/OFF

RESET

0

0

0

0

状态字是MPU了解LCM(液晶显示模块)当前状态,或LCM向MPU提供其内部状态的唯一的信息渠道。

BUSY表示当前LCM接口控制电路运行状态。

BUSY=1表示LCM正在处理MPU发过来的指令或数据。

此时接口电路被封锁,不能接受除读状态字以外的任何操作。

BUSY=0表示LCM接口控制电路已外于“准备好”状态,等待MPU的访问。

ON/OFF表示当前的显示状态。

ON/OFF=1表示关显示状态,ON/OFF=0表示开显示状态。

RESET表示当前LCM的工作状态,即反映/RES端的电平状态。

当/RES为低电平状态时,LCM处于复位工作状态,标志位RESET=1。

当/REST为高电平状态时,LCM为正常工作状态,标志位RESET=0。

在指令设置和数据读写时要注意状态字中的BUSY标志。

只有在BUSY=0时,MPU对LCM的操作才能有效。

因此MPU在每次对LCM操作之前,都要读出状态字判断BUSY是否为“0”。

若不为“0”,则MPU需要等待,直至BUSY=0为止。

2)显示开关设置格式

0

0

1

1

1

1

1

D

该指令设置显示开/关触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示屏上的显示状态。

D位为显示开/关的控制位。

当D=1为开显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。

此时在状态字中ON/OFF=0。

当D=0为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态字中ON/OFF=1。

3)显示起始行设置格式

1

1

L5

L4

L3

L2

L1

L0

该指令设置了显示起始行寄存器的内容。

LCM通过/CS的选择分别具有64行显示的管理能力,该指令中L5~L0为显示起始行的地址,取值在0~3FH(1~64行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。

如果定时间隔地,等间距地修改(如加一或减一)显示起始行寄存器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。

4)页面地址设置格式

1

0

1

1

1

P2

P1

P0

该指令设置了页面地址—X地址寄存器的内容。

LCM将显示存储器分成8页,指令代码中P2~P0就是要确定当前所要选择的页面地址,取值范围为0~7H,代表第1~8页。

该指令规定了以后的读/写操作将在哪一个页面上进行。

5)列地址设置格式

0

1

C5

C4

C3

C2

C1

C0

 

该指令设置了Y地址数计数器的内容,LCM通过/CS的选择分别具有64列显示的管理能力,C5~C0=0~3FH(1~64)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。

Y地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。

页面地址的设置和列地址的设置将显示存储器单元唯一地确定下来,为后来的显示数据的读/写作了地址的选通。

6)写显示数据格式

该操作将8位数据写入先前已确定的显示存储器的单元内。

操作完成后列地址计数器自动加一。

7)读显示数据格式

该操作将LCM接口部的输出寄存器内容读出,然后列地址计数器自动加一。

 

二、液晶显示原理

1汉字和英文显示原理

在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。

对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。

而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。

而剩下的低128位则留给英文字符使用,即英文的内码。

    那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?

这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示:

图1“A”字模图

   

 

 而中文的“你”在字模中的记载却如图2所示:

图2“你”字模图

根据芯片的不同取模的方式不同,有多种取模方式:

单色点阵液晶字模,横向取模,字节正序,单色点阵液晶字模,横向取模,字节倒序,单色点阵液晶字模,纵向取模,字节正序,单色点阵液晶字模,纵向取模,字节倒序等等。

而PROTUES中的AMPIRE12684为纵向取模,字节倒序液晶。

2.2图形显示 

先设页地址再设列地址

页地址范围0xb8~0xbf

列平地址范围0x40~0x7f

绘图RAM的地址计数器(AC)只对列地址自动加一,当列地址=0x7F时会重新设为0

DDRAM的坐标地址与资料排列顺序如下图:

 

三、软件仿真

1汉字显示

在Protues软件中选择所需元件,搭建的电路图如图1所示。

将编写的代码烧写到单片机里,运行液晶显示正常

2向上滚动显示

3、PCB图

四、部分实验代码(向上滚动显示)

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineLCDLCDDisp_Off0x3e

#defineLCDLCDDisp_On0x3f

#definePage_Add0xb8//页地址

#defineLCDCol_Add0x40//列地址

#defineStart_Line0xC0//行地址

/*****液晶显示器的端口定义*****/

#definedata_oraP0/*液晶数据总线*/

sbitLCDMcs=P2^1;/*片选1*/

sbitLCDScs=P2^2;/*片选2*/

sbitRESET=P2^3;/*复位信号*/

sbitLCDDi=P2^4;/*数据/指令选择*/

sbitLCDRW=P2^5;/*读/写选择*/

sbitLCDEnable=P2^6;/*读/写使能*/

ucharcodeHz_guang[]=

{

/*--文字:

广--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x00,0xF8,0x08,0x08,0x08,0x08,0x09,0x0E,0x08,0x08,0x08,0x08,0x08,0x00,0x00,

0x80,0x60,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

ucharcodeHz_xi[]=

{

/*--文字:

西--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x02,0x02,0xE2,0x22,0x22,0xFE,0x22,0x22,0x22,0xFE,0x22,0x22,0xE2,0x02,0x02,0x00,

0x00,0x00,0xFF,0x48,0x44,0x43,0x40,0x40,0x40,0x43,0x44,0x44,0xFF,0x00,0x00,0x00

};

ucharcodeHz_ke[]={/*--文字:

科--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,

0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x04,0xFF,0x02,0x02,0x02,0x00};

ucharcodeHz_ji[]={/*--文字:

技--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00,

0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00

};

ucharcodeHz_da[]={/*--文字:

大--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,

0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00

};

ucharcodeHz_xue[]={/*--文字:

学--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,

0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00

};

ucharcodeHz_chen[]={/*--文字:

陈--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0xFE,0x22,0x5A,0x86,0x08,0x88,0x68,0x18,0x0F,0xE8,0x08,0x08,0x08,0x08,0x00,

0x00,0xFF,0x04,0x08,0x07,0x20,0x11,0x0D,0x41,0x81,0x7F,0x01,0x05,0x09,0x30,0x00

};

ucharcodeHz_jing[]={/*--文字:

竞--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x20,0x20,0x24,0xA4,0xAC,0xB4,0xA5,0xA6,0xA4,0xB4,0xAC,0xA4,0x24,0x20,0x20,0x00,

0x80,0x80,0x40,0x47,0x24,0x1C,0x04,0x04,0x04,0x7C,0x84,0x87,0x80,0x80,0xE0,0x00

};

ucharcodeHz_xiong[]={/*--文字:

雄--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x08,0xC8,0x38,0x8F,0x08,0x28,0x10,0xFC,0x4B,0x48,0xF9,0x4A,0x48,0x08,0x00,

0x04,0x23,0x70,0x2C,0x23,0x28,0x70,0x00,0xFF,0x22,0x22,0x3F,0x22,0x22,0x20,0x00

};

ucharcodeHz_tong[]={/*--文字:

通--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x40,0x42,0xCC,0x00,0x00,0xE2,0x22,0x2A,0x2A,0xF2,0x2A,0x26,0x22,0xE0,0x00,0x00,

0x80,0x40,0x3F,0x40,0x80,0xFF,0x89,0x89,0x89,0xBF,0x89,0xA9,0xC9,0xBF,0x80,0x00

};

ucharcodeHz_xin[]={/*--文字:

信--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x80,0x60,0xF8,0x07,0x00,0x04,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x04,0x00,

0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xF9,0x49,0x49,0x49,0x49,0x49,0xF9,0x00,0x00

};

ucharcodeHz_1[]={/*--文字:

1--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

ucharcodeHz_0[]={/*--文字:

0--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

ucharcodeHz_ban[]={/*--文字:

班--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x84,0x84,0xFC,0x84,0x84,0x00,0xF8,0x00,0xFF,0x00,0x84,0x84,0xFC,0x84,0x84,0x00,

0x10,0x30,0x1F,0x08,0x88,0x42,0x21,0x18,0x07,0x00,0x20,0x20,0x3F,0x20,0x20,0x00};

ucharcodeHz_wo[]={/*--文字:

我--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,

0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00

};

ucharcodeHz_ai[]={/*--文字:

爱--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x80,0x64,0x2C,0x34,0x24,0x24,0xEC,0x32,0x22,0x22,0x32,0x2E,0x23,0xA2,0x60,0x00,

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2