魔兽世界返回墓地命令: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.1 CGROM
- 3.4.2 HCGROM
- 3.4.3 CGRAM
- 3.4.4 DDRAM
- 3.4.5 GDRAM
[编辑] 主要特性
- 工作电压范围: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:列驱动信号
- RESI、RESO:时钟输入、输出或悬空。使用内嵌的RC振荡器时,需外接一电阻。
[编辑] 总线接口
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:输出数据到扩展段驱动器
- CL2:扩展段驱动器的移位时钟
- 驱动信号:
- COM1~COM32:行驱动信号
- SEG1~SEG64:列驱动信号
- SEG1~SEG64:列驱动信号
ST7920通过控制信号可以控制扩展段驱动器ST7921,从而能够驱动高达32*256点阵的LCD。