热度 9
2013-9-4 19:30
1246 次阅读|
0 个评论
LCD显示一个点最重要的因素就是点的坐标和点的数据,在具体的程序中所涉及的不是一个个的点,而是若干个有序排列的点的集合,这就是字模。显示子程序的功能就是读取相应的字模数据送给LCD,由LCD将接收到的字模在相应的位置上显示出来,**数据的生成与程序基本无关,相关的只是字模数据的内容。 LCD_RAM中有三种地址,页地址,行地址,列地址。页地址与行地址表示的区域是重复的,区别只是,页地址可以一次写入八位数据。即行地址+列地址表示“1*1”的点,页地址+列地址表示“8*1”的点。这也就是说为什么说液晶屏显示单元的单位是8*1点阵,称为一个图形显示单元。 LCD可以分为段位式LCD,字符式LCD和点阵式LCD。其中段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形,曲线和汉字显示的要求,而点阵式LCD不仅可以显示字符,数字,还可以显示各种图形,曲线和汉字,并且可以实现屏幕上下左右滚动,动画,分区开窗口,反转,闪烁等功能。 对于点阵LCD:在文本显示方式下,液晶屏显示信息的管理单元是8*8点阵,成为一个文本显示单位,每个文本显示单位对应文本显示缓冲区中的8个连续存储单元(一个存储单元8*1),但是文本显示方式时写入文本显示缓冲区的不是点阵状态信息,而是字符代码,其点阵状态信息(8*8)即字模存放在RAM中。当8*8的点阵不足以描述一个字符时,通常用多个字符组合来描述。如汉字,一般用16*16的点阵来描述,将它分为4个8*8的点阵,用4个字符代码来描述一个汉字,根据这4个部分的位置关系将4个代码写入相应的文本显示缓冲区。 在图形显示方式下,可以显示任何形状的图形,包括图形。图形方式下LCD还提供对应的操作,即通过命令使液晶屏上任一个点显示或者不显示。文本显示方式实际上是图形显示方式下的图形块(8*8)显示。在图形显示方式时,液晶屏显示单元的单位是8*1点阵,称为一个图形显示单元。每个图形显示单元对应于图形缓冲区中的一个存储单元,将点阵状态信息写入这个存储单元,即在对应的位置显示图形。 如果应用并行的128*64点阵结构的LCD,可以显示8*4个汉字。汉字是全角字符,其字模点阵为16*16,而数字,标点符号和字母都是半角字符,字模点阵为8*16。也就是说一个汉字字模数据为32Bytes,而一个半角字符的字模数据为16Bytes,因此显示子程序只考虑显示的半角字符的个数,显示汉字时把一个汉字当做两个半角字符来对待。 LCD初始化常用到的命令: 显示开关。 设定起始的行地址。 设定页地址。 设定列地址。 读取状态寄存器。 写入要显示的数据。 读取显示的数据。 显示模式,正常模式和反白模式。 10 全屏显示开关。 11 设置LCD偏压值。 14 输出模式选择。 15 设置开关内部电路的电源。(含背光的LCD) 16 设置内部分压电阻的值,来调节LCD的显示对比度。 17 细调对比度。 18 调节倍压比。 Verilog程序: 顶层模块:LCD_ROM存储图片的HEX或者MIF文件。Lcd_interface控制图片编码从ROM模块写入LCD_Control模块内的ram中。LCD_Control模块将内部ram中写好的图片编码通过Spi协议写入LCD中。 Lcd_interface模块复位后向LCD_Control模块写入数据,写完一幅图片后,延时500MS,开始写入下一幅,如此反复。 LCD_Control模块内又分为三个模块:lcd_ram_module模块,相当于该LCD的缓存,该模块只有在ROM模块不对它写入时,才可以读出数据。Lcd_control_module模块有两个功能:复位初始化和写入图片数据。对LCD的寻址为逐页逐列进行的,并且每25MS从RAM中读出数据刷新LCD显示。Spi_write_module,将输入的八位数据通过Spi协议发出。 参考:黑金开发板与例程。程序 http://pan.baidu.com/disk/home#dir/path=%2FFPGA%E4%BE%8B%E7%A8%8B%2FLCD