FPGA学习心得——LCD1602文字滚动显示(4位传输模式、ST7066U控制芯片)

本文介绍了使用FPGA控制LCD1602液晶显示器进行4位传输模式下的文字滚动显示,详细解析了初始化过程、时序控制,并提供了实现滚动显示的思路。内容包括液晶控制芯片ST7066U的工作原理,以及如何通过改变DDRAM地址实现字符滚动效果。
摘要由CSDN通过智能技术生成

        目前市场上的LCD1602液晶,其控制芯片主要有Samsung S6A0069X  or KS0066U,Hitachi HD44780,SMOS SED1278。Digilent的Spartan-3E开发板上配置的LCD1602的控制芯片是Sitronix的ST7066U,而且开发板配套的开发说明书上写“为了减少使用I/O口,采用4位传输模式”,真心蛮坑的,选择4位或者8位传输模式应该让用户选择嘛,呵呵……废话不说了,开始正文了。

        开发板的字符型LCD的接口情况如Figure5-1所示,其中,SF_D<11-8>为数据传输信号,LCD_E是LCD的读写使能信号。LCD_RS是LCD的片选寄存器控制信号,在进行写指令操作的时候,应该将其置0,而在进行读写数据的时候,应该置1。LCD_RW为读写控制位信号,为0时表示写数据(LCD接收来自FPGA的数据),为1时表示读数据(LCD显示寄存器中的数据)。关于LCD接口的详细说明如Table5-1所示。

    

         液晶控制芯片内部有三组存储器,分别为显示数据存储器(DD RAM)、字符发生器存储器(CG ROM)和字符产生器存储器(CG RAM)。关于这三组存储器的功能以及相应的概念,网上有很多,这里不再赘述。百度空间里有这么一篇文章可以帮助对这三组存储器的理解:http://hi.baidu.com/%C4%E1%BF%A8njord/blog/item/f070efcbc55f6fe753664f2e.html。 

       

        Figure5-6的上半部分说明了LCD采用4位数据总线时输入命令和数据的时序情况,所有的命令和数据均以8位形式传送给字符显示屏控制芯片,采用4位数据总线传输时,每一次8位传送操作必须分两次4位传输操作才能完成,先传送高4位,再传送低4位,其间隔时间至少1μs。待完成一个8位的传输操作后,与下一次传输操作的时间间隔至少要超过40 μs。而在传输清屏指令之后,与下一次传输操作的时间间隔至少要超过1.64 ms。上电后,必须向液晶显示屏控制芯片传送初始化命令。由于接通电源后,液晶显示屏控制芯片默认为第一次写数据操作是8位数据传输,而实验开发板上的液晶显示屏控制芯片的DB3~DB0没有连接,仅连接了4位数据总线DB7~DB4,这就需要重复写入功能控制字0X3后再写入采用4位数据总线传输方式,传输功能设置控制字中的DL=0,以及写入功能控制字0X2。操作步骤如下:
(1) 电源接通后,等待15 ms以上,当时钟频率为50 MHz时,15 ms就等于750 000个时钟周期。
(2) 传送控制字SF_D<11:8>=0x3,数据稳定后,LCD_E变成高电平,并且保持高电平12个时钟周期。
(3) 等待4.1 ms或更长时间,当时钟为50 MHz时,即为205 000个时钟周期。
(4) 传送控制字SF_D<11:8>=0x3,LCD_E变成高电平,并且保持高电平12个时钟周期。
(5) 等待100 μs或更长时间,当时钟为50 MHz时,即为5000个时钟周期。
(6) 传送控制字SF_D<11:8>&

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值