12864点阵型液晶显示控制设计 下载本文

单片机设计实训

低电源电压(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℃ 模块接口说明

9

单片机设计实训

*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。

*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。 *注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。 并行接口 管脚号 管脚名称1 VSS 2 VCC 3 V0 4

RS(CS) 5

R/W(SID)

6 E(SCLK) 7 DB0 8 DB1 9 DB2 10 DB3 11 DB4 12 DB5 13 DB6 14 DB7 15 PSB 16 NC 17 /RESET 18 VOUT 19 A 20 K

电平 0V 3.0+5V - H/L

H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L - H/L - VDD VSS

管脚功能描述 电源地 电源正

对比度(亮度)调整

RS=“H”,表示DB7——DB0为显示数据

RS=“L”,表示DB7——DB0为显示指令数据 R/W=“H”,E=“H”,数据被读到DB7——DB0

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

使能信号 三态数据线 三态数据线 三态数据线 三态数据线 三态数据线 三态数据线 三态数据线 三态数据线

H:8位或4位并口方式,L:串口方式(见注释1) 空脚

复位端,低电平有效(见注释2) LCD驱动电压输出端

背光源正端(+5V)(见注释3) 背光源负端(见注释3)

10

单片机设计实训

在使用12864LCD前先必须了解以下功能器件才能进行编程。12864内部功能器件及相关功能如下: 1. 指令寄存器(IR)

IR是用于寄存指令码,与数据寄存器数据相对应。当D/I=0时,在E信号下降沿的作用下,指令码写入IR。 2.数据寄存器(DR)

DR是用于寄存数据的,与指令寄存器寄存指令相对应。当D/I=1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7∽DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。 3.忙标志:BF

BF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。

利用STATUS READ指令,可以将BF读到DB7总线,从检验模块之工作状态。 4.显示控制触发器DFF

此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY OFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。 DDF的状态是指令DISPLAY ON/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地址表。

11

单片机设计实训

7.Z地址计数器

Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。

3.9 128 64点阵型液晶 C语言程序(可以显示指定点)

#include #include typedef unsigned char uchar; typedef unsigned int uint;

sbit cd = P2^0; /*通道选择,=1为指令通道,=0为数据通道*/ sbit ce = P2^7; /*低电平有效,T6963C片选信号*/ sbit fs = P3^5; /*字体选择*/

sbit rst = P2^3; /*复位信号,低电平有效*/ sbit rd = P3^7; /*读操作,低电平有效*/ sbit wr = P3^6; /*写操作,低电平有效*/ sbit test2 = P3^2; sbit test3 = P3^3; sbit test4 = P3^4; sbit sta0 = P0^0; sbit sta1 = P0^1; sbit sta2 = P0^2; sbit sta3 = P0^3; sbit sta4 = P0^4; sbit sta5 = P0^5; sbit sta6 = P0^6; sbit sta7 = P0^7;

sfr lcdbus=0x80; /*数据总线,P0口,DB0-DB7*/ bit d1500ms_flag = 0;

uint data i;

uchar data time0_number;

uchar code han0[] = {0x80,0x81,0x82,0x83}; uchar code han1[] = {0x84,0x85,0x86,0x87}; uchar code han2[] = {0x88,0x89,0x8a,0x8b}; uchar code han3[] = {0x8c,0x8d,0x8e,0x8f};

12

单片机设计实训

uchar code han4[] = {0x90,0x91,0x92,0x93}; uchar code han5[] = {0x94,0x95,0x96,0x97}; uchar code han6[] = {0x98,0x99,0x9a,0x9b}; uchar code han7[] = {0x9c,0x9d,0x9e,0x9f}; uchar code han8[] = {0xa0,0xa1,0xa2,0xa3}; uchar code han9[] = {0xa4,0xa5,0xa6,0xa7}; uchar code han10[] = {0xa8,0xa9,0xaa,0xab}; uchar code han11[] = {0xac,0xad,0xae,0xaf}; uchar code han12[] = {0xb0,0xb1,0xb2,0xb3}; uchar code han13[] = {0xb4,0xb5,0xb6,0xb7}; uchar code han14[] = {0xb8,0xb9,0xba,0xbb}; uchar code han15[] = {0xbc,0xbd,0xbe,0xbf}; uchar code han16[] = {0xc0,0xc1,0xc2,0xc3}; uchar code han17[] = {0xc4,0xc5,0xc6,0xc7}; uchar code han18[] = {0xc8,0xc9,0xca,0xcb}; uchar code han19[] = {0xcc,0xcd,0xce,0xcf}; uchar code han20[] = {0xd0,0xd1,0xd2,0xd3}; uchar code han21[] = {0xd4,0xd5,0xd6,0xd7};

uchar code TAB[] = {

/*80*/ 0x00,0x00,0x00,0x00,0xfc,0x8d,0x69,0x3a, 0x00,0x00,0x80,0xc0,0x8c,0xf4,0x4c,0x58, 0x38,0x6c,0xc1,0x03,0x1e,0x00,0x00,0x00,

0xe0,0xb0,0x9c,0x0f,0x07,0x00,0x00,0x00,/*欢0*/ /*84*/ 0x00,0x00,0x00,0x67,0x7e,0x04,0xf4,0x16, 0x00,0x00,0x00,0xc8,0x7c,0x6c,0x6c,0xe8, 0x17,0xff,0x83,0x00,0x00,0x00,0x00,0x00,

0x70,0x60,0xff,0x7f,0x0c,0x00,0x00,0x00,/*迎1*/ /*88*/ 0x00,0x00,0x00,0x38,0xf7,0xf0,0x33,0x32, 0x00,0x00,0x60,0x60,0xfe,0x64,0xfc,0x6c, 0x33,0x33,0x30,0x31,0x3f,0x00,0x00,0x00,

0xfc,0xc0,0xf0,0x9f,0x07,0x02,0x00,0x00,/*使2*/ /*8c*/ 0x00,0x00,0x08,0x0f,0x0c,0x0c,0x0f,0x0c, 0x00,0x00,0x02,0xff,0x63,0x63,0xff,0x63, 0x0f,0x18,0x18,0x38,0xf0,0x00,0x00,0x00,

0xff,0x63,0x63,0x63,0x63,0x43,0x00,0x00,/*用3*/ /*90*/ 0x00,0x00,0x40,0xff,0xc7,0x44,0x5b,0x46, 0x00,0x00,0x00,0xfe,0x66,0xe6,0x86,0xe6, 0x7a,0x41,0x47,0x40,0x7f,0x00,0x00,0x00,

13