魔兽世界返回墓地命令:ST7920 - 嵌入式大讲堂

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 16:33:08

ST7920

出自嵌入式大讲堂

跳转到: 导航, 搜索

返回上一级目录:LCD12864

目录

[隐藏]
  • 1 主要特性
  • 2 功能描述
  • 3 内部结构
    • 3.1 信号线定义
    • 3.2 总线接口
      • 3.2.1 并行接口
      • 3.2.2 串行接口
    • 3.3 寄存器
      • 3.3.1 BF
      • 3.3.2 AC
      • 3.3.3 DR
      • 3.3.4 IR
    • 3.4 存储器
      • 3.4.1 CGROM
      • 3.4.2 HCGROM
      • 3.4.3 CGRAM
      • 3.4.4 DDRAM
      • 3.4.5 GDRAM
    • 3.5 控制/驱动电路

[编辑] 主要特性

  • 工作电压范围:2.7~5.5V
  • 支持8位、4位并行及串行总线接口
  • 64×16位 字符显示RAM
  • 64×256位 图形显示RAM(GDRAM)
  • 2M位 中文字库ROM(CGROM),支持8192个中文字符(16×16点阵)
  • 16K位 半宽字库ROM(HCGROM),支持126个字符(16×8点阵)
  • 64×16位 造字RAM(CGRAM)
  • 32行×64列的驱动电路
  • 上电自动复位
  • 外部reset引脚(XRESET)
  • 支持外部驱动器
  • 低功耗设计
  • 图形和字符混合显示模式
  • 多指令集

[编辑] 功能描述

ST7920是一个集成LCD控制器和驱动器的芯片,能够显示字母、数字、中文和自定义字符。支持8位、4位并行及串行总线接口。包括RAM、ROM、LCD显示驱动和控制电路的所有功能都集成在一块芯片上。最小的系统配置就能实现中文字符的显示。
ST7920包含的字符ROM支持8192个16×16 点阵的中文字模和126个16×8点阵的字母数字字模,也包含支持图形显示的GDRAM(64×256)。这使得ST7920能够支持字符和图形的混合显示。ST7920也内嵌了4个16×16的软件可编程的CGRAM。
ST7920有着很宽的工作电压范围(2.7V~5.5V)。ST7920的低功耗设计,适合于电池供电的便携设备。
ST7920 LCD驱动器是一个32行×64列的驱动电路。通过扩展段驱动器ST7921,ST7920能支持高达32行×256列的显示能力。

[编辑] 内部结构


[编辑] 信号线定义

XRESET:系统复位,低电平有效
RESI、RESO:时钟输入、输出或悬空。使用内嵌的RC振荡器时,需外接一电阻。
PSB:串并选择,高电平:并行;低电平:串行
RS(CS):寄存器选择/片选(串行模式)
RW(SID):读写控制信号/串行数据输入
E(SCLK):使能信号位/串行时钟输入
DB4~DB7:8位接口的高半字节数据总线和4位接口的数据总线
DB0~DB3:8位接口的低半字节数据总线
V0~V4:LCD偏压,最大 7V
VDD:电源正极
VSS:电源地
XOFF:保留
CL1:扩展段驱动器的锁存信号
CL2:扩展段驱动器的移位时钟
M:扩展段驱动器电压逆变的交流信号
DOUT:输出数据到扩展段驱动器
COM1~COM32:行驱动信号
SEG1~SEG64:列驱动信号

[编辑] 总线接口

ST7920支持8位、4位并行及串行3种总线接口。并行接口和串行接口可以通过PSB引脚的高低电平进行设置。

[编辑] 并行接口

PSB引脚为高电平时,ST7920通过并行接口与MCU进行通信。可以通过功能设置指令的DL控制位设置是8位并行总线模式还是4位并行总线模式。MCU通过RS、RW、E 、DB0~DB7引脚完成数据的传输。


8位并行总线模式数据传输时序图


4位并行总线模式数据传输时序图

工作在4位并行总线模式时,每个8位数据字节分成两次进行传输,先传输高4位,后传输低4位,并且只能通过DB7~DB4数据引脚进行传输,没有使用DB3~DB0数据引脚。

[编辑] 串行接口

