LCD1中文资料Word文档格式.docx

上传人:b****8 文档编号:22098813 上传时间:2023-02-02 格式:DOCX 页数:28 大小:140.53KB
下载 相关 举报
LCD1中文资料Word文档格式.docx_第1页
第1页 / 共28页
LCD1中文资料Word文档格式.docx_第2页
第2页 / 共28页
LCD1中文资料Word文档格式.docx_第3页
第3页 / 共28页
LCD1中文资料Word文档格式.docx_第4页
第4页 / 共28页
LCD1中文资料Word文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

LCD1中文资料Word文档格式.docx

《LCD1中文资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《LCD1中文资料Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

LCD1中文资料Word文档格式.docx

4)Nokia5110工作电压3.3V,正常显示时工作电流200uA以下,具有掉电模式,适合电池供电的便携式移动设备。

可以在市场上买到Nokia5110的裸屏和带PCB的Nokia5110屏幕,因为Nokia5110是不带背光的,所以通常商家会在PCB上按了几个背光LED,上电就能亮,建议大家还是买那种连上PCB的5110。

Nokia5110原理图:

7貼T•NOKIA5110g位脚

/CS-片选引脚

D/C・数据和命令切换脚

D1N-娴输入

CU(■州申引脚

VDD・电源正

BLC-背光控制开关(低电平打开背光

GND-电源地

SCL-扩展用字库EEPROM时神

SDA^扩展用EEPROM1数据引制

商家把该引出的管脚都引出了,下面就可以连接C8051F的相应管脚,写程序驱动5110了。

Nokia5110和Nokia3110是兼容的,用的都是同一款驱动芯片PHILIPSPCD8544。

⑴SPI接口时序写数据/命令

Nokia5110(PCD8544)的通信协议是一个没有MISO只有MOSI的SPI协议,如果单片机有富裕的SPI接口,也可以利用硬件SPI,但通常没有必要,只需要软件程序模拟即可。

SCE

JL

SCLK

曲IN

pBfl)

(DB5)(DB4]

(DB3:

(DB2]

[DBiXDBDX

MGL630

圈询串行总线协议一

一传送1个宇节

/***********************************************************

函数名称:

LCD_write_byte

函数功能:

模拟SPI接口时序写数据/命令LCD入口参数:

data:

写入的数据;

command:

写数据/命令选择;

出口参数:

备注:

***********************************************************/

voidLCD_write_byte(unsignedchardat,unsignedcharcommand)

{

//5110片选有效,允许输入数据//写命令

//写数据

〃传送8bit数据

unsignedchari;

LCD_CE=0;

if(command==0)

LCD_DC=0;

elseLCD_DC=1;

for(i=0;

i<

8;

i++)

if(dat&

0x80)SDIN=1;

else

SDIN=0;

SCLK=0;

dat=dat<

<

1;

SCLK=1;

}

〃禁止5110

LCD_CE=1;

管脚D/C(LCD_DC)用于选择写的是命令(D/C=O)还是数据(D/C=1)

(2)Nokia5110的初始化

接通电源后,内部寄存器和RAM的内容是不确定的,这需要一个RES低电平脉冲复位一下。

当VDD变为高电平,达到VDDmin(或更高)之后,最多100ms,RST输入低电平(电平幅度V0.3VDD)。

VDD

ES

r—1RW—*

|

5110复位时序

LCD_init

5110初始化

入口参数:

voidLCD」nit(void){

LCD_RST=0;

delay_1us();

LCD_RST=1;

LCD_CE=0;

delay_1us();

//产生一个让LCD复位的低电平脉冲

//关闭LCD

//使能LCD

LCD_write_byte(0x21,

LCD_write_byte(0xc8,

LCD_write_byte(0x06,

LCD_write_byte(0x13,

LCD_write_byte(0x20,LCD_clear();

LCD_write_byte(0x0c,

0);

//使用扩展命令设置LCD模式

//设置液晶偏置电压

//温度校正

0);

//1:

48

//使用基本命令,V=0,水平寻址

//清屏

//设定显示模式,正常显示

//关闭LCD

⑶设置Nokia5110液晶的坐标

Nokia5110(PCD8544)的命令集:

表】指令集

指令

2字

DB7

DB6

DB4DB3

DB2DB1

D60

(H=0or1)

NOP0

0,

r-,

剳能蛙直0

■0^

1

PD

LI

苑逍控习h逅丸橈式r扩曲令设直<

]:

写垃誓1

(H=0)基本捋令集

Dr

□s

C:

Di

02

e

Do

耳盂:

諾》址扳FtV-l

[o-

X

半可悝用

'

c

Q

E

设置RAM的、比址

C

G

Vj

¥

%

设蚩赋疔Y"

V^5

世矍旳kt扯

&

Xg

Xi

Xo

览兰血帕叮宅E:

0<

X<

93

(H-n扩展拒令集

a

不可便用

眇便舟

ill度档馆

TCi

rec

:

j

和■便用

po"

J

0X

es;

BStX

0SCX

农二r兰霰绮(RST不可便用

%P6

Vqps

VOP(

VqPi

VOP:

頁pp生倚住•匹

命令字符解释:

BFT

上甘绘二

居片'

处于芷电按式

V

*苹#左:

2產右.厂

H

■1史崔护些护令農

0andE

00

01

显示空白善通環式尸所有議示段氐转溟基摸式

■C-mndf亡匚

Vlcd温度系JE0

VtCp幣氓丟號1

Vlco混度瓯IS2

VlCD狂度寒浪3

要注意的是“功能设置”命令的“H”和“V”。

o

X-addresE

B3

H=0使用基本指令集命令,H=1使用扩展指令集命令V=0水平寻址,V=1垂直寻址。

图4格式和寻址

48*84点阵的格式如上图,数据以字节8bit为单位下载到PCD8544的4

8*84bit显示数据RAM矩阵。

列通过地址指针寻址,地址范围为X0~83(1010011),Y0~5(101)。

地址不允许超过这个范围。

■I

if

fl

Y-address

u

■fl

用垂直寻址方式CV=1)往RA\I写数寺的次序

在垂直寻址(V=1),Y地址在每个字节之后递增,经最后的Y地址(丫=5)之后,丫绕回0,X递增到下一列的地址。

图6用水平寻址方式(\=0)往RAM写入数据的次序

在水平寻址模式(V=0),X地址在每个字节之后递增,经最后的X地址(X

=83)之后,X绕回0,Y递增到下一行的地址。

经每一个最后地址之后(X=83,Y=5),地址指针绕回地址(X=0,Y=0)。

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

LCD_set_XY

设置

LCD坐标函数

0-83

Y

0-5

备注:

voidLCD_set_XY(unsigned

charX,unsignedcharY)

LCD_write_byte(0x40

Y,0);

//column

LCD_write_byte(0x80

X,0);

//row

(4)显示英文字符

英文字符占用6*8个点阵,通过建立一个ASCII的数组font6x8[][6]来寻址。

而这个数字的行号对应(字符ASCII码-32)。

ASCII码表如下:

HxOctChair

0000NUL

(null)

1001S0H

(starto£

heading)

2002STX

(startq£

text)

3003ETX

(endofteKtJ

4004EOT

(endoftransmissic

500>

5ENQ

(enwiEY)

6

6006ACK

(acknowledgeJ

7

700*7BEL

(bEll)

8

3010BS

(backspace)

9

9OilTAB

(horizonta丄cab)

A012LF

(NLlinefeed,new

B013VT

(vertical匸曰b)

C014FF

(NPfocBfeed,new

D015CR

(carriagee皂cutn)

14

E016SO

(shiflbDutJ

15

F017SI

(shiftin)

16

10020DLE

(datalinkescape]

17

11021DC1

(dt^icecontrol1)

18

12022DC2

(devicecontrol2)

19

13023DC3

(devicecontrol3)

20

14024DC4

(devicecontrol4)

line)

DecHxOHHtnrtlChr

D@cHxOctHtmlChr

1A

IB

1C

IDIE

IF

025

Q26

027

030

031

032

033

MAKSWETBCA>

TEMSUBESC

034FS

035GS

036R5

037US

(negativeacknowledge}(synchEcmcnasidle}(endoftrans・block)(cancelJ

(endatmedium)(substitute)

(escape)

(fileseparator](groupseparator)(recordsepacator](unitSEpazator)

040

041

042

043

04^

045

046

047

Q50

051

052;

053

054

055

056

057

060061

062

063

064

06S

066

067

070

071

072

073

074

075

076

077

崔畑;

£

#33;

^#34;

4#3S;

«

36;

^37;

^#39;

曲40;

i#41;

4*42;

^#44;

4f45;

曲47;

348;

“叱

£

#50;

6r#Sl;

4#52;

^#54;

#55;

s*57;

*#58;

#60j<

店1;

=

>

?

Space

4S5

67

68

69

70

71

72

73

74

75

76

77

78

79

60

31

B2

83

34

S5

96

B8

B9

90

91

92

94

95

40

41

42

43

44

45

46

47

49

4A

4B

4C

4D

4E

4F

50

51

52

53

54

■55

56

57

59

5A

5B

5C

5D

5E

5F

100

101

102

103

A#S4;

104*#68;

105

106

107

110

111

112

113

#69;

#72;

*#73;

*#74;

114*#76;

115

116

117

120

121

122

123

i#77;

i#78;

*#79;

咖0;

i#02;

*#S3;

1Z4A#34;

125

LZG

127

130

131

132

133

4#S5;

*#07;

加Cl;

i#91;

134*#92;

135*#93;

136*#94;

137*#95;

BCD

F

I

HN0P

P

T

U

W

97

98

99

104

108

109

114

118

119

124

126

61

62

63

64

65

66

6k

6B

6C

6D

6E

6F

7B

7A

7C

7D

7E

7F

140

141

142

143

144

145

146

147

15Q

151

152

153

154

155

156

157

160

161

162

163

164

165

166

167

170

171

172

173

1T4

1?

176

177

*#96;

护8:

小99=

fl00;

*#101;

*#103;

#105;

^#106;

*#107;

*#106;

*#1101;

*#113;

fiHlS;

*#117;

^#115;

*#120;

4flZl;

*#124;

4*125;

*#12"

?

m

n

DEL

函数名称

LCDwritechar

函数功能

入口参数

出口参数

显示英文字符

显示的字符

voidLCD_write_char(unsigned

charc)

unsignedcharline;

c-=32;

//数组的行号

for(line=0;

line<

6;

line++)LCD_write_byte(font6x8[c][line],1);

如要在NOKIA5110输出大写“A”,对应数组的行号为33,对应的元素为

0000000010ooooooood00000000600000000^0•OOO«

OOO5oeooeooo-oooooooop

{0x00,0x7C,0x12,0x11,0x12,0x7C},水平寻址(V=0)

NOKIA5110一行可以显示14个字符,可以显示六行

(5)显示汉字

显示汉字可以采用两种点阵方式,一种是12*12点阵,一种是16*16点阵,网上也有一个自动提取字模的小软件“3310液晶显示屏汉字提取程序”,这个

下载:

小程序只适用于水平寻址(V=0)。

3310液晶显示屏汉字提取程序

采用12*12点阵汉字时,由于不是8的整数倍数,因此行与行之间只能隔开,这样才能完整显示一个汉字。

〃欢{0x0A,0x92,0x62,0x9E,0x02,0x18,0x87,0x74,0x84,0x14,0x0C,0x00,0x02,0x01,0x00,0x04,0x05,0x02,0x01,0x00,0x01,0x02,0x04,0x00},

ooooooo一/

OOOOOQ

00・£

000|・000000一込

ooeooo・o・

•••00002000000

oooeeooo^ooooooo

・2

ooooon

o・oo・0OoooQ

OOQC

6O•->

0000000^060000000-^

oeoooee0-0000o・oo・ooe・oooo0・o・ooo

•OOOOO

12*12点阵

(6)显示图形

显示的图形像素大小不能超过84*48。

也有一个字模提取小软件Zimo21可以帮助我们得到图像的像素数组。

但要注意Zimo21软件的设置,不然的

话就显示不了想要的图片。

Zimo21设置

要注意选中“纵向取模”“字节倒序”这样才能在5110上显示正确的图像。

LCD_draw_bmp_pixel

位图绘制函数

X、Y

位图绘制的起始X、丫坐标

*map

位图点阵数据;

Pix_x

位图像素(长)

Pix_y

位图像素(宽)

voidLCD_draw_bmp_pixel(unsignedcharX,unsignedcharY,unsignedcha

r*map,unsignedcharPix_x,unsignedcharPix_y)

unsignedinti,n;

unsignedcharrow;

//计算位图所占行数

if(Pix_y%8==0)〃如果为位图所占行数为整数

row=Pix_y/8;

else

row=Pix_y/8+1;

〃如果为位图所占行数不是整数

LCD_set_XY(X,Y);

for(n=0;

n<

row;

n++)〃换行

for(i=0;

Pix_x;

LCD_set_XY(X+i,Y+n);

LCD_write_byte(map[i+n*Pix_x],1);

要显示的图像

NOKIA5110显示出来的效果

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

当前位置:首页 > 初中教育 > 科学

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

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