当前位置: 首页 > 字符型液晶显示模块显示控制
字符型液晶显示模块显示控制
   字符型液晶显示模块显示控制(3)

    --LCM16x2显示自定义图形


 [本文由创梦电子工作原创,转载请注明 出处  2004.04.15]  
 

那么怎么才能在LCM上显示字出来呢?

 

过程如下:

1.初始化模块

      根据LCM的使用规格,在模块的电压上电后,模块内有复位电路自动复位,当内部复位电路不能复位时,可用软件方法来复位;

    过程如下:

    a.当电源升到4.5V后,等待15ms或更长时间

    b.执行如下指令

  

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

1

1

x

x

x

x

x

 

:执行命令的时候不要查询BF状态

    c.等待4.1秒或更长

    d.再运行 b步――> c 一次

    e.BF信号,直到BF=0

    f.软件复位结束

2.首先根据需要,用指令表中的前6条指令,设定好LCM的工作显示方式

3.设定DDRAM地址(第8条指令)

  DDRAM(显示数据),可以理解为是字符在LCM上的位置对应相关RAM的地址

 

显示位

 

1

2

3

4

5

6

7

8

39

40

DDRAM

地址(H)

第一行

00

01

02

03

04

05

06

07

26

27

第二行

40

41

42

43

44

45

46

47

66

67

 

设置DDRAM地址的指令为

 

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

1

      DDRAM地址,范围0127

 

 

 

例如,你要在16x2LCM第二行3号位置上显示字符,那么DDRAM地址就是 42H

       因为写入地址的要求DB7是高电平,所以指令码应该是

         10000000B(80H)01000010B(42H)11000010B

       51汇编中可以用

        MOV ADDRAM地址

ORL  A#80H

                来实现第8位置1,最终的指令码放在A

4.DDRAM写数据――>LCM显示字符

     DDRAM的数据对应的是CGROMCGRAM中的字符码值

CGROM中已经存储了192个不同点阵字符图形,见码表

A”的代码是01000001B ,仔细观察码表可以发现它和ASCII码值是一一对应的

 

其中00000000B~00000111B的地址是留给CGRAM,用户可以自定义点阵字符,用户可以自定义84种字符,详见后面自定义显示字符

 

DDRAM写数据指令:

 

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

1

0

                             DATA

 

 

 

     DATA部分就是要显示的字符的代码,前面已经提起,它和ASCII码值是一一对应并相等的,所以只要将要显示字符的ASCII码值当做DATA使用即可,这样方便用户编程,无需要一个字符一个字符的去查表

比如要显示 “K”,取得 K”的码值

 MOV  A,#’K’   ;KASCII码送到A寄存器中

 

点击放大

 

1 2 3 4

 

[关闭]