PSB引脚为低电平时,ST7920通过串行接口与MCU进行通信。仅用两个引脚(SCLK和SID)就能完成数据的传输,并且只能写入数据。
当连接有多个ST7920时,必须使用片选CS引脚。只有当CS为高电平时,串行时钟SCLK才会被接收。当CS为低电平时,传输将会终止,数据将会清除。当系统中只有一个ST7920时,CS应该被拉高。
连续发送指令和数据的时候,需要考虑指令的执行时间,也就是要等待指令执行完成,才能发送新的指令,这是因为,ST7920内部没有指令缓冲区。


串行总线模式数据传输时序图

MCU发送数据/指令字节之前,必须发送一个起始字节。起始字节的高5位是5个连续的'1'(作为同步字符),接下来的两位分别是RW和RS,最后一位被填充成'0'。
ST7920在接收到起始字节后,每8位数据/指令将会被分成两组。高4位组在前,低4位组在后,每一组发送后,后面紧跟4个'0'。

[编辑] 寄存器

[编辑] BF

忙标志位,当BF="1"时,表示ST7920现在正忙,此时无法处理任何指令。在发送新的指令之前必须要检查BF位,看看其内部操作是否已经处理结束。

[编辑] AC

地址计数器,里面存放的地址可以指向DDRAM/CGRAM/GDRAM。当读写存储区域操作执行后,它将自动的增加一或者减去一。

[编辑] DR

数据寄存器,用于存放MPU与ST7920之间的传输数据。

[编辑] IR

指令寄存器,用于接收MPU发过来的指令。

[编辑] 存储器

[编辑] CGROM

存储8192个中文字符的字模(16×16点阵),大小2M位。字符编码使用两个字节表示。

[编辑] HCGROM

存储126个ASCII字符的字模(16×8点阵),大小16K位。字符编码使用一个字节表示。

[编辑] CGRAM

能存储4个用户自定义字符的字模(16×16点阵),大小1K位。字符编码使用两个字节表示,分别为:0000h,0002h,0004h,0006h。

DDRAM中字符编码的bit15~bit4必须为0,bit3和bit0不关心。
CGRAM地址的bit5和bit4是由DDRAM中字符编码的bit2和bit1决定的,而CGRAM地址的bit3~bit0分别指定要写入字模数据的行。最后一行是光标显示,当存储字模数据时,将与光标进行逻辑或显示。每个CGRAM地址中存储16位字模数据。

[编辑] DDRAM

存储将要显示的字符编码。大小64×2个字节,地址范围0x00~0x3F。能存储4行×16个16×16点阵的字符编码(2字节,存储在同一DDRAM地址中)或者4行×32个16×8点阵的字符编码(1字节)。但是,只能同时显示2行。而字符编码指向的字符点阵存储在CGROM、HCGROM和CGRAM中。

字符显示操作流程:

1)设置DDRAM的地址(AC)
2)将显示的字符编码写入DDRAM中(DDRAM)
3)根据这个编码去查找对应字符的点阵数据(HCGROM/CGROM/CGRAM)
4)使用驱动电路将字符点阵输出显示(LCD)

与LCD屏的对应关系


设置DDRAM地址指令是由最高位标志位1和低7位地址位组成的,因此,地址指令范围为80h~BFh。由于LCD屏的驱动方式,因此,在上图中LCD屏的第一行对应的地址指令为80h~87h;第二行为90h~97h;第三行为88h~8Fh;第四行为98h~9Fh。

[编辑] GDRAM

存储图形的点阵。GDRAM逻辑结构如下图所示:

由上图我们可以看出:GDRAM大小64×256位,地址范围:垂直地址0x00~0x63;水平地址0x00~0x15。每个地址存储容量为16位(2字节)。

图形显示操作流程:

1)设置垂直地址(AC)
2)设置水平地址(AC)
3)将要显示的图形点阵的高字节写到GDRAM对应地址的高字节中(GDRAM)
4)将要显示的图形点阵的低字节写到GDRAM对应地址的低字节中(GDRAM)
5)使用驱动电路将图形点阵输出显示(LCD)

与LCD屏的对应关系


[编辑] 控制/驱动电路

控制/驱动电路由时序发生器、移位寄存器、锁存器、行驱动器及列驱动器等组成。

控制信号:
CL1:扩展段驱动器的锁存信号
CL2:扩展段驱动器的移位时钟
M:扩展段驱动器电压逆变的交流信号
DOUT:输出数据到扩展段驱动器
驱动信号:
COM1~COM32:行驱动信号
SEG1~SEG64:列驱动信号

ST7920通过控制信号可以控制扩展段驱动器ST7921,从而能够驱动高达32*256点阵的LCD。

取自“http://wiki.emsym.com/wiki/ST7920”