当前位置:主页 > 资讯中心 > 技术知识 >

TFT-LCD的汉字字符以及图片的显示说明效果

发布时间:2017-09-11

做技术支持,有很多的初学者都不知道TFT-LCD的汉字、字符以及图片的显示,以及汉字字体大小应该如何去调整。在这里特别的来说明一下。

首先我们要知道不管是汉字、字符还是图片都是需要点阵数据,才能在TFT-LCD上面显示。字符和汉字的点阵数据是一位代表一个点的数据,其实它也就是0或者1。取模之后的点阵数据是1的像素点,需要显示画笔的颜色,也就是说点亮,数据为0的像素点,则显示背景颜色就可以了。这种颜色的对比就能够显示出汉字或者是字符。而图片则就不一样了,图片的一个像素点的数据,都和你的取模相关,因为图片是需要彩色来显示的,所以图片的数据是直接把点阵数据送给彩屏来进行显示。而汉字或者是字符则是通过判断每一位是0或者1,从而显示背景颜色或者画笔的颜色。
在LCD上显示出一个图片或者字符,是需要一个显示区域的,首先我们要先确定其显示起点,然后就是接下来的数据是沿着X轴还是Y轴进行发送数据也就是X轴或者Y轴地址的增长顺序以及其方向。下面的这张图显示的是在一个显示区域内的,是八种不同情况的显示起点以及X轴和Y轴地址的增长顺序以及其方向。当我们要去显示对应的字符或者图片的时候,我们只需要保证到LCD屏的显示起点以及X轴和Y轴的增长顺序以及方向,和我们对字符或者汉字的取模的点阵数据的顺序保持一致,才能够正常的显示出我们想要的效果。
TFT-LCD显示

一般的LCD显示有两种方法可供选择:
第一种:就是每每发送一个像素点的数据,设置一次地址,来控制发送下一个像素点的位置。比如说下图的程序编程方法。
TFT-LCD显示代码
在这一段程序当中我们可以看到,我们是通过两个for循环来发送数据的,一个是控制行,一个是控制列。横屏显示或者是竖屏显示那就要看你的for循环控制,是先发送X轴的数据,还是发送Y轴的数据,这也全靠程序猿的算法。但是这一种方法不好的地方就是每发送一个像素点的数据都要再设置一次地址,显然导致屏幕的刷新速度很慢。但是好处是对于任意一种屏这一种算法都是适合的。
第二种:利用LCD驱动芯片的地址自增功能来显示出字符或者图片(一般LCD的驱动芯片都会有这个功能)。使用这个功能,首先我们要去设置一个显示窗口,使其只能够在LCD屏的某一个区域进行显示,比如你要去显示一个16*16的汉字,那你就要把显示区域设置成16*16的大小,然后设置显示起点,也就是其光标的位置,然后再发送LCD的写数据命令,接下来就只需要发送像素点的数据了,而不需要再次设置地址,接下来发送的数据,则会依次的显示在你设置的显示区域当中。比如说下面的这段程序。显示代码
要使用第二种显示方法,之前必须要先设置好显示区域的显示起点,以及LCD驱动芯片的地址自增方向,下面我就以SSD1963和SSD1298两款芯片说明寄存器的设置。
首先就是SSD1963,查阅SSD1963芯片的数据手册,可以找到一个寄存器是控制地址的自增方向。比如下图:
TFT-LCD数据
可以看到它是通过0x36这个命令来设置这个顺序的,这八种顺序都和我们上面所提到的是一样的。所以只要设置好对应的关系即可。
SSD1298是一样的道理,也是通过设置寄存器来控制这个顺序的,在数据手册之中可以查到,如下图:
TFT-LCD数据手册
这个是用ox11的寄存器来控制器顺序的。

另外需要注意的一点是:设置的窗口一定要和你要显示的图片或者汉字的显示区域是一样的,否则就会出现错位的现象。
还有就是在显示汉字或者是字符的时候,不同字体的大小,每一行要显示的像素点数都是不一样的,一个字节是8个位,代表的是8个像素点,所以在使用for循环的时候,需要注意一下。不要把高低位弄反了,显示错位。注意高位先发送还是低位先发送,这和你的取模以及显示都有关系,需要一一对应。

写了这么多,希望能够对初学者有帮助,路过的各位高手也能够指点一二。

上一篇:在点阵屏上面绘图—LCD12864控制的详解

下一篇:12864液晶串行如何显示?

杭州精显科技有限公司