JLX256128G-929-PL使用心得

一、点阵显示数据如何写入的解释

该lcd出厂时设定左上角为零点,并且把该整个屏幕设定为列(column)和页(page)的概念,列即是每一竖行(每个竖行横着的宽度都是一个像素点),页就是每一横行(每个横行竖着的宽度是8个像素点),所以如图所示,每条红色横线是一页。

        该lcd的写入分为两个函数transfer_command_lcd(int data1) 和transfer_data_lcd(int data1) ,前者写入命令,在官方给的pdf中有各个0x**对应的命令的意思,后者用来写入显示数据,接下来开始解释后者这个显示数据的原理:

        先说一下,每个8位数据即0x**可以用来表示一个竖着的1*8的长方形的8格点阵亮灭,比如0x01转换成二进制就是0000 0001,表示该1*8的点阵,上面7个点阵是灭的,最后一个点阵是亮的。我们就可以用transfer_data_lcd函数将一个8位数据写入lcd。

        再来说lcd_address函数,lcd_address(int x,int y,int x_total,int y_total) 函数用来设定起始坐标以及你要显示的字符或图像所占据的大小,即长宽。x,y为起始坐标,x_total,y_total是该字符的长宽,其中x_total的一个值相当于一个像素点算,y_total的一个值相当于8个像素点。

以下给出几个例子来理解该函数的用法:

(1)lcd_address(1,1,8,1);  这里设定初始坐标为1和1, 然后该字符所占用长宽(x_total,y_total)为8和1,又因为每一列包含1个像素点,每一行包含8个像素点,所以该字符在屏幕上的像素点长宽是,8*1=8,1*8=8,所以是一个8x8的字符。

(2)lcd_address(1,1,16,2);    这里设定初始坐标为1和1,然后改字符所占长宽是16和2,又因为每一列包含1个像素点,每一行包含8个像素点,所以该字符在屏幕上的像素点长宽是,16*1=16,2*8=16,所以是一个16x16的字符。这时会遇到跟上面不一样的问题,因为上面的字符是8x8的,所以8位数据刚好对应每一列,但是这个字符是16x16的,一个数据8位不能正好覆盖一列。transfer_data_lcd函数决定这个字符的写入方式是先写一行(1*8个像素点的长方形,写16个),再拐过来写下一行(还是16个长方形)。

(3)同理,写入32x32的字符就要lcd_address(1,1,32,4); 即先写一行:将1*8的长方形写32个,再这样写四行,即32*4个长方形。

二、取模软件设置

        这样取模的话,假设是16x16的汉字,那么这样取模取出来的0x**的顺序是先把每一列从上到下表示完,再表示下一列。即第1、2个0x**表示第一列(因为一列是16个像素点,一个0x**表示8个像素点的亮灭),第3、4个0x**表示第二列,后面以此类推。

三、字库使用

        官方字库是JLX-GB2312芯片,官方给的pdf文档里有例程。我使用这款不带字库所以没有什么经验可供参考。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值