目前市场上的 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。